From fdfd6e421b3c3539011c2f79dacdcbd340bdce70 Mon Sep 17 00:00:00 2001 From: Jeffrey Phillips Freeman <the@jeffreyfreeman.me> Date: Tue, 17 Oct 2023 13:03:53 -0400 Subject: [PATCH] Added gitlab heatmap support --- CHANGELOG.md | 2 + assets/css/main.css | 11 + hugo.toml.example | 1 + layouts/partials/head.html | 99 + layouts/shortcodes/gitlab-heatmap.html | 4 + .../javascripts/cal-heatmap/cal-heatmap.css | 1 + .../cal-heatmap/cal-heatmap.esm.js | 13284 ++++++++++ static/javascripts/cal-heatmap/cal-heatmap.js | 13289 ++++++++++ .../cal-heatmap/cal-heatmap.min.esm.js | 1 + .../cal-heatmap/cal-heatmap.min.esm.js.map | 1 + .../cal-heatmap/cal-heatmap.min.js | 1 + .../cal-heatmap/cal-heatmap.min.js.map | 1 + .../cal-heatmap/plugins/CalendarLabel.esm.js | 3793 +++ .../cal-heatmap/plugins/CalendarLabel.js | 3801 +++ .../plugins/CalendarLabel.min.esm.js | 1 + .../plugins/CalendarLabel.min.esm.js.map | 1 + .../cal-heatmap/plugins/CalendarLabel.min.js | 1 + .../plugins/CalendarLabel.min.js.map | 1 + .../cal-heatmap/plugins/Legend.esm.js | 4521 ++++ .../javascripts/cal-heatmap/plugins/Legend.js | 4526 ++++ .../cal-heatmap/plugins/Legend.min.esm.js | 1 + .../cal-heatmap/plugins/Legend.min.esm.js.map | 1 + .../cal-heatmap/plugins/Legend.min.js | 1 + .../cal-heatmap/plugins/Legend.min.js.map | 1 + .../cal-heatmap/plugins/LegendLite.esm.js | 6222 +++++ .../cal-heatmap/plugins/LegendLite.js | 6227 +++++ .../cal-heatmap/plugins/LegendLite.min.esm.js | 1 + .../plugins/LegendLite.min.esm.js.map | 1 + .../cal-heatmap/plugins/LegendLite.min.js | 1 + .../cal-heatmap/plugins/LegendLite.min.js.map | 1 + .../cal-heatmap/plugins/Tooltip.esm.js | 3768 +++ .../cal-heatmap/plugins/Tooltip.js | 3774 +++ .../cal-heatmap/plugins/Tooltip.min.esm.js | 1 + .../plugins/Tooltip.min.esm.js.map | 1 + .../cal-heatmap/plugins/Tooltip.min.js | 1 + .../cal-heatmap/plugins/Tooltip.min.js.map | 1 + .../cal-heatmap/plugins/cal-heatmap.css | 1 + static/javascripts/d3.js | 20624 ++++++++++++++++ static/javascripts/popperjs/enums.js | 71 + static/javascripts/popperjs/enums.js.map | 1 + static/javascripts/popperjs/enums.min.js | 6 + static/javascripts/popperjs/enums.min.js.flow | 3 + static/javascripts/popperjs/enums.min.js.map | 1 + static/javascripts/popperjs/popper-base.js | 945 + .../javascripts/popperjs/popper-base.js.map | 1 + .../javascripts/popperjs/popper-base.min.js | 6 + .../popperjs/popper-base.min.js.flow | 3 + .../popperjs/popper-base.min.js.map | 1 + static/javascripts/popperjs/popper-lite.js | 1266 + .../javascripts/popperjs/popper-lite.js.map | 1 + .../javascripts/popperjs/popper-lite.min.js | 6 + .../popperjs/popper-lite.min.js.flow | 3 + .../popperjs/popper-lite.min.js.map | 1 + static/javascripts/popperjs/popper.js | 1825 ++ static/javascripts/popperjs/popper.js.map | 1 + static/javascripts/popperjs/popper.min.js | 6 + .../javascripts/popperjs/popper.min.js.flow | 3 + static/javascripts/popperjs/popper.min.js.map | 1 + vercel.json | 10 +- 59 files changed, 88128 insertions(+), 1 deletion(-) create mode 100644 layouts/shortcodes/gitlab-heatmap.html create mode 100644 static/javascripts/cal-heatmap/cal-heatmap.css create mode 100644 static/javascripts/cal-heatmap/cal-heatmap.esm.js create mode 100644 static/javascripts/cal-heatmap/cal-heatmap.js create mode 100644 static/javascripts/cal-heatmap/cal-heatmap.min.esm.js create mode 100644 static/javascripts/cal-heatmap/cal-heatmap.min.esm.js.map create mode 100644 static/javascripts/cal-heatmap/cal-heatmap.min.js create mode 100644 static/javascripts/cal-heatmap/cal-heatmap.min.js.map create mode 100644 static/javascripts/cal-heatmap/plugins/CalendarLabel.esm.js create mode 100644 static/javascripts/cal-heatmap/plugins/CalendarLabel.js create mode 100644 static/javascripts/cal-heatmap/plugins/CalendarLabel.min.esm.js create mode 100644 static/javascripts/cal-heatmap/plugins/CalendarLabel.min.esm.js.map create mode 100644 static/javascripts/cal-heatmap/plugins/CalendarLabel.min.js create mode 100644 static/javascripts/cal-heatmap/plugins/CalendarLabel.min.js.map create mode 100644 static/javascripts/cal-heatmap/plugins/Legend.esm.js create mode 100644 static/javascripts/cal-heatmap/plugins/Legend.js create mode 100644 static/javascripts/cal-heatmap/plugins/Legend.min.esm.js create mode 100644 static/javascripts/cal-heatmap/plugins/Legend.min.esm.js.map create mode 100644 static/javascripts/cal-heatmap/plugins/Legend.min.js create mode 100644 static/javascripts/cal-heatmap/plugins/Legend.min.js.map create mode 100644 static/javascripts/cal-heatmap/plugins/LegendLite.esm.js create mode 100644 static/javascripts/cal-heatmap/plugins/LegendLite.js create mode 100644 static/javascripts/cal-heatmap/plugins/LegendLite.min.esm.js create mode 100644 static/javascripts/cal-heatmap/plugins/LegendLite.min.esm.js.map create mode 100644 static/javascripts/cal-heatmap/plugins/LegendLite.min.js create mode 100644 static/javascripts/cal-heatmap/plugins/LegendLite.min.js.map create mode 100644 static/javascripts/cal-heatmap/plugins/Tooltip.esm.js create mode 100644 static/javascripts/cal-heatmap/plugins/Tooltip.js create mode 100644 static/javascripts/cal-heatmap/plugins/Tooltip.min.esm.js create mode 100644 static/javascripts/cal-heatmap/plugins/Tooltip.min.esm.js.map create mode 100644 static/javascripts/cal-heatmap/plugins/Tooltip.min.js create mode 100644 static/javascripts/cal-heatmap/plugins/Tooltip.min.js.map create mode 100644 static/javascripts/cal-heatmap/plugins/cal-heatmap.css create mode 100644 static/javascripts/d3.js create mode 100644 static/javascripts/popperjs/enums.js create mode 100644 static/javascripts/popperjs/enums.js.map create mode 100644 static/javascripts/popperjs/enums.min.js create mode 100644 static/javascripts/popperjs/enums.min.js.flow create mode 100644 static/javascripts/popperjs/enums.min.js.map create mode 100644 static/javascripts/popperjs/popper-base.js create mode 100644 static/javascripts/popperjs/popper-base.js.map create mode 100644 static/javascripts/popperjs/popper-base.min.js create mode 100644 static/javascripts/popperjs/popper-base.min.js.flow create mode 100644 static/javascripts/popperjs/popper-base.min.js.map create mode 100644 static/javascripts/popperjs/popper-lite.js create mode 100644 static/javascripts/popperjs/popper-lite.js.map create mode 100644 static/javascripts/popperjs/popper-lite.min.js create mode 100644 static/javascripts/popperjs/popper-lite.min.js.flow create mode 100644 static/javascripts/popperjs/popper-lite.min.js.map create mode 100644 static/javascripts/popperjs/popper.js create mode 100644 static/javascripts/popperjs/popper.js.map create mode 100644 static/javascripts/popperjs/popper.min.js create mode 100644 static/javascripts/popperjs/popper.min.js.flow create mode 100644 static/javascripts/popperjs/popper.min.js.map diff --git a/CHANGELOG.md b/CHANGELOG.md index a5303f75b..d05bb468f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,8 @@ * Fixed a bug where backslashes in the summary of a post could break ActivityPub JSON endpoints. * Fixed the paginator next and previous links, they were assigned backwards. +* Added a shortcode to render a GitLab based activity heatmap calander. +* Added `cal-heatmap` support along with `D3.js` and several related extensions. ## 1.1.0 diff --git a/assets/css/main.css b/assets/css/main.css index cdb955547..7238df13c 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -662,3 +662,14 @@ section > .container > .row > .col { height: calc(1em + var(--ifm-navbar-height)); /* fixed header height*/ margin: calc(-1em * (1em + var(--ifm-navbar-height))) 0 0; /* negative fixed header height */ } + +/* Adjusting cal-heatmap stuff */ + +div#ch-tooltip { + height: 2em; +} + +.center.cal-heatmap { + justify-content: center; + display: flex; +} diff --git a/hugo.toml.example b/hugo.toml.example index c084972cb..4bd94ce9d 100644 --- a/hugo.toml.example +++ b/hugo.toml.example @@ -42,3 +42,4 @@ siteEmail="the@jeffreyfreeman.me" postHashtags=["Fediverse", "ActivityPub", "MastoAdmin"] renderDefaultHashtags=true renderArticleHashtags=true +gitlabHeatmapData="https://git.qoto.org/users/freemo/calendar.json" diff --git a/layouts/partials/head.html b/layouts/partials/head.html index f820223ee..6dc9f6865 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -132,10 +132,12 @@ {{ if .Params.image_header }}background-image: url('{{ .Params.image_header}}');{{ end }} } </style> +<link rel="stylesheet" href="/javascripts/cal-heatmap/cal-heatmap.css"> {{ range .AlternativeOutputFormats -}} <link rel="{{ .Rel }}" type="{{ .MediaType.Type }}" href="{{ .Permalink | safeURL }}"> {{ end -}} +<script type="text/javascript" src="/javascripts/cal-heatmap/cal-heatmap.js"></script> <script type="text/javascript" src="/javascripts/pseudocode.js"></script> <script type="text/javascript" src="/javascripts/jquery.js"></script> <script type="text/javascript" src="/javascripts/head.js"></script> @@ -176,4 +178,101 @@ document.addEventListener("DOMContentLoaded", function() { </script> <script type="text/javascript" src="/javascripts/mathjax/tex-chtml-full.js"></script> +<script type="text/javascript" src="/javascripts/d3.js"></script> +<script type="text/javascript" src="/javascripts/popperjs/popper.js"></script> +<script type="text/javascript" src="/javascripts/cal-heatmap/cal-heatmap.js"></script> +<script type="text/javascript" src="/javascripts/cal-heatmap/plugins/Legend.js"></script> +<script type="text/javascript" src="/javascripts/cal-heatmap/plugins/LegendLite.js"></script> +<script type="text/javascript" src="/javascripts/cal-heatmap/plugins/Tooltip.js"></script> +<script type="text/javascript" src="/javascripts/cal-heatmap/plugins/CalendarLabel.js"></script> +<script type="module"> + + + var getJSON = function(url, callback) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.setRequestHeader("Accept", 'application/json'); + xhr.setRequestHeader("Access-Control-Allow-Origin", '*'); + xhr.send(); + return xhr.response + }; + + + // Get the data as a String of JSON + const data = JSON.parse(getJSON('{{ .Site.Params.gitlabHeatmapData }}')); + + // Convert string to JSON + const dataMap = new Map(Object.entries(data)); + + //convert JSON to an array of maps + const newData = [] + for( let [entry, value] of dataMap ) { + newData.push({"date": entry, "value": value}); + } + + const d = new Date(); + const lastYear = d.setMonth(d.getMonth() - 11); + + // Now render it. + const cal = new CalHeatmap(); + cal.paint({ + data: { + source: newData, + type: 'json', + x: 'date', + y: 'value', + groupY: 'max', + }, + date: { start: lastYear }, + range: 12, + scale: { + color: { + type: 'threshold', + range: ['#0000FF', '#3000CF', '#60009F', '#90006F', '#C0003F', '#F0000F', '#FF0000'], + domain: [2, 3, 5, 8, 13, 21], + }, + }, + domain: { + type: 'month', + gutter: 4, + label: { text: 'MMM', textAlign: 'start', position: 'top' }, + }, + subDomain: { type: 'ghDay', radius: 2, width: 11, height: 11, gutter: 4 }, + }, + [ + [ + Legend, + { + tickSize: 1, + width: 100, + itemSelector: '#cal-heatmap-legend', + label: 'Activity per day', + }, + ], + [ + Tooltip, + { + text: function (date, value, dayjsDate) { + return ( + (value ? value : 'No') + + ' contributions on ' + + dayjsDate.format('dddd, MMMM D, YYYY') + ); + }, + }, + ], + [ + CalendarLabel, + { + width: 30, + textAlign: 'start', + text: () => dayjs.weekdaysShort().map((d, i) => (i % 2 == 0 ? '' : d)), + padding: [25, 0, 0, 0], + }, + ], + ] +); + +</script> + </head> diff --git a/layouts/shortcodes/gitlab-heatmap.html b/layouts/shortcodes/gitlab-heatmap.html new file mode 100644 index 000000000..6c78c778d --- /dev/null +++ b/layouts/shortcodes/gitlab-heatmap.html @@ -0,0 +1,4 @@ +<div id="cal-heatmap-container"> + <div id="cal-heatmap" class="cal-heatmap center"></div> + <div id="cal-heatmap-legend" class="cal-heatmap center"></div> +</div> diff --git a/static/javascripts/cal-heatmap/cal-heatmap.css b/static/javascripts/cal-heatmap/cal-heatmap.css new file mode 100644 index 000000000..e2187d6e1 --- /dev/null +++ b/static/javascripts/cal-heatmap/cal-heatmap.css @@ -0,0 +1 @@ +.ch-container{display:block}.ch-container,.ch-domain,.ch-domain-container,.ch-domain-container-animation-wrapper{overflow:visible}.ch-domain-container.in-transition .ch-domain-container-animation-wrapper{overflow:hidden}.ch-domain-bg{fill:transparent}.ch-domain-text{fill:currentColor;font-size:10px}.ch-subdomain{overflow:visible}.ch-subdomain-bg{fill:#ededed}.ch-subdomain-bg.highlight{stroke:#444;stroke-width:1px}.ch-subdomain-bg:hover{stroke:#000;stroke-width:1px}.ch-subdomain-text{font-size:8px;pointer-events:none}[data-theme=dark] .ch-subdomain-bg{fill:#2d333b}[data-theme=dark] .ch-subdomain-bg.highlight{stroke:#768390}[data-theme=dark] .ch-subdomain-bg:hover{stroke:#636e7b}#ch-plugin-legend>svg{background:transparent;color:currentColor}#ch-tooltip{background:#222;border-radius:2px;box-shadow:2px 2px 2px rgba(0,0,0,.2);box-sizing:border-box;color:#bbb;display:none;font-size:12px;line-height:1.4;padding:5px 10px;text-align:center}#ch-tooltip[data-show]{display:block}#ch-tooltip-arrow,#ch-tooltip-arrow:before{background:inherit;height:8px;position:absolute;width:8px}#ch-tooltip-arrow{visibility:hidden}#ch-tooltip-arrow:before{content:"";-webkit-transform:rotate(45deg);transform:rotate(45deg);visibility:visible}#ch-tooltip[data-popper-placement^=top]>#ch-tooltip-arrow{bottom:-4px;margin-left:-4px}#ch-tooltip[data-popper-placement^=bottom]>#ch-tooltip-arrow{margin-left:-4px;top:-4px}#ch-tooltip[data-popper-placement^=left]>#ch-tooltip-arrow{right:-4px}#ch-tooltip[data-popper-placement^=right]>#ch-tooltip-arrow{left:-4px}#ch-tooltip[data-theme=dark]{background:#636e7b;color:#cdd9e5} \ No newline at end of file diff --git a/static/javascripts/cal-heatmap/cal-heatmap.esm.js b/static/javascripts/cal-heatmap/cal-heatmap.esm.js new file mode 100644 index 000000000..bba1ad639 --- /dev/null +++ b/static/javascripts/cal-heatmap/cal-heatmap.esm.js @@ -0,0 +1,13284 @@ +import { select, hcl, text, dsv, csv, json } from '/javascripts/d3.js'; +import { ascending, timeSecond, timeMinute, timeHour, timeDay, timeWeek, timeMonth, timeYear, timeMonday, timeTuesday, timeWednesday, timeThursday, timeFriday, timeSaturday, timeSunday, utcSecond, utcMinute, utcHour, utcDay, utcWeek, utcMonth, utcYear, utcMonday, utcTuesday, utcWednesday, utcThursday, utcFriday, utcSaturday, utcSunday, descending, range, symbolAsterisk, symbolCircle, symbolCross, symbolDiamond, symbolDiamond2, symbolPlus, symbolSquare, symbolSquare2, symbolStar, symbolTimes, symbolTriangle, symbolTriangle2, symbolWye, schemeAccent, schemeCategory10, schemeDark2, schemePaired, schemePastel1, schemePastel2, schemeSet1, schemeSet2, schemeSet3, schemeTableau10, quantize, interpolateBrBG, interpolatePRGn, interpolatePiYG, interpolatePuOr, interpolateRdBu, interpolateRdGy, interpolateRdYlBu, interpolateRdYlGn, interpolateSpectral, interpolateBlues, interpolateGreens, interpolateGreys, interpolatePurples, interpolateReds, interpolateOranges, interpolateTurbo, interpolateViridis, interpolateMagma, interpolateInferno, interpolatePlasma, interpolateCividis, interpolateCubehelixDefault, interpolateWarm, interpolateCool, interpolateBuGn, interpolateBuPu, interpolateGnBu, interpolateOrRd, interpolatePuBuGn, interpolatePuBu, interpolatePuRd, interpolateRdPu, interpolateYlGnBu, interpolateYlGn, interpolateYlOrBr, interpolateYlOrRd, interpolateRainbow, interpolateSinebow, schemeBrBG, schemePRGn, schemePiYG, schemePuOr, schemeRdBu, schemeRdGy, schemeRdYlBu, schemeRdYlGn, schemeSpectral, schemeBlues, schemeGreens, schemeGreys, schemeOranges, schemePurples, schemeReds, schemeBuGn, schemeBuPu, schemeGnBu, schemeOrRd, schemePuBu, schemePuBuGn, schemePuRd, schemeRdPu, schemeYlGn, schemeYlGnBu, schemeYlOrBr, schemeYlOrRd, interpolateNumber, interpolateRgb, interpolateHsl, interpolateHcl, interpolateLab, scaleLinear, scalePow, scaleLog, scaleSymlog, scaleQuantile, extent, ticks, reverse, scaleThreshold, scaleIdentity, max as max$4, interpolateRound, min as min$4, quantile, median, scaleDiverging, scaleDivergingPow, scaleDivergingLog, scaleDivergingSymlog, piecewise, scaleTime, scaleUtc, scaleImplicit, scaleOrdinal, scalePoint, scaleBand, sort, symbolsStroke, symbolsFill } from '/javascripts/d3.js'; + +function _iterableToArrayLimit(arr, i) { + var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; + if (null != _i) { + var _s, + _e, + _x, + _r, + _arr = [], + _n = !0, + _d = !1; + try { + if (_x = (_i = _i.call(arr)).next, 0 === i) { + if (Object(_i) !== _i) return; + _n = !1; + } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); + } catch (err) { + _d = !0, _e = err; + } finally { + try { + if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; + } finally { + if (_d) throw _e; + } + } + return _arr; + } +} +function _regeneratorRuntime() { + _regeneratorRuntime = function () { + return exports; + }; + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + defineProperty = Object.defineProperty || function (obj, key, desc) { + obj[key] = desc.value; + }, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; + } + try { + define({}, ""); + } catch (err) { + define = function (obj, key, value) { + return obj[key] = value; + }; + } + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return defineProperty(generator, "_invoke", { + value: makeInvokeMethod(innerFn, self, context) + }), generator; + } + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; + } + } + exports.wrap = wrap; + var ContinueSentinel = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; + }); + var getProto = Object.getPrototypeOf, + NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); + }); + }); + } + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if ("throw" !== record.type) { + var result = record.arg, + value = result.value; + return value && "object" == typeof value && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }) : PromiseImpl.resolve(value).then(function (unwrapped) { + result.value = unwrapped, resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); + } + reject(record.arg); + } + var previousPromise; + defineProperty(this, "_invoke", { + value: function (method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } + }); + } + function makeInvokeMethod(innerFn, self, context) { + var state = "suspendedStart"; + return function (method, arg) { + if ("executing" === state) throw new Error("Generator is already running"); + if ("completed" === state) { + if ("throw" === method) throw arg; + return doneResult(); + } + for (context.method = method, context.arg = arg;;) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { + if ("suspendedStart" === state) throw state = "completed", context.arg; + context.dispatchException(context.arg); + } else "return" === context.method && context.abrupt("return", context.arg); + state = "executing"; + var record = tryCatch(innerFn, self, context); + if ("normal" === record.type) { + if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; + return { + value: record.arg, + done: context.done + }; + } + "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); + } + }; + } + function maybeInvokeDelegate(delegate, context) { + var methodName = context.method, + method = delegate.iterator[methodName]; + if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; + var record = tryCatch(method, delegate.iterator, context.arg); + if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; + var info = record.arg; + return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); + } + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); + } + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal", delete record.arg, entry.completion = record; + } + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); + } + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) return iteratorMethod.call(iterable); + if ("function" == typeof iterable.next) return iterable; + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; + return next.value = undefined, next.done = !0, next; + }; + return next.next = next; + } + } + return { + next: doneResult + }; + } + function doneResult() { + return { + value: undefined, + done: !0 + }; + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), defineProperty(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { + var ctor = "function" == typeof genFun && genFun.constructor; + return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); + }, exports.mark = function (genFun) { + return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; + }, exports.awrap = function (arg) { + return { + __await: arg + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { + return this; + }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { + void 0 === PromiseImpl && (PromiseImpl = Promise); + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); + return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { + return this; + }), define(Gp, "toString", function () { + return "[object Generator]"; + }), exports.keys = function (val) { + var object = Object(val), + keys = []; + for (var key in object) keys.push(key); + return keys.reverse(), function next() { + for (; keys.length;) { + var key = keys.pop(); + if (key in object) return next.value = key, next.done = !1, next; + } + return next.done = !0, next; + }; + }, exports.values = values, Context.prototype = { + constructor: Context, + reset: function (skipTempReset) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); + }, + stop: function () { + this.done = !0; + var rootRecord = this.tryEntries[0].completion; + if ("throw" === rootRecord.type) throw rootRecord.arg; + return this.rval; + }, + dispatchException: function (exception) { + if (this.done) throw exception; + var context = this; + function handle(loc, caught) { + return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + } + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i], + record = entry.completion; + if ("root" === entry.tryLoc) return handle("end"); + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"), + hasFinally = hasOwn.call(entry, "finallyLoc"); + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } else if (hasCatch) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + } else { + if (!hasFinally) throw new Error("try statement without catch or finally"); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } + } + } + }, + abrupt: function (type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); + var record = finallyEntry ? finallyEntry.completion : {}; + return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); + }, + complete: function (record, afterLoc) { + if ("throw" === record.type) throw record.arg; + return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + }, + finish: function (finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } + }, + catch: function (tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if ("throw" === record.type) { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + throw new Error("illegal catch attempt"); + }, + delegateYield: function (iterable, resultName, nextLoc) { + return this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + } + }, exports; +} +function _typeof(obj) { + "@babel/helpers - typeof"; + + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); +} +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); + } +} +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function _defineProperty(obj, key, value) { + key = _toPropertyKey(key); + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; +} +function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); +} +function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); +} +function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); +} +function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} +function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); +} +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); +} +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; +} +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} +function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} +function _toPrimitive(input, hint) { + if (typeof input !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (typeof res !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} +function _toPropertyKey(arg) { + var key = _toPrimitive(arg, "string"); + return typeof key === "symbol" ? key : String(key); +} + +var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +function getDefaultExportFromCjs (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; +} + +var check = function (it) { + return it && it.Math == Math && it; +}; + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +var global$n = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || commonjsGlobal || Function('return this')(); + +var shared$4 = {exports: {}}; + +var global$m = global$n; + +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty$9 = Object.defineProperty; + +var defineGlobalProperty$3 = function (key, value) { + try { + defineProperty$9(global$m, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global$m[key] = value; + } return value; +}; + +var global$l = global$n; +var defineGlobalProperty$2 = defineGlobalProperty$3; + +var SHARED = '__core-js_shared__'; +var store$3 = global$l[SHARED] || defineGlobalProperty$2(SHARED, {}); + +var sharedStore = store$3; + +var store$2 = sharedStore; + +(shared$4.exports = function (key, value) { + return store$2[key] || (store$2[key] = value !== undefined ? value : {}); +})('versions', []).push({ + version: '3.30.2', + mode: 'global', + copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE', + source: 'https://github.com/zloirock/core-js' +}); + +var sharedExports = shared$4.exports; + +var fails$u = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } +}; + +var fails$t = fails$u; + +var functionBindNative = !fails$t(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); +}); + +var NATIVE_BIND$3 = functionBindNative; + +var FunctionPrototype$3 = Function.prototype; +var call$j = FunctionPrototype$3.call; +var uncurryThisWithBind = NATIVE_BIND$3 && FunctionPrototype$3.bind.bind(call$j, call$j); + +var functionUncurryThis = NATIVE_BIND$3 ? uncurryThisWithBind : function (fn) { + return function () { + return call$j.apply(fn, arguments); + }; +}; + +// we can't use just `it == null` since of `document.all` special case +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec +var isNullOrUndefined$8 = function (it) { + return it === null || it === undefined; +}; + +var isNullOrUndefined$7 = isNullOrUndefined$8; + +var $TypeError$h = TypeError; + +// `RequireObjectCoercible` abstract operation +// https://tc39.es/ecma262/#sec-requireobjectcoercible +var requireObjectCoercible$7 = function (it) { + if (isNullOrUndefined$7(it)) throw $TypeError$h("Can't call method on " + it); + return it; +}; + +var requireObjectCoercible$6 = requireObjectCoercible$7; + +var $Object$4 = Object; + +// `ToObject` abstract operation +// https://tc39.es/ecma262/#sec-toobject +var toObject$b = function (argument) { + return $Object$4(requireObjectCoercible$6(argument)); +}; + +var uncurryThis$v = functionUncurryThis; +var toObject$a = toObject$b; + +var hasOwnProperty$d = uncurryThis$v({}.hasOwnProperty); + +// `HasOwnProperty` abstract operation +// https://tc39.es/ecma262/#sec-hasownproperty +// eslint-disable-next-line es/no-object-hasown -- safe +var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty$d(toObject$a(it), key); +}; + +var uncurryThis$u = functionUncurryThis; + +var id$2 = 0; +var postfix = Math.random(); +var toString$d = uncurryThis$u(1.0.toString); + +var uid$3 = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$d(++id$2 + postfix, 36); +}; + +var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + +var global$k = global$n; +var userAgent$5 = engineUserAgent; + +var process$4 = global$k.process; +var Deno$1 = global$k.Deno; +var versions = process$4 && process$4.versions || Deno$1 && Deno$1.version; +var v8 = versions && versions.v8; +var match, version; + +if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); +} + +// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` +// so check `userAgent` even if `.v8` exists, but 0 +if (!version && userAgent$5) { + match = userAgent$5.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent$5.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } +} + +var engineV8Version = version; + +/* eslint-disable es/no-symbol -- required for testing */ + +var V8_VERSION$3 = engineV8Version; +var fails$s = fails$u; +var global$j = global$n; + +var $String$5 = global$j.String; + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing +var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$s(function () { + var symbol = Symbol(); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String$5(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION$3 && V8_VERSION$3 < 41; +}); + +/* eslint-disable es/no-symbol -- required for testing */ + +var NATIVE_SYMBOL$1 = symbolConstructorDetection; + +var useSymbolAsUid = NATIVE_SYMBOL$1 + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + +var global$i = global$n; +var shared$3 = sharedExports; +var hasOwn$b = hasOwnProperty_1; +var uid$2 = uid$3; +var NATIVE_SYMBOL = symbolConstructorDetection; +var USE_SYMBOL_AS_UID$1 = useSymbolAsUid; + +var Symbol$4 = global$i.Symbol; +var WellKnownSymbolsStore = shared$3('wks'); +var createWellKnownSymbol = USE_SYMBOL_AS_UID$1 ? Symbol$4['for'] || Symbol$4 : Symbol$4 && Symbol$4.withoutSetter || uid$2; + +var wellKnownSymbol$m = function (name) { + if (!hasOwn$b(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn$b(Symbol$4, name) + ? Symbol$4[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; +}; + +var wellKnownSymbol$l = wellKnownSymbol$m; + +var TO_STRING_TAG$3 = wellKnownSymbol$l('toStringTag'); +var test$1 = {}; + +test$1[TO_STRING_TAG$3] = 'z'; + +var toStringTagSupport = String(test$1) === '[object z]'; + +var documentAll$2 = typeof document == 'object' && document.all; + +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot +// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing +var IS_HTMLDDA = typeof documentAll$2 == 'undefined' && documentAll$2 !== undefined; + +var documentAll_1 = { + all: documentAll$2, + IS_HTMLDDA: IS_HTMLDDA +}; + +var $documentAll$1 = documentAll_1; + +var documentAll$1 = $documentAll$1.all; + +// `IsCallable` abstract operation +// https://tc39.es/ecma262/#sec-iscallable +var isCallable$o = $documentAll$1.IS_HTMLDDA ? function (argument) { + return typeof argument == 'function' || argument === documentAll$1; +} : function (argument) { + return typeof argument == 'function'; +}; + +var objectDefineProperty = {}; + +var fails$r = fails$u; + +// Detect IE8's incomplete defineProperty implementation +var descriptors = !fails$r(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; +}); + +var isCallable$n = isCallable$o; +var $documentAll = documentAll_1; + +var documentAll = $documentAll.all; + +var isObject$j = $documentAll.IS_HTMLDDA ? function (it) { + return typeof it == 'object' ? it !== null : isCallable$n(it) || it === documentAll; +} : function (it) { + return typeof it == 'object' ? it !== null : isCallable$n(it); +}; + +var global$h = global$n; +var isObject$i = isObject$j; + +var document$3 = global$h.document; +// typeof document.createElement is 'object' in old IE +var EXISTS$1 = isObject$i(document$3) && isObject$i(document$3.createElement); + +var documentCreateElement$2 = function (it) { + return EXISTS$1 ? document$3.createElement(it) : {}; +}; + +var DESCRIPTORS$d = descriptors; +var fails$q = fails$u; +var createElement$1 = documentCreateElement$2; + +// Thanks to IE8 for its funny defineProperty +var ie8DomDefine = !DESCRIPTORS$d && !fails$q(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement$1('div'), 'a', { + get: function () { return 7; } + }).a != 7; +}); + +var DESCRIPTORS$c = descriptors; +var fails$p = fails$u; + +// V8 ~ Chrome 36- +// https://bugs.chromium.org/p/v8/issues/detail?id=3334 +var v8PrototypeDefineBug = DESCRIPTORS$c && fails$p(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype != 42; +}); + +var isObject$h = isObject$j; + +var $String$4 = String; +var $TypeError$g = TypeError; + +// `Assert: Type(argument) is Object` +var anObject$f = function (argument) { + if (isObject$h(argument)) return argument; + throw $TypeError$g($String$4(argument) + ' is not an object'); +}; + +var NATIVE_BIND$2 = functionBindNative; + +var call$i = Function.prototype.call; + +var functionCall = NATIVE_BIND$2 ? call$i.bind(call$i) : function () { + return call$i.apply(call$i, arguments); +}; + +var global$g = global$n; +var isCallable$m = isCallable$o; + +var aFunction = function (argument) { + return isCallable$m(argument) ? argument : undefined; +}; + +var getBuiltIn$7 = function (namespace, method) { + return arguments.length < 2 ? aFunction(global$g[namespace]) : global$g[namespace] && global$g[namespace][method]; +}; + +var uncurryThis$t = functionUncurryThis; + +var objectIsPrototypeOf = uncurryThis$t({}.isPrototypeOf); + +var getBuiltIn$6 = getBuiltIn$7; +var isCallable$l = isCallable$o; +var isPrototypeOf$2 = objectIsPrototypeOf; +var USE_SYMBOL_AS_UID = useSymbolAsUid; + +var $Object$3 = Object; + +var isSymbol$3 = USE_SYMBOL_AS_UID ? function (it) { + return typeof it == 'symbol'; +} : function (it) { + var $Symbol = getBuiltIn$6('Symbol'); + return isCallable$l($Symbol) && isPrototypeOf$2($Symbol.prototype, $Object$3(it)); +}; + +var $String$3 = String; + +var tryToString$5 = function (argument) { + try { + return $String$3(argument); + } catch (error) { + return 'Object'; + } +}; + +var isCallable$k = isCallable$o; +var tryToString$4 = tryToString$5; + +var $TypeError$f = TypeError; + +// `Assert: IsCallable(argument) is true` +var aCallable$b = function (argument) { + if (isCallable$k(argument)) return argument; + throw $TypeError$f(tryToString$4(argument) + ' is not a function'); +}; + +var aCallable$a = aCallable$b; +var isNullOrUndefined$6 = isNullOrUndefined$8; + +// `GetMethod` abstract operation +// https://tc39.es/ecma262/#sec-getmethod +var getMethod$4 = function (V, P) { + var func = V[P]; + return isNullOrUndefined$6(func) ? undefined : aCallable$a(func); +}; + +var call$h = functionCall; +var isCallable$j = isCallable$o; +var isObject$g = isObject$j; + +var $TypeError$e = TypeError; + +// `OrdinaryToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-ordinarytoprimitive +var ordinaryToPrimitive$1 = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable$j(fn = input.toString) && !isObject$g(val = call$h(fn, input))) return val; + if (isCallable$j(fn = input.valueOf) && !isObject$g(val = call$h(fn, input))) return val; + if (pref !== 'string' && isCallable$j(fn = input.toString) && !isObject$g(val = call$h(fn, input))) return val; + throw $TypeError$e("Can't convert object to primitive value"); +}; + +var call$g = functionCall; +var isObject$f = isObject$j; +var isSymbol$2 = isSymbol$3; +var getMethod$3 = getMethod$4; +var ordinaryToPrimitive = ordinaryToPrimitive$1; +var wellKnownSymbol$k = wellKnownSymbol$m; + +var $TypeError$d = TypeError; +var TO_PRIMITIVE = wellKnownSymbol$k('toPrimitive'); + +// `ToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-toprimitive +var toPrimitive$1 = function (input, pref) { + if (!isObject$f(input) || isSymbol$2(input)) return input; + var exoticToPrim = getMethod$3(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call$g(exoticToPrim, input, pref); + if (!isObject$f(result) || isSymbol$2(result)) return result; + throw $TypeError$d("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); +}; + +var toPrimitive = toPrimitive$1; +var isSymbol$1 = isSymbol$3; + +// `ToPropertyKey` abstract operation +// https://tc39.es/ecma262/#sec-topropertykey +var toPropertyKey$3 = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol$1(key) ? key : key + ''; +}; + +var DESCRIPTORS$b = descriptors; +var IE8_DOM_DEFINE$1 = ie8DomDefine; +var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug; +var anObject$e = anObject$f; +var toPropertyKey$2 = toPropertyKey$3; + +var $TypeError$c = TypeError; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var $defineProperty = Object.defineProperty; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; +var ENUMERABLE = 'enumerable'; +var CONFIGURABLE$1 = 'configurable'; +var WRITABLE = 'writable'; + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +objectDefineProperty.f = DESCRIPTORS$b ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) { + anObject$e(O); + P = toPropertyKey$2(P); + anObject$e(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor$1(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE$1 in Attributes ? Attributes[CONFIGURABLE$1] : current[CONFIGURABLE$1], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); +} : $defineProperty : function defineProperty(O, P, Attributes) { + anObject$e(O); + P = toPropertyKey$2(P); + anObject$e(Attributes); + if (IE8_DOM_DEFINE$1) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw $TypeError$c('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + +var makeBuiltIn$3 = {exports: {}}; + +var DESCRIPTORS$a = descriptors; +var hasOwn$a = hasOwnProperty_1; + +var FunctionPrototype$2 = Function.prototype; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getDescriptor = DESCRIPTORS$a && Object.getOwnPropertyDescriptor; + +var EXISTS = hasOwn$a(FunctionPrototype$2, 'name'); +// additional protection from minified / mangled / dropped function names +var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; +var CONFIGURABLE = EXISTS && (!DESCRIPTORS$a || (DESCRIPTORS$a && getDescriptor(FunctionPrototype$2, 'name').configurable)); + +var functionName = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE +}; + +var uncurryThis$s = functionUncurryThis; +var isCallable$i = isCallable$o; +var store$1 = sharedStore; + +var functionToString$1 = uncurryThis$s(Function.toString); + +// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper +if (!isCallable$i(store$1.inspectSource)) { + store$1.inspectSource = function (it) { + return functionToString$1(it); + }; +} + +var inspectSource$3 = store$1.inspectSource; + +var global$f = global$n; +var isCallable$h = isCallable$o; + +var WeakMap$3 = global$f.WeakMap; + +var weakMapBasicDetection = isCallable$h(WeakMap$3) && /native code/.test(String(WeakMap$3)); + +var createPropertyDescriptor$4 = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + +var DESCRIPTORS$9 = descriptors; +var definePropertyModule$4 = objectDefineProperty; +var createPropertyDescriptor$3 = createPropertyDescriptor$4; + +var createNonEnumerableProperty$6 = DESCRIPTORS$9 ? function (object, key, value) { + return definePropertyModule$4.f(object, key, createPropertyDescriptor$3(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + +var shared$2 = sharedExports; +var uid$1 = uid$3; + +var keys$1 = shared$2('keys'); + +var sharedKey$3 = function (key) { + return keys$1[key] || (keys$1[key] = uid$1(key)); +}; + +var hiddenKeys$5 = {}; + +var NATIVE_WEAK_MAP = weakMapBasicDetection; +var global$e = global$n; +var isObject$e = isObject$j; +var createNonEnumerableProperty$5 = createNonEnumerableProperty$6; +var hasOwn$9 = hasOwnProperty_1; +var shared$1 = sharedStore; +var sharedKey$2 = sharedKey$3; +var hiddenKeys$4 = hiddenKeys$5; + +var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; +var TypeError$2 = global$e.TypeError; +var WeakMap$2 = global$e.WeakMap; +var set$2, get$1, has$1; + +var enforce = function (it) { + return has$1(it) ? get$1(it) : set$2(it, {}); +}; + +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject$e(it) || (state = get$1(it)).type !== TYPE) { + throw TypeError$2('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; +}; + +if (NATIVE_WEAK_MAP || shared$1.state) { + var store = shared$1.state || (shared$1.state = new WeakMap$2()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set$2 = function (it, metadata) { + if (store.has(it)) throw TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get$1 = function (it) { + return store.get(it) || {}; + }; + has$1 = function (it) { + return store.has(it); + }; +} else { + var STATE = sharedKey$2('state'); + hiddenKeys$4[STATE] = true; + set$2 = function (it, metadata) { + if (hasOwn$9(it, STATE)) throw TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty$5(it, STATE, metadata); + return metadata; + }; + get$1 = function (it) { + return hasOwn$9(it, STATE) ? it[STATE] : {}; + }; + has$1 = function (it) { + return hasOwn$9(it, STATE); + }; +} + +var internalState = { + set: set$2, + get: get$1, + has: has$1, + enforce: enforce, + getterFor: getterFor +}; + +var uncurryThis$r = functionUncurryThis; +var fails$o = fails$u; +var isCallable$g = isCallable$o; +var hasOwn$8 = hasOwnProperty_1; +var DESCRIPTORS$8 = descriptors; +var CONFIGURABLE_FUNCTION_NAME$1 = functionName.CONFIGURABLE; +var inspectSource$2 = inspectSource$3; +var InternalStateModule$5 = internalState; + +var enforceInternalState = InternalStateModule$5.enforce; +var getInternalState$3 = InternalStateModule$5.get; +var $String$2 = String; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty$8 = Object.defineProperty; +var stringSlice$6 = uncurryThis$r(''.slice); +var replace$3 = uncurryThis$r(''.replace); +var join = uncurryThis$r([].join); + +var CONFIGURABLE_LENGTH = DESCRIPTORS$8 && !fails$o(function () { + return defineProperty$8(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; +}); + +var TEMPLATE = String(String).split('String'); + +var makeBuiltIn$2 = makeBuiltIn$3.exports = function (value, name, options) { + if (stringSlice$6($String$2(name), 0, 7) === 'Symbol(') { + name = '[' + replace$3($String$2(name), /^Symbol\(([^)]*)\)/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn$8(value, 'name') || (CONFIGURABLE_FUNCTION_NAME$1 && value.name !== name)) { + if (DESCRIPTORS$8) defineProperty$8(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn$8(options, 'arity') && value.length !== options.arity) { + defineProperty$8(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn$8(options, 'constructor') && options.constructor) { + if (DESCRIPTORS$8) defineProperty$8(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn$8(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; +}; + +// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative +// eslint-disable-next-line no-extend-native -- required +Function.prototype.toString = makeBuiltIn$2(function toString() { + return isCallable$g(this) && getInternalState$3(this).source || inspectSource$2(this); +}, 'toString'); + +var makeBuiltInExports = makeBuiltIn$3.exports; + +var isCallable$f = isCallable$o; +var definePropertyModule$3 = objectDefineProperty; +var makeBuiltIn$1 = makeBuiltInExports; +var defineGlobalProperty$1 = defineGlobalProperty$3; + +var defineBuiltIn$9 = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable$f(value)) makeBuiltIn$1(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty$1(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule$3.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; +}; + +var uncurryThis$q = functionUncurryThis; + +var toString$c = uncurryThis$q({}.toString); +var stringSlice$5 = uncurryThis$q(''.slice); + +var classofRaw$2 = function (it) { + return stringSlice$5(toString$c(it), 8, -1); +}; + +var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport; +var isCallable$e = isCallable$o; +var classofRaw$1 = classofRaw$2; +var wellKnownSymbol$j = wellKnownSymbol$m; + +var TO_STRING_TAG$2 = wellKnownSymbol$j('toStringTag'); +var $Object$2 = Object; + +// ES3 wrong here +var CORRECT_ARGUMENTS = classofRaw$1(function () { return arguments; }()) == 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } +}; + +// getting tag from ES6+ `Object.prototype.toString` +var classof$b = TO_STRING_TAG_SUPPORT$2 ? classofRaw$1 : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object$2(it), TO_STRING_TAG$2)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw$1(O) + // ES3 arguments fallback + : (result = classofRaw$1(O)) == 'Object' && isCallable$e(O.callee) ? 'Arguments' : result; +}; + +var TO_STRING_TAG_SUPPORT$1 = toStringTagSupport; +var classof$a = classof$b; + +// `Object.prototype.toString` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.tostring +var objectToString$2 = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() { + return '[object ' + classof$a(this) + ']'; +}; + +var TO_STRING_TAG_SUPPORT = toStringTagSupport; +var defineBuiltIn$8 = defineBuiltIn$9; +var toString$b = objectToString$2; + +// `Object.prototype.toString` method +// https://tc39.es/ecma262/#sec-object.prototype.tostring +if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn$8(Object.prototype, 'toString', toString$b, { unsafe: true }); +} + +var objectGetOwnPropertyDescriptor = {}; + +var objectPropertyIsEnumerable = {}; + +var $propertyIsEnumerable$1 = {}.propertyIsEnumerable; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor$3 = Object.getOwnPropertyDescriptor; + +// Nashorn ~ JDK8 bug +var NASHORN_BUG = getOwnPropertyDescriptor$3 && !$propertyIsEnumerable$1.call({ 1: 2 }, 1); + +// `Object.prototype.propertyIsEnumerable` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable +objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor$3(this, V); + return !!descriptor && descriptor.enumerable; +} : $propertyIsEnumerable$1; + +var uncurryThis$p = functionUncurryThis; +var fails$n = fails$u; +var classof$9 = classofRaw$2; + +var $Object$1 = Object; +var split = uncurryThis$p(''.split); + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +var indexedObject = fails$n(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object$1('z').propertyIsEnumerable(0); +}) ? function (it) { + return classof$9(it) == 'String' ? split(it, '') : $Object$1(it); +} : $Object$1; + +// toObject with fallback for non-array-like ES3 strings +var IndexedObject$4 = indexedObject; +var requireObjectCoercible$5 = requireObjectCoercible$7; + +var toIndexedObject$9 = function (it) { + return IndexedObject$4(requireObjectCoercible$5(it)); +}; + +var DESCRIPTORS$7 = descriptors; +var call$f = functionCall; +var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable; +var createPropertyDescriptor$2 = createPropertyDescriptor$4; +var toIndexedObject$8 = toIndexedObject$9; +var toPropertyKey$1 = toPropertyKey$3; +var hasOwn$7 = hasOwnProperty_1; +var IE8_DOM_DEFINE = ie8DomDefine; + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +objectGetOwnPropertyDescriptor.f = DESCRIPTORS$7 ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject$8(O); + P = toPropertyKey$1(P); + if (IE8_DOM_DEFINE) try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (hasOwn$7(O, P)) return createPropertyDescriptor$2(!call$f(propertyIsEnumerableModule$1.f, O, P), O[P]); +}; + +var objectGetOwnPropertyNames = {}; + +var ceil = Math.ceil; +var floor$2 = Math.floor; + +// `Math.trunc` method +// https://tc39.es/ecma262/#sec-math.trunc +// eslint-disable-next-line es/no-math-trunc -- safe +var mathTrunc = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor$2 : ceil)(n); +}; + +var trunc = mathTrunc; + +// `ToIntegerOrInfinity` abstract operation +// https://tc39.es/ecma262/#sec-tointegerorinfinity +var toIntegerOrInfinity$4 = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); +}; + +var toIntegerOrInfinity$3 = toIntegerOrInfinity$4; + +var max$3 = Math.max; +var min$3 = Math.min; + +// Helper for a popular repeating case of the spec: +// Let integer be ? ToInteger(index). +// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). +var toAbsoluteIndex$4 = function (index, length) { + var integer = toIntegerOrInfinity$3(index); + return integer < 0 ? max$3(integer + length, 0) : min$3(integer, length); +}; + +var toIntegerOrInfinity$2 = toIntegerOrInfinity$4; + +var min$2 = Math.min; + +// `ToLength` abstract operation +// https://tc39.es/ecma262/#sec-tolength +var toLength$3 = function (argument) { + return argument > 0 ? min$2(toIntegerOrInfinity$2(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 +}; + +var toLength$2 = toLength$3; + +// `LengthOfArrayLike` abstract operation +// https://tc39.es/ecma262/#sec-lengthofarraylike +var lengthOfArrayLike$a = function (obj) { + return toLength$2(obj.length); +}; + +var toIndexedObject$7 = toIndexedObject$9; +var toAbsoluteIndex$3 = toAbsoluteIndex$4; +var lengthOfArrayLike$9 = lengthOfArrayLike$a; + +// `Array.prototype.{ indexOf, includes }` methods implementation +var createMethod$5 = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject$7($this); + var length = lengthOfArrayLike$9(O); + var index = toAbsoluteIndex$3(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + +var arrayIncludes = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod$5(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod$5(false) +}; + +var uncurryThis$o = functionUncurryThis; +var hasOwn$6 = hasOwnProperty_1; +var toIndexedObject$6 = toIndexedObject$9; +var indexOf$1 = arrayIncludes.indexOf; +var hiddenKeys$3 = hiddenKeys$5; + +var push$4 = uncurryThis$o([].push); + +var objectKeysInternal = function (object, names) { + var O = toIndexedObject$6(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn$6(hiddenKeys$3, key) && hasOwn$6(O, key) && push$4(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn$6(O, key = names[i++])) { + ~indexOf$1(result, key) || push$4(result, key); + } + return result; +}; + +// IE8- don't enum bug keys +var enumBugKeys$3 = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; + +var internalObjectKeys$1 = objectKeysInternal; +var enumBugKeys$2 = enumBugKeys$3; + +var hiddenKeys$2 = enumBugKeys$2.concat('length', 'prototype'); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +// eslint-disable-next-line es/no-object-getownpropertynames -- safe +objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys$1(O, hiddenKeys$2); +}; + +var objectGetOwnPropertySymbols = {}; + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe +objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; + +var getBuiltIn$5 = getBuiltIn$7; +var uncurryThis$n = functionUncurryThis; +var getOwnPropertyNamesModule$1 = objectGetOwnPropertyNames; +var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols; +var anObject$d = anObject$f; + +var concat$2 = uncurryThis$n([].concat); + +// all object keys, includes non-enumerable and symbols +var ownKeys$1 = getBuiltIn$5('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule$1.f(anObject$d(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f; + return getOwnPropertySymbols ? concat$2(keys, getOwnPropertySymbols(it)) : keys; +}; + +var hasOwn$5 = hasOwnProperty_1; +var ownKeys = ownKeys$1; +var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor; +var definePropertyModule$2 = objectDefineProperty; + +var copyConstructorProperties$1 = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule$2.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn$5(target, key) && !(exceptions && hasOwn$5(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } +}; + +var fails$m = fails$u; +var isCallable$d = isCallable$o; + +var replacement = /#|\.prototype\./; + +var isForced$3 = function (feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true + : value == NATIVE ? false + : isCallable$d(detection) ? fails$m(detection) + : !!detection; +}; + +var normalize = isForced$3.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); +}; + +var data = isForced$3.data = {}; +var NATIVE = isForced$3.NATIVE = 'N'; +var POLYFILL = isForced$3.POLYFILL = 'P'; + +var isForced_1 = isForced$3; + +var global$d = global$n; +var getOwnPropertyDescriptor$2 = objectGetOwnPropertyDescriptor.f; +var createNonEnumerableProperty$4 = createNonEnumerableProperty$6; +var defineBuiltIn$7 = defineBuiltIn$9; +var defineGlobalProperty = defineGlobalProperty$3; +var copyConstructorProperties = copyConstructorProperties$1; +var isForced$2 = isForced_1; + +/* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key +*/ +var _export = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global$d; + } else if (STATIC) { + target = global$d[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = (global$d[TARGET] || {}).prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor$2(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced$2(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty$4(sourceProperty, 'sham', true); + } + defineBuiltIn$7(target, key, sourceProperty, options); + } +}; + +var classof$8 = classofRaw$2; + +var engineIsNode = typeof process != 'undefined' && classof$8(process) == 'process'; + +var uncurryThis$m = functionUncurryThis; +var aCallable$9 = aCallable$b; + +var functionUncurryThisAccessor = function (object, key, method) { + try { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return uncurryThis$m(aCallable$9(Object.getOwnPropertyDescriptor(object, key)[method])); + } catch (error) { /* empty */ } +}; + +var isCallable$c = isCallable$o; + +var $String$1 = String; +var $TypeError$b = TypeError; + +var aPossiblePrototype$1 = function (argument) { + if (typeof argument == 'object' || isCallable$c(argument)) return argument; + throw $TypeError$b("Can't set " + $String$1(argument) + ' as a prototype'); +}; + +/* eslint-disable no-proto -- safe */ + +var uncurryThisAccessor = functionUncurryThisAccessor; +var anObject$c = anObject$f; +var aPossiblePrototype = aPossiblePrototype$1; + +// `Object.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.setprototypeof +// Works with __proto__ only. Old v8 can't work with null proto objects. +// eslint-disable-next-line es/no-object-setprototypeof -- safe +var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set'); + setter(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + anObject$c(O); + aPossiblePrototype(proto); + if (CORRECT_SETTER) setter(O, proto); + else O.__proto__ = proto; + return O; + }; +}() : undefined); + +var defineProperty$7 = objectDefineProperty.f; +var hasOwn$4 = hasOwnProperty_1; +var wellKnownSymbol$i = wellKnownSymbol$m; + +var TO_STRING_TAG$1 = wellKnownSymbol$i('toStringTag'); + +var setToStringTag$4 = function (target, TAG, STATIC) { + if (target && !STATIC) target = target.prototype; + if (target && !hasOwn$4(target, TO_STRING_TAG$1)) { + defineProperty$7(target, TO_STRING_TAG$1, { configurable: true, value: TAG }); + } +}; + +var makeBuiltIn = makeBuiltInExports; +var defineProperty$6 = objectDefineProperty; + +var defineBuiltInAccessor$3 = function (target, name, descriptor) { + if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true }); + if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true }); + return defineProperty$6.f(target, name, descriptor); +}; + +var getBuiltIn$4 = getBuiltIn$7; +var defineBuiltInAccessor$2 = defineBuiltInAccessor$3; +var wellKnownSymbol$h = wellKnownSymbol$m; +var DESCRIPTORS$6 = descriptors; + +var SPECIES$6 = wellKnownSymbol$h('species'); + +var setSpecies$2 = function (CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn$4(CONSTRUCTOR_NAME); + + if (DESCRIPTORS$6 && Constructor && !Constructor[SPECIES$6]) { + defineBuiltInAccessor$2(Constructor, SPECIES$6, { + configurable: true, + get: function () { return this; } + }); + } +}; + +var isPrototypeOf$1 = objectIsPrototypeOf; + +var $TypeError$a = TypeError; + +var anInstance$4 = function (it, Prototype) { + if (isPrototypeOf$1(Prototype, it)) return it; + throw $TypeError$a('Incorrect invocation'); +}; + +var uncurryThis$l = functionUncurryThis; +var fails$l = fails$u; +var isCallable$b = isCallable$o; +var classof$7 = classof$b; +var getBuiltIn$3 = getBuiltIn$7; +var inspectSource$1 = inspectSource$3; + +var noop = function () { /* empty */ }; +var empty = []; +var construct = getBuiltIn$3('Reflect', 'construct'); +var constructorRegExp = /^\s*(?:class|function)\b/; +var exec$2 = uncurryThis$l(constructorRegExp.exec); +var INCORRECT_TO_STRING = !constructorRegExp.exec(noop); + +var isConstructorModern = function isConstructor(argument) { + if (!isCallable$b(argument)) return false; + try { + construct(noop, empty, argument); + return true; + } catch (error) { + return false; + } +}; + +var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable$b(argument)) return false; + switch (classof$7(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec$2(constructorRegExp, inspectSource$1(argument)); + } catch (error) { + return true; + } +}; + +isConstructorLegacy.sham = true; + +// `IsConstructor` abstract operation +// https://tc39.es/ecma262/#sec-isconstructor +var isConstructor$4 = !construct || fails$l(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; +}) ? isConstructorLegacy : isConstructorModern; + +var isConstructor$3 = isConstructor$4; +var tryToString$3 = tryToString$5; + +var $TypeError$9 = TypeError; + +// `Assert: IsConstructor(argument) is true` +var aConstructor$1 = function (argument) { + if (isConstructor$3(argument)) return argument; + throw $TypeError$9(tryToString$3(argument) + ' is not a constructor'); +}; + +var anObject$b = anObject$f; +var aConstructor = aConstructor$1; +var isNullOrUndefined$5 = isNullOrUndefined$8; +var wellKnownSymbol$g = wellKnownSymbol$m; + +var SPECIES$5 = wellKnownSymbol$g('species'); + +// `SpeciesConstructor` abstract operation +// https://tc39.es/ecma262/#sec-speciesconstructor +var speciesConstructor$1 = function (O, defaultConstructor) { + var C = anObject$b(O).constructor; + var S; + return C === undefined || isNullOrUndefined$5(S = anObject$b(C)[SPECIES$5]) ? defaultConstructor : aConstructor(S); +}; + +var NATIVE_BIND$1 = functionBindNative; + +var FunctionPrototype$1 = Function.prototype; +var apply$3 = FunctionPrototype$1.apply; +var call$e = FunctionPrototype$1.call; + +// eslint-disable-next-line es/no-reflect -- safe +var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND$1 ? call$e.bind(apply$3) : function () { + return call$e.apply(apply$3, arguments); +}); + +var classofRaw = classofRaw$2; +var uncurryThis$k = functionUncurryThis; + +var functionUncurryThisClause = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis$k(fn); +}; + +var uncurryThis$j = functionUncurryThisClause; +var aCallable$8 = aCallable$b; +var NATIVE_BIND = functionBindNative; + +var bind$7 = uncurryThis$j(uncurryThis$j.bind); + +// optional / simple context binding +var functionBindContext = function (fn, that) { + aCallable$8(fn); + return that === undefined ? fn : NATIVE_BIND ? bind$7(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; + +var getBuiltIn$2 = getBuiltIn$7; + +var html$2 = getBuiltIn$2('document', 'documentElement'); + +var uncurryThis$i = functionUncurryThis; + +var arraySlice$3 = uncurryThis$i([].slice); + +var $TypeError$8 = TypeError; + +var validateArgumentsLength$1 = function (passed, required) { + if (passed < required) throw $TypeError$8('Not enough arguments'); + return passed; +}; + +var userAgent$4 = engineUserAgent; + +// eslint-disable-next-line redos/no-vulnerable -- safe +var engineIsIos = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent$4); + +var global$c = global$n; +var apply$2 = functionApply; +var bind$6 = functionBindContext; +var isCallable$a = isCallable$o; +var hasOwn$3 = hasOwnProperty_1; +var fails$k = fails$u; +var html$1 = html$2; +var arraySlice$2 = arraySlice$3; +var createElement = documentCreateElement$2; +var validateArgumentsLength = validateArgumentsLength$1; +var IS_IOS$1 = engineIsIos; +var IS_NODE$4 = engineIsNode; + +var set$1 = global$c.setImmediate; +var clear = global$c.clearImmediate; +var process$3 = global$c.process; +var Dispatch = global$c.Dispatch; +var Function$1 = global$c.Function; +var MessageChannel = global$c.MessageChannel; +var String$1 = global$c.String; +var counter = 0; +var queue$2 = {}; +var ONREADYSTATECHANGE = 'onreadystatechange'; +var $location, defer, channel, port; + +fails$k(function () { + // Deno throws a ReferenceError on `location` access without `--location` flag + $location = global$c.location; +}); + +var run = function (id) { + if (hasOwn$3(queue$2, id)) { + var fn = queue$2[id]; + delete queue$2[id]; + fn(); + } +}; + +var runner = function (id) { + return function () { + run(id); + }; +}; + +var eventListener = function (event) { + run(event.data); +}; + +var globalPostMessageDefer = function (id) { + // old engines have not location.origin + global$c.postMessage(String$1(id), $location.protocol + '//' + $location.host); +}; + +// Node.js 0.9+ & IE10+ has setImmediate, otherwise: +if (!set$1 || !clear) { + set$1 = function setImmediate(handler) { + validateArgumentsLength(arguments.length, 1); + var fn = isCallable$a(handler) ? handler : Function$1(handler); + var args = arraySlice$2(arguments, 1); + queue$2[++counter] = function () { + apply$2(fn, undefined, args); + }; + defer(counter); + return counter; + }; + clear = function clearImmediate(id) { + delete queue$2[id]; + }; + // Node.js 0.8- + if (IS_NODE$4) { + defer = function (id) { + process$3.nextTick(runner(id)); + }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(runner(id)); + }; + // Browsers with MessageChannel, includes WebWorkers + // except iOS - https://github.com/zloirock/core-js/issues/624 + } else if (MessageChannel && !IS_IOS$1) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = eventListener; + defer = bind$6(port.postMessage, port); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if ( + global$c.addEventListener && + isCallable$a(global$c.postMessage) && + !global$c.importScripts && + $location && $location.protocol !== 'file:' && + !fails$k(globalPostMessageDefer) + ) { + defer = globalPostMessageDefer; + global$c.addEventListener('message', eventListener, false); + // IE8- + } else if (ONREADYSTATECHANGE in createElement('script')) { + defer = function (id) { + html$1.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { + html$1.removeChild(this); + run(id); + }; + }; + // Rest old browsers + } else { + defer = function (id) { + setTimeout(runner(id), 0); + }; + } +} + +var task$1 = { + set: set$1, + clear: clear +}; + +var Queue$2 = function () { + this.head = null; + this.tail = null; +}; + +Queue$2.prototype = { + add: function (item) { + var entry = { item: item, next: null }; + var tail = this.tail; + if (tail) tail.next = entry; + else this.head = entry; + this.tail = entry; + }, + get: function () { + var entry = this.head; + if (entry) { + var next = this.head = entry.next; + if (next === null) this.tail = null; + return entry.item; + } + } +}; + +var queue$1 = Queue$2; + +var userAgent$3 = engineUserAgent; + +var engineIsIosPebble = /ipad|iphone|ipod/i.test(userAgent$3) && typeof Pebble != 'undefined'; + +var userAgent$2 = engineUserAgent; + +var engineIsWebosWebkit = /web0s(?!.*chrome)/i.test(userAgent$2); + +var global$b = global$n; +var bind$5 = functionBindContext; +var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f; +var macrotask = task$1.set; +var Queue$1 = queue$1; +var IS_IOS = engineIsIos; +var IS_IOS_PEBBLE = engineIsIosPebble; +var IS_WEBOS_WEBKIT = engineIsWebosWebkit; +var IS_NODE$3 = engineIsNode; + +var MutationObserver = global$b.MutationObserver || global$b.WebKitMutationObserver; +var document$2 = global$b.document; +var process$2 = global$b.process; +var Promise$3 = global$b.Promise; +// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` +var queueMicrotaskDescriptor = getOwnPropertyDescriptor$1(global$b, 'queueMicrotask'); +var microtask$1 = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; +var notify$1, toggle, node, promise, then; + +// modern engines have queueMicrotask method +if (!microtask$1) { + var queue = new Queue$1(); + + var flush = function () { + var parent, fn; + if (IS_NODE$3 && (parent = process$2.domain)) parent.exit(); + while (fn = queue.get()) try { + fn(); + } catch (error) { + if (queue.head) notify$1(); + throw error; + } + if (parent) parent.enter(); + }; + + // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 + // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 + if (!IS_IOS && !IS_NODE$3 && !IS_WEBOS_WEBKIT && MutationObserver && document$2) { + toggle = true; + node = document$2.createTextNode(''); + new MutationObserver(flush).observe(node, { characterData: true }); + notify$1 = function () { + node.data = toggle = !toggle; + }; + // environments with maybe non-completely correct, but existent Promise + } else if (!IS_IOS_PEBBLE && Promise$3 && Promise$3.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + promise = Promise$3.resolve(undefined); + // workaround of WebKit ~ iOS Safari 10.1 bug + promise.constructor = Promise$3; + then = bind$5(promise.then, promise); + notify$1 = function () { + then(flush); + }; + // Node.js without promises + } else if (IS_NODE$3) { + notify$1 = function () { + process$2.nextTick(flush); + }; + // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessage + // - onreadystatechange + // - setTimeout + } else { + // `webpack` dev server bug on IE global methods - use bind(fn, global) + macrotask = bind$5(macrotask, global$b); + notify$1 = function () { + macrotask(flush); + }; + } + + microtask$1 = function (fn) { + if (!queue.head) notify$1(); + queue.add(fn); + }; +} + +var microtask_1 = microtask$1; + +var hostReportErrors$1 = function (a, b) { + try { + // eslint-disable-next-line no-console -- safe + arguments.length == 1 ? console.error(a) : console.error(a, b); + } catch (error) { /* empty */ } +}; + +var perform$4 = function (exec) { + try { + return { error: false, value: exec() }; + } catch (error) { + return { error: true, value: error }; + } +}; + +var global$a = global$n; + +var promiseNativeConstructor = global$a.Promise; + +/* global Deno -- Deno case */ + +var engineIsDeno = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; + +var IS_DENO$1 = engineIsDeno; +var IS_NODE$2 = engineIsNode; + +var engineIsBrowser = !IS_DENO$1 && !IS_NODE$2 + && typeof window == 'object' + && typeof document == 'object'; + +var global$9 = global$n; +var NativePromiseConstructor$3 = promiseNativeConstructor; +var isCallable$9 = isCallable$o; +var isForced$1 = isForced_1; +var inspectSource = inspectSource$3; +var wellKnownSymbol$f = wellKnownSymbol$m; +var IS_BROWSER = engineIsBrowser; +var IS_DENO = engineIsDeno; +var V8_VERSION$2 = engineV8Version; + +NativePromiseConstructor$3 && NativePromiseConstructor$3.prototype; +var SPECIES$4 = wellKnownSymbol$f('species'); +var SUBCLASSING = false; +var NATIVE_PROMISE_REJECTION_EVENT$1 = isCallable$9(global$9.PromiseRejectionEvent); + +var FORCED_PROMISE_CONSTRUCTOR$5 = isForced$1('Promise', function () { + var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor$3); + var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor$3); + // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // We can't detect it synchronously, so just check versions + if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION$2 === 66) return true; + // We can't use @@species feature detection in V8 since it causes + // deoptimization and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if (!V8_VERSION$2 || V8_VERSION$2 < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) { + // Detect correctness of subclassing with @@species support + var promise = new NativePromiseConstructor$3(function (resolve) { resolve(1); }); + var FakePromise = function (exec) { + exec(function () { /* empty */ }, function () { /* empty */ }); + }; + var constructor = promise.constructor = {}; + constructor[SPECIES$4] = FakePromise; + SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise; + if (!SUBCLASSING) return true; + // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test + } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT$1; +}); + +var promiseConstructorDetection = { + CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR$5, + REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT$1, + SUBCLASSING: SUBCLASSING +}; + +var newPromiseCapability$2 = {}; + +var aCallable$7 = aCallable$b; + +var $TypeError$7 = TypeError; + +var PromiseCapability = function (C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw $TypeError$7('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aCallable$7(resolve); + this.reject = aCallable$7(reject); +}; + +// `NewPromiseCapability` abstract operation +// https://tc39.es/ecma262/#sec-newpromisecapability +newPromiseCapability$2.f = function (C) { + return new PromiseCapability(C); +}; + +var $$r = _export; +var IS_NODE$1 = engineIsNode; +var global$8 = global$n; +var call$d = functionCall; +var defineBuiltIn$6 = defineBuiltIn$9; +var setPrototypeOf$2 = objectSetPrototypeOf; +var setToStringTag$3 = setToStringTag$4; +var setSpecies$1 = setSpecies$2; +var aCallable$6 = aCallable$b; +var isCallable$8 = isCallable$o; +var isObject$d = isObject$j; +var anInstance$3 = anInstance$4; +var speciesConstructor = speciesConstructor$1; +var task = task$1.set; +var microtask = microtask_1; +var hostReportErrors = hostReportErrors$1; +var perform$3 = perform$4; +var Queue = queue$1; +var InternalStateModule$4 = internalState; +var NativePromiseConstructor$2 = promiseNativeConstructor; +var PromiseConstructorDetection = promiseConstructorDetection; +var newPromiseCapabilityModule$4 = newPromiseCapability$2; + +var PROMISE = 'Promise'; +var FORCED_PROMISE_CONSTRUCTOR$4 = PromiseConstructorDetection.CONSTRUCTOR; +var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT; +var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING; +var getInternalPromiseState = InternalStateModule$4.getterFor(PROMISE); +var setInternalState$4 = InternalStateModule$4.set; +var NativePromisePrototype$1 = NativePromiseConstructor$2 && NativePromiseConstructor$2.prototype; +var PromiseConstructor = NativePromiseConstructor$2; +var PromisePrototype = NativePromisePrototype$1; +var TypeError$1 = global$8.TypeError; +var document$1 = global$8.document; +var process$1 = global$8.process; +var newPromiseCapability$1 = newPromiseCapabilityModule$4.f; +var newGenericPromiseCapability = newPromiseCapability$1; + +var DISPATCH_EVENT = !!(document$1 && document$1.createEvent && global$8.dispatchEvent); +var UNHANDLED_REJECTION = 'unhandledrejection'; +var REJECTION_HANDLED = 'rejectionhandled'; +var PENDING = 0; +var FULFILLED = 1; +var REJECTED = 2; +var HANDLED = 1; +var UNHANDLED = 2; + +var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; + +// helpers +var isThenable = function (it) { + var then; + return isObject$d(it) && isCallable$8(then = it.then) ? then : false; +}; + +var callReaction = function (reaction, state) { + var value = state.value; + var ok = state.state == FULFILLED; + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + try { + if (handler) { + if (!ok) { + if (state.rejection === UNHANDLED) onHandleUnhandled(state); + state.rejection = HANDLED; + } + if (handler === true) result = value; + else { + if (domain) domain.enter(); + result = handler(value); // can throw + if (domain) { + domain.exit(); + exited = true; + } + } + if (result === reaction.promise) { + reject(TypeError$1('Promise-chain cycle')); + } else if (then = isThenable(result)) { + call$d(then, result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (error) { + if (domain && !exited) domain.exit(); + reject(error); + } +}; + +var notify = function (state, isReject) { + if (state.notified) return; + state.notified = true; + microtask(function () { + var reactions = state.reactions; + var reaction; + while (reaction = reactions.get()) { + callReaction(reaction, state); + } + state.notified = false; + if (isReject && !state.rejection) onUnhandled(state); + }); +}; + +var dispatchEvent = function (name, promise, reason) { + var event, handler; + if (DISPATCH_EVENT) { + event = document$1.createEvent('Event'); + event.promise = promise; + event.reason = reason; + event.initEvent(name, false, true); + global$8.dispatchEvent(event); + } else event = { promise: promise, reason: reason }; + if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global$8['on' + name])) handler(event); + else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); +}; + +var onUnhandled = function (state) { + call$d(task, global$8, function () { + var promise = state.facade; + var value = state.value; + var IS_UNHANDLED = isUnhandled(state); + var result; + if (IS_UNHANDLED) { + result = perform$3(function () { + if (IS_NODE$1) { + process$1.emit('unhandledRejection', value, promise); + } else dispatchEvent(UNHANDLED_REJECTION, promise, value); + }); + // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + state.rejection = IS_NODE$1 || isUnhandled(state) ? UNHANDLED : HANDLED; + if (result.error) throw result.value; + } + }); +}; + +var isUnhandled = function (state) { + return state.rejection !== HANDLED && !state.parent; +}; + +var onHandleUnhandled = function (state) { + call$d(task, global$8, function () { + var promise = state.facade; + if (IS_NODE$1) { + process$1.emit('rejectionHandled', promise); + } else dispatchEvent(REJECTION_HANDLED, promise, state.value); + }); +}; + +var bind$4 = function (fn, state, unwrap) { + return function (value) { + fn(state, value, unwrap); + }; +}; + +var internalReject = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + state.value = value; + state.state = REJECTED; + notify(state, true); +}; + +var internalResolve = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + try { + if (state.facade === value) throw TypeError$1("Promise can't be resolved itself"); + var then = isThenable(value); + if (then) { + microtask(function () { + var wrapper = { done: false }; + try { + call$d(then, value, + bind$4(internalResolve, wrapper, state), + bind$4(internalReject, wrapper, state) + ); + } catch (error) { + internalReject(wrapper, error, state); + } + }); + } else { + state.value = value; + state.state = FULFILLED; + notify(state, false); + } + } catch (error) { + internalReject({ done: false }, error, state); + } +}; + +// constructor polyfill +if (FORCED_PROMISE_CONSTRUCTOR$4) { + // 25.4.3.1 Promise(executor) + PromiseConstructor = function Promise(executor) { + anInstance$3(this, PromisePrototype); + aCallable$6(executor); + call$d(Internal, this); + var state = getInternalPromiseState(this); + try { + executor(bind$4(internalResolve, state), bind$4(internalReject, state)); + } catch (error) { + internalReject(state, error); + } + }; + + PromisePrototype = PromiseConstructor.prototype; + + // eslint-disable-next-line no-unused-vars -- required for `.length` + Internal = function Promise(executor) { + setInternalState$4(this, { + type: PROMISE, + done: false, + notified: false, + parent: false, + reactions: new Queue(), + rejection: false, + state: PENDING, + value: undefined + }); + }; + + // `Promise.prototype.then` method + // https://tc39.es/ecma262/#sec-promise.prototype.then + Internal.prototype = defineBuiltIn$6(PromisePrototype, 'then', function then(onFulfilled, onRejected) { + var state = getInternalPromiseState(this); + var reaction = newPromiseCapability$1(speciesConstructor(this, PromiseConstructor)); + state.parent = true; + reaction.ok = isCallable$8(onFulfilled) ? onFulfilled : true; + reaction.fail = isCallable$8(onRejected) && onRejected; + reaction.domain = IS_NODE$1 ? process$1.domain : undefined; + if (state.state == PENDING) state.reactions.add(reaction); + else microtask(function () { + callReaction(reaction, state); + }); + return reaction.promise; + }); + + OwnPromiseCapability = function () { + var promise = new Internal(); + var state = getInternalPromiseState(promise); + this.promise = promise; + this.resolve = bind$4(internalResolve, state); + this.reject = bind$4(internalReject, state); + }; + + newPromiseCapabilityModule$4.f = newPromiseCapability$1 = function (C) { + return C === PromiseConstructor || C === PromiseWrapper + ? new OwnPromiseCapability(C) + : newGenericPromiseCapability(C); + }; + + if (isCallable$8(NativePromiseConstructor$2) && NativePromisePrototype$1 !== Object.prototype) { + nativeThen = NativePromisePrototype$1.then; + + if (!NATIVE_PROMISE_SUBCLASSING) { + // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs + defineBuiltIn$6(NativePromisePrototype$1, 'then', function then(onFulfilled, onRejected) { + var that = this; + return new PromiseConstructor(function (resolve, reject) { + call$d(nativeThen, that, resolve, reject); + }).then(onFulfilled, onRejected); + // https://github.com/zloirock/core-js/issues/640 + }, { unsafe: true }); + } + + // make `.constructor === Promise` work for native promise-based APIs + try { + delete NativePromisePrototype$1.constructor; + } catch (error) { /* empty */ } + + // make `instanceof Promise` work for native promise-based APIs + if (setPrototypeOf$2) { + setPrototypeOf$2(NativePromisePrototype$1, PromisePrototype); + } + } +} + +$$r({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR$4 }, { + Promise: PromiseConstructor +}); + +setToStringTag$3(PromiseConstructor, PROMISE, false); +setSpecies$1(PROMISE); + +var iterators = {}; + +var wellKnownSymbol$e = wellKnownSymbol$m; +var Iterators$4 = iterators; + +var ITERATOR$6 = wellKnownSymbol$e('iterator'); +var ArrayPrototype$1 = Array.prototype; + +// check on default Array iterator +var isArrayIteratorMethod$2 = function (it) { + return it !== undefined && (Iterators$4.Array === it || ArrayPrototype$1[ITERATOR$6] === it); +}; + +var classof$6 = classof$b; +var getMethod$2 = getMethod$4; +var isNullOrUndefined$4 = isNullOrUndefined$8; +var Iterators$3 = iterators; +var wellKnownSymbol$d = wellKnownSymbol$m; + +var ITERATOR$5 = wellKnownSymbol$d('iterator'); + +var getIteratorMethod$3 = function (it) { + if (!isNullOrUndefined$4(it)) return getMethod$2(it, ITERATOR$5) + || getMethod$2(it, '@@iterator') + || Iterators$3[classof$6(it)]; +}; + +var call$c = functionCall; +var aCallable$5 = aCallable$b; +var anObject$a = anObject$f; +var tryToString$2 = tryToString$5; +var getIteratorMethod$2 = getIteratorMethod$3; + +var $TypeError$6 = TypeError; + +var getIterator$2 = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod$2(argument) : usingIterator; + if (aCallable$5(iteratorMethod)) return anObject$a(call$c(iteratorMethod, argument)); + throw $TypeError$6(tryToString$2(argument) + ' is not iterable'); +}; + +var call$b = functionCall; +var anObject$9 = anObject$f; +var getMethod$1 = getMethod$4; + +var iteratorClose$2 = function (iterator, kind, value) { + var innerResult, innerError; + anObject$9(iterator); + try { + innerResult = getMethod$1(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') throw value; + return value; + } + innerResult = call$b(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === 'throw') throw value; + if (innerError) throw innerResult; + anObject$9(innerResult); + return value; +}; + +var bind$3 = functionBindContext; +var call$a = functionCall; +var anObject$8 = anObject$f; +var tryToString$1 = tryToString$5; +var isArrayIteratorMethod$1 = isArrayIteratorMethod$2; +var lengthOfArrayLike$8 = lengthOfArrayLike$a; +var isPrototypeOf = objectIsPrototypeOf; +var getIterator$1 = getIterator$2; +var getIteratorMethod$1 = getIteratorMethod$3; +var iteratorClose$1 = iteratorClose$2; + +var $TypeError$5 = TypeError; + +var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; +}; + +var ResultPrototype = Result.prototype; + +var iterate$6 = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_RECORD = !!(options && options.IS_RECORD); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind$3(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose$1(iterator, 'normal', condition); + return new Result(true, condition); + }; + + var callFn = function (value) { + if (AS_ENTRIES) { + anObject$8(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; + + if (IS_RECORD) { + iterator = iterable.iterator; + } else if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod$1(iterable); + if (!iterFn) throw $TypeError$5(tryToString$1(iterable) + ' is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod$1(iterFn)) { + for (index = 0, length = lengthOfArrayLike$8(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + } + iterator = getIterator$1(iterable, iterFn); + } + + next = IS_RECORD ? iterable.next : iterator.next; + while (!(step = call$a(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose$1(iterator, 'throw', error); + } + if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); +}; + +var wellKnownSymbol$c = wellKnownSymbol$m; + +var ITERATOR$4 = wellKnownSymbol$c('iterator'); +var SAFE_CLOSING = false; + +try { + var called = 0; + var iteratorWithReturn = { + next: function () { + return { done: !!called++ }; + }, + 'return': function () { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR$4] = function () { + return this; + }; + // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing + Array.from(iteratorWithReturn, function () { throw 2; }); +} catch (error) { /* empty */ } + +var checkCorrectnessOfIteration$3 = function (exec, SKIP_CLOSING) { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR$4] = function () { + return { + next: function () { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { /* empty */ } + return ITERATION_SUPPORT; +}; + +var NativePromiseConstructor$1 = promiseNativeConstructor; +var checkCorrectnessOfIteration$2 = checkCorrectnessOfIteration$3; +var FORCED_PROMISE_CONSTRUCTOR$3 = promiseConstructorDetection.CONSTRUCTOR; + +var promiseStaticsIncorrectIteration = FORCED_PROMISE_CONSTRUCTOR$3 || !checkCorrectnessOfIteration$2(function (iterable) { + NativePromiseConstructor$1.all(iterable).then(undefined, function () { /* empty */ }); +}); + +var $$q = _export; +var call$9 = functionCall; +var aCallable$4 = aCallable$b; +var newPromiseCapabilityModule$3 = newPromiseCapability$2; +var perform$2 = perform$4; +var iterate$5 = iterate$6; +var PROMISE_STATICS_INCORRECT_ITERATION$2 = promiseStaticsIncorrectIteration; + +// `Promise.all` method +// https://tc39.es/ecma262/#sec-promise.all +$$q({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$2 }, { + all: function all(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$3.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform$2(function () { + var $promiseResolve = aCallable$4(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate$5(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call$9($promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + +var $$p = _export; +var FORCED_PROMISE_CONSTRUCTOR$2 = promiseConstructorDetection.CONSTRUCTOR; +var NativePromiseConstructor = promiseNativeConstructor; +var getBuiltIn$1 = getBuiltIn$7; +var isCallable$7 = isCallable$o; +var defineBuiltIn$5 = defineBuiltIn$9; + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + +// `Promise.prototype.catch` method +// https://tc39.es/ecma262/#sec-promise.prototype.catch +$$p({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR$2, real: true }, { + 'catch': function (onRejected) { + return this.then(undefined, onRejected); + } +}); + +// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` +if (isCallable$7(NativePromiseConstructor)) { + var method = getBuiltIn$1('Promise').prototype['catch']; + if (NativePromisePrototype['catch'] !== method) { + defineBuiltIn$5(NativePromisePrototype, 'catch', method, { unsafe: true }); + } +} + +var $$o = _export; +var call$8 = functionCall; +var aCallable$3 = aCallable$b; +var newPromiseCapabilityModule$2 = newPromiseCapability$2; +var perform$1 = perform$4; +var iterate$4 = iterate$6; +var PROMISE_STATICS_INCORRECT_ITERATION$1 = promiseStaticsIncorrectIteration; + +// `Promise.race` method +// https://tc39.es/ecma262/#sec-promise.race +$$o({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$1 }, { + race: function race(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$2.f(C); + var reject = capability.reject; + var result = perform$1(function () { + var $promiseResolve = aCallable$3(C.resolve); + iterate$4(iterable, function (promise) { + call$8($promiseResolve, C, promise).then(capability.resolve, reject); + }); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + +var $$n = _export; +var call$7 = functionCall; +var newPromiseCapabilityModule$1 = newPromiseCapability$2; +var FORCED_PROMISE_CONSTRUCTOR$1 = promiseConstructorDetection.CONSTRUCTOR; + +// `Promise.reject` method +// https://tc39.es/ecma262/#sec-promise.reject +$$n({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR$1 }, { + reject: function reject(r) { + var capability = newPromiseCapabilityModule$1.f(this); + call$7(capability.reject, undefined, r); + return capability.promise; + } +}); + +var anObject$7 = anObject$f; +var isObject$c = isObject$j; +var newPromiseCapability = newPromiseCapability$2; + +var promiseResolve$1 = function (C, x) { + anObject$7(C); + if (isObject$c(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; +}; + +var $$m = _export; +var getBuiltIn = getBuiltIn$7; +var FORCED_PROMISE_CONSTRUCTOR = promiseConstructorDetection.CONSTRUCTOR; +var promiseResolve = promiseResolve$1; + +getBuiltIn('Promise'); + +// `Promise.resolve` method +// https://tc39.es/ecma262/#sec-promise.resolve +$$m({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + resolve: function resolve(x) { + return promiseResolve(this, x); + } +}); + +var objectDefineProperties = {}; + +var internalObjectKeys = objectKeysInternal; +var enumBugKeys$1 = enumBugKeys$3; + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +// eslint-disable-next-line es/no-object-keys -- safe +var objectKeys$3 = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys$1); +}; + +var DESCRIPTORS$5 = descriptors; +var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug; +var definePropertyModule$1 = objectDefineProperty; +var anObject$6 = anObject$f; +var toIndexedObject$5 = toIndexedObject$9; +var objectKeys$2 = objectKeys$3; + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +// eslint-disable-next-line es/no-object-defineproperties -- safe +objectDefineProperties.f = DESCRIPTORS$5 && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject$6(O); + var props = toIndexedObject$5(Properties); + var keys = objectKeys$2(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule$1.f(O, key = keys[index++], props[key]); + return O; +}; + +/* global ActiveXObject -- old IE, WSH */ + +var anObject$5 = anObject$f; +var definePropertiesModule = objectDefineProperties; +var enumBugKeys = enumBugKeys$3; +var hiddenKeys$1 = hiddenKeys$5; +var html = html$2; +var documentCreateElement$1 = documentCreateElement$2; +var sharedKey$1 = sharedKey$3; + +var GT = '>'; +var LT = '<'; +var PROTOTYPE = 'prototype'; +var SCRIPT = 'script'; +var IE_PROTO$1 = sharedKey$1('IE_PROTO'); + +var EmptyConstructor = function () { /* empty */ }; + +var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; +}; + +// Create object with fake `null` prototype: use ActiveX Object with cleared prototype +var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; +}; + +// Create object with fake `null` prototype: use iframe Object with cleared prototype +var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement$1('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; +}; + +// Check for document.domain and active x support +// No need to use active x approach when document.domain is not set +// see https://github.com/es-shims/es5-shim/issues/150 +// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 +// avoid IE GC bug +var activeXDocument; +var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); +}; + +hiddenKeys$1[IE_PROTO$1] = true; + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +// eslint-disable-next-line es/no-object-create -- safe +var objectCreate$1 = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject$5(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO$1] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); +}; + +var wellKnownSymbol$b = wellKnownSymbol$m; +var create$3 = objectCreate$1; +var defineProperty$5 = objectDefineProperty.f; + +var UNSCOPABLES = wellKnownSymbol$b('unscopables'); +var ArrayPrototype = Array.prototype; + +// Array.prototype[@@unscopables] +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +if (ArrayPrototype[UNSCOPABLES] == undefined) { + defineProperty$5(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create$3(null) + }); +} + +// add a key to Array.prototype[@@unscopables] +var addToUnscopables$3 = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; +}; + +var fails$j = fails$u; + +var correctPrototypeGetter = !fails$j(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + // eslint-disable-next-line es/no-object-getprototypeof -- required for testing + return Object.getPrototypeOf(new F()) !== F.prototype; +}); + +var hasOwn$2 = hasOwnProperty_1; +var isCallable$6 = isCallable$o; +var toObject$9 = toObject$b; +var sharedKey = sharedKey$3; +var CORRECT_PROTOTYPE_GETTER = correctPrototypeGetter; + +var IE_PROTO = sharedKey('IE_PROTO'); +var $Object = Object; +var ObjectPrototype = $Object.prototype; + +// `Object.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.getprototypeof +// eslint-disable-next-line es/no-object-getprototypeof -- safe +var objectGetPrototypeOf = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { + var object = toObject$9(O); + if (hasOwn$2(object, IE_PROTO)) return object[IE_PROTO]; + var constructor = object.constructor; + if (isCallable$6(constructor) && object instanceof constructor) { + return constructor.prototype; + } return object instanceof $Object ? ObjectPrototype : null; +}; + +var fails$i = fails$u; +var isCallable$5 = isCallable$o; +var isObject$b = isObject$j; +var getPrototypeOf$1 = objectGetPrototypeOf; +var defineBuiltIn$4 = defineBuiltIn$9; +var wellKnownSymbol$a = wellKnownSymbol$m; + +var ITERATOR$3 = wellKnownSymbol$a('iterator'); +var BUGGY_SAFARI_ITERATORS$1 = false; + +// `%IteratorPrototype%` object +// https://tc39.es/ecma262/#sec-%iteratorprototype%-object +var IteratorPrototype$2, PrototypeOfArrayIteratorPrototype, arrayIterator; + +/* eslint-disable es/no-array-prototype-keys -- safe */ +if ([].keys) { + arrayIterator = [].keys(); + // Safari 8 has buggy iterators w/o `next` + if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS$1 = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf$1(getPrototypeOf$1(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype$2 = PrototypeOfArrayIteratorPrototype; + } +} + +var NEW_ITERATOR_PROTOTYPE = !isObject$b(IteratorPrototype$2) || fails$i(function () { + var test = {}; + // FF44- legacy iterators case + return IteratorPrototype$2[ITERATOR$3].call(test) !== test; +}); + +if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype$2 = {}; + +// `%IteratorPrototype%[@@iterator]()` method +// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator +if (!isCallable$5(IteratorPrototype$2[ITERATOR$3])) { + defineBuiltIn$4(IteratorPrototype$2, ITERATOR$3, function () { + return this; + }); +} + +var iteratorsCore = { + IteratorPrototype: IteratorPrototype$2, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS$1 +}; + +var IteratorPrototype$1 = iteratorsCore.IteratorPrototype; +var create$2 = objectCreate$1; +var createPropertyDescriptor$1 = createPropertyDescriptor$4; +var setToStringTag$2 = setToStringTag$4; +var Iterators$2 = iterators; + +var returnThis$1 = function () { return this; }; + +var iteratorCreateConstructor = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = create$2(IteratorPrototype$1, { next: createPropertyDescriptor$1(+!ENUMERABLE_NEXT, next) }); + setToStringTag$2(IteratorConstructor, TO_STRING_TAG, false); + Iterators$2[TO_STRING_TAG] = returnThis$1; + return IteratorConstructor; +}; + +var $$l = _export; +var call$6 = functionCall; +var FunctionName = functionName; +var isCallable$4 = isCallable$o; +var createIteratorConstructor = iteratorCreateConstructor; +var getPrototypeOf = objectGetPrototypeOf; +var setPrototypeOf$1 = objectSetPrototypeOf; +var setToStringTag$1 = setToStringTag$4; +var createNonEnumerableProperty$3 = createNonEnumerableProperty$6; +var defineBuiltIn$3 = defineBuiltIn$9; +var wellKnownSymbol$9 = wellKnownSymbol$m; +var Iterators$1 = iterators; +var IteratorsCore = iteratorsCore; + +var PROPER_FUNCTION_NAME$1 = FunctionName.PROPER; +var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; +var IteratorPrototype = IteratorsCore.IteratorPrototype; +var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; +var ITERATOR$2 = wellKnownSymbol$9('iterator'); +var KEYS = 'keys'; +var VALUES = 'values'; +var ENTRIES = 'entries'; + +var returnThis = function () { return this; }; + +var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + + var getIterationMethod = function (KIND) { + if (KIND === DEFAULT && defaultIterator) return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; + switch (KIND) { + case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; + case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; + case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; + } return function () { return new IteratorConstructor(this); }; + }; + + var TO_STRING_TAG = NAME + ' Iterator'; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR$2] + || IterablePrototype['@@iterator'] + || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + + // fix native + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf$1) { + setPrototypeOf$1(CurrentIteratorPrototype, IteratorPrototype); + } else if (!isCallable$4(CurrentIteratorPrototype[ITERATOR$2])) { + defineBuiltIn$3(CurrentIteratorPrototype, ITERATOR$2, returnThis); + } + } + // Set @@toStringTag to native iterators + setToStringTag$1(CurrentIteratorPrototype, TO_STRING_TAG, true); + } + } + + // fix Array.prototype.{ values, @@iterator }.name in V8 / FF + if (PROPER_FUNCTION_NAME$1 && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { + if (CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty$3(IterablePrototype, 'name', VALUES); + } else { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { return call$6(nativeIterator, this); }; + } + } + + // export additional methods + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + defineBuiltIn$3(IterablePrototype, KEY, methods[KEY]); + } + } else $$l({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + + // define iterator + if (IterablePrototype[ITERATOR$2] !== defaultIterator) { + defineBuiltIn$3(IterablePrototype, ITERATOR$2, defaultIterator, { name: DEFAULT }); + } + Iterators$1[NAME] = defaultIterator; + + return methods; +}; + +// `CreateIterResultObject` abstract operation +// https://tc39.es/ecma262/#sec-createiterresultobject +var createIterResultObject$3 = function (value, done) { + return { value: value, done: done }; +}; + +var toIndexedObject$4 = toIndexedObject$9; +var addToUnscopables$2 = addToUnscopables$3; +var Iterators = iterators; +var InternalStateModule$3 = internalState; +var defineProperty$4 = objectDefineProperty.f; +var defineIterator$2 = iteratorDefine; +var createIterResultObject$2 = createIterResultObject$3; +var DESCRIPTORS$4 = descriptors; + +var ARRAY_ITERATOR = 'Array Iterator'; +var setInternalState$3 = InternalStateModule$3.set; +var getInternalState$2 = InternalStateModule$3.getterFor(ARRAY_ITERATOR); + +// `Array.prototype.entries` method +// https://tc39.es/ecma262/#sec-array.prototype.entries +// `Array.prototype.keys` method +// https://tc39.es/ecma262/#sec-array.prototype.keys +// `Array.prototype.values` method +// https://tc39.es/ecma262/#sec-array.prototype.values +// `Array.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-array.prototype-@@iterator +// `CreateArrayIterator` internal method +// https://tc39.es/ecma262/#sec-createarrayiterator +var es_array_iterator = defineIterator$2(Array, 'Array', function (iterated, kind) { + setInternalState$3(this, { + type: ARRAY_ITERATOR, + target: toIndexedObject$4(iterated), // target + index: 0, // next index + kind: kind // kind + }); +// `%ArrayIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next +}, function () { + var state = getInternalState$2(this); + var target = state.target; + var kind = state.kind; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject$2(undefined, true); + } + if (kind == 'keys') return createIterResultObject$2(index, false); + if (kind == 'values') return createIterResultObject$2(target[index], false); + return createIterResultObject$2([index, target[index]], false); +}, 'values'); + +// argumentsList[@@iterator] is %ArrayProto_values% +// https://tc39.es/ecma262/#sec-createunmappedargumentsobject +// https://tc39.es/ecma262/#sec-createmappedargumentsobject +var values = Iterators.Arguments = Iterators.Array; + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables$2('keys'); +addToUnscopables$2('values'); +addToUnscopables$2('entries'); + +// V8 ~ Chrome 45- bug +if (DESCRIPTORS$4 && values.name !== 'values') try { + defineProperty$4(values, 'name', { value: 'values' }); +} catch (error) { /* empty */ } + +var $$k = _export; +var call$5 = functionCall; +var aCallable$2 = aCallable$b; +var newPromiseCapabilityModule = newPromiseCapability$2; +var perform = perform$4; +var iterate$3 = iterate$6; +var PROMISE_STATICS_INCORRECT_ITERATION = promiseStaticsIncorrectIteration; + +// `Promise.allSettled` method +// https://tc39.es/ecma262/#sec-promise.allsettled +$$k({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + allSettled: function allSettled(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var promiseResolve = aCallable$2(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate$3(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call$5(promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'fulfilled', value: value }; + --remaining || resolve(values); + }, function (error) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'rejected', reason: error }; + --remaining || resolve(values); + }); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + +var classof$5 = classof$b; + +var $String = String; + +var toString$a = function (argument) { + if (classof$5(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string'); + return $String(argument); +}; + +var uncurryThis$h = functionUncurryThis; +var toIntegerOrInfinity$1 = toIntegerOrInfinity$4; +var toString$9 = toString$a; +var requireObjectCoercible$4 = requireObjectCoercible$7; + +var charAt$4 = uncurryThis$h(''.charAt); +var charCodeAt = uncurryThis$h(''.charCodeAt); +var stringSlice$4 = uncurryThis$h(''.slice); + +var createMethod$4 = function (CONVERT_TO_STRING) { + return function ($this, pos) { + var S = toString$9(requireObjectCoercible$4($this)); + var position = toIntegerOrInfinity$1(pos); + var size = S.length; + var first, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; + first = charCodeAt(S, position); + return first < 0xD800 || first > 0xDBFF || position + 1 === size + || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF + ? CONVERT_TO_STRING + ? charAt$4(S, position) + : first + : CONVERT_TO_STRING + ? stringSlice$4(S, position, position + 2) + : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; + }; +}; + +var stringMultibyte = { + // `String.prototype.codePointAt` method + // https://tc39.es/ecma262/#sec-string.prototype.codepointat + codeAt: createMethod$4(false), + // `String.prototype.at` method + // https://github.com/mathiasbynens/String.prototype.at + charAt: createMethod$4(true) +}; + +var charAt$3 = stringMultibyte.charAt; +var toString$8 = toString$a; +var InternalStateModule$2 = internalState; +var defineIterator$1 = iteratorDefine; +var createIterResultObject$1 = createIterResultObject$3; + +var STRING_ITERATOR = 'String Iterator'; +var setInternalState$2 = InternalStateModule$2.set; +var getInternalState$1 = InternalStateModule$2.getterFor(STRING_ITERATOR); + +// `String.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-string.prototype-@@iterator +defineIterator$1(String, 'String', function (iterated) { + setInternalState$2(this, { + type: STRING_ITERATOR, + string: toString$8(iterated), + index: 0 + }); +// `%StringIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next +}, function next() { + var state = getInternalState$1(this); + var string = state.string; + var index = state.index; + var point; + if (index >= string.length) return createIterResultObject$1(undefined, true); + point = charAt$3(string, index); + state.index += point.length; + return createIterResultObject$1(point, false); +}); + +// iterable DOM collections +// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods +var domIterables = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 +}; + +// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList` +var documentCreateElement = documentCreateElement$2; + +var classList = documentCreateElement('span').classList; +var DOMTokenListPrototype$2 = classList && classList.constructor && classList.constructor.prototype; + +var domTokenListPrototype = DOMTokenListPrototype$2 === Object.prototype ? undefined : DOMTokenListPrototype$2; + +var global$7 = global$n; +var DOMIterables$1 = domIterables; +var DOMTokenListPrototype$1 = domTokenListPrototype; +var ArrayIteratorMethods = es_array_iterator; +var createNonEnumerableProperty$2 = createNonEnumerableProperty$6; +var wellKnownSymbol$8 = wellKnownSymbol$m; + +var ITERATOR$1 = wellKnownSymbol$8('iterator'); +var TO_STRING_TAG = wellKnownSymbol$8('toStringTag'); +var ArrayValues = ArrayIteratorMethods.values; + +var handlePrototype$1 = function (CollectionPrototype, COLLECTION_NAME) { + if (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[ITERATOR$1] !== ArrayValues) try { + createNonEnumerableProperty$2(CollectionPrototype, ITERATOR$1, ArrayValues); + } catch (error) { + CollectionPrototype[ITERATOR$1] = ArrayValues; + } + if (!CollectionPrototype[TO_STRING_TAG]) { + createNonEnumerableProperty$2(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); + } + if (DOMIterables$1[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { + createNonEnumerableProperty$2(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); + } catch (error) { + CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; + } + } + } +}; + +for (var COLLECTION_NAME$1 in DOMIterables$1) { + handlePrototype$1(global$7[COLLECTION_NAME$1] && global$7[COLLECTION_NAME$1].prototype, COLLECTION_NAME$1); +} + +handlePrototype$1(DOMTokenListPrototype$1, 'DOMTokenList'); + +var toObject$8 = toObject$b; +var toAbsoluteIndex$2 = toAbsoluteIndex$4; +var lengthOfArrayLike$7 = lengthOfArrayLike$a; + +// `Array.prototype.fill` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.fill +var arrayFill = function fill(value /* , start = 0, end = @length */) { + var O = toObject$8(this); + var length = lengthOfArrayLike$7(O); + var argumentsLength = arguments.length; + var index = toAbsoluteIndex$2(argumentsLength > 1 ? arguments[1] : undefined, length); + var end = argumentsLength > 2 ? arguments[2] : undefined; + var endPos = end === undefined ? length : toAbsoluteIndex$2(end, length); + while (endPos > index) O[index++] = value; + return O; +}; + +var $$j = _export; +var fill = arrayFill; +var addToUnscopables$1 = addToUnscopables$3; + +// `Array.prototype.fill` method +// https://tc39.es/ecma262/#sec-array.prototype.fill +$$j({ target: 'Array', proto: true }, { + fill: fill +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables$1('fill'); + +var classof$4 = classofRaw$2; + +// `IsArray` abstract operation +// https://tc39.es/ecma262/#sec-isarray +// eslint-disable-next-line es/no-array-isarray -- safe +var isArray$5 = Array.isArray || function isArray(argument) { + return classof$4(argument) == 'Array'; +}; + +var toPropertyKey = toPropertyKey$3; +var definePropertyModule = objectDefineProperty; +var createPropertyDescriptor = createPropertyDescriptor$4; + +var createProperty$4 = function (object, key, value) { + var propertyKey = toPropertyKey(key); + if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); + else object[propertyKey] = value; +}; + +var fails$h = fails$u; +var wellKnownSymbol$7 = wellKnownSymbol$m; +var V8_VERSION$1 = engineV8Version; + +var SPECIES$3 = wellKnownSymbol$7('species'); + +var arrayMethodHasSpeciesSupport$4 = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION$1 >= 51 || !fails$h(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES$3] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); +}; + +var $$i = _export; +var isArray$4 = isArray$5; +var isConstructor$2 = isConstructor$4; +var isObject$a = isObject$j; +var toAbsoluteIndex$1 = toAbsoluteIndex$4; +var lengthOfArrayLike$6 = lengthOfArrayLike$a; +var toIndexedObject$3 = toIndexedObject$9; +var createProperty$3 = createProperty$4; +var wellKnownSymbol$6 = wellKnownSymbol$m; +var arrayMethodHasSpeciesSupport$3 = arrayMethodHasSpeciesSupport$4; +var nativeSlice = arraySlice$3; + +var HAS_SPECIES_SUPPORT$2 = arrayMethodHasSpeciesSupport$3('slice'); + +var SPECIES$2 = wellKnownSymbol$6('species'); +var $Array$3 = Array; +var max$2 = Math.max; + +// `Array.prototype.slice` method +// https://tc39.es/ecma262/#sec-array.prototype.slice +// fallback for not array-like ES3 strings and DOM objects +$$i({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$2 }, { + slice: function slice(start, end) { + var O = toIndexedObject$3(this); + var length = lengthOfArrayLike$6(O); + var k = toAbsoluteIndex$1(start, length); + var fin = toAbsoluteIndex$1(end === undefined ? length : end, length); + // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible + var Constructor, result, n; + if (isArray$4(O)) { + Constructor = O.constructor; + // cross-realm fallback + if (isConstructor$2(Constructor) && (Constructor === $Array$3 || isArray$4(Constructor.prototype))) { + Constructor = undefined; + } else if (isObject$a(Constructor)) { + Constructor = Constructor[SPECIES$2]; + if (Constructor === null) Constructor = undefined; + } + if (Constructor === $Array$3 || Constructor === undefined) { + return nativeSlice(O, k, fin); + } + } + result = new (Constructor === undefined ? $Array$3 : Constructor)(max$2(fin - k, 0)); + for (n = 0; k < fin; k++, n++) if (k in O) createProperty$3(result, n, O[k]); + result.length = n; + return result; + } +}); + +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global Reflect, Promise */ + + +function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} + +function __classPrivateFieldGet(receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +} + +var eventemitter3 = {exports: {}}; + +(function (module) { + + var has = Object.prototype.hasOwnProperty + , prefix = '~'; + + /** + * Constructor to create a storage for our `EE` objects. + * An `Events` instance is a plain object whose properties are event names. + * + * @constructor + * @private + */ + function Events() {} + + // + // We try to not inherit from `Object.prototype`. In some engines creating an + // instance in this way is faster than calling `Object.create(null)` directly. + // If `Object.create(null)` is not supported we prefix the event names with a + // character to make sure that the built-in object properties are not + // overridden or used as an attack vector. + // + if (Object.create) { + Events.prototype = Object.create(null); + + // + // This hack is needed because the `__proto__` property is still inherited in + // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5. + // + if (!new Events().__proto__) prefix = false; + } + + /** + * Representation of a single event listener. + * + * @param {Function} fn The listener function. + * @param {*} context The context to invoke the listener with. + * @param {Boolean} [once=false] Specify if the listener is a one-time listener. + * @constructor + * @private + */ + function EE(fn, context, once) { + this.fn = fn; + this.context = context; + this.once = once || false; + } + + /** + * Add a listener for a given event. + * + * @param {EventEmitter} emitter Reference to the `EventEmitter` instance. + * @param {(String|Symbol)} event The event name. + * @param {Function} fn The listener function. + * @param {*} context The context to invoke the listener with. + * @param {Boolean} once Specify if the listener is a one-time listener. + * @returns {EventEmitter} + * @private + */ + function addListener(emitter, event, fn, context, once) { + if (typeof fn !== 'function') { + throw new TypeError('The listener must be a function'); + } + + var listener = new EE(fn, context || emitter, once) + , evt = prefix ? prefix + event : event; + + if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++; + else if (!emitter._events[evt].fn) emitter._events[evt].push(listener); + else emitter._events[evt] = [emitter._events[evt], listener]; + + return emitter; + } + + /** + * Clear event by name. + * + * @param {EventEmitter} emitter Reference to the `EventEmitter` instance. + * @param {(String|Symbol)} evt The Event name. + * @private + */ + function clearEvent(emitter, evt) { + if (--emitter._eventsCount === 0) emitter._events = new Events(); + else delete emitter._events[evt]; + } + + /** + * Minimal `EventEmitter` interface that is molded against the Node.js + * `EventEmitter` interface. + * + * @constructor + * @public + */ + function EventEmitter() { + this._events = new Events(); + this._eventsCount = 0; + } + + /** + * Return an array listing the events for which the emitter has registered + * listeners. + * + * @returns {Array} + * @public + */ + EventEmitter.prototype.eventNames = function eventNames() { + var names = [] + , events + , name; + + if (this._eventsCount === 0) return names; + + for (name in (events = this._events)) { + if (has.call(events, name)) names.push(prefix ? name.slice(1) : name); + } + + if (Object.getOwnPropertySymbols) { + return names.concat(Object.getOwnPropertySymbols(events)); + } + + return names; + }; + + /** + * Return the listeners registered for a given event. + * + * @param {(String|Symbol)} event The event name. + * @returns {Array} The registered listeners. + * @public + */ + EventEmitter.prototype.listeners = function listeners(event) { + var evt = prefix ? prefix + event : event + , handlers = this._events[evt]; + + if (!handlers) return []; + if (handlers.fn) return [handlers.fn]; + + for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) { + ee[i] = handlers[i].fn; + } + + return ee; + }; + + /** + * Return the number of listeners listening to a given event. + * + * @param {(String|Symbol)} event The event name. + * @returns {Number} The number of listeners. + * @public + */ + EventEmitter.prototype.listenerCount = function listenerCount(event) { + var evt = prefix ? prefix + event : event + , listeners = this._events[evt]; + + if (!listeners) return 0; + if (listeners.fn) return 1; + return listeners.length; + }; + + /** + * Calls each of the listeners registered for a given event. + * + * @param {(String|Symbol)} event The event name. + * @returns {Boolean} `true` if the event had listeners, else `false`. + * @public + */ + EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) { + var evt = prefix ? prefix + event : event; + + if (!this._events[evt]) return false; + + var listeners = this._events[evt] + , len = arguments.length + , args + , i; + + if (listeners.fn) { + if (listeners.once) this.removeListener(event, listeners.fn, undefined, true); + + switch (len) { + case 1: return listeners.fn.call(listeners.context), true; + case 2: return listeners.fn.call(listeners.context, a1), true; + case 3: return listeners.fn.call(listeners.context, a1, a2), true; + case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true; + case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true; + case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true; + } + + for (i = 1, args = new Array(len -1); i < len; i++) { + args[i - 1] = arguments[i]; + } + + listeners.fn.apply(listeners.context, args); + } else { + var length = listeners.length + , j; + + for (i = 0; i < length; i++) { + if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true); + + switch (len) { + case 1: listeners[i].fn.call(listeners[i].context); break; + case 2: listeners[i].fn.call(listeners[i].context, a1); break; + case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break; + case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break; + default: + if (!args) for (j = 1, args = new Array(len -1); j < len; j++) { + args[j - 1] = arguments[j]; + } + + listeners[i].fn.apply(listeners[i].context, args); + } + } + } + + return true; + }; + + /** + * Add a listener for a given event. + * + * @param {(String|Symbol)} event The event name. + * @param {Function} fn The listener function. + * @param {*} [context=this] The context to invoke the listener with. + * @returns {EventEmitter} `this`. + * @public + */ + EventEmitter.prototype.on = function on(event, fn, context) { + return addListener(this, event, fn, context, false); + }; + + /** + * Add a one-time listener for a given event. + * + * @param {(String|Symbol)} event The event name. + * @param {Function} fn The listener function. + * @param {*} [context=this] The context to invoke the listener with. + * @returns {EventEmitter} `this`. + * @public + */ + EventEmitter.prototype.once = function once(event, fn, context) { + return addListener(this, event, fn, context, true); + }; + + /** + * Remove the listeners of a given event. + * + * @param {(String|Symbol)} event The event name. + * @param {Function} fn Only remove the listeners that match this function. + * @param {*} context Only remove the listeners that have this context. + * @param {Boolean} once Only remove one-time listeners. + * @returns {EventEmitter} `this`. + * @public + */ + EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) { + var evt = prefix ? prefix + event : event; + + if (!this._events[evt]) return this; + if (!fn) { + clearEvent(this, evt); + return this; + } + + var listeners = this._events[evt]; + + if (listeners.fn) { + if ( + listeners.fn === fn && + (!once || listeners.once) && + (!context || listeners.context === context) + ) { + clearEvent(this, evt); + } + } else { + for (var i = 0, events = [], length = listeners.length; i < length; i++) { + if ( + listeners[i].fn !== fn || + (once && !listeners[i].once) || + (context && listeners[i].context !== context) + ) { + events.push(listeners[i]); + } + } + + // + // Reset the array, or remove it completely if we have no more listeners. + // + if (events.length) this._events[evt] = events.length === 1 ? events[0] : events; + else clearEvent(this, evt); + } + + return this; + }; + + /** + * Remove all listeners, or those of the specified event. + * + * @param {(String|Symbol)} [event] The event name. + * @returns {EventEmitter} `this`. + * @public + */ + EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) { + var evt; + + if (event) { + evt = prefix ? prefix + event : event; + if (this._events[evt]) clearEvent(this, evt); + } else { + this._events = new Events(); + this._eventsCount = 0; + } + + return this; + }; + + // + // Alias methods names because people roll like that. + // + EventEmitter.prototype.off = EventEmitter.prototype.removeListener; + EventEmitter.prototype.addListener = EventEmitter.prototype.on; + + // + // Expose the prefix. + // + EventEmitter.prefixed = prefix; + + // + // Allow `EventEmitter` to be imported as module namespace. + // + EventEmitter.EventEmitter = EventEmitter; + + // + // Expose the module. + // + { + module.exports = EventEmitter; + } +} (eventemitter3)); + +var eventemitter3Exports = eventemitter3.exports; +var EventEmitter = /*@__PURE__*/getDefaultExportFromCjs(eventemitter3Exports); + +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ +var isArray$2 = Array.isArray; + +var isArray$3 = isArray$2; + +/** + * Casts `value` as an array if it's not one. + * + * @static + * @memberOf _ + * @since 4.4.0 + * @category Lang + * @param {*} value The value to inspect. + * @returns {Array} Returns the cast array. + * @example + * + * _.castArray(1); + * // => [1] + * + * _.castArray({ 'a': 1 }); + * // => [{ 'a': 1 }] + * + * _.castArray('abc'); + * // => ['abc'] + * + * _.castArray(null); + * // => [null] + * + * _.castArray(undefined); + * // => [undefined] + * + * _.castArray(); + * // => [] + * + * var array = [1, 2, 3]; + * console.log(_.castArray(array) === array); + * // => true + */ +function castArray() { + if (!arguments.length) { + return []; + } + var value = arguments[0]; + return isArray$3(value) ? value : [value]; +} + +var isArray$1 = isArray$5; +var isConstructor$1 = isConstructor$4; +var isObject$9 = isObject$j; +var wellKnownSymbol$5 = wellKnownSymbol$m; + +var SPECIES$1 = wellKnownSymbol$5('species'); +var $Array$2 = Array; + +// a part of `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +var arraySpeciesConstructor$1 = function (originalArray) { + var C; + if (isArray$1(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor$1(C) && (C === $Array$2 || isArray$1(C.prototype))) C = undefined; + else if (isObject$9(C)) { + C = C[SPECIES$1]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array$2 : C; +}; + +var arraySpeciesConstructor = arraySpeciesConstructor$1; + +// `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +var arraySpeciesCreate$2 = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); +}; + +var bind$2 = functionBindContext; +var uncurryThis$g = functionUncurryThis; +var IndexedObject$3 = indexedObject; +var toObject$7 = toObject$b; +var lengthOfArrayLike$5 = lengthOfArrayLike$a; +var arraySpeciesCreate$1 = arraySpeciesCreate$2; + +var push$3 = uncurryThis$g([].push); + +// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation +var createMethod$3 = function (TYPE) { + var IS_MAP = TYPE == 1; + var IS_FILTER = TYPE == 2; + var IS_SOME = TYPE == 3; + var IS_EVERY = TYPE == 4; + var IS_FIND_INDEX = TYPE == 6; + var IS_FILTER_REJECT = TYPE == 7; + var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject$7($this); + var self = IndexedObject$3(O); + var boundFunction = bind$2(callbackfn, that); + var length = lengthOfArrayLike$5(self); + var index = 0; + var create = specificCreate || arraySpeciesCreate$1; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push$3(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push$3(target, value); // filterReject + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; +}; + +var arrayIteration = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod$3(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod$3(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod$3(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod$3(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod$3(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod$3(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod$3(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod$3(7) +}; + +var $$h = _export; +var $map = arrayIteration.map; +var arrayMethodHasSpeciesSupport$2 = arrayMethodHasSpeciesSupport$4; + +var HAS_SPECIES_SUPPORT$1 = arrayMethodHasSpeciesSupport$2('map'); + +// `Array.prototype.map` method +// https://tc39.es/ecma262/#sec-array.prototype.map +// with adding support of @@species +$$h({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$1 }, { + map: function map(callbackfn /* , thisArg */) { + return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +var DESCRIPTORS$3 = descriptors; +var uncurryThis$f = functionUncurryThis; +var call$4 = functionCall; +var fails$g = fails$u; +var objectKeys$1 = objectKeys$3; +var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols; +var propertyIsEnumerableModule = objectPropertyIsEnumerable; +var toObject$6 = toObject$b; +var IndexedObject$2 = indexedObject; + +// eslint-disable-next-line es/no-object-assign -- safe +var $assign = Object.assign; +// eslint-disable-next-line es/no-object-defineproperty -- required for testing +var defineProperty$3 = Object.defineProperty; +var concat$1 = uncurryThis$f([].concat); + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +var objectAssign = !$assign || fails$g(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS$3 && $assign({ b: 1 }, $assign(defineProperty$3({}, 'a', { + enumerable: true, + get: function () { + defineProperty$3(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol(); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] != 7 || objectKeys$1($assign({}, B)).join('') != alphabet; +}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject$6(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject$2(arguments[index++]); + var keys = getOwnPropertySymbols ? concat$1(objectKeys$1(S), getOwnPropertySymbols(S)) : objectKeys$1(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS$3 || call$4(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; +} : $assign; + +var $$g = _export; +var assign = objectAssign; + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +// eslint-disable-next-line es/no-object-assign -- required for testing +$$g({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign +}); + +var internalMetadata = {exports: {}}; + +var objectGetOwnPropertyNamesExternal = {}; + +var toAbsoluteIndex = toAbsoluteIndex$4; +var lengthOfArrayLike$4 = lengthOfArrayLike$a; +var createProperty$2 = createProperty$4; + +var $Array$1 = Array; +var max$1 = Math.max; + +var arraySliceSimple = function (O, start, end) { + var length = lengthOfArrayLike$4(O); + var k = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + var result = $Array$1(max$1(fin - k, 0)); + for (var n = 0; k < fin; k++, n++) createProperty$2(result, n, O[k]); + result.length = n; + return result; +}; + +/* eslint-disable es/no-object-getownpropertynames -- safe */ + +var classof$3 = classofRaw$2; +var toIndexedObject$2 = toIndexedObject$9; +var $getOwnPropertyNames = objectGetOwnPropertyNames.f; +var arraySlice$1 = arraySliceSimple; + +var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + +var getWindowNames = function (it) { + try { + return $getOwnPropertyNames(it); + } catch (error) { + return arraySlice$1(windowNames); + } +}; + +// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window +objectGetOwnPropertyNamesExternal.f = function getOwnPropertyNames(it) { + return windowNames && classof$3(it) == 'Window' + ? getWindowNames(it) + : $getOwnPropertyNames(toIndexedObject$2(it)); +}; + +// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it +var fails$f = fails$u; + +var arrayBufferNonExtensible = fails$f(function () { + if (typeof ArrayBuffer == 'function') { + var buffer = new ArrayBuffer(8); + // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe + if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 }); + } +}); + +var fails$e = fails$u; +var isObject$8 = isObject$j; +var classof$2 = classofRaw$2; +var ARRAY_BUFFER_NON_EXTENSIBLE = arrayBufferNonExtensible; + +// eslint-disable-next-line es/no-object-isextensible -- safe +var $isExtensible = Object.isExtensible; +var FAILS_ON_PRIMITIVES$1 = fails$e(function () { $isExtensible(1); }); + +// `Object.isExtensible` method +// https://tc39.es/ecma262/#sec-object.isextensible +var objectIsExtensible = (FAILS_ON_PRIMITIVES$1 || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) { + if (!isObject$8(it)) return false; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof$2(it) == 'ArrayBuffer') return false; + return $isExtensible ? $isExtensible(it) : true; +} : $isExtensible; + +var fails$d = fails$u; + +var freezing = !fails$d(function () { + // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing + return Object.isExtensible(Object.preventExtensions({})); +}); + +var $$f = _export; +var uncurryThis$e = functionUncurryThis; +var hiddenKeys = hiddenKeys$5; +var isObject$7 = isObject$j; +var hasOwn$1 = hasOwnProperty_1; +var defineProperty$2 = objectDefineProperty.f; +var getOwnPropertyNamesModule = objectGetOwnPropertyNames; +var getOwnPropertyNamesExternalModule = objectGetOwnPropertyNamesExternal; +var isExtensible = objectIsExtensible; +var uid = uid$3; +var FREEZING = freezing; + +var REQUIRED = false; +var METADATA = uid('meta'); +var id$1 = 0; + +var setMetadata = function (it) { + defineProperty$2(it, METADATA, { value: { + objectID: 'O' + id$1++, // object ID + weakData: {} // weak collections IDs + } }); +}; + +var fastKey$1 = function (it, create) { + // return a primitive with prefix + if (!isObject$7(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!hasOwn$1(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; + // not necessary to add metadata + if (!create) return 'E'; + // add missing metadata + setMetadata(it); + // return object ID + } return it[METADATA].objectID; +}; + +var getWeakData$1 = function (it, create) { + if (!hasOwn$1(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; + // not necessary to add metadata + if (!create) return false; + // add missing metadata + setMetadata(it); + // return the store of weak collections IDs + } return it[METADATA].weakData; +}; + +// add metadata on freeze-family methods calling +var onFreeze = function (it) { + if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn$1(it, METADATA)) setMetadata(it); + return it; +}; + +var enable = function () { + meta.enable = function () { /* empty */ }; + REQUIRED = true; + var getOwnPropertyNames = getOwnPropertyNamesModule.f; + var splice = uncurryThis$e([].splice); + var test = {}; + test[METADATA] = 1; + + // prevent exposing of metadata key + if (getOwnPropertyNames(test).length) { + getOwnPropertyNamesModule.f = function (it) { + var result = getOwnPropertyNames(it); + for (var i = 0, length = result.length; i < length; i++) { + if (result[i] === METADATA) { + splice(result, i, 1); + break; + } + } return result; + }; + + $$f({ target: 'Object', stat: true, forced: true }, { + getOwnPropertyNames: getOwnPropertyNamesExternalModule.f + }); + } +}; + +var meta = internalMetadata.exports = { + enable: enable, + fastKey: fastKey$1, + getWeakData: getWeakData$1, + onFreeze: onFreeze +}; + +hiddenKeys[METADATA] = true; + +var internalMetadataExports = internalMetadata.exports; + +var isCallable$3 = isCallable$o; +var isObject$6 = isObject$j; +var setPrototypeOf = objectSetPrototypeOf; + +// makes subclassing work correct for wrapped built-ins +var inheritIfRequired$1 = function ($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if ( + // it can work only with native `setPrototypeOf` + setPrototypeOf && + // we haven't completely correct pre-ES6 way for getting `new.target`, so use this + isCallable$3(NewTarget = dummy.constructor) && + NewTarget !== Wrapper && + isObject$6(NewTargetPrototype = NewTarget.prototype) && + NewTargetPrototype !== Wrapper.prototype + ) setPrototypeOf($this, NewTargetPrototype); + return $this; +}; + +var $$e = _export; +var global$6 = global$n; +var uncurryThis$d = functionUncurryThis; +var isForced = isForced_1; +var defineBuiltIn$2 = defineBuiltIn$9; +var InternalMetadataModule = internalMetadataExports; +var iterate$2 = iterate$6; +var anInstance$2 = anInstance$4; +var isCallable$2 = isCallable$o; +var isNullOrUndefined$3 = isNullOrUndefined$8; +var isObject$5 = isObject$j; +var fails$c = fails$u; +var checkCorrectnessOfIteration$1 = checkCorrectnessOfIteration$3; +var setToStringTag = setToStringTag$4; +var inheritIfRequired = inheritIfRequired$1; + +var collection$3 = function (CONSTRUCTOR_NAME, wrapper, common) { + var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; + var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; + var ADDER = IS_MAP ? 'set' : 'add'; + var NativeConstructor = global$6[CONSTRUCTOR_NAME]; + var NativePrototype = NativeConstructor && NativeConstructor.prototype; + var Constructor = NativeConstructor; + var exported = {}; + + var fixMethod = function (KEY) { + var uncurriedNativeMethod = uncurryThis$d(NativePrototype[KEY]); + defineBuiltIn$2(NativePrototype, KEY, + KEY == 'add' ? function add(value) { + uncurriedNativeMethod(this, value === 0 ? 0 : value); + return this; + } : KEY == 'delete' ? function (key) { + return IS_WEAK && !isObject$5(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY == 'get' ? function get(key) { + return IS_WEAK && !isObject$5(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY == 'has' ? function has(key) { + return IS_WEAK && !isObject$5(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : function set(key, value) { + uncurriedNativeMethod(this, key === 0 ? 0 : key, value); + return this; + } + ); + }; + + var REPLACE = isForced( + CONSTRUCTOR_NAME, + !isCallable$2(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails$c(function () { + new NativeConstructor().entries().next(); + })) + ); + + if (REPLACE) { + // create collection constructor + Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); + InternalMetadataModule.enable(); + } else if (isForced(CONSTRUCTOR_NAME, true)) { + var instance = new Constructor(); + // early implementations not supports chaining + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; + // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false + var THROWS_ON_PRIMITIVES = fails$c(function () { instance.has(1); }); + // most early implementations doesn't supports iterables, most modern - not close it correctly + // eslint-disable-next-line no-new -- required for testing + var ACCEPT_ITERABLES = checkCorrectnessOfIteration$1(function (iterable) { new NativeConstructor(iterable); }); + // for early implementations -0 and +0 not the same + var BUGGY_ZERO = !IS_WEAK && fails$c(function () { + // V8 ~ Chromium 42- fails only with 5+ elements + var $instance = new NativeConstructor(); + var index = 5; + while (index--) $instance[ADDER](index, index); + return !$instance.has(-0); + }); + + if (!ACCEPT_ITERABLES) { + Constructor = wrapper(function (dummy, iterable) { + anInstance$2(dummy, NativePrototype); + var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); + if (!isNullOrUndefined$3(iterable)) iterate$2(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + return that; + }); + Constructor.prototype = NativePrototype; + NativePrototype.constructor = Constructor; + } + + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); + + // weak collections should not contains .clear method + if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear; + } + + exported[CONSTRUCTOR_NAME] = Constructor; + $$e({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported); + + setToStringTag(Constructor, CONSTRUCTOR_NAME); + + if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); + + return Constructor; +}; + +var defineBuiltIn$1 = defineBuiltIn$9; + +var defineBuiltIns$2 = function (target, src, options) { + for (var key in src) defineBuiltIn$1(target, key, src[key], options); + return target; +}; + +var uncurryThis$c = functionUncurryThis; +var defineBuiltIns$1 = defineBuiltIns$2; +var getWeakData = internalMetadataExports.getWeakData; +var anInstance$1 = anInstance$4; +var anObject$4 = anObject$f; +var isNullOrUndefined$2 = isNullOrUndefined$8; +var isObject$4 = isObject$j; +var iterate$1 = iterate$6; +var ArrayIterationModule = arrayIteration; +var hasOwn = hasOwnProperty_1; +var InternalStateModule$1 = internalState; + +var setInternalState$1 = InternalStateModule$1.set; +var internalStateGetterFor$1 = InternalStateModule$1.getterFor; +var find = ArrayIterationModule.find; +var findIndex = ArrayIterationModule.findIndex; +var splice$1 = uncurryThis$c([].splice); +var id = 0; + +// fallback for uncaught frozen keys +var uncaughtFrozenStore = function (state) { + return state.frozen || (state.frozen = new UncaughtFrozenStore()); +}; + +var UncaughtFrozenStore = function () { + this.entries = []; +}; + +var findUncaughtFrozen = function (store, key) { + return find(store.entries, function (it) { + return it[0] === key; + }); +}; + +UncaughtFrozenStore.prototype = { + get: function (key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function (key) { + return !!findUncaughtFrozen(this, key); + }, + set: function (key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value; + else this.entries.push([key, value]); + }, + 'delete': function (key) { + var index = findIndex(this.entries, function (it) { + return it[0] === key; + }); + if (~index) splice$1(this.entries, index, 1); + return !!~index; + } +}; + +var collectionWeak$1 = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance$1(that, Prototype); + setInternalState$1(that, { + type: CONSTRUCTOR_NAME, + id: id++, + frozen: undefined + }); + if (!isNullOrUndefined$2(iterable)) iterate$1(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor$1(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var data = getWeakData(anObject$4(key), true); + if (data === true) uncaughtFrozenStore(state).set(key, value); + else data[state.id] = value; + return that; + }; + + defineBuiltIns$1(Prototype, { + // `{ WeakMap, WeakSet }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.delete + // https://tc39.es/ecma262/#sec-weakset.prototype.delete + 'delete': function (key) { + var state = getInternalState(this); + if (!isObject$4(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state)['delete'](key); + return data && hasOwn(data, state.id) && delete data[state.id]; + }, + // `{ WeakMap, WeakSet }.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.has + // https://tc39.es/ecma262/#sec-weakset.prototype.has + has: function has(key) { + var state = getInternalState(this); + if (!isObject$4(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).has(key); + return data && hasOwn(data, state.id); + } + }); + + defineBuiltIns$1(Prototype, IS_MAP ? { + // `WeakMap.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.get + get: function get(key) { + var state = getInternalState(this); + if (isObject$4(key)) { + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).get(key); + return data ? data[state.id] : undefined; + } + }, + // `WeakMap.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.set + set: function set(key, value) { + return define(this, key, value); + } + } : { + // `WeakSet.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-weakset.prototype.add + add: function add(value) { + return define(this, value, true); + } + }); + + return Constructor; + } +}; + +var collection$2 = collection$3; +var collectionWeak = collectionWeak$1; + +// `WeakSet` constructor +// https://tc39.es/ecma262/#sec-weakset-constructor +collection$2('WeakSet', function (init) { + return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionWeak); + +var ScrollDirection; +(function (ScrollDirection) { + ScrollDirection[ScrollDirection["SCROLL_NONE"] = 0] = "SCROLL_NONE"; + ScrollDirection[ScrollDirection["SCROLL_BACKWARD"] = 1] = "SCROLL_BACKWARD"; + ScrollDirection[ScrollDirection["SCROLL_FORWARD"] = 2] = "SCROLL_FORWARD"; +})(ScrollDirection || (ScrollDirection = {})); +var Position; +(function (Position) { + Position[Position["TOP"] = 0] = "TOP"; + Position[Position["RIGHT"] = 1] = "RIGHT"; + Position[Position["BOTTOM"] = 2] = "BOTTOM"; + Position[Position["LEFT"] = 3] = "LEFT"; +})(Position || (Position = {})); +var OPTIONS_DEFAULT_DOMAIN_TYPE = 'hour'; +var OPTIONS_DEFAULT_SUBDOMAIN_TYPE = 'minute'; +var OPTIONS_DEFAULT_SUBDOMAIN_WIDTH = 10; +var OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT = 10; +var OPTIONS_DEFAULT_SUBDOMAIN_GUTTER = 2; +var OPTIONS_DEFAULT_SUBDOMAIN_RADIUS = 0; +var OPTIONS_DEFAULT_ANIMATION_DURATION = 200; +var OPTIONS_DEFAULT_RANGE = 12; +var OPTIONS_DEFAULT_ITEM_SELECTOR = '#cal-heatmap'; +var OPTIONS_DEFAULT_THEME = 'light'; +var OPTIONS_DEFAULT_LOCALE = 'en'; +var SCALE_BASE_OPACITY_COLOR = 'red'; +var SCALE_BASE_COLOR_SCHEME = 'YlOrBr'; +var SCALE_BASE_COLOR_TYPE = 'quantize'; +var SCALE_BASE_COLOR_DOMAIN = [0, 100]; + +var _Navigator_instances, _Navigator_isDomainBoundaryReached, _Navigator_setDomainsBoundaryReached; +var Navigator = /*#__PURE__*/function () { + function Navigator(calendar) { + _classCallCheck(this, Navigator); + _Navigator_instances.add(this); + this.calendar = calendar; + this.maxDomainReached = false; + this.minDomainReached = false; + } + _createClass(Navigator, [{ + key: "loadNewDomains", + value: function loadNewDomains(newDomainCollection) { + var _this = this; + var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ScrollDirection.SCROLL_NONE; + var options = this.calendar.options.options; + var templatesClt = this.calendar.templateCollection; + var minDate = options.date.min ? templatesClt.get(options.domain.type).extractUnit(+options.date.min) : undefined; + var maxDate = options.date.max ? templatesClt.get(options.domain.type).extractUnit(+options.date.max) : undefined; + var domainCollection = this.calendar.domainCollection; + if (__classPrivateFieldGet(this, _Navigator_instances, "m", _Navigator_isDomainBoundaryReached).call(this, newDomainCollection, minDate, maxDate, direction)) { + return ScrollDirection.SCROLL_NONE; + } + if (direction !== ScrollDirection.SCROLL_NONE) { + newDomainCollection.clamp(minDate, maxDate).slice(options.range, direction === ScrollDirection.SCROLL_FORWARD); + } + domainCollection.merge(newDomainCollection, options.range, function (domainKey, index) { + var subDomainEndDate = null; + if (newDomainCollection.at(index + 1)) { + subDomainEndDate = newDomainCollection.at(index + 1); + } else { + subDomainEndDate = _this.calendar.dateHelper.intervals(options.domain.type, domainKey, 2).pop(); + } + return templatesClt.get(options.subDomain.type).mapping(domainKey, subDomainEndDate).map(function (d) { + return Object.assign(Object.assign({}, d), { + v: options.data.defaultValue + }); + }); + }); + __classPrivateFieldGet(this, _Navigator_instances, "m", _Navigator_setDomainsBoundaryReached).call(this, domainCollection.min, domainCollection.max, minDate, maxDate); + if (direction === ScrollDirection.SCROLL_BACKWARD) { + this.calendar.eventEmitter.emit('domainsLoaded', [domainCollection.min]); + } else if (direction === ScrollDirection.SCROLL_FORWARD) { + this.calendar.eventEmitter.emit('domainsLoaded', [domainCollection.max]); + } + return direction; + } + }, { + key: "jumpTo", + value: function jumpTo(date, reset) { + var _this$calendar = this.calendar, + domainCollection = _this$calendar.domainCollection, + options = _this$calendar.options; + var minDate = new Date(domainCollection.min); + var maxDate = new Date(domainCollection.max); + if (date < minDate) { + return this.loadNewDomains(this.calendar.createDomainCollection(date, minDate, false), ScrollDirection.SCROLL_BACKWARD); + } + if (reset) { + return this.loadNewDomains(this.calendar.createDomainCollection(date, options.options.range), minDate < date ? ScrollDirection.SCROLL_FORWARD : ScrollDirection.SCROLL_BACKWARD); + } + if (date > maxDate) { + return this.loadNewDomains(this.calendar.createDomainCollection(maxDate, date, false), ScrollDirection.SCROLL_FORWARD); + } + return ScrollDirection.SCROLL_NONE; + } + }]); + return Navigator; +}(); +_Navigator_instances = new WeakSet(), _Navigator_isDomainBoundaryReached = function _Navigator_isDomainBoundaryReached(newDomainCollection, minDate, maxDate, direction) { + if (maxDate && newDomainCollection.max >= maxDate && this.maxDomainReached && direction === ScrollDirection.SCROLL_FORWARD) { + return true; + } + if (minDate && newDomainCollection.min <= minDate && this.minDomainReached && direction === ScrollDirection.SCROLL_BACKWARD) { + return true; + } + return false; +}, _Navigator_setDomainsBoundaryReached = function _Navigator_setDomainsBoundaryReached(lowerBound, upperBound, min, max) { + if (min) { + var reached = lowerBound <= min; + this.calendar.eventEmitter.emit(reached ? 'minDateReached' : 'minDateNotReached'); + this.minDomainReached = reached; + } + if (max) { + var _reached = upperBound >= max; + this.calendar.eventEmitter.emit(_reached ? 'maxDateReached' : 'maxDateNotReached'); + this.maxDomainReached = _reached; + } +}; + +var $TypeError$4 = TypeError; +var MAX_SAFE_INTEGER$2 = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 + +var doesNotExceedSafeInteger$1 = function (it) { + if (it > MAX_SAFE_INTEGER$2) throw $TypeError$4('Maximum allowed index exceeded'); + return it; +}; + +var $$d = _export; +var fails$b = fails$u; +var isArray = isArray$5; +var isObject$3 = isObject$j; +var toObject$5 = toObject$b; +var lengthOfArrayLike$3 = lengthOfArrayLike$a; +var doesNotExceedSafeInteger = doesNotExceedSafeInteger$1; +var createProperty$1 = createProperty$4; +var arraySpeciesCreate = arraySpeciesCreate$2; +var arrayMethodHasSpeciesSupport$1 = arrayMethodHasSpeciesSupport$4; +var wellKnownSymbol$4 = wellKnownSymbol$m; +var V8_VERSION = engineV8Version; + +var IS_CONCAT_SPREADABLE = wellKnownSymbol$4('isConcatSpreadable'); + +// We can't use this feature detection in V8 since it causes +// deoptimization and serious performance degradation +// https://github.com/zloirock/core-js/issues/679 +var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails$b(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; +}); + +var isConcatSpreadable = function (O) { + if (!isObject$3(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray(O); +}; + +var FORCED$4 = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport$1('concat'); + +// `Array.prototype.concat` method +// https://tc39.es/ecma262/#sec-array.prototype.concat +// with adding support of @@isConcatSpreadable and @@species +$$d({ target: 'Array', proto: true, arity: 1, forced: FORCED$4 }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + concat: function concat(arg) { + var O = toObject$5(this); + var A = arraySpeciesCreate(O, 0); + var n = 0; + var i, k, length, len, E; + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + if (isConcatSpreadable(E)) { + len = lengthOfArrayLike$3(E); + doesNotExceedSafeInteger(n + len); + for (k = 0; k < len; k++, n++) if (k in E) createProperty$1(A, n, E[k]); + } else { + doesNotExceedSafeInteger(n + 1); + createProperty$1(A, n++, E); + } + } + A.length = n; + return A; + } +}); + +var fails$a = fails$u; + +var arrayMethodIsStrict$4 = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails$a(function () { + // eslint-disable-next-line no-useless-call -- required for testing + method.call(null, argument || function () { return 1; }, 1); + }); +}; + +var $$c = _export; +var uncurryThis$b = functionUncurryThis; +var IndexedObject$1 = indexedObject; +var toIndexedObject$1 = toIndexedObject$9; +var arrayMethodIsStrict$3 = arrayMethodIsStrict$4; + +var nativeJoin = uncurryThis$b([].join); + +var ES3_STRINGS = IndexedObject$1 != Object; +var FORCED$3 = ES3_STRINGS || !arrayMethodIsStrict$3('join', ','); + +// `Array.prototype.join` method +// https://tc39.es/ecma262/#sec-array.prototype.join +$$c({ target: 'Array', proto: true, forced: FORCED$3 }, { + join: function join(separator) { + return nativeJoin(toIndexedObject$1(this), separator === undefined ? ',' : separator); + } +}); + +var create$1 = objectCreate$1; +var defineBuiltInAccessor$1 = defineBuiltInAccessor$3; +var defineBuiltIns = defineBuiltIns$2; +var bind$1 = functionBindContext; +var anInstance = anInstance$4; +var isNullOrUndefined$1 = isNullOrUndefined$8; +var iterate = iterate$6; +var defineIterator = iteratorDefine; +var createIterResultObject = createIterResultObject$3; +var setSpecies = setSpecies$2; +var DESCRIPTORS$2 = descriptors; +var fastKey = internalMetadataExports.fastKey; +var InternalStateModule = internalState; + +var setInternalState = InternalStateModule.set; +var internalStateGetterFor = InternalStateModule.getterFor; + +var collectionStrong$2 = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + index: create$1(null), + first: undefined, + last: undefined, + size: 0 + }); + if (!DESCRIPTORS$2) that.size = 0; + if (!isNullOrUndefined$1(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var entry = getEntry(that, key); + var previous, index; + // change existing entry + if (entry) { + entry.value = value; + // create new entry + } else { + state.last = entry = { + index: index = fastKey(key, true), + key: key, + value: value, + previous: previous = state.last, + next: undefined, + removed: false + }; + if (!state.first) state.first = entry; + if (previous) previous.next = entry; + if (DESCRIPTORS$2) state.size++; + else that.size++; + // add to index + if (index !== 'F') state.index[index] = entry; + } return that; + }; + + var getEntry = function (that, key) { + var state = getInternalState(that); + // fast case + var index = fastKey(key); + var entry; + if (index !== 'F') return state.index[index]; + // frozen object case + for (entry = state.first; entry; entry = entry.next) { + if (entry.key == key) return entry; + } + }; + + defineBuiltIns(Prototype, { + // `{ Map, Set }.prototype.clear()` methods + // https://tc39.es/ecma262/#sec-map.prototype.clear + // https://tc39.es/ecma262/#sec-set.prototype.clear + clear: function clear() { + var that = this; + var state = getInternalState(that); + var data = state.index; + var entry = state.first; + while (entry) { + entry.removed = true; + if (entry.previous) entry.previous = entry.previous.next = undefined; + delete data[entry.index]; + entry = entry.next; + } + state.first = state.last = undefined; + if (DESCRIPTORS$2) state.size = 0; + else that.size = 0; + }, + // `{ Map, Set }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-map.prototype.delete + // https://tc39.es/ecma262/#sec-set.prototype.delete + 'delete': function (key) { + var that = this; + var state = getInternalState(that); + var entry = getEntry(that, key); + if (entry) { + var next = entry.next; + var prev = entry.previous; + delete state.index[entry.index]; + entry.removed = true; + if (prev) prev.next = next; + if (next) next.previous = prev; + if (state.first == entry) state.first = next; + if (state.last == entry) state.last = prev; + if (DESCRIPTORS$2) state.size--; + else that.size--; + } return !!entry; + }, + // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods + // https://tc39.es/ecma262/#sec-map.prototype.foreach + // https://tc39.es/ecma262/#sec-set.prototype.foreach + forEach: function forEach(callbackfn /* , that = undefined */) { + var state = getInternalState(this); + var boundFunction = bind$1(callbackfn, arguments.length > 1 ? arguments[1] : undefined); + var entry; + while (entry = entry ? entry.next : state.first) { + boundFunction(entry.value, entry.key, this); + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + } + }, + // `{ Map, Set}.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-map.prototype.has + // https://tc39.es/ecma262/#sec-set.prototype.has + has: function has(key) { + return !!getEntry(this, key); + } + }); + + defineBuiltIns(Prototype, IS_MAP ? { + // `Map.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-map.prototype.get + get: function get(key) { + var entry = getEntry(this, key); + return entry && entry.value; + }, + // `Map.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-map.prototype.set + set: function set(key, value) { + return define(this, key === 0 ? 0 : key, value); + } + } : { + // `Set.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-set.prototype.add + add: function add(value) { + return define(this, value = value === 0 ? 0 : value, value); + } + }); + if (DESCRIPTORS$2) defineBuiltInAccessor$1(Prototype, 'size', { + configurable: true, + get: function () { + return getInternalState(this).size; + } + }); + return Constructor; + }, + setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) { + var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator'; + var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME); + var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME); + // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods + // https://tc39.es/ecma262/#sec-map.prototype.entries + // https://tc39.es/ecma262/#sec-map.prototype.keys + // https://tc39.es/ecma262/#sec-map.prototype.values + // https://tc39.es/ecma262/#sec-map.prototype-@@iterator + // https://tc39.es/ecma262/#sec-set.prototype.entries + // https://tc39.es/ecma262/#sec-set.prototype.keys + // https://tc39.es/ecma262/#sec-set.prototype.values + // https://tc39.es/ecma262/#sec-set.prototype-@@iterator + defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) { + setInternalState(this, { + type: ITERATOR_NAME, + target: iterated, + state: getInternalCollectionState(iterated), + kind: kind, + last: undefined + }); + }, function () { + var state = getInternalIteratorState(this); + var kind = state.kind; + var entry = state.last; + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + // get next entry + if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) { + // or finish the iteration + state.target = undefined; + return createIterResultObject(undefined, true); + } + // return step by kind + if (kind == 'keys') return createIterResultObject(entry.key, false); + if (kind == 'values') return createIterResultObject(entry.value, false); + return createIterResultObject([entry.key, entry.value], false); + }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); + + // `{ Map, Set }.prototype[@@species]` accessors + // https://tc39.es/ecma262/#sec-get-map-@@species + // https://tc39.es/ecma262/#sec-get-set-@@species + setSpecies(CONSTRUCTOR_NAME); + } +}; + +var collection$1 = collection$3; +var collectionStrong$1 = collectionStrong$2; + +// `Map` constructor +// https://tc39.es/ecma262/#sec-map-objects +collection$1('Map', function (init) { + return function Map() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionStrong$1); + +var tryToString = tryToString$5; + +var $TypeError$3 = TypeError; + +var deletePropertyOrThrow$1 = function (O, P) { + if (!delete O[P]) throw $TypeError$3('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O)); +}; + +var arraySlice = arraySliceSimple; + +var floor$1 = Math.floor; + +var mergeSort = function (array, comparefn) { + var length = array.length; + var middle = floor$1(length / 2); + return length < 8 ? insertionSort(array, comparefn) : merge( + array, + mergeSort(arraySlice(array, 0, middle), comparefn), + mergeSort(arraySlice(array, middle), comparefn), + comparefn + ); +}; + +var insertionSort = function (array, comparefn) { + var length = array.length; + var i = 1; + var element, j; + + while (i < length) { + j = i; + element = array[i]; + while (j && comparefn(array[j - 1], element) > 0) { + array[j] = array[--j]; + } + if (j !== i++) array[j] = element; + } return array; +}; + +var merge = function (array, left, right, comparefn) { + var llength = left.length; + var rlength = right.length; + var lindex = 0; + var rindex = 0; + + while (lindex < llength || rindex < rlength) { + array[lindex + rindex] = (lindex < llength && rindex < rlength) + ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++] + : lindex < llength ? left[lindex++] : right[rindex++]; + } return array; +}; + +var arraySort = mergeSort; + +var userAgent$1 = engineUserAgent; + +var firefox = userAgent$1.match(/firefox\/(\d+)/i); + +var engineFfVersion = !!firefox && +firefox[1]; + +var UA = engineUserAgent; + +var engineIsIeOrEdge = /MSIE|Trident/.test(UA); + +var userAgent = engineUserAgent; + +var webkit = userAgent.match(/AppleWebKit\/(\d+)\./); + +var engineWebkitVersion = !!webkit && +webkit[1]; + +var $$b = _export; +var uncurryThis$a = functionUncurryThis; +var aCallable$1 = aCallable$b; +var toObject$4 = toObject$b; +var lengthOfArrayLike$2 = lengthOfArrayLike$a; +var deletePropertyOrThrow = deletePropertyOrThrow$1; +var toString$7 = toString$a; +var fails$9 = fails$u; +var internalSort = arraySort; +var arrayMethodIsStrict$2 = arrayMethodIsStrict$4; +var FF = engineFfVersion; +var IE_OR_EDGE = engineIsIeOrEdge; +var V8 = engineV8Version; +var WEBKIT = engineWebkitVersion; + +var test = []; +var nativeSort = uncurryThis$a(test.sort); +var push$2 = uncurryThis$a(test.push); + +// IE8- +var FAILS_ON_UNDEFINED = fails$9(function () { + test.sort(undefined); +}); +// V8 bug +var FAILS_ON_NULL = fails$9(function () { + test.sort(null); +}); +// Old WebKit +var STRICT_METHOD$1 = arrayMethodIsStrict$2('sort'); + +var STABLE_SORT = !fails$9(function () { + // feature detection can be too slow, so check engines versions + if (V8) return V8 < 70; + if (FF && FF > 3) return; + if (IE_OR_EDGE) return true; + if (WEBKIT) return WEBKIT < 603; + + var result = ''; + var code, chr, value, index; + + // generate an array with more 512 elements (Chakra and old V8 fails only in this case) + for (code = 65; code < 76; code++) { + chr = String.fromCharCode(code); + + switch (code) { + case 66: case 69: case 70: case 72: value = 3; break; + case 68: case 71: value = 4; break; + default: value = 2; + } + + for (index = 0; index < 47; index++) { + test.push({ k: chr + index, v: value }); + } + } + + test.sort(function (a, b) { return b.v - a.v; }); + + for (index = 0; index < test.length; index++) { + chr = test[index].k.charAt(0); + if (result.charAt(result.length - 1) !== chr) result += chr; + } + + return result !== 'DGBEFHACIJK'; +}); + +var FORCED$2 = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD$1 || !STABLE_SORT; + +var getSortCompare = function (comparefn) { + return function (x, y) { + if (y === undefined) return -1; + if (x === undefined) return 1; + if (comparefn !== undefined) return +comparefn(x, y) || 0; + return toString$7(x) > toString$7(y) ? 1 : -1; + }; +}; + +// `Array.prototype.sort` method +// https://tc39.es/ecma262/#sec-array.prototype.sort +$$b({ target: 'Array', proto: true, forced: FORCED$2 }, { + sort: function sort(comparefn) { + if (comparefn !== undefined) aCallable$1(comparefn); + + var array = toObject$4(this); + + if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn); + + var items = []; + var arrayLength = lengthOfArrayLike$2(array); + var itemsLength, index; + + for (index = 0; index < arrayLength; index++) { + if (index in array) push$2(items, array[index]); + } + + internalSort(items, getSortCompare(comparefn)); + + itemsLength = lengthOfArrayLike$2(items); + index = 0; + + while (index < itemsLength) array[index] = items[index++]; + while (index < arrayLength) deletePropertyOrThrow(array, index++); + + return array; + } +}); + +var $forEach = arrayIteration.forEach; +var arrayMethodIsStrict$1 = arrayMethodIsStrict$4; + +var STRICT_METHOD = arrayMethodIsStrict$1('forEach'); + +// `Array.prototype.forEach` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.foreach +var arrayForEach = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) { + return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); +// eslint-disable-next-line es/no-array-prototype-foreach -- safe +} : [].forEach; + +var global$5 = global$n; +var DOMIterables = domIterables; +var DOMTokenListPrototype = domTokenListPrototype; +var forEach = arrayForEach; +var createNonEnumerableProperty$1 = createNonEnumerableProperty$6; + +var handlePrototype = function (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { + createNonEnumerableProperty$1(CollectionPrototype, 'forEach', forEach); + } catch (error) { + CollectionPrototype.forEach = forEach; + } +}; + +for (var COLLECTION_NAME in DOMIterables) { + if (DOMIterables[COLLECTION_NAME]) { + handlePrototype(global$5[COLLECTION_NAME] && global$5[COLLECTION_NAME].prototype); + } +} + +handlePrototype(DOMTokenListPrototype); + +function isVertical(position) { + return position === 'top' || position === 'bottom'; +} +function horizontalPadding(padding) { + return padding[Position.LEFT] + padding[Position.RIGHT]; +} +function verticalPadding(padding) { + return padding[Position.TOP] + padding[Position.BOTTOM]; +} + +var _DomainCoordinates_instances, _DomainCoordinates_getWidth, _DomainCoordinates_getHeight; +var DomainCoordinates = /*#__PURE__*/function () { + function DomainCoordinates(calendar, domainPainter) { + _classCallCheck(this, DomainCoordinates); + _DomainCoordinates_instances.add(this); + this.calendar = calendar; + this.domainPainter = domainPainter; + this.collection = new Map(); + this.scrollDirection = ScrollDirection.SCROLL_FORWARD; + } + _createClass(DomainCoordinates, [{ + key: "get", + value: function get(domainKey) { + return this.collection.get(domainKey); + } + }, { + key: "update", + value: function update(collection, scrollDirection) { + var _this = this; + var _this$calendar$option = this.calendar.options.options, + verticalOrientation = _this$calendar$option.verticalOrientation, + domain = _this$calendar$option.domain; + this.scrollDirection = scrollDirection; + var dimensions = { + width: 0, + height: 0 + }; + var exitingTotal = 0; + var scrollFactor = scrollDirection === ScrollDirection.SCROLL_FORWARD ? -1 : 1; + var keys = collection.keys; + if (this.calendar.options.options.domain.sort === 'desc') { + keys.reverse(); + scrollFactor *= -1; + } + collection.yankedDomains.forEach(function (domainKey) { + exitingTotal += _this.collection.get(domainKey)[verticalOrientation ? 'height' : 'width']; + }); + collection.yankedDomains.forEach(function (domainKey) { + var coor = _this.collection.get(domainKey); + _this.collection.set(domainKey, Object.assign(Object.assign({}, coor), { + x: verticalOrientation ? coor.x : coor.x + exitingTotal * scrollFactor, + y: verticalOrientation ? coor.y + exitingTotal * scrollFactor : coor.y + })); + }); + keys.forEach(function (domainKey) { + var w = __classPrivateFieldGet(_this, _DomainCoordinates_instances, "m", _DomainCoordinates_getWidth).call(_this, domainKey); + var h = __classPrivateFieldGet(_this, _DomainCoordinates_instances, "m", _DomainCoordinates_getHeight).call(_this, domainKey); + if (verticalOrientation) { + dimensions.height += h; + dimensions.width = Math.max(w, dimensions.width); + } else { + dimensions.width += w; + dimensions.height = Math.max(h, dimensions.height); + } + var x = dimensions.width - w; + var y = dimensions.height - h; + _this.collection.set(domainKey, Object.assign(Object.assign({}, _this.collection.get(domainKey)), { + x: verticalOrientation ? 0 : x, + y: verticalOrientation ? y : 0, + pre_x: verticalOrientation ? x : x - exitingTotal * scrollFactor, + pre_y: verticalOrientation ? y - exitingTotal * scrollFactor : y, + width: w, + height: h, + inner_width: w - (verticalOrientation ? 0 : domain.gutter), + inner_height: h - (!verticalOrientation ? 0 : domain.gutter) + })); + }); + return dimensions; + } + }]); + return DomainCoordinates; +}(); +_DomainCoordinates_instances = new WeakSet(), _DomainCoordinates_getWidth = function _DomainCoordinates_getWidth(d) { + var _this$calendar$option2 = this.calendar.options.options, + domain = _this$calendar$option2.domain, + subDomain = _this$calendar$option2.subDomain, + x = _this$calendar$option2.x, + verticalOrientation = _this$calendar$option2.verticalOrientation; + var columnsCount = this.calendar.templateCollection.get(subDomain.type).columnsCount(d); + var subDomainWidth = (subDomain.width + subDomain.gutter) * columnsCount - subDomain.gutter; + return horizontalPadding(domain.padding) + x.domainHorizontalLabelWidth + (verticalOrientation ? 0 : domain.gutter) + subDomainWidth; +}, _DomainCoordinates_getHeight = function _DomainCoordinates_getHeight(d) { + var _this$calendar$option3 = this.calendar.options.options, + domain = _this$calendar$option3.domain, + subDomain = _this$calendar$option3.subDomain, + x = _this$calendar$option3.x, + verticalOrientation = _this$calendar$option3.verticalOrientation; + var rowsCount = this.calendar.templateCollection.get(subDomain.type).rowsCount(d); + var subDomainHeight = (subDomain.height + subDomain.gutter) * rowsCount - subDomain.gutter; + return verticalPadding(domain.padding) + subDomainHeight + (verticalOrientation ? domain.gutter : 0) + x.domainVerticalLabelHeight; +}; + +var _DomainPainter_instances, _DomainPainter_getClassName; +var DEFAULT_SELECTOR$3 = '.ch-domain'; +var DomainPainter = /*#__PURE__*/function () { + function DomainPainter(calendar) { + _classCallCheck(this, DomainPainter); + _DomainPainter_instances.add(this); + this.calendar = calendar; + this.coordinates = new DomainCoordinates(calendar, this); + this.root = null; + // Dimensions of the internal area containing all the domains + // Excluding all surrounding margins + this.dimensions = { + width: 0, + height: 0 + }; + } + _createClass(DomainPainter, [{ + key: "paint", + value: function paint(scrollDirection, rootNode) { + var _this = this; + var animationDuration = this.calendar.options.options.animationDuration; + var t = rootNode.transition().duration(animationDuration); + var coor = this.coordinates; + this.dimensions = coor.update(this.calendar.domainCollection, scrollDirection); + var promises = []; + this.root = rootNode.selectAll(DEFAULT_SELECTOR$3).data(this.calendar.domainCollection.keys, function (d) { + return d; + }).join(function (enter) { + return enter.append('svg').attr('x', function (d) { + return coor.get(d).pre_x; + }).attr('y', function (d) { + return coor.get(d).pre_y; + }).attr('width', function (d) { + return coor.get(d).inner_width; + }).attr('height', function (d) { + return coor.get(d).inner_height; + }).attr('class', function (d) { + return __classPrivateFieldGet(_this, _DomainPainter_instances, "m", _DomainPainter_getClassName).call(_this, d); + }).call(function (enterSelection) { + return enterSelection.append('rect').attr('width', function (d) { + return coor.get(d).inner_width; + }).attr('height', function (d) { + return coor.get(d).inner_height; + }).attr('class', "".concat(DEFAULT_SELECTOR$3.slice(1), "-bg")); + }).call(function (enterSelection) { + return promises.push(enterSelection.transition(t).attr('x', function (d) { + return coor.get(d).x; + }).attr('y', function (d) { + return coor.get(d).y; + }).end()); + }); + }, function (update) { + return update.call(function (updateSelection) { + return promises.push(updateSelection.transition(t).attr('x', function (d) { + return coor.get(d).x; + }).attr('y', function (d) { + return coor.get(d).y; + }).attr('width', function (d) { + return coor.get(d).inner_width; + }).attr('height', function (d) { + return coor.get(d).inner_height; + }).end()); + }).call(function (updateSelection) { + return promises.push(updateSelection.selectAll("".concat(DEFAULT_SELECTOR$3, "-bg")).transition(t).attr('width', function (d) { + return coor.get(d).inner_width; + }).attr('height', function (d) { + return coor.get(d).inner_height; + }).end()); + }); + }, function (exit) { + return exit.call(function (exitSelection) { + return promises.push(exitSelection.transition(t).attr('x', function (d) { + return coor.get(d).x; + }).attr('y', function (d) { + return coor.get(d).y; + }).remove().end()); + }); + }); + return promises; + } + }]); + return DomainPainter; +}(); +_DomainPainter_instances = new WeakSet(), _DomainPainter_getClassName = function _DomainPainter_getClassName(d) { + var classname = DEFAULT_SELECTOR$3.slice(1); + var helper = this.calendar.dateHelper.date(d); + switch (this.calendar.options.options.domain.type) { + case 'hour': + classname += " h_".concat(helper.hour()); + break; + case 'day': + classname += " d_".concat(helper.date(), " dy_").concat(helper.format('d') + 1); + break; + case 'week': + classname += " w_".concat(helper.week()); + break; + case 'month': + classname += " m_".concat(helper.month() + 1); + break; + case 'year': + classname += " y_".concat(helper.year()); + break; + } + return classname; +}; + +var $$a = _export; +var $includes = arrayIncludes.includes; +var fails$8 = fails$u; +var addToUnscopables = addToUnscopables$3; + +// FF99+ bug +var BROKEN_ON_SPARSE = fails$8(function () { + // eslint-disable-next-line es/no-array-prototype-includes -- detection + return !Array(1).includes(); +}); + +// `Array.prototype.includes` method +// https://tc39.es/ecma262/#sec-array.prototype.includes +$$a({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, { + includes: function includes(el /* , fromIndex = 0 */) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('includes'); + +var $$9 = _export; +var $filter = arrayIteration.filter; +var arrayMethodHasSpeciesSupport = arrayMethodHasSpeciesSupport$4; + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); + +// `Array.prototype.filter` method +// https://tc39.es/ecma262/#sec-array.prototype.filter +// with adding support of @@species +$$9({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + filter: function filter(callbackfn /* , thisArg */) { + return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +var aCallable = aCallable$b; +var toObject$3 = toObject$b; +var IndexedObject = indexedObject; +var lengthOfArrayLike$1 = lengthOfArrayLike$a; + +var $TypeError$2 = TypeError; + +// `Array.prototype.{ reduce, reduceRight }` methods implementation +var createMethod$2 = function (IS_RIGHT) { + return function (that, callbackfn, argumentsLength, memo) { + aCallable(callbackfn); + var O = toObject$3(that); + var self = IndexedObject(O); + var length = lengthOfArrayLike$1(O); + var index = IS_RIGHT ? length - 1 : 0; + var i = IS_RIGHT ? -1 : 1; + if (argumentsLength < 2) while (true) { + if (index in self) { + memo = self[index]; + index += i; + break; + } + index += i; + if (IS_RIGHT ? index < 0 : length <= index) { + throw $TypeError$2('Reduce of empty array with no initial value'); + } + } + for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) { + memo = callbackfn(memo, self[index], index, O); + } + return memo; + }; +}; + +var arrayReduce = { + // `Array.prototype.reduce` method + // https://tc39.es/ecma262/#sec-array.prototype.reduce + left: createMethod$2(false), + // `Array.prototype.reduceRight` method + // https://tc39.es/ecma262/#sec-array.prototype.reduceright + right: createMethod$2(true) +}; + +var $$8 = _export; +var $reduce = arrayReduce.left; +var arrayMethodIsStrict = arrayMethodIsStrict$4; +var CHROME_VERSION = engineV8Version; +var IS_NODE = engineIsNode; + +// Chrome 80-82 has a critical bug +// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 +var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; +var FORCED$1 = CHROME_BUG || !arrayMethodIsStrict('reduce'); + +// `Array.prototype.reduce` method +// https://tc39.es/ecma262/#sec-array.prototype.reduce +$$8({ target: 'Array', proto: true, forced: FORCED$1 }, { + reduce: function reduce(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined); + } +}); + +var anObject$3 = anObject$f; +var iteratorClose = iteratorClose$2; + +// call something on iterator step with safe closing on error +var callWithSafeIterationClosing$1 = function (iterator, fn, value, ENTRIES) { + try { + return ENTRIES ? fn(anObject$3(value)[0], value[1]) : fn(value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } +}; + +var bind = functionBindContext; +var call$3 = functionCall; +var toObject$2 = toObject$b; +var callWithSafeIterationClosing = callWithSafeIterationClosing$1; +var isArrayIteratorMethod = isArrayIteratorMethod$2; +var isConstructor = isConstructor$4; +var lengthOfArrayLike = lengthOfArrayLike$a; +var createProperty = createProperty$4; +var getIterator = getIterator$2; +var getIteratorMethod = getIteratorMethod$3; + +var $Array = Array; + +// `Array.from` method implementation +// https://tc39.es/ecma262/#sec-array.from +var arrayFrom = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { + var O = toObject$2(arrayLike); + var IS_CONSTRUCTOR = isConstructor(this); + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined); + var iteratorMethod = getIteratorMethod(O); + var index = 0; + var length, result, step, iterator, next, value; + // if the target is not iterable or it's an array with the default iterator - use a simple case + if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) { + iterator = getIterator(O, iteratorMethod); + next = iterator.next; + result = IS_CONSTRUCTOR ? new this() : []; + for (;!(step = call$3(next, iterator)).done; index++) { + value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value; + createProperty(result, index, value); + } + } else { + length = lengthOfArrayLike(O); + result = IS_CONSTRUCTOR ? new this(length) : $Array(length); + for (;length > index; index++) { + value = mapping ? mapfn(O[index], index) : O[index]; + createProperty(result, index, value); + } + } + result.length = index; + return result; +}; + +var $$7 = _export; +var from = arrayFrom; +var checkCorrectnessOfIteration = checkCorrectnessOfIteration$3; + +var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) { + // eslint-disable-next-line es/no-array-from -- required for testing + Array.from(iterable); +}); + +// `Array.from` method +// https://tc39.es/ecma262/#sec-array.from +$$7({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, { + from: from +}); + +// a string of all valid unicode whitespaces +var whitespaces$3 = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + + '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; + +var uncurryThis$9 = functionUncurryThis; +var requireObjectCoercible$3 = requireObjectCoercible$7; +var toString$6 = toString$a; +var whitespaces$2 = whitespaces$3; + +var replace$2 = uncurryThis$9(''.replace); +var ltrim = RegExp('^[' + whitespaces$2 + ']+'); +var rtrim = RegExp('(^|[^' + whitespaces$2 + '])[' + whitespaces$2 + ']+$'); + +// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation +var createMethod$1 = function (TYPE) { + return function ($this) { + var string = toString$6(requireObjectCoercible$3($this)); + if (TYPE & 1) string = replace$2(string, ltrim, ''); + if (TYPE & 2) string = replace$2(string, rtrim, '$1'); + return string; + }; +}; + +var stringTrim = { + // `String.prototype.{ trimLeft, trimStart }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimstart + start: createMethod$1(1), + // `String.prototype.{ trimRight, trimEnd }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimend + end: createMethod$1(2), + // `String.prototype.trim` method + // https://tc39.es/ecma262/#sec-string.prototype.trim + trim: createMethod$1(3) +}; + +var global$4 = global$n; +var fails$7 = fails$u; +var uncurryThis$8 = functionUncurryThis; +var toString$5 = toString$a; +var trim = stringTrim.trim; +var whitespaces$1 = whitespaces$3; + +var $parseInt$1 = global$4.parseInt; +var Symbol$3 = global$4.Symbol; +var ITERATOR = Symbol$3 && Symbol$3.iterator; +var hex = /^[+-]?0x/i; +var exec$1 = uncurryThis$8(hex.exec); +var FORCED = $parseInt$1(whitespaces$1 + '08') !== 8 || $parseInt$1(whitespaces$1 + '0x16') !== 22 + // MS Edge 18- broken with boxed symbols + || (ITERATOR && !fails$7(function () { $parseInt$1(Object(ITERATOR)); })); + +// `parseInt` method +// https://tc39.es/ecma262/#sec-parseint-string-radix +var numberParseInt = FORCED ? function parseInt(string, radix) { + var S = trim(toString$5(string)); + return $parseInt$1(S, (radix >>> 0) || (exec$1(hex, S) ? 16 : 10)); +} : $parseInt$1; + +var $$6 = _export; +var $parseInt = numberParseInt; + +// `parseInt` method +// https://tc39.es/ecma262/#sec-parseint-string-radix +$$6({ global: true, forced: parseInt != $parseInt }, { + parseInt: $parseInt +}); + +var _DomainCollection_instances, _DomainCollection_setSubDomainValues, _DomainCollection_extractValues, _DomainCollection_refreshKeys; +var DOMAIN_FORMAT = { + year: 'YYYY', + month: 'MMMM', + week: 'wo [week] YYYY', + xDay: 'Do MMM', + ghDay: 'Do MMM', + day: 'Do MMM', + hour: 'HH:00', + minute: 'HH:mm' +}; +var DomainCollection = /*#__PURE__*/function () { + function DomainCollection(dateHelper, interval, start, range) { + var excludeEnd = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + _classCallCheck(this, DomainCollection); + _DomainCollection_instances.add(this); + this.collection = new Map(); + this.dateHelper = dateHelper; + if (interval && start && range) { + var ts = this.dateHelper.intervals(interval, start, range, excludeEnd).map(function (d) { + return castArray(d); + }); + // @ts-ignore + this.collection = new Map(ts); + } + this.min = 0; + this.max = 0; + this.keys = []; + this.yankedDomains = []; + if (this.collection.size > 0) { + __classPrivateFieldGet(this, _DomainCollection_instances, "m", _DomainCollection_refreshKeys).call(this); + } + } + _createClass(DomainCollection, [{ + key: "has", + value: function has(key) { + return this.collection.has(key); + } + }, { + key: "get", + value: function get(key) { + return this.collection.get(key); + } + }, { + key: "forEach", + value: function forEach(callback) { + return this.collection.forEach(callback); + } + }, { + key: "at", + value: function at(index) { + return this.keys[index]; + } + }, { + key: "clamp", + value: function clamp(minDate, maxDate) { + var _this = this; + if (minDate && this.min < minDate) { + this.keys.filter(function (key) { + return key < minDate; + }).forEach(function (d) { + return _this.collection.delete(d); + }); + } + if (maxDate && this.max > maxDate) { + this.keys.filter(function (key) { + return key > maxDate; + }).forEach(function (d) { + return _this.collection.delete(d); + }); + } + __classPrivateFieldGet(this, _DomainCollection_instances, "m", _DomainCollection_refreshKeys).call(this); + return this; + } + }, { + key: "merge", + value: function merge(newCollection, limit, createValueCallback) { + var _this2 = this; + this.yankedDomains = []; + newCollection.keys.forEach(function (domainKey, index) { + if (_this2.has(domainKey)) { + return; + } + if (_this2.collection.size >= limit) { + var keyToRemove = _this2.max; + if (domainKey > _this2.max) { + keyToRemove = _this2.min; + } + if (keyToRemove && _this2.collection.delete(keyToRemove)) { + _this2.yankedDomains.push(keyToRemove); + } + } + _this2.collection.set(domainKey, createValueCallback(domainKey, index)); + __classPrivateFieldGet(_this2, _DomainCollection_instances, "m", _DomainCollection_refreshKeys).call(_this2); + }); + this.yankedDomains = this.yankedDomains.sort(function (a, b) { + return a - b; + }); + } + }, { + key: "slice", + value: function slice() { + var _this3 = this; + var limit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var fromBeginning = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + if (this.keys.length > limit) { + var keysToDelete = fromBeginning ? this.keys.slice(0, -limit) : this.keys.slice(limit); + keysToDelete.forEach(function (key) { + _this3.collection.delete(key); + }); + __classPrivateFieldGet(this, _DomainCollection_instances, "m", _DomainCollection_refreshKeys).call(this); + } + return this; + } + }, { + key: "fill", + value: function fill(data, _ref, subDomainKeyExtractor) { + var _this4 = this; + var x = _ref.x, + y = _ref.y, + groupY = _ref.groupY, + defaultValue = _ref.defaultValue; + var groupedRecords = this.groupRecords(data, x, subDomainKeyExtractor); + this.keys.forEach(function (domainKey) { + var records = groupedRecords.get(domainKey) || {}; + __classPrivateFieldGet(_this4, _DomainCollection_instances, "m", _DomainCollection_setSubDomainValues).call(_this4, domainKey, records, y, groupY, defaultValue); + }); + } + }, { + key: "groupRecords", + value: function groupRecords(data, x, subDomainKeyExtractor) { + var _this5 = this; + var results = new Map(); + var validSubDomainTimestamp = new Map(); + this.keys.forEach(function (domainKey) { + _this5.get(domainKey).forEach(function (subDomain) { + validSubDomainTimestamp.set(subDomain.t, domainKey); + }); + }); + data.forEach(function (d) { + var timestamp = _this5.extractTimestamp(d, x, subDomainKeyExtractor); + if (validSubDomainTimestamp.has(timestamp)) { + var domainKey = validSubDomainTimestamp.get(timestamp); + var records = results.get(domainKey) || {}; + records[timestamp] || (records[timestamp] = []); + records[timestamp].push(d); + results.set(domainKey, records); + } + }); + return results; + } + // eslint-disable-next-line class-methods-use-this + }, { + key: "groupValues", + value: function groupValues(values, groupFn) { + var cleanedValues = values.filter(function (n) { + return n !== null; + }); + if (typeof groupFn === 'string') { + if (cleanedValues.every(function (n) { + return typeof n === 'number'; + })) { + switch (groupFn) { + case 'sum': + return cleanedValues.reduce(function (a, b) { + return a + b; + }, 0); + case 'count': + return cleanedValues.length; + case 'min': + return Math.min.apply(Math, _toConsumableArray(cleanedValues)) || null; + case 'max': + return Math.max.apply(Math, _toConsumableArray(cleanedValues)) || null; + case 'average': + return cleanedValues.length > 0 ? cleanedValues.reduce(function (a, b) { + return a + b; + }, 0) / cleanedValues.length : null; + default: + return null; + } + } + switch (groupFn) { + case 'count': + return cleanedValues.length; + default: + return null; + } + } else if (typeof groupFn === 'function') { + return groupFn(cleanedValues); + } + return null; + } + // eslint-disable-next-line class-methods-use-this + }, { + key: "extractTimestamp", + value: function extractTimestamp(datum, x, extractorFn) { + var timestamp = typeof x === 'function' ? x(datum) : datum[x]; + if (typeof timestamp === 'string') { + timestamp = +new Date(timestamp); + } + return extractorFn(timestamp); + } + }]); + return DomainCollection; +}(); +_DomainCollection_instances = new WeakSet(), _DomainCollection_setSubDomainValues = function _DomainCollection_setSubDomainValues(domainKey, records, y, groupY, defaultValue) { + var _this6 = this; + this.get(domainKey).forEach(function (subDomain, index) { + var value = defaultValue; + if (records.hasOwnProperty(subDomain.t)) { + value = _this6.groupValues(__classPrivateFieldGet(_this6, _DomainCollection_instances, "m", _DomainCollection_extractValues).call(_this6, records[subDomain.t], y), groupY); + } + _this6.get(domainKey)[index].v = value; + }); +}, _DomainCollection_extractValues = function _DomainCollection_extractValues(data, y) { + return data.map(function (d) { + return typeof y === 'function' ? y(d) : d[y]; + }); +}, _DomainCollection_refreshKeys = function _DomainCollection_refreshKeys() { + this.keys = Array.from(this.collection.keys()).map(function (d) { + return parseInt(d, 10); + }).sort(function (a, b) { + return a - b; + }); + var keys = this.keys; + // eslint-disable-next-line prefer-destructuring + this.min = keys[0]; + this.max = keys[keys.length - 1]; + return this.keys; +}; + +var _DomainLabelPainter_instances, _DomainLabelPainter_textVerticalAlign, _DomainLabelPainter_getX, _DomainLabelPainter_getY, _DomainLabelPainter_getDomainInsideWidth, _DomainLabelPainter_getDomainInsideHeight, _DomainLabelPainter_domainRotate; +var DEFAULT_SELECTOR$2 = '.ch-domain-text'; +var DomainLabelPainter = /*#__PURE__*/function () { + function DomainLabelPainter(calendar) { + _classCallCheck(this, DomainLabelPainter); + _DomainLabelPainter_instances.add(this); + this.calendar = calendar; + } + _createClass(DomainLabelPainter, [{ + key: "paint", + value: function paint(root) { + var _this = this; + var _this$calendar$option = this.calendar.options.options.domain, + label = _this$calendar$option.label, + type = _this$calendar$option.type; + var dateHelper = this.calendar.dateHelper; + var format = label.text; + if (format === null || format === '') { + return; + } + if (typeof format === 'undefined') { + format = DOMAIN_FORMAT[type]; + } + root.selectAll(DEFAULT_SELECTOR$2).data(function (d) { + return [d]; + }, function (d) { + return d; + }).join(function (enter) { + return enter.append('text').attr('class', DEFAULT_SELECTOR$2.slice(1)).attr('x', function (d) { + return __classPrivateFieldGet(_this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getX).call(_this, d); + }).attr('y', function (d) { + return __classPrivateFieldGet(_this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getY).call(_this, d); + }).attr('text-anchor', label.textAlign).attr('dominant-baseline', function () { + return __classPrivateFieldGet(_this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_textVerticalAlign).call(_this); + }).text(function (d, i, nodes) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + dateHelper.format(d, format, nodes[i]) + ); + }).call(function (selection) { + return __classPrivateFieldGet(_this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_domainRotate).call(_this, selection); + }); + }, function (update) { + update.attr('x', function (d) { + return __classPrivateFieldGet(_this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getX).call(_this, d); + }).attr('y', function (d) { + return __classPrivateFieldGet(_this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getY).call(_this, d); + }).attr('text-anchor', label.textAlign).attr('dominant-baseline', function () { + return __classPrivateFieldGet(_this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_textVerticalAlign).call(_this); + }).text(function (d, i, nodes) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + dateHelper.format(d, format, nodes[i]) + ); + }).call(function (selection) { + return __classPrivateFieldGet(_this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_domainRotate).call(_this, selection); + }); + }); + } + }]); + return DomainLabelPainter; +}(); +_DomainLabelPainter_instances = new WeakSet(), _DomainLabelPainter_textVerticalAlign = function _DomainLabelPainter_textVerticalAlign() { + var _this$calendar$option2 = this.calendar.options.options.domain.label, + position = _this$calendar$option2.position, + rotate = _this$calendar$option2.rotate; + if (isVertical(position)) { + return 'middle'; + } + if (rotate === 'left' && position === 'left' || rotate === 'right' && position === 'right') { + return 'bottom'; + } + return 'hanging'; +}, _DomainLabelPainter_getX = function _DomainLabelPainter_getX(d) { + var _this$calendar$option3 = this.calendar.options.options.domain, + padding = _this$calendar$option3.padding, + _this$calendar$option4 = _this$calendar$option3.label, + position = _this$calendar$option4.position, + textAlign = _this$calendar$option4.textAlign, + offset = _this$calendar$option4.offset; + var domainHorizontalLabelWidth = this.calendar.options.options.x.domainHorizontalLabelWidth; + var x = padding[Position.LEFT]; + if (position === 'right') { + x += __classPrivateFieldGet(this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getDomainInsideWidth).call(this, d); + } + if (textAlign === 'middle') { + if (['top', 'bottom'].includes(position)) { + x += __classPrivateFieldGet(this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getDomainInsideWidth).call(this, d) / 2; + } else { + x += domainHorizontalLabelWidth / 2; + } + } + if (textAlign === 'end') { + if (isVertical(position)) { + x += __classPrivateFieldGet(this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getDomainInsideWidth).call(this, d); + } else { + x += domainHorizontalLabelWidth; + } + } + return x + offset.x; +}, _DomainLabelPainter_getY = function _DomainLabelPainter_getY(d) { + var _this$calendar$option5 = this.calendar.options.options, + _this$calendar$option6 = _this$calendar$option5.domain, + _this$calendar$option7 = _this$calendar$option6.label, + position = _this$calendar$option7.position, + offset = _this$calendar$option7.offset, + padding = _this$calendar$option6.padding, + x = _this$calendar$option5.x; + var y = padding[Position.TOP] + x.domainVerticalLabelHeight / 2; + if (position === 'bottom') { + y += __classPrivateFieldGet(this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getDomainInsideHeight).call(this, d); + } + return y + offset.y; +}, _DomainLabelPainter_getDomainInsideWidth = function _DomainLabelPainter_getDomainInsideWidth(d) { + var _this$calendar$option8 = this.calendar.options.options, + padding = _this$calendar$option8.domain.padding, + domainHorizontalLabelWidth = _this$calendar$option8.x.domainHorizontalLabelWidth; + var coordinates = this.calendar.calendarPainter.domainsContainerPainter.domainPainter.coordinates; + return coordinates.get(d).inner_width - domainHorizontalLabelWidth - horizontalPadding(padding); +}, _DomainLabelPainter_getDomainInsideHeight = function _DomainLabelPainter_getDomainInsideHeight(d) { + var _this$calendar$option9 = this.calendar.options.options, + domainVerticalLabelHeight = _this$calendar$option9.x.domainVerticalLabelHeight, + padding = _this$calendar$option9.domain.padding; + var coordinates = this.calendar.calendarPainter.domainsContainerPainter.domainPainter.coordinates; + return coordinates.get(d).inner_height - domainVerticalLabelHeight - verticalPadding(padding); +}, _DomainLabelPainter_domainRotate = function _DomainLabelPainter_domainRotate(selection) { + var _this2 = this; + var _this$calendar$option10 = this.calendar.options.options, + _this$calendar$option11 = _this$calendar$option10.domain.label, + rotate = _this$calendar$option11.rotate, + textAlign = _this$calendar$option11.textAlign, + position = _this$calendar$option11.position, + x = _this$calendar$option10.x; + var labelWidth = x.domainHorizontalLabelWidth; + switch (rotate) { + // Rotating the text clockwise + case 'right': + selection.attr('transform', function (d) { + var domainWidth = __classPrivateFieldGet(_this2, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getDomainInsideWidth).call(_this2, d); + var domainHeight = __classPrivateFieldGet(_this2, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getDomainInsideHeight).call(_this2, d); + var s = ["rotate(90, ".concat(position === 'right' ? domainWidth : labelWidth, ", 0)")]; + switch (position) { + case 'right': + if (textAlign === 'middle') { + s.push("translate(".concat(domainHeight / 2 - labelWidth / 2, ")")); + } else if (textAlign === 'end') { + s.push("translate(".concat(domainHeight - labelWidth, ")")); + } + break; + case 'left': + if (textAlign === 'start') { + s.push("translate(".concat(labelWidth, ")")); + } else if (textAlign === 'middle') { + s.push("translate(".concat(labelWidth / 2 + domainHeight / 2, ")")); + } else if (textAlign === 'end') { + s.push("translate(".concat(domainHeight, ")")); + } + break; + } + return s.join(','); + }); + break; + // Rotating the text anticlockwise + case 'left': + selection.attr('transform', function (d) { + var domainWidth = __classPrivateFieldGet(_this2, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getDomainInsideWidth).call(_this2, d); + var domainHeight = __classPrivateFieldGet(_this2, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getDomainInsideHeight).call(_this2, d); + var s = ["rotate(270, ".concat(position === 'right' ? domainWidth : labelWidth, ", 0)")]; + switch (position) { + case 'right': + if (textAlign === 'start') { + s.push("translate(-".concat(domainHeight, ")")); + } else if (textAlign === 'middle') { + s.push("translate(-".concat(domainHeight / 2 + labelWidth / 2, ")")); + } else if (textAlign === 'end') { + s.push("translate(-".concat(labelWidth, ")")); + } + break; + case 'left': + if (textAlign === 'start') { + s.push("translate(".concat(labelWidth - domainHeight, ")")); + } else if (textAlign === 'middle') { + s.push("translate(".concat(labelWidth / 2 - domainHeight / 2, ")")); + } + break; + } + return s.join(','); + }); + break; + } +}; + +var PROPER_FUNCTION_NAME = functionName.PROPER; +var fails$6 = fails$u; +var whitespaces = whitespaces$3; + +var non = '\u200B\u0085\u180E'; + +// check that a method works with the correct list +// of whitespaces and has a correct name +var stringTrimForced = function (METHOD_NAME) { + return fails$6(function () { + return !!whitespaces[METHOD_NAME]() + || non[METHOD_NAME]() !== non + || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME); + }); +}; + +var $$5 = _export; +var $trim = stringTrim.trim; +var forcedStringTrimMethod = stringTrimForced; + +// `String.prototype.trim` method +// https://tc39.es/ecma262/#sec-string.prototype.trim +$$5({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, { + trim: function trim() { + return $trim(this); + } +}); + +var _SubDomainPainter_instances, _SubDomainPainter_setPositions, _SubDomainPainter_classname, _SubDomainPainter_appendText, _SubDomainPainter_getCoordinates, _SubDomainPainter_getX, _SubDomainPainter_getY; +var DEFAULT_SELECTOR$1 = '.ch-subdomain'; +var HIGHLIGHT_CLASSNAME = 'highlight'; +var SubDomainPainter = /*#__PURE__*/function () { + function SubDomainPainter(calendar) { + _classCallCheck(this, SubDomainPainter); + _SubDomainPainter_instances.add(this); + this.calendar = calendar; + this.root = null; + } + _createClass(SubDomainPainter, [{ + key: "paint", + value: function paint(root) { + var _this = this; + this.root = root || this.root; + var containerClassname = "".concat(DEFAULT_SELECTOR$1, "-container"); + var subDomainSvgGroup = this.root.selectAll(containerClassname).data(function (d) { + return [d]; + }, function (d) { + return d; + }).join(function (enter) { + return enter.append('svg').call(function (selection) { + return __classPrivateFieldGet(_this, _SubDomainPainter_instances, "m", _SubDomainPainter_setPositions).call(_this, selection); + }).attr('class', containerClassname.slice(1)); + }, function (update) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + update.call(function (selection) { + return __classPrivateFieldGet(_this, _SubDomainPainter_instances, "m", _SubDomainPainter_setPositions).call(_this, selection); + }) + ); + }); + var _this$calendar$option = this.calendar.options.options.subDomain, + radius = _this$calendar$option.radius, + width = _this$calendar$option.width, + height = _this$calendar$option.height, + sort = _this$calendar$option.sort; + var evt = this.calendar.eventEmitter; + subDomainSvgGroup.selectAll('g').data(function (d) { + var subDomainsCollection = _this.calendar.domainCollection.get(d); + if (sort === 'desc') { + var max = Math.max.apply(Math, _toConsumableArray(subDomainsCollection.map(function (s) { + return s.x; + }))); + subDomainsCollection.forEach(function (s, i) { + subDomainsCollection[i].x = Math.abs(s.x - max); + }); + } + return subDomainsCollection; + }).join(function (enter) { + return enter.append('g').call(function (selection) { + return selection.insert('rect').attr('class', function (d) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + __classPrivateFieldGet(_this, _SubDomainPainter_instances, "m", _SubDomainPainter_classname).call(_this, d.t, "".concat(DEFAULT_SELECTOR$1.slice(1), "-bg")) + ); + }).attr('width', width).attr('height', height).attr('x', function (d) { + return __classPrivateFieldGet(_this, _SubDomainPainter_instances, "m", _SubDomainPainter_getX).call(_this, d); + }).attr('y', function (d) { + return __classPrivateFieldGet(_this, _SubDomainPainter_instances, "m", _SubDomainPainter_getY).call(_this, d); + }).on('click', function (ev, d) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + evt.emit('click', ev, d.t, d.v) + ); + }).on('mouseover', function (ev, d) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + evt.emit('mouseover', ev, d.t, d.v) + ); + }).on('mouseout', function (ev, d) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + evt.emit('mouseout', ev, d.t, d.v) + ); + }).attr('rx', radius > 0 ? radius : null).attr('ry', radius > 0 ? radius : null); + }).call(function (selection) { + return __classPrivateFieldGet(_this, _SubDomainPainter_instances, "m", _SubDomainPainter_appendText).call(_this, selection); + }); + }, function (update) { + return update.selectAll('rect').attr('class', function (d) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + __classPrivateFieldGet(_this, _SubDomainPainter_instances, "m", _SubDomainPainter_classname).call(_this, d.t, "".concat(DEFAULT_SELECTOR$1.slice(1), "-bg")) + ); + }).attr('width', width).attr('height', height).attr('x', function (d) { + return __classPrivateFieldGet(_this, _SubDomainPainter_instances, "m", _SubDomainPainter_getX).call(_this, d); + }).attr('y', function (d) { + return __classPrivateFieldGet(_this, _SubDomainPainter_instances, "m", _SubDomainPainter_getY).call(_this, d); + }).attr('rx', radius).attr('ry', radius); + }); + } + }]); + return SubDomainPainter; +}(); +_SubDomainPainter_instances = new WeakSet(), _SubDomainPainter_setPositions = function _SubDomainPainter_setPositions(selection) { + var options = this.calendar.options.options; + var _options$domain = options.domain, + padding = _options$domain.padding, + position = _options$domain.label.position; + selection.attr('x', function () { + var pos = padding[Position.LEFT]; + if (position === 'left') { + pos += options.x.domainHorizontalLabelWidth; + } + return pos; + }).attr('y', function () { + var pos = padding[Position.TOP]; + if (position === 'top') { + pos += options.x.domainVerticalLabelHeight; + } + return pos; + }); +}, _SubDomainPainter_classname = function _SubDomainPainter_classname(timestamp) { + var _this2 = this; + var _this$calendar$option2 = this.calendar.options.options, + highlight = _this$calendar$option2.date.highlight, + type = _this$calendar$option2.subDomain.type; + var classname = ''; + if (highlight.length > 0) { + highlight.forEach(function (d) { + var unitFn = _this2.calendar.templateCollection.get(type).extractUnit; + if (unitFn(+d) === unitFn(timestamp)) { + classname = HIGHLIGHT_CLASSNAME; + } + }); + } + for (var _len = arguments.length, otherClasses = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + otherClasses[_key - 1] = arguments[_key]; + } + return [classname].concat(otherClasses).join(' ').trim(); +}, _SubDomainPainter_appendText = function _SubDomainPainter_appendText(elem) { + var _this3 = this; + var _this$calendar$option3 = this.calendar.options.options.subDomain, + width = _this$calendar$option3.width, + height = _this$calendar$option3.height, + label = _this$calendar$option3.label; + if (!label) { + return null; + } + return elem.append('text').attr('class', function (d) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + __classPrivateFieldGet(_this3, _SubDomainPainter_instances, "m", _SubDomainPainter_classname).call(_this3, d.t, "".concat(DEFAULT_SELECTOR$1.slice(1), "-text")) + ); + }).attr('x', function (d) { + return __classPrivateFieldGet(_this3, _SubDomainPainter_instances, "m", _SubDomainPainter_getX).call(_this3, d) + width / 2; + }).attr('y', function (d) { + return __classPrivateFieldGet(_this3, _SubDomainPainter_instances, "m", _SubDomainPainter_getY).call(_this3, d) + height / 2; + }).attr('text-anchor', 'middle').attr('dominant-baseline', 'central').text(function (d, i, nodes) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + _this3.calendar.dateHelper.format(d.t, label, d.v, nodes[i]) + ); + }); +}, _SubDomainPainter_getCoordinates = function _SubDomainPainter_getCoordinates(axis, d) { + var subDomain = this.calendar.options.options.subDomain; + return d[axis] * (subDomain[axis === 'x' ? 'width' : 'height'] + subDomain.gutter); +}, _SubDomainPainter_getX = function _SubDomainPainter_getX(d) { + return __classPrivateFieldGet(this, _SubDomainPainter_instances, "m", _SubDomainPainter_getCoordinates).call(this, 'x', d); +}, _SubDomainPainter_getY = function _SubDomainPainter_getY(d) { + return __classPrivateFieldGet(this, _SubDomainPainter_instances, "m", _SubDomainPainter_getCoordinates).call(this, 'y', d); +}; + +var _DomainsContainerPainter_instances, _DomainsContainerPainter_startAnimation, _DomainsContainerPainter_endAnimation, _DomainsContainerPainter_recomputeDimensions; +var BASE_SELECTOR = '.ch-domain-container'; +var TRANSITION_CLASSNAME = 'in-transition'; +var DomainsContainerPainter = /*#__PURE__*/function () { + function DomainsContainerPainter(calendar) { + _classCallCheck(this, DomainsContainerPainter); + _DomainsContainerPainter_instances.add(this); + this.calendar = calendar; + this.domainPainter = new DomainPainter(calendar); + this.subDomainPainter = new SubDomainPainter(calendar); + this.domainLabelPainter = new DomainLabelPainter(calendar); + this.dimensions = { + width: 0, + height: 0 + }; + this.transitionsQueueCount = 0; + } + _createClass(DomainsContainerPainter, [{ + key: "setup", + value: function setup() { + this.root = this.calendar.calendarPainter.root.attr('x', 0).attr('y', 0).append('svg').attr('class', BASE_SELECTOR.slice(1)).append('svg').attr('class', "".concat(BASE_SELECTOR.slice(1), "-animation-wrapper")); + } + }, { + key: "paint", + value: function paint(scrollDirection) { + var _this = this; + __classPrivateFieldGet(this, _DomainsContainerPainter_instances, "m", _DomainsContainerPainter_startAnimation).call(this); + var result = this.domainPainter.paint(scrollDirection, this.root); + this.subDomainPainter.paint(this.domainPainter.root); + this.domainLabelPainter.paint(this.domainPainter.root); + __classPrivateFieldGet(this, _DomainsContainerPainter_instances, "m", _DomainsContainerPainter_recomputeDimensions).call(this); + Promise.allSettled(result).then(function () { + __classPrivateFieldGet(_this, _DomainsContainerPainter_instances, "m", _DomainsContainerPainter_endAnimation).call(_this); + }); + return result; + } + }, { + key: "updatePosition", + value: function updatePosition() { + var _a; + if (!((_a = this.root) === null || _a === void 0 ? void 0 : _a.node())) { + return Promise.resolve(); + } + var animationDuration = this.calendar.options.options.animationDuration; + var topHeight = this.calendar.pluginManager.getHeightFromPosition('top'); + var leftWidth = this.calendar.pluginManager.getWidthFromPosition('left'); + return [select(this.root.node().parentNode).transition().duration(animationDuration).call(function (selection) { + selection.attr('x', leftWidth).attr('y', topHeight); + }).end()]; + } + }, { + key: "width", + value: function width() { + return this.dimensions.width; + } + }, { + key: "height", + value: function height() { + return this.dimensions.height; + } + }, { + key: "destroy", + value: function destroy() { + __classPrivateFieldGet(this, _DomainsContainerPainter_instances, "m", _DomainsContainerPainter_startAnimation).call(this); + return Promise.resolve(); + } + }]); + return DomainsContainerPainter; +}(); +_DomainsContainerPainter_instances = new WeakSet(), _DomainsContainerPainter_startAnimation = function _DomainsContainerPainter_startAnimation() { + var _a; + if ((_a = this.root) === null || _a === void 0 ? void 0 : _a.node()) { + this.transitionsQueueCount += 1; + select(this.root.node().parentNode).classed(TRANSITION_CLASSNAME, true); + } +}, _DomainsContainerPainter_endAnimation = function _DomainsContainerPainter_endAnimation() { + var _a; + if ((_a = this.root) === null || _a === void 0 ? void 0 : _a.node()) { + this.transitionsQueueCount -= 1; + if (this.transitionsQueueCount === 0) { + select(this.root.node().parentNode).classed(TRANSITION_CLASSNAME, false); + } + } +}, _DomainsContainerPainter_recomputeDimensions = function _DomainsContainerPainter_recomputeDimensions() { + var _this$calendar$option = this.calendar.options.options, + animationDuration = _this$calendar$option.animationDuration, + verticalOrientation = _this$calendar$option.verticalOrientation, + gutter = _this$calendar$option.domain.gutter; + var domainsDimensions = this.domainPainter.dimensions; + this.dimensions = { + width: domainsDimensions.width - (verticalOrientation ? 0 : gutter), + height: domainsDimensions.height - (!verticalOrientation ? 0 : gutter) + }; + this.root.transition().duration(animationDuration).attr('width', this.dimensions.width).attr('height', this.dimensions.height); +}; + +var PluginPainter = /*#__PURE__*/function () { + function PluginPainter(calendar) { + _classCallCheck(this, PluginPainter); + this.calendar = calendar; + } + _createClass(PluginPainter, [{ + key: "paint", + value: function paint() { + var promises = []; + promises = promises.concat(this.calendar.pluginManager.paintAll()); + promises = promises.concat(this.setPluginsPosition()); + return promises; + } + }, { + key: "setPluginsPosition", + value: function setPluginsPosition() { + var pluginManager = this.calendar.pluginManager; + var animationDuration = this.calendar.options.options.animationDuration; + var domainsContainerPainter = this.calendar.calendarPainter.domainsContainerPainter; + var top = pluginManager.getFromPosition('top'); + var right = pluginManager.getFromPosition('right'); + var bottom = pluginManager.getFromPosition('bottom'); + var left = pluginManager.getFromPosition('left'); + var topHeight = pluginManager.getHeightFromPosition('top'); + var leftWidth = pluginManager.getWidthFromPosition('left'); + var promises = []; + var topOffset = 0; + top.forEach(function (plugin) { + promises.push(plugin.root.transition().duration(animationDuration).attr('y', topOffset).attr('x', leftWidth).end()); + topOffset += plugin.options.dimensions.height; + }); + var leftOffset = 0; + left.forEach(function (plugin) { + promises.push(plugin.root.transition().duration(animationDuration).attr('x', leftOffset).attr('y', topHeight).end()); + leftOffset += plugin.options.dimensions.width; + }); + bottom.forEach(function (plugin) { + promises.push(plugin.root.transition().duration(animationDuration).attr('x', leftWidth).attr('y', topHeight + domainsContainerPainter.height()).end()); + }); + leftOffset += domainsContainerPainter.width(); + right.forEach(function (plugin) { + promises.push(plugin.root.transition().duration(animationDuration).attr('x', leftOffset).attr('y', topHeight).end()); + leftOffset += plugin.options.dimensions.width; + }); + return promises; + } + }, { + key: "insideWidth", + value: function insideWidth() { + return this.calendar.pluginManager.getWidthFromPosition('left') + this.calendar.pluginManager.getWidthFromPosition('right'); + } + }, { + key: "insideHeight", + value: function insideHeight() { + return this.calendar.pluginManager.getHeightFromPosition('top') + this.calendar.pluginManager.getHeightFromPosition('bottom'); + } + }]); + return PluginPainter; +}(); + +var _CalendarPainter_instances, _CalendarPainter_getHeight, _CalendarPainter_getWidth, _CalendarPainter_resize; +var DEFAULT_SELECTOR = '.ch-container'; +var CalendarPainter = /*#__PURE__*/function () { + function CalendarPainter(calendar) { + _classCallCheck(this, CalendarPainter); + _CalendarPainter_instances.add(this); + this.calendar = calendar; + this.dimensions = { + width: 0, + height: 0 + }; + this.root = null; + this.domainsContainerPainter = new DomainsContainerPainter(calendar); + this.pluginPainter = new PluginPainter(calendar); + } + _createClass(CalendarPainter, [{ + key: "setup", + value: function setup() { + var _this$calendar$option = this.calendar.options.options, + itemSelector = _this$calendar$option.itemSelector, + theme = _this$calendar$option.theme; + if (!this.root) { + this.root = select(itemSelector).append('svg').attr('data-theme', theme).attr('class', DEFAULT_SELECTOR.slice(1)); + this.domainsContainerPainter.setup(); + } + this.calendar.pluginManager.setupAll(); + return true; + } + }, { + key: "paint", + value: function paint() { + var navigationDir = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ScrollDirection.SCROLL_NONE; + var transitions = this.domainsContainerPainter.paint(navigationDir).concat(this.pluginPainter.paint()).concat(this.domainsContainerPainter.updatePosition()); + __classPrivateFieldGet(this, _CalendarPainter_instances, "m", _CalendarPainter_resize).call(this); + return Promise.allSettled(transitions); + } + }, { + key: "destroy", + value: function destroy() { + var result = this.calendar.pluginManager.destroyAll().concat(this.domainsContainerPainter.destroy()); + if (!this.root) { + return Promise.allSettled(result); + } + result.push(this.root.transition().duration(this.calendar.options.options.animationDuration).attr('width', 0).attr('height', 0).remove().end()); + return Promise.allSettled(result); + } + }]); + return CalendarPainter; +}(); +_CalendarPainter_instances = new WeakSet(), _CalendarPainter_getHeight = function _CalendarPainter_getHeight() { + return this.domainsContainerPainter.height() + this.pluginPainter.insideHeight(); +}, _CalendarPainter_getWidth = function _CalendarPainter_getWidth() { + return this.domainsContainerPainter.width() + this.pluginPainter.insideWidth(); +}, _CalendarPainter_resize = function _CalendarPainter_resize() { + var options = this.calendar.options.options; + var newWidth = __classPrivateFieldGet(this, _CalendarPainter_instances, "m", _CalendarPainter_getWidth).call(this); + var newHeight = __classPrivateFieldGet(this, _CalendarPainter_instances, "m", _CalendarPainter_getHeight).call(this); + this.root.transition().duration(options.animationDuration).attr('width', newWidth).attr('height', newHeight); + if (newWidth !== this.dimensions.width || newHeight !== this.dimensions.height) { + this.calendar.eventEmitter.emit('resize', newWidth, newHeight, this.dimensions.width, this.dimensions.height); + } + this.dimensions = { + width: newWidth, + height: newHeight + }; +}; + +/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + +var freeGlobal$1 = freeGlobal; + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = freeGlobal$1 || freeSelf || Function('return this')(); + +var root$1 = root; + +/** Built-in value references. */ +var Symbol$1 = root$1.Symbol; + +var Symbol$2 = Symbol$1; + +/** Used for built-in method references. */ +var objectProto$f = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty$c = objectProto$f.hasOwnProperty; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString$1 = objectProto$f.toString; + +/** Built-in value references. */ +var symToStringTag$1 = Symbol$2 ? Symbol$2.toStringTag : undefined; + +/** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ +function getRawTag(value) { + var isOwn = hasOwnProperty$c.call(value, symToStringTag$1), + tag = value[symToStringTag$1]; + + try { + value[symToStringTag$1] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString$1.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag$1] = tag; + } else { + delete value[symToStringTag$1]; + } + } + return result; +} + +/** Used for built-in method references. */ +var objectProto$e = Object.prototype; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto$e.toString; + +/** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ +function objectToString$1(value) { + return nativeObjectToString.call(value); +} + +/** `Object#toString` result references. */ +var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; + +/** Built-in value references. */ +var symToStringTag = Symbol$2 ? Symbol$2.toStringTag : undefined; + +/** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? getRawTag(value) + : objectToString$1(value); +} + +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject$2(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); +} + +/** `Object#toString` result references. */ +var asyncTag = '[object AsyncFunction]', + funcTag$1 = '[object Function]', + genTag = '[object GeneratorFunction]', + proxyTag = '[object Proxy]'; + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + if (!isObject$2(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag(value); + return tag == funcTag$1 || tag == genTag || tag == asyncTag || tag == proxyTag; +} + +var $$4 = _export; +var toObject$1 = toObject$b; +var nativeKeys$2 = objectKeys$3; +var fails$5 = fails$u; + +var FAILS_ON_PRIMITIVES = fails$5(function () { nativeKeys$2(1); }); + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +$$4({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { + keys: function keys(it) { + return nativeKeys$2(toObject$1(it)); + } +}); + +var isObject$1 = isObject$j; +var classof$1 = classofRaw$2; +var wellKnownSymbol$3 = wellKnownSymbol$m; + +var MATCH$1 = wellKnownSymbol$3('match'); + +// `IsRegExp` abstract operation +// https://tc39.es/ecma262/#sec-isregexp +var isRegexp = function (it) { + var isRegExp; + return isObject$1(it) && ((isRegExp = it[MATCH$1]) !== undefined ? !!isRegExp : classof$1(it) == 'RegExp'); +}; + +var isRegExp = isRegexp; + +var $TypeError$1 = TypeError; + +var notARegexp = function (it) { + if (isRegExp(it)) { + throw $TypeError$1("The method doesn't accept regular expressions"); + } return it; +}; + +var wellKnownSymbol$2 = wellKnownSymbol$m; + +var MATCH = wellKnownSymbol$2('match'); + +var correctIsRegexpLogic = function (METHOD_NAME) { + var regexp = /./; + try { + '/./'[METHOD_NAME](regexp); + } catch (error1) { + try { + regexp[MATCH] = false; + return '/./'[METHOD_NAME](regexp); + } catch (error2) { /* empty */ } + } return false; +}; + +var $$3 = _export; +var uncurryThis$7 = functionUncurryThisClause; +var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; +var toLength$1 = toLength$3; +var toString$4 = toString$a; +var notARegExp$1 = notARegexp; +var requireObjectCoercible$2 = requireObjectCoercible$7; +var correctIsRegExpLogic$1 = correctIsRegexpLogic; + +// eslint-disable-next-line es/no-string-prototype-startswith -- safe +var nativeStartsWith = uncurryThis$7(''.startsWith); +var stringSlice$3 = uncurryThis$7(''.slice); +var min$1 = Math.min; + +var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic$1('startsWith'); +// https://github.com/zloirock/core-js/pull/702 +var MDN_POLYFILL_BUG = !CORRECT_IS_REGEXP_LOGIC && !!function () { + var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith'); + return descriptor && !descriptor.writable; +}(); + +// `String.prototype.startsWith` method +// https://tc39.es/ecma262/#sec-string.prototype.startswith +$$3({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { + startsWith: function startsWith(searchString /* , position = 0 */) { + var that = toString$4(requireObjectCoercible$2(this)); + notARegExp$1(searchString); + var index = toLength$1(min$1(arguments.length > 1 ? arguments[1] : undefined, that.length)); + var search = toString$4(searchString); + return nativeStartsWith + ? nativeStartsWith(that, search, index) + : stringSlice$3(that, index, index + search.length) === search; + } +}); + +var DESCRIPTORS$1 = descriptors; +var uncurryThis$6 = functionUncurryThis; +var objectKeys = objectKeys$3; +var toIndexedObject = toIndexedObject$9; +var $propertyIsEnumerable = objectPropertyIsEnumerable.f; + +var propertyIsEnumerable$2 = uncurryThis$6($propertyIsEnumerable); +var push$1 = uncurryThis$6([].push); + +// `Object.{ entries, values }` methods implementation +var createMethod = function (TO_ENTRIES) { + return function (it) { + var O = toIndexedObject(it); + var keys = objectKeys(O); + var length = keys.length; + var i = 0; + var result = []; + var key; + while (length > i) { + key = keys[i++]; + if (!DESCRIPTORS$1 || propertyIsEnumerable$2(O, key)) { + push$1(result, TO_ENTRIES ? [key, O[key]] : O[key]); + } + } + return result; + }; +}; + +var objectToArray = { + // `Object.entries` method + // https://tc39.es/ecma262/#sec-object.entries + entries: createMethod(true), + // `Object.values` method + // https://tc39.es/ecma262/#sec-object.values + values: createMethod(false) +}; + +var $$2 = _export; +var $entries = objectToArray.entries; + +// `Object.entries` method +// https://tc39.es/ecma262/#sec-object.entries +$$2({ target: 'Object', stat: true }, { + entries: function entries(O) { + return $entries(O); + } +}); + +function defined(x) { + return x != null && !Number.isNaN(x); +} + +function ascendingDefined(a, b) { + return +defined(b) - +defined(a) || ascending(a, b); +} + +function finite(x) { + return isFinite(x) ? x : NaN; +} + +function positive(x) { + return x > 0 && isFinite(x) ? x : NaN; +} + +function negative(x) { + return x < 0 && isFinite(x) ? x : NaN; +} + +const re = /^(?:[-+]\d{2})?\d{4}(?:-\d{2}(?:-\d{2})?)?(?:T\d{2}:\d{2}(?::\d{2}(?:\.\d{3})?)?(?:Z|[-+]\d{2}:?\d{2})?)?$/; + +function parse(string, fallback) { + if (!re.test(string += "")) return typeof fallback === "function" ? fallback(string) : fallback; + return new Date(string); +} + +const timeIntervals = new Map([ + ["second", timeSecond], + ["minute", timeMinute], + ["hour", timeHour], + ["day", timeDay], + ["week", timeWeek], + ["month", timeMonth], + ["quarter", timeMonth.every(3)], + ["half", timeMonth.every(6)], + ["year", timeYear], + ["monday", timeMonday], + ["tuesday", timeTuesday], + ["wednesday", timeWednesday], + ["thursday", timeThursday], + ["friday", timeFriday], + ["saturday", timeSaturday], + ["sunday", timeSunday] +]); + +const utcIntervals = new Map([ + ["second", utcSecond], + ["minute", utcMinute], + ["hour", utcHour], + ["day", utcDay], + ["week", utcWeek], + ["month", utcMonth], + ["quarter", utcMonth.every(3)], + ["half", utcMonth.every(6)], + ["year", utcYear], + ["monday", utcMonday], + ["tuesday", utcTuesday], + ["wednesday", utcWednesday], + ["thursday", utcThursday], + ["friday", utcFriday], + ["saturday", utcSaturday], + ["sunday", utcSunday] +]); + +function maybeTimeInterval(interval) { + const i = timeIntervals.get(`${interval}`.toLowerCase()); + if (!i) throw new Error(`unknown interval: ${interval}`); + return i; +} + +function maybeUtcInterval(interval) { + const i = utcIntervals.get(`${interval}`.toLowerCase()); + if (!i) throw new Error(`unknown interval: ${interval}`); + return i; +} + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray +const TypedArray = Object.getPrototypeOf(Uint8Array); +const objectToString = Object.prototype.toString; +const constant$1 = (x) => () => x; + +// If the values are specified as a typed array, no coercion is required. +function coerceNumbers(values) { + return values instanceof TypedArray ? values : map(values, coerceNumber, Float64Array); +} + +// Unlike Mark’s number, here we want to convert null and undefined to NaN since +// the result will be stored in a Float64Array and we don’t want null to be +// coerced to zero. We use Number instead of unary + to allow BigInt coercion. +function coerceNumber(x) { + return x == null ? NaN : Number(x); +} + +function coerceDates(values) { + return map(values, coerceDate); +} + +// When coercing strings to dates, we only want to allow the ISO 8601 format +// since the built-in string parsing of the Date constructor varies across +// browsers. (In the future, this could be made more liberal if desired, though +// it is still generally preferable to do date parsing yourself explicitly, +// rather than rely on Plot.) Any non-string values are coerced to number first +// and treated as milliseconds since UNIX epoch. +function coerceDate(x) { + return x instanceof Date && !isNaN(x) + ? x + : typeof x === "string" + ? parse(x) + : x == null || isNaN((x = +x)) + ? undefined + : new Date(x); +} + +// Promotes the specified data to an array as needed. +function arrayify(data) { + return data == null || data instanceof Array || data instanceof TypedArray ? data : Array.from(data); +} + +// An optimization of type.from(values, f): if the given values are already an +// instanceof the desired array type, the faster values.map method is used. +function map(values, f, type = Array) { + return values == null ? values : values instanceof type ? values.map(f) : type.from(values, f); +} + +// An optimization of type.from(values): if the given values are already an +// instanceof the desired array type, the faster values.slice method is used. +function slice(values, type = Array) { + return values instanceof type ? values.slice() : type.from(values); +} + +// Disambiguates an options object (e.g., {y: "x2"}) from a primitive value. +function isObject(option) { + return option?.toString === objectToString; +} + +// Disambiguates a scale options object (e.g., {color: {type: "linear"}}) from +// some other option (e.g., {color: "red"}). When creating standalone legends, +// this is used to test whether a scale is defined; this should be consistent +// with inferScaleType when there are no channels associated with the scale, and +// if this returns true, then normalizeScale must return non-null. +function isScaleOptions(option) { + return isObject(option) && (option.type !== undefined || option.domain !== undefined); +} + +// If interval is not nullish, converts interval shorthand such as a number (for +// multiples) or a time interval name (such as “dayâ€) to a {floor, offset, +// range} object similar to a D3 time interval. +function maybeInterval(interval, type) { + if (interval == null) return; + if (typeof interval === "number") { + if (0 < interval && interval < 1 && Number.isInteger(1 / interval)) interval = -1 / interval; + const n = Math.abs(interval); + return interval < 0 + ? { + floor: (d) => Math.floor(d * n) / n, + offset: (d) => (d * n + 1) / n, // note: no optional step for simplicity + range: (lo, hi) => range(Math.ceil(lo * n), hi * n).map((x) => x / n) + } + : { + floor: (d) => Math.floor(d / n) * n, + offset: (d) => d + n, // note: no optional step for simplicity + range: (lo, hi) => range(Math.ceil(lo / n), hi / n).map((x) => x * n) + }; + } + if (typeof interval === "string") return (type === "time" ? maybeTimeInterval : maybeUtcInterval)(interval); + if (typeof interval.floor !== "function") throw new Error("invalid interval; missing floor method"); + if (typeof interval.offset !== "function") throw new Error("invalid interval; missing offset method"); + return interval; +} + +// Like maybeInterval, but requires a range method too. +function maybeRangeInterval(interval, type) { + interval = maybeInterval(interval, type); + if (interval && typeof interval.range !== "function") throw new Error("invalid interval: missing range method"); + return interval; +} + +// Like maybeRangeInterval, but requires a ceil method too. +function maybeNiceInterval(interval, type) { + interval = maybeRangeInterval(interval, type); + if (interval && typeof interval.ceil !== "function") throw new Error("invalid interval: missing ceil method"); + return interval; +} + +function isOrdinal(values) { + for (const value of values) { + if (value == null) continue; + const type = typeof value; + return type === "string" || type === "boolean"; + } +} + +function isTemporal(values) { + for (const value of values) { + if (value == null) continue; + return value instanceof Date; + } +} + +// Are these strings that might represent dates? This is stricter than ISO 8601 +// because we want to ignore false positives on numbers; for example, the string +// "1192" is more likely to represent a number than a date even though it is +// valid ISO 8601 representing 1192-01-01. +function isTemporalString(values) { + for (const value of values) { + if (value == null) continue; + return typeof value === "string" && isNaN(value) && parse(value); + } +} + +// Are these strings that might represent numbers? This is stricter than +// coercion because we want to ignore false positives on e.g. empty strings. +function isNumericString(values) { + for (const value of values) { + if (value == null) continue; + if (typeof value !== "string") return false; + if (!value.trim()) continue; + return !isNaN(value); + } +} + +function isNoneish(value) { + return value == null || isNone(value); +} + +function isNone(value) { + return /^\s*none\s*$/i.test(value); +} + +// Like a sort comparator, returns a positive value if the given array of values +// is in ascending order, a negative value if the values are in descending +// order. Assumes monotonicity; only tests the first and last values. +function orderof(values) { + if (values == null) return; + const first = values[0]; + const last = values[values.length - 1]; + return descending(first, last); +} + +// Positional scales have associated axes, and for ordinal data, a point or band +// scale is used instead of an ordinal scale. +const position = Symbol("position"); + +// Color scales default to the turbo interpolator for quantitative data, and to +// the Tableau10 scheme for ordinal data. Color scales may also have an +// associated legend. +const color = Symbol("color"); + +// Radius scales default to the sqrt type, have a default range of [0, 3], and a +// default domain from 0 to the median first quartile of associated channels. +const radius = Symbol("radius"); + +// Length scales default to the linear type, have a default range of [0, 12], +// and a default domain from 0 to the median median of associated channels. +const length = Symbol("length"); + +// Opacity scales have a default range of [0, 1], and a default domain from 0 to +// the maximum value of associated channels. +const opacity = Symbol("opacity"); + +// Symbol scales have a default range of categorical symbols. +const symbol = Symbol("symbol"); + +// TODO Rather than hard-coding the list of known scale names, collect the names +// and categories for each plot specification, so that custom marks can register +// custom scales. +const registry = new Map([ + ["x", position], + ["y", position], + ["fx", position], + ["fy", position], + ["r", radius], + ["color", color], + ["opacity", opacity], + ["symbol", symbol], + ["length", length] +]); + +const sqrt3 = Math.sqrt(3); +const sqrt4_3 = 2 / sqrt3; + +const symbolHexagon = { + draw(context, size) { + const rx = Math.sqrt(size / Math.PI), + ry = rx * sqrt4_3, + hy = ry / 2; + context.moveTo(0, ry); + context.lineTo(rx, hy); + context.lineTo(rx, -hy); + context.lineTo(0, -ry); + context.lineTo(-rx, -hy); + context.lineTo(-rx, hy); + context.closePath(); + } +}; + +const symbols = new Map([ + ["asterisk", symbolAsterisk], + ["circle", symbolCircle], + ["cross", symbolCross], + ["diamond", symbolDiamond], + ["diamond2", symbolDiamond2], + ["hexagon", symbolHexagon], + ["plus", symbolPlus], + ["square", symbolSquare], + ["square2", symbolSquare2], + ["star", symbolStar], + ["times", symbolTimes], + ["triangle", symbolTriangle], + ["triangle2", symbolTriangle2], + ["wye", symbolWye] +]); + +function isSymbolObject(value) { + return value && typeof value.draw === "function"; +} + +function maybeSymbol(symbol) { + if (symbol == null || isSymbolObject(symbol)) return symbol; + const value = symbols.get(`${symbol}`.toLowerCase()); + if (value) return value; + throw new Error(`invalid symbol: ${symbol}`); +} + +function warn(message) { + console.warn(message); +} + +const ordinalSchemes = new Map([ + // categorical + ["accent", schemeAccent], + ["category10", schemeCategory10], + ["dark2", schemeDark2], + ["paired", schemePaired], + ["pastel1", schemePastel1], + ["pastel2", schemePastel2], + ["set1", schemeSet1], + ["set2", schemeSet2], + ["set3", schemeSet3], + ["tableau10", schemeTableau10], + + // diverging + ["brbg", scheme11(schemeBrBG, interpolateBrBG)], + ["prgn", scheme11(schemePRGn, interpolatePRGn)], + ["piyg", scheme11(schemePiYG, interpolatePiYG)], + ["puor", scheme11(schemePuOr, interpolatePuOr)], + ["rdbu", scheme11(schemeRdBu, interpolateRdBu)], + ["rdgy", scheme11(schemeRdGy, interpolateRdGy)], + ["rdylbu", scheme11(schemeRdYlBu, interpolateRdYlBu)], + ["rdylgn", scheme11(schemeRdYlGn, interpolateRdYlGn)], + ["spectral", scheme11(schemeSpectral, interpolateSpectral)], + + // reversed diverging (for temperature data) + ["burd", scheme11r(schemeRdBu, interpolateRdBu)], + ["buylrd", scheme11r(schemeRdYlBu, interpolateRdYlBu)], + + // sequential (single-hue) + ["blues", scheme9(schemeBlues, interpolateBlues)], + ["greens", scheme9(schemeGreens, interpolateGreens)], + ["greys", scheme9(schemeGreys, interpolateGreys)], + ["oranges", scheme9(schemeOranges, interpolateOranges)], + ["purples", scheme9(schemePurples, interpolatePurples)], + ["reds", scheme9(schemeReds, interpolateReds)], + + // sequential (multi-hue) + ["turbo", schemei(interpolateTurbo)], + ["viridis", schemei(interpolateViridis)], + ["magma", schemei(interpolateMagma)], + ["inferno", schemei(interpolateInferno)], + ["plasma", schemei(interpolatePlasma)], + ["cividis", schemei(interpolateCividis)], + ["cubehelix", schemei(interpolateCubehelixDefault)], + ["warm", schemei(interpolateWarm)], + ["cool", schemei(interpolateCool)], + ["bugn", scheme9(schemeBuGn, interpolateBuGn)], + ["bupu", scheme9(schemeBuPu, interpolateBuPu)], + ["gnbu", scheme9(schemeGnBu, interpolateGnBu)], + ["orrd", scheme9(schemeOrRd, interpolateOrRd)], + ["pubu", scheme9(schemePuBu, interpolatePuBu)], + ["pubugn", scheme9(schemePuBuGn, interpolatePuBuGn)], + ["purd", scheme9(schemePuRd, interpolatePuRd)], + ["rdpu", scheme9(schemeRdPu, interpolateRdPu)], + ["ylgn", scheme9(schemeYlGn, interpolateYlGn)], + ["ylgnbu", scheme9(schemeYlGnBu, interpolateYlGnBu)], + ["ylorbr", scheme9(schemeYlOrBr, interpolateYlOrBr)], + ["ylorrd", scheme9(schemeYlOrRd, interpolateYlOrRd)], + + // cyclical + ["rainbow", schemeicyclical(interpolateRainbow)], + ["sinebow", schemeicyclical(interpolateSinebow)] +]); + +function scheme9(scheme, interpolate) { + return ({length: n}) => { + if (n === 1) return [scheme[3][1]]; // favor midpoint + if (n === 2) return [scheme[3][1], scheme[3][2]]; // favor darker + n = Math.max(3, Math.floor(n)); + return n > 9 ? quantize(interpolate, n) : scheme[n]; + }; +} + +function scheme11(scheme, interpolate) { + return ({length: n}) => { + if (n === 2) return [scheme[3][0], scheme[3][2]]; // favor diverging extrema + n = Math.max(3, Math.floor(n)); + return n > 11 ? quantize(interpolate, n) : scheme[n]; + }; +} + +function scheme11r(scheme, interpolate) { + return ({length: n}) => { + if (n === 2) return [scheme[3][2], scheme[3][0]]; // favor diverging extrema + n = Math.max(3, Math.floor(n)); + return n > 11 ? quantize((t) => interpolate(1 - t), n) : scheme[n].slice().reverse(); + }; +} + +function schemei(interpolate) { + return ({length: n}) => quantize(interpolate, Math.max(2, Math.floor(n))); +} + +function schemeicyclical(interpolate) { + return ({length: n}) => quantize(interpolate, Math.floor(n) + 1).slice(0, -1); +} + +function ordinalScheme(scheme) { + const s = `${scheme}`.toLowerCase(); + if (!ordinalSchemes.has(s)) throw new Error(`unknown ordinal scheme: ${s}`); + return ordinalSchemes.get(s); +} + +function ordinalRange(scheme, length) { + const s = ordinalScheme(scheme); + const r = typeof s === "function" ? s({length}) : s; + return r.length !== length ? r.slice(0, length) : r; +} + +// If the specified domain contains only booleans (ignoring null and undefined), +// returns a corresponding range where false is mapped to the low color and true +// is mapped to the high color of the specified scheme. +function maybeBooleanRange(domain, scheme = "greys") { + const range = new Set(); + const [f, t] = ordinalRange(scheme, 2); + for (const value of domain) { + if (value == null) continue; + if (value === true) range.add(t); + else if (value === false) range.add(f); + else return; + } + return [...range]; +} + +const quantitativeSchemes = new Map([ + // diverging + ["brbg", interpolateBrBG], + ["prgn", interpolatePRGn], + ["piyg", interpolatePiYG], + ["puor", interpolatePuOr], + ["rdbu", interpolateRdBu], + ["rdgy", interpolateRdGy], + ["rdylbu", interpolateRdYlBu], + ["rdylgn", interpolateRdYlGn], + ["spectral", interpolateSpectral], + + // reversed diverging (for temperature data) + ["burd", (t) => interpolateRdBu(1 - t)], + ["buylrd", (t) => interpolateRdYlBu(1 - t)], + + // sequential (single-hue) + ["blues", interpolateBlues], + ["greens", interpolateGreens], + ["greys", interpolateGreys], + ["purples", interpolatePurples], + ["reds", interpolateReds], + ["oranges", interpolateOranges], + + // sequential (multi-hue) + ["turbo", interpolateTurbo], + ["viridis", interpolateViridis], + ["magma", interpolateMagma], + ["inferno", interpolateInferno], + ["plasma", interpolatePlasma], + ["cividis", interpolateCividis], + ["cubehelix", interpolateCubehelixDefault], + ["warm", interpolateWarm], + ["cool", interpolateCool], + ["bugn", interpolateBuGn], + ["bupu", interpolateBuPu], + ["gnbu", interpolateGnBu], + ["orrd", interpolateOrRd], + ["pubugn", interpolatePuBuGn], + ["pubu", interpolatePuBu], + ["purd", interpolatePuRd], + ["rdpu", interpolateRdPu], + ["ylgnbu", interpolateYlGnBu], + ["ylgn", interpolateYlGn], + ["ylorbr", interpolateYlOrBr], + ["ylorrd", interpolateYlOrRd], + + // cyclical + ["rainbow", interpolateRainbow], + ["sinebow", interpolateSinebow] +]); + +function quantitativeScheme(scheme) { + const s = `${scheme}`.toLowerCase(); + if (!quantitativeSchemes.has(s)) throw new Error(`unknown quantitative scheme: ${s}`); + return quantitativeSchemes.get(s); +} + +const divergingSchemes = new Set([ + "brbg", + "prgn", + "piyg", + "puor", + "rdbu", + "rdgy", + "rdylbu", + "rdylgn", + "spectral", + "burd", + "buylrd" +]); + +function isDivergingScheme(scheme) { + return scheme != null && divergingSchemes.has(`${scheme}`.toLowerCase()); +} + +const flip = (i) => (t) => i(1 - t); +const unit = [0, 1]; + +const interpolators = new Map([ + // numbers + ["number", interpolateNumber], + + // color spaces + ["rgb", interpolateRgb], + ["hsl", interpolateHsl], + ["hcl", interpolateHcl], + ["lab", interpolateLab] +]); + +function maybeInterpolator(interpolate) { + const i = `${interpolate}`.toLowerCase(); + if (!interpolators.has(i)) throw new Error(`unknown interpolator: ${i}`); + return interpolators.get(i); +} + +function createScaleQ( + key, + scale, + channels, + { + type, + nice, + clamp, + zero, + domain = inferAutoDomain(key, channels), + unknown, + round, + scheme, + interval, + range = registry.get(key) === radius + ? inferRadialRange(channels, domain) + : registry.get(key) === length + ? inferLengthRange(channels, domain) + : registry.get(key) === opacity + ? unit + : undefined, + interpolate = registry.get(key) === color + ? scheme == null && range !== undefined + ? interpolateRgb + : quantitativeScheme(scheme !== undefined ? scheme : type === "cyclical" ? "rainbow" : "turbo") + : round + ? interpolateRound + : interpolateNumber, + reverse: reverse$1 + } +) { + interval = maybeRangeInterval(interval, type); + if (type === "cyclical" || type === "sequential") type = "linear"; // shorthand for color schemes + reverse$1 = !!reverse$1; + + // Sometimes interpolate is a named interpolator, such as "lab" for Lab color + // space. Other times interpolate is a function that takes two arguments and + // is used in conjunction with the range. And other times the interpolate + // function is a “fixed†interpolator on the [0, 1] interval, as when a + // color scheme such as interpolateRdBu is used. + if (typeof interpolate !== "function") { + interpolate = maybeInterpolator(interpolate); + } + if (interpolate.length === 1) { + if (reverse$1) { + interpolate = flip(interpolate); + reverse$1 = false; + } + if (range === undefined) { + range = Float64Array.from(domain, (_, i) => i / (domain.length - 1)); + if (range.length === 2) range = unit; // optimize common case of [0, 1] + } + scale.interpolate((range === unit ? constant$1 : interpolatePiecewise)(interpolate)); + } else { + scale.interpolate(interpolate); + } + + // If a zero option is specified, we assume that the domain is numeric, and we + // want to ensure that the domain crosses zero. However, note that the domain + // may be reversed (descending) so we shouldn’t assume that the first value is + // smaller than the last; and also it’s possible that the domain has more than + // two values for a “poly†scale. And lastly be careful not to mutate input! + if (zero) { + const [min, max] = extent(domain); + if (min > 0 || max < 0) { + domain = slice(domain); + if (orderof(domain) !== Math.sign(min)) domain[domain.length - 1] = 0; + // [2, 1] or [-2, -1] + else domain[0] = 0; // [1, 2] or [-1, -2] + } + } + + if (reverse$1) domain = reverse(domain); + scale.domain(domain).unknown(unknown); + if (nice) scale.nice(maybeNice(nice, type)), (domain = scale.domain()); + if (range !== undefined) scale.range(range); + if (clamp) scale.clamp(clamp); + return {type, domain, range, scale, interpolate, interval}; +} + +function maybeNice(nice, type) { + return nice === true ? undefined : typeof nice === "number" ? nice : maybeNiceInterval(nice, type); +} + +function createScaleLinear(key, channels, options) { + return createScaleQ(key, scaleLinear(), channels, options); +} + +function createScaleSqrt(key, channels, options) { + return createScalePow(key, channels, {...options, exponent: 0.5}); +} + +function createScalePow(key, channels, {exponent = 1, ...options}) { + return createScaleQ(key, scalePow().exponent(exponent), channels, {...options, type: "pow"}); +} + +function createScaleLog(key, channels, {base = 10, domain = inferLogDomain(channels), ...options}) { + return createScaleQ(key, scaleLog().base(base), channels, {...options, domain}); +} + +function createScaleSymlog(key, channels, {constant = 1, ...options}) { + return createScaleQ(key, scaleSymlog().constant(constant), channels, options); +} + +function createScaleQuantile( + key, + channels, + { + range, + quantiles = range === undefined ? 5 : (range = [...range]).length, // deprecated; use n instead + n = quantiles, + scheme = "rdylbu", + domain = inferQuantileDomain(channels), + unknown, + interpolate, + reverse + } +) { + if (range === undefined) { + range = + interpolate !== undefined + ? quantize(interpolate, n) + : registry.get(key) === color + ? ordinalRange(scheme, n) + : undefined; + } + if (domain.length > 0) { + domain = scaleQuantile(domain, range === undefined ? {length: n} : range).quantiles(); + } + return createScaleThreshold(key, channels, {domain, range, reverse, unknown}); +} + +function createScaleQuantize( + key, + channels, + { + range, + n = range === undefined ? 5 : (range = [...range]).length, + scheme = "rdylbu", + domain = inferAutoDomain(key, channels), + unknown, + interpolate, + reverse + } +) { + const [min, max] = extent(domain); + let thresholds; + if (range === undefined) { + thresholds = ticks(min, max, n); // approximate number of nice, round thresholds + if (thresholds[0] <= min) thresholds.splice(0, 1); // drop exact lower bound + if (thresholds[thresholds.length - 1] >= max) thresholds.pop(); // drop exact upper bound + n = thresholds.length + 1; + range = + interpolate !== undefined + ? quantize(interpolate, n) + : registry.get(key) === color + ? ordinalRange(scheme, n) + : undefined; + } else { + thresholds = quantize(interpolateNumber(min, max), n + 1).slice(1, -1); // exactly n - 1 thresholds to match range + if (min instanceof Date) thresholds = thresholds.map((x) => new Date(x)); // preserve date types + } + if (orderof(arrayify(domain)) < 0) thresholds.reverse(); // preserve descending domain + return createScaleThreshold(key, channels, {domain: thresholds, range, reverse, unknown}); +} + +function createScaleThreshold( + key, + channels, + { + domain = [0], // explicit thresholds in ascending order + unknown, + scheme = "rdylbu", + interpolate, + range = interpolate !== undefined + ? quantize(interpolate, domain.length + 1) + : registry.get(key) === color + ? ordinalRange(scheme, domain.length + 1) + : undefined, + reverse: reverse$1 + } +) { + domain = arrayify(domain); + const sign = orderof(domain); // preserve descending domain + if (!isNaN(sign) && !isOrdered(domain, sign)) throw new Error(`the ${key} scale has a non-monotonic domain`); + if (reverse$1) range = reverse(range); // domain ascending, so reverse range + return { + type: "threshold", + scale: scaleThreshold(sign < 0 ? reverse(domain) : domain, range === undefined ? [] : range).unknown(unknown), + domain, + range + }; +} + +function isOrdered(domain, sign) { + for (let i = 1, n = domain.length, d = domain[0]; i < n; ++i) { + const s = descending(d, (d = domain[i])); + if (s !== 0 && s !== sign) return false; + } + return true; +} + +function createScaleIdentity() { + return {type: "identity", scale: scaleIdentity()}; +} + +function inferDomain$1(channels, f = finite) { + return channels.length + ? [ + min$4(channels, ({value}) => (value === undefined ? value : min$4(value, f))), + max$4(channels, ({value}) => (value === undefined ? value : max$4(value, f))) + ] + : [0, 1]; +} + +function inferAutoDomain(key, channels) { + const type = registry.get(key); + return (type === radius || type === opacity || type === length ? inferZeroDomain : inferDomain$1)(channels); +} + +function inferZeroDomain(channels) { + return [0, channels.length ? max$4(channels, ({value}) => (value === undefined ? value : max$4(value, finite))) : 1]; +} + +// We don’t want the upper bound of the radial domain to be zero, as this would +// be degenerate, so we ignore nonpositive values. We also don’t want the +// maximum default radius to exceed 30px. +function inferRadialRange(channels, domain) { + const hint = channels.find(({radius}) => radius !== undefined); + if (hint !== undefined) return [0, hint.radius]; // a natural maximum radius, e.g. hexbins + const h25 = quantile(channels, 0.5, ({value}) => (value === undefined ? NaN : quantile(value, 0.25, positive))); + const range = domain.map((d) => 3 * Math.sqrt(d / h25)); + const k = 30 / max$4(range); + return k < 1 ? range.map((r) => r * k) : range; +} + +// We want a length scale’s domain to go from zero to a positive value, and to +// treat negative lengths if any as inverted vectors of equivalent magnitude. We +// also don’t want the maximum default length to exceed 60px. +function inferLengthRange(channels, domain) { + const h50 = median(channels, ({value}) => (value === undefined ? NaN : median(value, Math.abs))); + const range = domain.map((d) => (12 * d) / h50); + const k = 60 / max$4(range); + return k < 1 ? range.map((r) => r * k) : range; +} + +function inferLogDomain(channels) { + for (const {value} of channels) { + if (value !== undefined) { + for (let v of value) { + if (v > 0) return inferDomain$1(channels, positive); + if (v < 0) return inferDomain$1(channels, negative); + } + } + } + return [1, 10]; +} + +function inferQuantileDomain(channels) { + const domain = []; + for (const {value} of channels) { + if (value === undefined) continue; + for (const v of value) domain.push(v); + } + return domain; +} + +function interpolatePiecewise(interpolate) { + return (i, j) => (t) => interpolate(i + t * (j - i)); +} + +function createScaleD( + key, + scale, + transform, + channels, + { + type, + nice, + clamp, + domain = inferDomain$1(channels), + unknown, + pivot = 0, + scheme, + range, + symmetric = true, + interpolate = registry.get(key) === color + ? scheme == null && range !== undefined + ? interpolateRgb + : quantitativeScheme(scheme !== undefined ? scheme : "rdbu") + : interpolateNumber, + reverse + } +) { + pivot = +pivot; + let [min, max] = domain; + if (descending(min, max) < 0) ([min, max] = [max, min]), (reverse = !reverse); + min = Math.min(min, pivot); + max = Math.max(max, pivot); + + // Sometimes interpolate is a named interpolator, such as "lab" for Lab color + // space. Other times interpolate is a function that takes two arguments and + // is used in conjunction with the range. And other times the interpolate + // function is a “fixed†interpolator on the [0, 1] interval, as when a + // color scheme such as interpolateRdBu is used. + if (typeof interpolate !== "function") { + interpolate = maybeInterpolator(interpolate); + } + + // If an explicit range is specified, promote it to a piecewise interpolator. + if (range !== undefined) { + interpolate = + interpolate.length === 1 ? interpolatePiecewise(interpolate)(...range) : piecewise(interpolate, range); + } + + // Reverse before normalization. + if (reverse) interpolate = flip(interpolate); + + // Normalize the interpolator for symmetric difference around the pivot. + if (symmetric) { + const mid = transform.apply(pivot); + const mindelta = mid - transform.apply(min); + const maxdelta = transform.apply(max) - mid; + if (mindelta < maxdelta) min = transform.invert(mid - maxdelta); + else if (mindelta > maxdelta) max = transform.invert(mid + mindelta); + } + + scale.domain([min, pivot, max]).unknown(unknown).interpolator(interpolate); + if (clamp) scale.clamp(clamp); + if (nice) scale.nice(nice); + return {type, domain: [min, max], pivot, interpolate, scale}; +} + +function createScaleDiverging(key, channels, options) { + return createScaleD(key, scaleDiverging(), transformIdentity, channels, options); +} + +function createScaleDivergingSqrt(key, channels, options) { + return createScaleDivergingPow(key, channels, {...options, exponent: 0.5}); +} + +function createScaleDivergingPow(key, channels, {exponent = 1, ...options}) { + return createScaleD(key, scaleDivergingPow().exponent((exponent = +exponent)), transformPow(exponent), channels, { + ...options, + type: "diverging-pow" + }); +} + +function createScaleDivergingLog( + key, + channels, + {base = 10, pivot = 1, domain = inferDomain$1(channels, pivot < 0 ? negative : positive), ...options} +) { + return createScaleD(key, scaleDivergingLog().base((base = +base)), transformLog, channels, { + domain, + pivot, + ...options + }); +} + +function createScaleDivergingSymlog(key, channels, {constant = 1, ...options}) { + return createScaleD( + key, + scaleDivergingSymlog().constant((constant = +constant)), + transformSymlog(constant), + channels, + options + ); +} + +const transformIdentity = { + apply(x) { + return x; + }, + invert(x) { + return x; + } +}; + +const transformLog = { + apply: Math.log, + invert: Math.exp +}; + +const transformSqrt = { + apply(x) { + return Math.sign(x) * Math.sqrt(Math.abs(x)); + }, + invert(x) { + return Math.sign(x) * (x * x); + } +}; + +function transformPow(exponent) { + return exponent === 0.5 + ? transformSqrt + : { + apply(x) { + return Math.sign(x) * Math.pow(Math.abs(x), exponent); + }, + invert(x) { + return Math.sign(x) * Math.pow(Math.abs(x), 1 / exponent); + } + }; +} + +function transformSymlog(constant) { + return { + apply(x) { + return Math.sign(x) * Math.log1p(Math.abs(x / constant)); + }, + invert(x) { + return Math.sign(x) * Math.expm1(Math.abs(x)) * constant; + } + }; +} + +function createScaleT(key, scale, channels, options) { + return createScaleQ(key, scale, channels, options); +} + +function createScaleTime(key, channels, options) { + return createScaleT(key, scaleTime(), channels, options); +} + +function createScaleUtc(key, channels, options) { + return createScaleT(key, scaleUtc(), channels, options); +} + +// This denotes an implicitly ordinal color scale: the scale type was not set, +// but the associated values are strings or booleans. If the associated defined +// values are entirely boolean, the range will default to greys. You can opt out +// of this by setting the type explicitly. +const ordinalImplicit = Symbol("ordinal"); + +function createScaleO(key, scale, channels, {type, interval, domain, range, reverse: reverse$1, hint}) { + interval = maybeRangeInterval(interval, type); + if (domain === undefined) domain = inferDomain(channels, interval, key); + if (type === "categorical" || type === ordinalImplicit) type = "ordinal"; // shorthand for color schemes + if (reverse$1) domain = reverse(domain); + scale.domain(domain); + if (range !== undefined) { + // If the range is specified as a function, pass it the domain. + if (typeof range === "function") range = range(domain); + scale.range(range); + } + return {type, domain, range, scale, hint, interval}; +} + +function createScaleOrdinal(key, channels, {type, interval, domain, range, scheme, unknown, ...options}) { + interval = maybeRangeInterval(interval, type); + if (domain === undefined) domain = inferDomain(channels, interval, key); + let hint; + if (registry.get(key) === symbol) { + hint = inferSymbolHint(channels); + range = range === undefined ? inferSymbolRange(hint) : map(range, maybeSymbol); + } else if (registry.get(key) === color) { + if (range === undefined && (type === "ordinal" || type === ordinalImplicit)) { + range = maybeBooleanRange(domain, scheme); + if (range !== undefined) scheme = undefined; // Don’t re-apply scheme. + } + if (scheme === undefined && range === undefined) { + scheme = type === "ordinal" ? "turbo" : "tableau10"; + } + if (scheme !== undefined) { + if (range !== undefined) { + const interpolate = quantitativeScheme(scheme); + const t0 = range[0], + d = range[1] - range[0]; + range = ({length: n}) => quantize((t) => interpolate(t0 + d * t), n); + } else { + range = ordinalScheme(scheme); + } + } + } + if (unknown === scaleImplicit) { + throw new Error(`implicit unknown on ${key} scale is not supported`); + } + return createScaleO(key, scaleOrdinal().unknown(unknown), channels, {...options, type, domain, range, hint}); +} + +function createScalePoint(key, channels, {align = 0.5, padding = 0.5, ...options}) { + return maybeRound(scalePoint().align(align).padding(padding), channels, options, key); +} + +function createScaleBand( + key, + channels, + { + align = 0.5, + padding = 0.1, + paddingInner = padding, + paddingOuter = key === "fx" || key === "fy" ? 0 : padding, + ...options + } +) { + return maybeRound( + scaleBand().align(align).paddingInner(paddingInner).paddingOuter(paddingOuter), + channels, + options, + key + ); +} + +function maybeRound(scale, channels, options, key) { + let {round} = options; + if (round !== undefined) scale.round((round = !!round)); + scale = createScaleO(key, scale, channels, options); + scale.round = round; // preserve for autoScaleRound + return scale; +} + +function inferDomain(channels, interval, key) { + const values = new InternSet(); + for (const {value, domain} of channels) { + if (domain !== undefined) return domain(); // see channelDomain + if (value === undefined) continue; + for (const v of value) values.add(v); + } + if (interval !== undefined) { + const [min, max] = extent(values).map(interval.floor, interval); + return interval.range(min, interval.offset(max)); + } + if (values.size > 10e3 && registry.get(key) === position) { + throw new Error(`implicit ordinal domain of ${key} scale has more than 10,000 values`); + } + return sort(values, ascendingDefined); +} + +// If all channels provide a consistent hint, propagate it to the scale. +function inferHint(channels, key) { + let value; + for (const {hint} of channels) { + const candidate = hint?.[key]; + if (candidate === undefined) continue; // no hint here + if (value === undefined) value = candidate; + // first hint + else if (value !== candidate) return; // inconsistent hint + } + return value; +} + +function inferSymbolHint(channels) { + return { + fill: inferHint(channels, "fill"), + stroke: inferHint(channels, "stroke") + }; +} + +function inferSymbolRange(hint) { + return isNoneish(hint.fill) ? symbolsStroke : symbolsFill; +} + +function normalizeScale(key, scale, hint) { + return createScale(key, hint === undefined ? undefined : [{hint}], {...scale}); +} + +function createScale(key, channels = [], options = {}) { + const type = inferScaleType(key, channels, options); + + // Warn for common misuses of implicit ordinal scales. We disable this test if + // you specify a scale interval or if you set the domain or range explicitly, + // since setting the domain or range (typically with a cardinality of more than + // two) is another indication that you intended for the scale to be ordinal; we + // also disable it for facet scales since these are always band scales. + if ( + options.type === undefined && + options.domain === undefined && + options.range === undefined && + options.interval == null && + key !== "fx" && + key !== "fy" && + isOrdinalScale({type}) + ) { + const values = channels.map(({value}) => value).filter((value) => value !== undefined); + if (values.some(isTemporal)) + warn( + `Warning: some data associated with the ${key} scale are dates. Dates are typically associated with a "utc" or "time" scale rather than a "${formatScaleType( + type + )}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., d3.utcDay), or you can suppress this warning by setting the type of the ${key} scale to "${formatScaleType( + type + )}".` + ); + else if (values.some(isTemporalString)) + warn( + `Warning: some data associated with the ${key} scale are strings that appear to be dates (e.g., YYYY-MM-DD). If these strings represent dates, you should parse them to Date objects. Dates are typically associated with a "utc" or "time" scale rather than a "${formatScaleType( + type + )}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can suppress this warning by setting the type of the ${key} scale to "${formatScaleType( + type + )}".` + ); + else if (values.some(isNumericString)) + warn( + `Warning: some data associated with the ${key} scale are strings that appear to be numbers. If these strings represent numbers, you should parse or coerce them to numbers. Numbers are typically associated with a "linear" scale rather than a "${formatScaleType( + type + )}" scale. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., 1 for integers), or you can suppress this warning by setting the type of the ${key} scale to "${formatScaleType( + type + )}".` + ); + } + + options.type = type; // Mutates input! + + // Once the scale type is known, coerce the associated channel values and any + // explicitly-specified domain to the expected type. + switch (type) { + case "diverging": + case "diverging-sqrt": + case "diverging-pow": + case "diverging-log": + case "diverging-symlog": + case "cyclical": + case "sequential": + case "linear": + case "sqrt": + case "threshold": + case "quantile": + case "pow": + case "log": + case "symlog": + options = coerceType(channels, options, coerceNumbers); + break; + case "identity": + switch (registry.get(key)) { + case position: + options = coerceType(channels, options, coerceNumbers); + break; + case symbol: + options = coerceType(channels, options, coerceSymbols); + break; + } + break; + case "utc": + case "time": + options = coerceType(channels, options, coerceDates); + break; + } + + switch (type) { + case "diverging": + return createScaleDiverging(key, channels, options); + case "diverging-sqrt": + return createScaleDivergingSqrt(key, channels, options); + case "diverging-pow": + return createScaleDivergingPow(key, channels, options); + case "diverging-log": + return createScaleDivergingLog(key, channels, options); + case "diverging-symlog": + return createScaleDivergingSymlog(key, channels, options); + case "categorical": + case "ordinal": + case ordinalImplicit: + return createScaleOrdinal(key, channels, options); + case "cyclical": + case "sequential": + case "linear": + return createScaleLinear(key, channels, options); + case "sqrt": + return createScaleSqrt(key, channels, options); + case "threshold": + return createScaleThreshold(key, channels, options); + case "quantile": + return createScaleQuantile(key, channels, options); + case "quantize": + return createScaleQuantize(key, channels, options); + case "pow": + return createScalePow(key, channels, options); + case "log": + return createScaleLog(key, channels, options); + case "symlog": + return createScaleSymlog(key, channels, options); + case "utc": + return createScaleUtc(key, channels, options); + case "time": + return createScaleTime(key, channels, options); + case "point": + return createScalePoint(key, channels, options); + case "band": + return createScaleBand(key, channels, options); + case "identity": + return registry.get(key) === position ? createScaleIdentity() : {type: "identity"}; + case undefined: + return; + default: + throw new Error(`unknown scale type: ${type}`); + } +} + +function formatScaleType(type) { + return typeof type === "symbol" ? type.description : type; +} + +// A special type symbol when the x and y scales are replaced with a projection. +const typeProjection = {toString: () => "projection"}; + +function inferScaleType(key, channels, {type, domain, range, scheme, pivot, projection}) { + // The facet scales are always band scales; this cannot be changed. + if (key === "fx" || key === "fy") return "band"; + + // If a projection is specified, the x- and y-scales are disabled; these + // channels will be projected rather than scaled. (But still check that none + // of the associated channels are incompatible with a projection.) + if ((key === "x" || key === "y") && projection != null) type = typeProjection; + + // If a channel dictates a scale type, make sure that it is consistent with + // the user-specified scale type (if any) and all other channels. For example, + // barY requires x to be a band scale and disallows any other scale type. + for (const {type: t} of channels) { + if (t === undefined) continue; + else if (type === undefined) type = t; + else if (type !== t) throw new Error(`scale incompatible with channel: ${type} !== ${t}`); + } + + // If the scale, a channel, or user specified a (consistent) type, return it. + if (type === typeProjection) return; + if (type !== undefined) return type; + + // If there’s no data (and no type) associated with this scale, don’t create a scale. + if (domain === undefined && !channels.some(({value}) => value !== undefined)) return; + + // Some scales have default types. + const kind = registry.get(key); + if (kind === radius) return "sqrt"; + if (kind === opacity || kind === length) return "linear"; + if (kind === symbol) return "ordinal"; + + // If the domain or range has more than two values, assume it’s ordinal. You + // can still use a “piecewise†(or “polylinearâ€) scale, but you must set the + // type explicitly. + if ((domain || range || []).length > 2) return asOrdinalType(kind); + + // Otherwise, infer the scale type from the data! Prefer the domain, if + // present, over channels. (The domain and channels should be consistently + // typed, and the domain is more explicit and typically much smaller.) We only + // check the first defined value for expedience and simplicity; we expect + // that the types are consistent. + if (domain !== undefined) { + if (isOrdinal(domain)) return asOrdinalType(kind); + if (isTemporal(domain)) return "utc"; + if (kind === color && (pivot != null || isDivergingScheme(scheme))) return "diverging"; + return "linear"; + } + + // If any channel is ordinal or temporal, it takes priority. + const values = channels.map(({value}) => value).filter((value) => value !== undefined); + if (values.some(isOrdinal)) return asOrdinalType(kind); + if (values.some(isTemporal)) return "utc"; + if (kind === color && (pivot != null || isDivergingScheme(scheme))) return "diverging"; + return "linear"; +} + +// Positional scales default to a point scale instead of an ordinal scale. +function asOrdinalType(kind) { + switch (kind) { + case position: + return "point"; + case color: + return ordinalImplicit; + default: + return "ordinal"; + } +} + +function isOrdinalScale({type}) { + return type === "ordinal" || type === "point" || type === "band" || type === ordinalImplicit; +} + +// Mutates channel.value! +function coerceType(channels, {domain, ...options}, coerceValues) { + for (const c of channels) { + if (c.value !== undefined) { + c.value = coerceValues(c.value); + } + } + return { + domain: domain === undefined ? domain : coerceValues(domain), + ...options + }; +} + +function coerceSymbols(values) { + return map(values, maybeSymbol); +} + +function scale(options = {}) { + let scale; + for (const key in options) { + if (!registry.has(key)) continue; // ignore unknown properties + if (!isScaleOptions(options[key])) continue; // e.g., ignore {color: "red"} + if (scale !== undefined) throw new Error("ambiguous scale definition; multiple scales found"); + scale = exposeScale(normalizeScale(key, options[key])); + } + if (scale === undefined) throw new Error("invalid scale definition; no scale found"); + return scale; +} + +// Note: axis- and legend-related properties (such as label, ticks and +// tickFormat) are not included here as they do not affect the scale’s behavior. +function exposeScale({scale, type, domain, range, interpolate, interval, transform, percent, pivot}) { + if (type === "identity") return {type: "identity", apply: (d) => d, invert: (d) => d}; + const unknown = scale.unknown ? scale.unknown() : undefined; + return { + type, + domain: slice(domain), // defensive copy + ...(range !== undefined && {range: slice(range)}), // defensive copy + ...(transform !== undefined && {transform}), + ...(percent && {percent}), // only exposed if truthy + ...(unknown !== undefined && {unknown}), + ...(interval !== undefined && {interval}), + + // quantitative + ...(interpolate !== undefined && {interpolate}), + ...(scale.clamp && {clamp: scale.clamp()}), + + // diverging (always asymmetric; we never want to apply the symmetric transform twice) + ...(pivot !== undefined && {pivot, symmetric: false}), + + // log, diverging-log + ...(scale.base && {base: scale.base()}), + + // pow, diverging-pow + ...(scale.exponent && {exponent: scale.exponent()}), + + // symlog, diverging-symlog + ...(scale.constant && {constant: scale.constant()}), + + // band, point + ...(scale.align && {align: scale.align(), round: scale.round()}), + ...(scale.padding && + (scale.paddingInner + ? {paddingInner: scale.paddingInner(), paddingOuter: scale.paddingOuter()} + : {padding: scale.padding()})), + ...(scale.bandwidth && {bandwidth: scale.bandwidth(), step: scale.step()}), + + // utilities + apply: (t) => scale(t), + ...(scale.invert && {invert: (t) => scale.invert(t)}) + }; +} + +function normalizedScale(scaleOptions) { + try { + var scaleType = Object.keys(scaleOptions)[0]; + return scale(_defineProperty({}, scaleType, Object.assign(Object.assign({}, scaleOptions[scaleType]), { + clamp: true + }))); + } catch (error) { + return null; + } +} +function scaleStyle(_scale, scaleOptions) { + var styles = {}; + if (scaleOptions.hasOwnProperty('opacity')) { + styles.fill = function () { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + scaleOptions.opacity.baseColor || SCALE_BASE_OPACITY_COLOR + ); + }; + styles['fill-opacity'] = function (d) { + return _scale === null || _scale === void 0 ? void 0 : _scale.apply(d); + }; + } else { + styles.fill = function (d) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + typeof d === 'string' && (d === null || d === void 0 ? void 0 : d.startsWith('#')) ? d : _scale === null || _scale === void 0 ? void 0 : _scale.apply(d) + ); + }; + } + return styles; +} +function applyScaleStyle(elem, _scale, scaleOptions, keyname) { + Object.entries(scaleStyle(_scale, scaleOptions)).forEach(function (_ref) { + var _ref2 = _slicedToArray(_ref, 2), + prop = _ref2[0], + val = _ref2[1]; + return ( + // eslint-disable-next-line implicit-arrow-linebreak + elem.style(prop, function (d) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + val(keyname ? d[keyname] : d) + ); + }) + ); + }); +} + +var Populator = /*#__PURE__*/function () { + function Populator(calendar) { + _classCallCheck(this, Populator); + this.calendar = calendar; + } + _createClass(Populator, [{ + key: "populate", + value: function populate() { + var calendar = this.calendar; + var _calendar$options$opt = calendar.options.options, + scale = _calendar$options$opt.scale, + subDomain = _calendar$options$opt.subDomain; + var colorScale = normalizedScale(scale); + calendar.calendarPainter.root.selectAll('.ch-domain').selectAll('svg').selectAll('g').data(function (d) { + return calendar.domainCollection.get(d) || []; + }).call(function (element) { + applyScaleStyle(element.select('rect'), colorScale, scale, 'v'); + }).call(function (element) { + element.select('text').attr('style', function (d) { + var defaultColor = hcl(colorScale === null || colorScale === void 0 ? void 0 : colorScale.apply(d.v)).l > 60 ? '#000' : '#fff'; + var color = subDomain.color || (d.v ? defaultColor : null); + if (isFunction(color)) { + color = color(d.t, d.v, colorScale === null || colorScale === void 0 ? void 0 : colorScale.apply(d.v)); + } + if (!color) { + return null; + } + return "fill: ".concat(color, ";"); + }).text(function (d, i, nodes) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + calendar.dateHelper.format(d.t, subDomain.label, d.v, nodes[i]) + ); + }); + }).call(function () { + calendar.eventEmitter.emit('fill'); + }); + } + }]); + return Populator; +}(); + +/** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ +function listCacheClear() { + this.__data__ = []; + this.size = 0; +} + +/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ +function eq(value, other) { + return value === other || (value !== value && other !== other); +} + +/** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; +} + +/** Used for built-in method references. */ +var arrayProto = Array.prototype; + +/** Built-in value references. */ +var splice = arrayProto.splice; + +/** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; +} + +/** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; +} + +/** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; +} + +/** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ +function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; +} + +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `ListCache`. +ListCache.prototype.clear = listCacheClear; +ListCache.prototype['delete'] = listCacheDelete; +ListCache.prototype.get = listCacheGet; +ListCache.prototype.has = listCacheHas; +ListCache.prototype.set = listCacheSet; + +/** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ +function stackClear() { + this.__data__ = new ListCache; + this.size = 0; +} + +/** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function stackDelete(key) { + var data = this.__data__, + result = data['delete'](key); + + this.size = data.size; + return result; +} + +/** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function stackGet(key) { + return this.__data__.get(key); +} + +/** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function stackHas(key) { + return this.__data__.has(key); +} + +/** Used to detect overreaching core-js shims. */ +var coreJsData = root$1['__core-js_shared__']; + +var coreJsData$1 = coreJsData; + +/** Used to detect methods masquerading as native. */ +var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData$1 && coreJsData$1.keys && coreJsData$1.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; +}()); + +/** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ +function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); +} + +/** Used for built-in method references. */ +var funcProto$2 = Function.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString$2 = funcProto$2.toString; + +/** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ +function toSource(func) { + if (func != null) { + try { + return funcToString$2.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; +} + +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + +/** Used to detect host constructors (Safari). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** Used for built-in method references. */ +var funcProto$1 = Function.prototype, + objectProto$d = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString$1 = funcProto$1.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty$b = objectProto$d.hasOwnProperty; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + funcToString$1.call(hasOwnProperty$b).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ +function baseIsNative(value) { + if (!isObject$2(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); +} + +/** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function getValue(object, key) { + return object == null ? undefined : object[key]; +} + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; +} + +/* Built-in method references that are verified to be native. */ +var Map$1 = getNative(root$1, 'Map'); + +var Map$2 = Map$1; + +/* Built-in method references that are verified to be native. */ +var nativeCreate = getNative(Object, 'create'); + +var nativeCreate$1 = nativeCreate; + +/** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ +function hashClear() { + this.__data__ = nativeCreate$1 ? nativeCreate$1(null) : {}; + this.size = 0; +} + +/** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; +} + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED$2 = '__lodash_hash_undefined__'; + +/** Used for built-in method references. */ +var objectProto$c = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty$a = objectProto$c.hasOwnProperty; + +/** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function hashGet(key) { + var data = this.__data__; + if (nativeCreate$1) { + var result = data[key]; + return result === HASH_UNDEFINED$2 ? undefined : result; + } + return hasOwnProperty$a.call(data, key) ? data[key] : undefined; +} + +/** Used for built-in method references. */ +var objectProto$b = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty$9 = objectProto$b.hasOwnProperty; + +/** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function hashHas(key) { + var data = this.__data__; + return nativeCreate$1 ? (data[key] !== undefined) : hasOwnProperty$9.call(data, key); +} + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED$1 = '__lodash_hash_undefined__'; + +/** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ +function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = (nativeCreate$1 && value === undefined) ? HASH_UNDEFINED$1 : value; + return this; +} + +/** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Hash(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `Hash`. +Hash.prototype.clear = hashClear; +Hash.prototype['delete'] = hashDelete; +Hash.prototype.get = hashGet; +Hash.prototype.has = hashHas; +Hash.prototype.set = hashSet; + +/** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ +function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new Hash, + 'map': new (Map$2 || ListCache), + 'string': new Hash + }; +} + +/** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ +function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); +} + +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ +function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; +} + +/** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function mapCacheDelete(key) { + var result = getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; +} + +/** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function mapCacheGet(key) { + return getMapData(this, key).get(key); +} + +/** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function mapCacheHas(key) { + return getMapData(this, key).has(key); +} + +/** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ +function mapCacheSet(key, value) { + var data = getMapData(this, key), + size = data.size; + + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; +} + +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `MapCache`. +MapCache.prototype.clear = mapCacheClear; +MapCache.prototype['delete'] = mapCacheDelete; +MapCache.prototype.get = mapCacheGet; +MapCache.prototype.has = mapCacheHas; +MapCache.prototype.set = mapCacheSet; + +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; + +/** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ +function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map$2 || (pairs.length < LARGE_ARRAY_SIZE - 1)) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; +} + +/** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Stack(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; +} + +// Add methods to `Stack`. +Stack.prototype.clear = stackClear; +Stack.prototype['delete'] = stackDelete; +Stack.prototype.get = stackGet; +Stack.prototype.has = stackHas; +Stack.prototype.set = stackSet; + +var defineProperty = (function() { + try { + var func = getNative(Object, 'defineProperty'); + func({}, '', {}); + return func; + } catch (e) {} +}()); + +var defineProperty$1 = defineProperty; + +/** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function baseAssignValue(object, key, value) { + if (key == '__proto__' && defineProperty$1) { + defineProperty$1(object, key, { + 'configurable': true, + 'enumerable': true, + 'value': value, + 'writable': true + }); + } else { + object[key] = value; + } +} + +/** + * This function is like `assignValue` except that it doesn't assign + * `undefined` values. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function assignMergeValue(object, key, value) { + if ((value !== undefined && !eq(object[key], value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } +} + +/** + * Creates a base function for methods like `_.forIn` and `_.forOwn`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var index = -1, + iterable = Object(object), + props = keysFunc(object), + length = props.length; + + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; +} + +/** + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ +var baseFor = createBaseFor(); + +var baseFor$1 = baseFor; + +/** Detect free variable `exports`. */ +var freeExports$2 = typeof exports == 'object' && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule$2 = freeExports$2 && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports$2 = freeModule$2 && freeModule$2.exports === freeExports$2; + +/** Built-in value references. */ +var Buffer$1 = moduleExports$2 ? root$1.Buffer : undefined, + allocUnsafe = Buffer$1 ? Buffer$1.allocUnsafe : undefined; + +/** + * Creates a clone of `buffer`. + * + * @private + * @param {Buffer} buffer The buffer to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Buffer} Returns the cloned buffer. + */ +function cloneBuffer(buffer, isDeep) { + if (isDeep) { + return buffer.slice(); + } + var length = buffer.length, + result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); + + buffer.copy(result); + return result; +} + +/** Built-in value references. */ +var Uint8Array$1 = root$1.Uint8Array; + +var Uint8Array$2 = Uint8Array$1; + +/** + * Creates a clone of `arrayBuffer`. + * + * @private + * @param {ArrayBuffer} arrayBuffer The array buffer to clone. + * @returns {ArrayBuffer} Returns the cloned array buffer. + */ +function cloneArrayBuffer(arrayBuffer) { + var result = new arrayBuffer.constructor(arrayBuffer.byteLength); + new Uint8Array$2(result).set(new Uint8Array$2(arrayBuffer)); + return result; +} + +/** + * Creates a clone of `typedArray`. + * + * @private + * @param {Object} typedArray The typed array to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned typed array. + */ +function cloneTypedArray(typedArray, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; + return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); +} + +/** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ +function copyArray(source, array) { + var index = -1, + length = source.length; + + array || (array = Array(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; +} + +/** Built-in value references. */ +var objectCreate = Object.create; + +/** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} proto The object to inherit from. + * @returns {Object} Returns the new object. + */ +var baseCreate = (function() { + function object() {} + return function(proto) { + if (!isObject$2(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result = new object; + object.prototype = undefined; + return result; + }; +}()); + +var baseCreate$1 = baseCreate; + +/** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ +function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; +} + +/** Built-in value references. */ +var getPrototype = overArg(Object.getPrototypeOf, Object); + +var getPrototype$1 = getPrototype; + +/** Used for built-in method references. */ +var objectProto$a = Object.prototype; + +/** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ +function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$a; + + return value === proto; +} + +/** + * Initializes an object clone. + * + * @private + * @param {Object} object The object to clone. + * @returns {Object} Returns the initialized clone. + */ +function initCloneObject(object) { + return (typeof object.constructor == 'function' && !isPrototype(object)) + ? baseCreate$1(getPrototype$1(object)) + : {}; +} + +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return value != null && typeof value == 'object'; +} + +/** `Object#toString` result references. */ +var argsTag$2 = '[object Arguments]'; + +/** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ +function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag$2; +} + +/** Used for built-in method references. */ +var objectProto$9 = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty$8 = objectProto$9.hasOwnProperty; + +/** Built-in value references. */ +var propertyIsEnumerable$1 = objectProto$9.propertyIsEnumerable; + +/** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ +var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty$8.call(value, 'callee') && + !propertyIsEnumerable$1.call(value, 'callee'); +}; + +var isArguments$1 = isArguments; + +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER$1 = 9007199254740991; + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ +function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER$1; +} + +/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ +function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); +} + +/** + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. + * @example + * + * _.isArrayLikeObject([1, 2, 3]); + * // => true + * + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false + */ +function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); +} + +/** + * This method returns `false`. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {boolean} Returns `false`. + * @example + * + * _.times(2, _.stubFalse); + * // => [false, false] + */ +function stubFalse() { + return false; +} + +/** Detect free variable `exports`. */ +var freeExports$1 = typeof exports == 'object' && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule$1 = freeExports$1 && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1; + +/** Built-in value references. */ +var Buffer = moduleExports$1 ? root$1.Buffer : undefined; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; + +/** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ +var isBuffer = nativeIsBuffer || stubFalse; + +var isBuffer$1 = isBuffer; + +/** `Object#toString` result references. */ +var objectTag$3 = '[object Object]'; + +/** Used for built-in method references. */ +var funcProto = Function.prototype, + objectProto$8 = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty$7 = objectProto$8.hasOwnProperty; + +/** Used to infer the `Object` constructor. */ +var objectCtorString = funcToString.call(Object); + +/** + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. + * + * @static + * @memberOf _ + * @since 0.8.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true + * + * _.isPlainObject(Object.create(null)); + * // => true + */ +function isPlainObject(value) { + if (!isObjectLike(value) || baseGetTag(value) != objectTag$3) { + return false; + } + var proto = getPrototype$1(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty$7.call(proto, 'constructor') && proto.constructor; + return typeof Ctor == 'function' && Ctor instanceof Ctor && + funcToString.call(Ctor) == objectCtorString; +} + +/** `Object#toString` result references. */ +var argsTag$1 = '[object Arguments]', + arrayTag$1 = '[object Array]', + boolTag$1 = '[object Boolean]', + dateTag$1 = '[object Date]', + errorTag$1 = '[object Error]', + funcTag = '[object Function]', + mapTag$2 = '[object Map]', + numberTag$1 = '[object Number]', + objectTag$2 = '[object Object]', + regexpTag$1 = '[object RegExp]', + setTag$2 = '[object Set]', + stringTag$2 = '[object String]', + weakMapTag$1 = '[object WeakMap]'; + +var arrayBufferTag$1 = '[object ArrayBuffer]', + dataViewTag$2 = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** Used to identify `toStringTag` values of typed arrays. */ +var typedArrayTags = {}; +typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = +typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = +typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = +typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = +typedArrayTags[uint32Tag] = true; +typedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] = +typedArrayTags[arrayBufferTag$1] = typedArrayTags[boolTag$1] = +typedArrayTags[dataViewTag$2] = typedArrayTags[dateTag$1] = +typedArrayTags[errorTag$1] = typedArrayTags[funcTag] = +typedArrayTags[mapTag$2] = typedArrayTags[numberTag$1] = +typedArrayTags[objectTag$2] = typedArrayTags[regexpTag$1] = +typedArrayTags[setTag$2] = typedArrayTags[stringTag$2] = +typedArrayTags[weakMapTag$1] = false; + +/** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ +function baseIsTypedArray(value) { + return isObjectLike(value) && + isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; +} + +/** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ +function baseUnary(func) { + return function(value) { + return func(value); + }; +} + +/** Detect free variable `exports`. */ +var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Detect free variable `process` from Node.js. */ +var freeProcess = moduleExports && freeGlobal$1.process; + +/** Used to access faster Node.js helpers. */ +var nodeUtil = (function() { + try { + // Use `util.types` for Node.js 10+. + var types = freeModule && freeModule.require && freeModule.require('util').types; + + if (types) { + return types; + } + + // Legacy `process.binding('util')` for Node.js < 10. + return freeProcess && freeProcess.binding && freeProcess.binding('util'); + } catch (e) {} +}()); + +var nodeUtil$1 = nodeUtil; + +/* Node.js helper references. */ +var nodeIsTypedArray = nodeUtil$1 && nodeUtil$1.isTypedArray; + +/** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ +var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + +var isTypedArray$1 = isTypedArray; + +/** + * Gets the value at `key`, unless `key` is "__proto__" or "constructor". + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function safeGet(object, key) { + if (key === 'constructor' && typeof object[key] === 'function') { + return; + } + + if (key == '__proto__') { + return; + } + + return object[key]; +} + +/** Used for built-in method references. */ +var objectProto$7 = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty$6 = objectProto$7.hasOwnProperty; + +/** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty$6.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } +} + +/** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property identifiers to copy. + * @param {Object} [object={}] The object to copy properties to. + * @param {Function} [customizer] The function to customize copied values. + * @returns {Object} Returns `object`. + */ +function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); + + var index = -1, + length = props.length; + + while (++index < length) { + var key = props[index]; + + var newValue = customizer + ? customizer(object[key], source[key], key, object, source) + : undefined; + + if (newValue === undefined) { + newValue = source[key]; + } + if (isNew) { + baseAssignValue(object, key, newValue); + } else { + assignValue(object, key, newValue); + } + } + return object; +} + +/** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ +function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); + + while (++index < n) { + result[index] = iteratee(index); + } + return result; +} + +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** Used to detect unsigned integer values. */ +var reIsUint = /^(?:0|[1-9]\d*)$/; + +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + + return !!length && + (type == 'number' || + (type != 'symbol' && reIsUint.test(value))) && + (value > -1 && value % 1 == 0 && value < length); +} + +/** Used for built-in method references. */ +var objectProto$6 = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty$5 = objectProto$6.hasOwnProperty; + +/** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ +function arrayLikeKeys(value, inherited) { + var isArr = isArray$3(value), + isArg = !isArr && isArguments$1(value), + isBuff = !isArr && !isArg && isBuffer$1(value), + isType = !isArr && !isArg && !isBuff && isTypedArray$1(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? baseTimes(value.length, String) : [], + length = result.length; + + for (var key in value) { + if ((inherited || hasOwnProperty$5.call(value, key)) && + !(skipIndexes && ( + // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || + // Node.js 0.10 has enumerable non-index properties on buffers. + (isBuff && (key == 'offset' || key == 'parent')) || + // PhantomJS 2 has enumerable non-index properties on typed arrays. + (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || + // Skip index properties. + isIndex(key, length) + ))) { + result.push(key); + } + } + return result; +} + +/** + * This function is like + * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * except that it includes inherited enumerable properties. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function nativeKeysIn(object) { + var result = []; + if (object != null) { + for (var key in Object(object)) { + result.push(key); + } + } + return result; +} + +/** Used for built-in method references. */ +var objectProto$5 = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty$4 = objectProto$5.hasOwnProperty; + +/** + * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function baseKeysIn(object) { + if (!isObject$2(object)) { + return nativeKeysIn(object); + } + var isProto = isPrototype(object), + result = []; + + for (var key in object) { + if (!(key == 'constructor' && (isProto || !hasOwnProperty$4.call(object, key)))) { + result.push(key); + } + } + return result; +} + +/** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ +function keysIn(object) { + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); +} + +/** + * Converts `value` to a plain object flattening inherited enumerable string + * keyed properties of `value` to own properties of the plain object. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {Object} Returns the converted plain object. + * @example + * + * function Foo() { + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.assign({ 'a': 1 }, new Foo); + * // => { 'a': 1, 'b': 2 } + * + * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); + * // => { 'a': 1, 'b': 2, 'c': 3 } + */ +function toPlainObject(value) { + return copyObject(value, keysIn(value)); +} + +/** + * A specialized version of `baseMerge` for arrays and objects which performs + * deep merges and tracks traversed objects enabling objects with circular + * references to be merged. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {string} key The key of the value to merge. + * @param {number} srcIndex The index of `source`. + * @param {Function} mergeFunc The function to merge values. + * @param {Function} [customizer] The function to customize assigned values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ +function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { + var objValue = safeGet(object, key), + srcValue = safeGet(source, key), + stacked = stack.get(srcValue); + + if (stacked) { + assignMergeValue(object, key, stacked); + return; + } + var newValue = customizer + ? customizer(objValue, srcValue, (key + ''), object, source, stack) + : undefined; + + var isCommon = newValue === undefined; + + if (isCommon) { + var isArr = isArray$3(srcValue), + isBuff = !isArr && isBuffer$1(srcValue), + isTyped = !isArr && !isBuff && isTypedArray$1(srcValue); + + newValue = srcValue; + if (isArr || isBuff || isTyped) { + if (isArray$3(objValue)) { + newValue = objValue; + } + else if (isArrayLikeObject(objValue)) { + newValue = copyArray(objValue); + } + else if (isBuff) { + isCommon = false; + newValue = cloneBuffer(srcValue, true); + } + else if (isTyped) { + isCommon = false; + newValue = cloneTypedArray(srcValue, true); + } + else { + newValue = []; + } + } + else if (isPlainObject(srcValue) || isArguments$1(srcValue)) { + newValue = objValue; + if (isArguments$1(objValue)) { + newValue = toPlainObject(objValue); + } + else if (!isObject$2(objValue) || isFunction(objValue)) { + newValue = initCloneObject(srcValue); + } + } + else { + isCommon = false; + } + } + if (isCommon) { + // Recursively merge objects and arrays (susceptible to call stack limits). + stack.set(srcValue, newValue); + mergeFunc(newValue, srcValue, srcIndex, customizer, stack); + stack['delete'](srcValue); + } + assignMergeValue(object, key, newValue); +} + +/** + * The base implementation of `_.merge` without support for multiple sources. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {number} srcIndex The index of `source`. + * @param {Function} [customizer] The function to customize merged values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ +function baseMerge(object, source, srcIndex, customizer, stack) { + if (object === source) { + return; + } + baseFor$1(source, function(srcValue, key) { + stack || (stack = new Stack); + if (isObject$2(srcValue)) { + baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); + } + else { + var newValue = customizer + ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack) + : undefined; + + if (newValue === undefined) { + newValue = srcValue; + } + assignMergeValue(object, key, newValue); + } + }, keysIn); +} + +/** + * This method returns the first argument it receives. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true + */ +function identity(value) { + return value; +} + +/** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ +function apply$1(func, thisArg, args) { + switch (args.length) { + case 0: return func.call(thisArg); + case 1: return func.call(thisArg, args[0]); + case 2: return func.call(thisArg, args[0], args[1]); + case 3: return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); +} + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * A specialized version of `baseRest` which transforms the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. + */ +function overRest(func, start, transform) { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); + + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform(array); + return apply$1(func, this, otherArgs); + }; +} + +/** + * Creates a function that returns `value`. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {*} value The value to return from the new function. + * @returns {Function} Returns the new constant function. + * @example + * + * var objects = _.times(2, _.constant({ 'a': 1 })); + * + * console.log(objects); + * // => [{ 'a': 1 }, { 'a': 1 }] + * + * console.log(objects[0] === objects[1]); + * // => true + */ +function constant(value) { + return function() { + return value; + }; +} + +/** + * The base implementation of `setToString` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ +var baseSetToString = !defineProperty$1 ? identity : function(func, string) { + return defineProperty$1(func, 'toString', { + 'configurable': true, + 'enumerable': false, + 'value': constant(string), + 'writable': true + }); +}; + +var baseSetToString$1 = baseSetToString; + +/** Used to detect hot functions by number of calls within a span of milliseconds. */ +var HOT_COUNT = 800, + HOT_SPAN = 16; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeNow = Date.now; + +/** + * Creates a function that'll short out and invoke `identity` instead + * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` + * milliseconds. + * + * @private + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new shortable function. + */ +function shortOut(func) { + var count = 0, + lastCalled = 0; + + return function() { + var stamp = nativeNow(), + remaining = HOT_SPAN - (stamp - lastCalled); + + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + return func.apply(undefined, arguments); + }; +} + +/** + * Sets the `toString` method of `func` to return `string`. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ +var setToString = shortOut(baseSetToString$1); + +var setToString$1 = setToString; + +/** + * The base implementation of `_.rest` which doesn't validate or coerce arguments. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + */ +function baseRest(func, start) { + return setToString$1(overRest(func, start, identity), func + ''); +} + +/** + * Checks if the given arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * else `false`. + */ +function isIterateeCall(value, index, object) { + if (!isObject$2(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object) + ) { + return eq(object[index], value); + } + return false; +} + +/** + * Creates a function like `_.assign`. + * + * @private + * @param {Function} assigner The function to assign values. + * @returns {Function} Returns the new assigner function. + */ +function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, + length = sources.length, + customizer = length > 1 ? sources[length - 1] : undefined, + guard = length > 2 ? sources[2] : undefined; + + customizer = (assigner.length > 3 && typeof customizer == 'function') + ? (length--, customizer) + : undefined; + + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? undefined : customizer; + length = 1; + } + object = Object(object); + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } + } + return object; + }); +} + +/** + * This method is like `_.merge` except that it accepts `customizer` which + * is invoked to produce the merged values of the destination and source + * properties. If `customizer` returns `undefined`, merging is handled by the + * method instead. The `customizer` is invoked with six arguments: + * (objValue, srcValue, key, object, source, stack). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} sources The source objects. + * @param {Function} customizer The function to customize assigned values. + * @returns {Object} Returns `object`. + * @example + * + * function customizer(objValue, srcValue) { + * if (_.isArray(objValue)) { + * return objValue.concat(srcValue); + * } + * } + * + * var object = { 'a': [1], 'b': [2] }; + * var other = { 'a': [3], 'b': [4] }; + * + * _.mergeWith(object, other, customizer); + * // => { 'a': [1, 3], 'b': [2, 4] } + */ +var mergeWith = createAssigner(function(object, source, srcIndex, customizer) { + baseMerge(object, source, srcIndex, customizer); +}); + +var mergeWith$1 = mergeWith; + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** + * Adds `value` to the array cache. + * + * @private + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. + */ +function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; +} + +/** + * Checks if `value` is in the array cache. + * + * @private + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. + */ +function setCacheHas(value) { + return this.__data__.has(value); +} + +/** + * + * Creates an array cache object to store unique values. + * + * @private + * @constructor + * @param {Array} [values] The values to cache. + */ +function SetCache(values) { + var index = -1, + length = values == null ? 0 : values.length; + + this.__data__ = new MapCache; + while (++index < length) { + this.add(values[index]); + } +} + +// Add methods to `SetCache`. +SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; +SetCache.prototype.has = setCacheHas; + +/** + * A specialized version of `_.some` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ +function arraySome(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; +} + +/** + * Checks if a `cache` value for `key` exists. + * + * @private + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function cacheHas(cache, key) { + return cache.has(key); +} + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG$3 = 1, + COMPARE_UNORDERED_FLAG$1 = 2; + +/** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ +function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + // Check that cyclic values are equal. + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; + } + var index = -1, + result = true, + seen = (bitmask & COMPARE_UNORDERED_FLAG$1) ? new SetCache : undefined; + + stack.set(array, other); + stack.set(other, array); + + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, arrValue, index, other, array, stack) + : customizer(arrValue, othValue, index, array, other, stack); + } + if (compared !== undefined) { + if (compared) { + continue; + } + result = false; + break; + } + // Recursively compare arrays (susceptible to call stack limits). + if (seen) { + if (!arraySome(other, function(othValue, othIndex) { + if (!cacheHas(seen, othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result = false; + break; + } + } else if (!( + arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack) + )) { + result = false; + break; + } + } + stack['delete'](array); + stack['delete'](other); + return result; +} + +/** + * Converts `map` to its key-value pairs. + * + * @private + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. + */ +function mapToArray(map) { + var index = -1, + result = Array(map.size); + + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; +} + +/** + * Converts `set` to an array of its values. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. + */ +function setToArray(set) { + var index = -1, + result = Array(set.size); + + set.forEach(function(value) { + result[++index] = value; + }); + return result; +} + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG$2 = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** `Object#toString` result references. */ +var boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + mapTag$1 = '[object Map]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + setTag$1 = '[object Set]', + stringTag$1 = '[object String]', + symbolTag$1 = '[object Symbol]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag$1 = '[object DataView]'; + +/** Used to convert symbols to primitives and strings. */ +var symbolProto$1 = Symbol$2 ? Symbol$2.prototype : undefined, + symbolValueOf = symbolProto$1 ? symbolProto$1.valueOf : undefined; + +/** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag$1: + if ((object.byteLength != other.byteLength) || + (object.byteOffset != other.byteOffset)) { + return false; + } + object = object.buffer; + other = other.buffer; + + case arrayBufferTag: + if ((object.byteLength != other.byteLength) || + !equalFunc(new Uint8Array$2(object), new Uint8Array$2(other))) { + return false; + } + return true; + + case boolTag: + case dateTag: + case numberTag: + // Coerce booleans to `1` or `0` and dates to milliseconds. + // Invalid dates are coerced to `NaN`. + return eq(+object, +other); + + case errorTag: + return object.name == other.name && object.message == other.message; + + case regexpTag: + case stringTag$1: + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring + // for more details. + return object == (other + ''); + + case mapTag$1: + var convert = mapToArray; + + case setTag$1: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$2; + convert || (convert = setToArray); + + if (object.size != other.size && !isPartial) { + return false; + } + // Assume cyclic values are equal. + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG; + + // Recursively compare objects (susceptible to call stack limits). + stack.set(object, other); + var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack['delete'](object); + return result; + + case symbolTag$1: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; +} + +/** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ +function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; + + while (++index < length) { + array[offset + index] = values[index]; + } + return array; +} + +/** + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. + */ +function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray$3(object) ? result : arrayPush(result, symbolsFunc(object)); +} + +/** + * A specialized version of `_.filter` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ +function arrayFilter(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[resIndex++] = value; + } + } + return result; +} + +/** + * This method returns a new empty array. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {Array} Returns the new empty array. + * @example + * + * var arrays = _.times(2, _.stubArray); + * + * console.log(arrays); + * // => [[], []] + * + * console.log(arrays[0] === arrays[1]); + * // => false + */ +function stubArray() { + return []; +} + +/** Used for built-in method references. */ +var objectProto$4 = Object.prototype; + +/** Built-in value references. */ +var propertyIsEnumerable = objectProto$4.propertyIsEnumerable; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeGetSymbols = Object.getOwnPropertySymbols; + +/** + * Creates an array of the own enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ +var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); +}; + +var getSymbols$1 = getSymbols; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeKeys = overArg(Object.keys, Object); + +var nativeKeys$1 = nativeKeys; + +/** Used for built-in method references. */ +var objectProto$3 = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty$3 = objectProto$3.hasOwnProperty; + +/** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys$1(object); + } + var result = []; + for (var key in Object(object)) { + if (hasOwnProperty$3.call(object, key) && key != 'constructor') { + result.push(key); + } + } + return result; +} + +/** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ +function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); +} + +/** + * Creates an array of own enumerable property names and symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ +function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols$1); +} + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG$1 = 1; + +/** Used for built-in method references. */ +var objectProto$2 = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty$2 = objectProto$2.hasOwnProperty; + +/** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$1, + objProps = getAllKeys(object), + objLength = objProps.length, + othProps = getAllKeys(other), + othLength = othProps.length; + + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty$2.call(other, key))) { + return false; + } + } + // Check that cyclic values are equal. + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } + var result = true; + stack.set(object, other); + stack.set(other, object); + + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, objValue, key, other, object, stack) + : customizer(objValue, othValue, key, object, other, stack); + } + // Recursively compare objects (susceptible to call stack limits). + if (!(compared === undefined + ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) + : compared + )) { + result = false; + break; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (result && !skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + result = false; + } + } + stack['delete'](object); + stack['delete'](other); + return result; +} + +/* Built-in method references that are verified to be native. */ +var DataView = getNative(root$1, 'DataView'); + +var DataView$1 = DataView; + +/* Built-in method references that are verified to be native. */ +var Promise$1 = getNative(root$1, 'Promise'); + +var Promise$2 = Promise$1; + +/* Built-in method references that are verified to be native. */ +var Set$1 = getNative(root$1, 'Set'); + +var Set$2 = Set$1; + +/* Built-in method references that are verified to be native. */ +var WeakMap = getNative(root$1, 'WeakMap'); + +var WeakMap$1 = WeakMap; + +/** `Object#toString` result references. */ +var mapTag = '[object Map]', + objectTag$1 = '[object Object]', + promiseTag = '[object Promise]', + setTag = '[object Set]', + weakMapTag = '[object WeakMap]'; + +var dataViewTag = '[object DataView]'; + +/** Used to detect maps, sets, and weakmaps. */ +var dataViewCtorString = toSource(DataView$1), + mapCtorString = toSource(Map$2), + promiseCtorString = toSource(Promise$2), + setCtorString = toSource(Set$2), + weakMapCtorString = toSource(WeakMap$1); + +/** + * Gets the `toStringTag` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +var getTag = baseGetTag; + +// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. +if ((DataView$1 && getTag(new DataView$1(new ArrayBuffer(1))) != dataViewTag) || + (Map$2 && getTag(new Map$2) != mapTag) || + (Promise$2 && getTag(Promise$2.resolve()) != promiseTag) || + (Set$2 && getTag(new Set$2) != setTag) || + (WeakMap$1 && getTag(new WeakMap$1) != weakMapTag)) { + getTag = function(value) { + var result = baseGetTag(value), + Ctor = result == objectTag$1 ? value.constructor : undefined, + ctorString = Ctor ? toSource(Ctor) : ''; + + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: return dataViewTag; + case mapCtorString: return mapTag; + case promiseCtorString: return promiseTag; + case setCtorString: return setTag; + case weakMapCtorString: return weakMapTag; + } + } + return result; + }; +} + +var getTag$1 = getTag; + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1; + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + objectTag = '[object Object]'; + +/** Used for built-in method references. */ +var objectProto$1 = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty$1 = objectProto$1.hasOwnProperty; + +/** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray$3(object), + othIsArr = isArray$3(other), + objTag = objIsArr ? arrayTag : getTag$1(object), + othTag = othIsArr ? arrayTag : getTag$1(other); + + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; + + if (isSameTag && isBuffer$1(object)) { + if (!isBuffer$1(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack); + return (objIsArr || isTypedArray$1(object)) + ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) + : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty$1.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty$1.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; + + stack || (stack = new Stack); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new Stack); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); +} + +/** + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ +function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); +} + +/** + * Performs a deep comparison between two values to determine if they are + * equivalent. + * + * **Note:** This method supports comparing arrays, array buffers, booleans, + * date objects, error objects, maps, numbers, `Object` objects, regexes, + * sets, strings, symbols, and typed arrays. `Object` objects are compared + * by their own, not inherited, enumerable properties. Functions and DOM + * nodes are compared by strict equality, i.e. `===`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.isEqual(object, other); + * // => true + * + * object === other; + * // => false + */ +function isEqual(value, other) { + return baseIsEqual(value, other); +} + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * The base implementation of `_.has` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ +function baseHas(object, key) { + return object != null && hasOwnProperty.call(object, key); +} + +/** `Object#toString` result references. */ +var symbolTag = '[object Symbol]'; + +/** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ +function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && baseGetTag(value) == symbolTag); +} + +/** Used to match property names within property paths. */ +var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; + +/** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ +function isKey(value, object) { + if (isArray$3(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); +} + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `clear`, `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */ +function memoize(func, resolver) { + if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; + + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize.Cache || MapCache); + return memoized; +} + +// Expose `MapCache`. +memoize.Cache = MapCache; + +/** Used as the maximum memoize cache size. */ +var MAX_MEMOIZE_SIZE = 500; + +/** + * A specialized version of `_.memoize` which clears the memoized function's + * cache when it exceeds `MAX_MEMOIZE_SIZE`. + * + * @private + * @param {Function} func The function to have its output memoized. + * @returns {Function} Returns the new memoized function. + */ +function memoizeCapped(func) { + var result = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + + var cache = result.cache; + return result; +} + +/** Used to match property names within property paths. */ +var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + +/** Used to match backslashes in property paths. */ +var reEscapeChar = /\\(\\)?/g; + +/** + * Converts `string` to a property path array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. + */ +var stringToPath = memoizeCapped(function(string) { + var result = []; + if (string.charCodeAt(0) === 46 /* . */) { + result.push(''); + } + string.replace(rePropName, function(match, number, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; +}); + +var stringToPath$1 = stringToPath; + +/** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function arrayMap(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; +} + +/** Used as references for various `Number` constants. */ +var INFINITY$1 = 1 / 0; + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol$2 ? Symbol$2.prototype : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + +/** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ +function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isArray$3(value)) { + // Recursively convert values (susceptible to call stack limits). + return arrayMap(value, baseToString) + ''; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY$1) ? '-0' : result; +} + +/** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ +function toString$3(value) { + return value == null ? '' : baseToString(value); +} + +/** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. + * @returns {Array} Returns the cast property path array. + */ +function castPath(value, object) { + if (isArray$3(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath$1(toString$3(value)); +} + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ +function toKey(value) { + if (typeof value == 'string' || isSymbol(value)) { + return value; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +/** + * Checks if `path` exists on `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @param {Function} hasFunc The function to check properties. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + */ +function hasPath(object, path, hasFunc) { + path = castPath(path, object); + + var index = -1, + length = path.length, + result = false; + + while (++index < length) { + var key = toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result || ++index != length) { + return result; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && + (isArray$3(object) || isArguments$1(object)); +} + +/** + * Checks if `path` is a direct property of `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = { 'a': { 'b': 2 } }; + * var other = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.has(object, 'a'); + * // => true + * + * _.has(object, 'a.b'); + * // => true + * + * _.has(object, ['a', 'b']); + * // => true + * + * _.has(other, 'a'); + * // => false + */ +function has(object, path) { + return object != null && hasPath(object, path, baseHas); +} + +/** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ +function baseGet(object, path) { + path = castPath(path, object); + + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return (index && index == length) ? object : undefined; +} + +/** + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is returned in its place. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' + */ +function get(object, path, defaultValue) { + var result = object == null ? undefined : baseGet(object, path); + return result === undefined ? defaultValue : result; +} + +/** + * The base implementation of `_.set`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @param {Function} [customizer] The function to customize path creation. + * @returns {Object} Returns `object`. + */ +function baseSet(object, path, value, customizer) { + if (!isObject$2(object)) { + return object; + } + path = castPath(path, object); + + var index = -1, + length = path.length, + lastIndex = length - 1, + nested = object; + + while (nested != null && ++index < length) { + var key = toKey(path[index]), + newValue = value; + + if (key === '__proto__' || key === 'constructor' || key === 'prototype') { + return object; + } + + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : undefined; + if (newValue === undefined) { + newValue = isObject$2(objValue) + ? objValue + : (isIndex(path[index + 1]) ? [] : {}); + } + } + assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; +} + +/** + * Sets the value at `path` of `object`. If a portion of `path` doesn't exist, + * it's created. Arrays are created for missing index properties while objects + * are created for all other missing properties. Use `_.setWith` to customize + * `path` creation. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @returns {Object} Returns `object`. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.set(object, 'a[0].b.c', 4); + * console.log(object.a[0].b.c); + * // => 4 + * + * _.set(object, ['x', '0', 'y', 'z'], 5); + * console.log(object.x[0].y.z); + * // => 5 + */ +function set(object, path, value) { + return object == null ? object : baseSet(object, path, value); +} + +/** `Object#toString` result references. */ +var stringTag = '[object String]'; + +/** + * Checks if `value` is classified as a `String` primitive or object. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a string, else `false`. + * @example + * + * _.isString('abc'); + * // => true + * + * _.isString(1); + * // => false + */ +function isString(value) { + return typeof value == 'string' || + (!isArray$3(value) && isObjectLike(value) && baseGetTag(value) == stringTag); +} + +var OptionsPreProcessors = { + range: function range(value) { + return Math.max(+value, 1); + }, + 'date.highlight': function dateHighlight(args) { + return castArray(args); + }, + 'subDomain.label': function subDomainLabel(value) { + return ( + // eslint-disable-next-line + isString(value) && value !== '' || isFunction(value) ? value : null + ); + } +}; + +var Options = /*#__PURE__*/function () { + function Options() { + var processors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : OptionsPreProcessors; + _classCallCheck(this, Options); + this.preProcessors = processors; + this.options = { + // selector string of the container to append the graph to + // Accept any string value accepted by document.querySelector or CSS3 + // or an Element object + itemSelector: OPTIONS_DEFAULT_ITEM_SELECTOR, + // Number of domain to display on the graph + range: OPTIONS_DEFAULT_RANGE, + domain: { + type: OPTIONS_DEFAULT_DOMAIN_TYPE, + // Space between each domain, in pixel + gutter: 4, + padding: [0, 0, 0, 0], + // Whether to enable dynamic domain size + // The width/height on a domain depends on the number of + // subDomains items count + dynamicDimension: true, + // Whether to show most recent date first + sort: 'asc', + label: { + // Formatting of the domain label + // @default: undefined, will use the formatting + // according to domain type + // Accept any string accepted by dayjs.format() + // or a function + // + // Refer to https://day.js.org/docs/en/display/format + // for list of accepted string tokens used by dayjs.format() + text: undefined, + // valid: top, right, bottom, left + position: 'bottom', + // Valid are the direct svg values: start, middle, end + textAlign: 'middle', + // By default, there is no margin/padding around the label + offset: { + x: 0, + y: 0 + }, + rotate: null, + // Used only on vertical orientation + width: 100, + // Used only on horizontal orientation + height: 25 + } + }, + subDomain: { + type: OPTIONS_DEFAULT_SUBDOMAIN_TYPE, + // Width of each subDomain cell, in pixel + width: OPTIONS_DEFAULT_SUBDOMAIN_WIDTH, + // Height of each subDomain cell, in pixel + height: OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT, + // Space between each subDomain cell, in pixel + gutter: OPTIONS_DEFAULT_SUBDOMAIN_GUTTER, + // Radius of each subDomain cell, in pixel + radius: OPTIONS_DEFAULT_SUBDOMAIN_RADIUS, + // Formatting of the text inside each subDomain cell + // @default: null, no text + // Accept any string accepted by dayjs.format() + // or a function + // + // Refer to https://day.js.org/docs/en/display/format + // for list of accepted string tokens used by dayjs.format() + label: null, + color: undefined, + sort: 'asc' + }, + date: { + // Start date of the graph + // @default now + start: new Date(), + min: undefined, + max: undefined, + // List of dates to highlight + // Valid values: + // - []: don't highlight anything + // - an array of Date objects: highlight the specified dates + highlight: [], + locale: OPTIONS_DEFAULT_LOCALE, + timezone: undefined + }, + // Calendar orientation + // false: display domains side by side + // true : display domains one under the other + verticalOrientation: false, + data: { + // Data source + // URL, where to fetch the original datas + source: '', + // Data type + // Default: json + type: 'json', + requestInit: {}, + // keyname of the time property + x: '', + // keyname of the value property + y: '', + // Grouping function of the values + groupY: 'sum', + defaultValue: null + }, + scale: undefined, + // Animation duration, in ms + animationDuration: OPTIONS_DEFAULT_ANIMATION_DURATION, + // Theme mode: dark/light + theme: OPTIONS_DEFAULT_THEME, + // Internally used options, do not edit not set + x: { + domainHorizontalLabelWidth: 0, + domainVerticalLabelHeight: 0 + } + }; + } + /** + * Set a new value for an option, only if unchanged + * @param {string} key Name of the option + * @param {any} value Value of the option + * @return {boolean} Whether the option have been changed + */ + _createClass(Options, [{ + key: "set", + value: function set$1(key, value) { + if (!has(this.options, key) || isEqual(get(this.options, key), value)) { + return false; + } + set(this.options, key, has(this.preProcessors, key) ? get(this.preProcessors, key)(value) : value); + return true; + } + }, { + key: "init", + value: function init(opts) { + var _this = this; + this.options = Object.assign({}, mergeWith$1(this.options, opts, function (_, srcValue) { + return Array.isArray(srcValue) ? srcValue : undefined; + })); + var options = this.options; + Object.keys(this.preProcessors).forEach(function (key) { + set(options, key, get(_this.preProcessors, key)(get(options, key))); + }); + if (typeof options.scale === 'undefined') { + this.initScale(); + } + options.x.domainVerticalLabelHeight = options.domain.label.height; + // When the label is affecting the height + if (options.domain.label.position === 'top' || options.domain.label.position === 'bottom') { + options.x.domainHorizontalLabelWidth = 0; + } else { + options.x.domainVerticalLabelHeight = 0; + options.x.domainHorizontalLabelWidth = options.domain.label.width; + } + if (options.domain.label.text === null || options.domain.label.text === '') { + options.x.domainVerticalLabelHeight = 0; + options.x.domainHorizontalLabelWidth = 0; + } + } + }, { + key: "initScale", + value: function initScale() { + this.options.scale = { + color: { + scheme: SCALE_BASE_COLOR_SCHEME, + type: SCALE_BASE_COLOR_TYPE, + domain: SCALE_BASE_COLOR_DOMAIN + } + }; + } + }]); + return Options; +}(); + +var anObject$2 = anObject$f; + +// `RegExp.prototype.flags` getter implementation +// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags +var regexpFlags$1 = function () { + var that = anObject$2(this); + var result = ''; + if (that.hasIndices) result += 'd'; + if (that.global) result += 'g'; + if (that.ignoreCase) result += 'i'; + if (that.multiline) result += 'm'; + if (that.dotAll) result += 's'; + if (that.unicode) result += 'u'; + if (that.unicodeSets) result += 'v'; + if (that.sticky) result += 'y'; + return result; +}; + +var fails$4 = fails$u; +var global$3 = global$n; + +// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError +var $RegExp$2 = global$3.RegExp; + +var UNSUPPORTED_Y$1 = fails$4(function () { + var re = $RegExp$2('a', 'y'); + re.lastIndex = 2; + return re.exec('abcd') != null; +}); + +// UC Browser bug +// https://github.com/zloirock/core-js/issues/1008 +var MISSED_STICKY = UNSUPPORTED_Y$1 || fails$4(function () { + return !$RegExp$2('a', 'y').sticky; +}); + +var BROKEN_CARET = UNSUPPORTED_Y$1 || fails$4(function () { + // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 + var re = $RegExp$2('^r', 'gy'); + re.lastIndex = 2; + return re.exec('str') != null; +}); + +var regexpStickyHelpers = { + BROKEN_CARET: BROKEN_CARET, + MISSED_STICKY: MISSED_STICKY, + UNSUPPORTED_Y: UNSUPPORTED_Y$1 +}; + +var fails$3 = fails$u; +var global$2 = global$n; + +// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError +var $RegExp$1 = global$2.RegExp; + +var regexpUnsupportedDotAll = fails$3(function () { + var re = $RegExp$1('.', 's'); + return !(re.dotAll && re.exec('\n') && re.flags === 's'); +}); + +var fails$2 = fails$u; +var global$1 = global$n; + +// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError +var $RegExp = global$1.RegExp; + +var regexpUnsupportedNcg = fails$2(function () { + var re = $RegExp('(?<a>b)', 'g'); + return re.exec('b').groups.a !== 'b' || + 'b'.replace(re, '$<a>c') !== 'bc'; +}); + +/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */ +/* eslint-disable regexp/no-useless-quantifier -- testing */ +var call$2 = functionCall; +var uncurryThis$5 = functionUncurryThis; +var toString$2 = toString$a; +var regexpFlags = regexpFlags$1; +var stickyHelpers = regexpStickyHelpers; +var shared = sharedExports; +var create = objectCreate$1; +var getInternalState = internalState.get; +var UNSUPPORTED_DOT_ALL = regexpUnsupportedDotAll; +var UNSUPPORTED_NCG = regexpUnsupportedNcg; + +var nativeReplace = shared('native-string-replace', String.prototype.replace); +var nativeExec = RegExp.prototype.exec; +var patchedExec = nativeExec; +var charAt$2 = uncurryThis$5(''.charAt); +var indexOf = uncurryThis$5(''.indexOf); +var replace$1 = uncurryThis$5(''.replace); +var stringSlice$2 = uncurryThis$5(''.slice); + +var UPDATES_LAST_INDEX_WRONG = (function () { + var re1 = /a/; + var re2 = /b*/g; + call$2(nativeExec, re1, 'a'); + call$2(nativeExec, re2, 'a'); + return re1.lastIndex !== 0 || re2.lastIndex !== 0; +})(); + +var UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET; + +// nonparticipating capturing group, copied from es5-shim's String#split patch. +var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; + +var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG; + +if (PATCH) { + patchedExec = function exec(string) { + var re = this; + var state = getInternalState(re); + var str = toString$2(string); + var raw = state.raw; + var result, reCopy, lastIndex, match, i, object, group; + + if (raw) { + raw.lastIndex = re.lastIndex; + result = call$2(patchedExec, raw, str); + re.lastIndex = raw.lastIndex; + return result; + } + + var groups = state.groups; + var sticky = UNSUPPORTED_Y && re.sticky; + var flags = call$2(regexpFlags, re); + var source = re.source; + var charsAdded = 0; + var strCopy = str; + + if (sticky) { + flags = replace$1(flags, 'y', ''); + if (indexOf(flags, 'g') === -1) { + flags += 'g'; + } + + strCopy = stringSlice$2(str, re.lastIndex); + // Support anchored sticky behavior. + if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt$2(str, re.lastIndex - 1) !== '\n')) { + source = '(?: ' + source + ')'; + strCopy = ' ' + strCopy; + charsAdded++; + } + // ^(? + rx + ) is needed, in combination with some str slicing, to + // simulate the 'y' flag. + reCopy = new RegExp('^(?:' + source + ')', flags); + } + + if (NPCG_INCLUDED) { + reCopy = new RegExp('^' + source + '$(?!\\s)', flags); + } + if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; + + match = call$2(nativeExec, sticky ? reCopy : re, strCopy); + + if (sticky) { + if (match) { + match.input = stringSlice$2(match.input, charsAdded); + match[0] = stringSlice$2(match[0], charsAdded); + match.index = re.lastIndex; + re.lastIndex += match[0].length; + } else re.lastIndex = 0; + } else if (UPDATES_LAST_INDEX_WRONG && match) { + re.lastIndex = re.global ? match.index + match[0].length : lastIndex; + } + if (NPCG_INCLUDED && match && match.length > 1) { + // Fix browsers whose `exec` methods don't consistently return `undefined` + // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/ + call$2(nativeReplace, match[0], reCopy, function () { + for (i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) match[i] = undefined; + } + }); + } + + if (match && groups) { + match.groups = object = create(null); + for (i = 0; i < groups.length; i++) { + group = groups[i]; + object[group[0]] = match[group[1]]; + } + } + + return match; + }; +} + +var regexpExec$2 = patchedExec; + +var $$1 = _export; +var exec = regexpExec$2; + +// `RegExp.prototype.exec` method +// https://tc39.es/ecma262/#sec-regexp.prototype.exec +$$1({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { + exec: exec +}); + +// TODO: Remove from `core-js@4` since it's moved to entry points + +var uncurryThis$4 = functionUncurryThisClause; +var defineBuiltIn = defineBuiltIn$9; +var regexpExec$1 = regexpExec$2; +var fails$1 = fails$u; +var wellKnownSymbol$1 = wellKnownSymbol$m; +var createNonEnumerableProperty = createNonEnumerableProperty$6; + +var SPECIES = wellKnownSymbol$1('species'); +var RegExpPrototype = RegExp.prototype; + +var fixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) { + var SYMBOL = wellKnownSymbol$1(KEY); + + var DELEGATES_TO_SYMBOL = !fails$1(function () { + // String methods call symbol-named RegEp methods + var O = {}; + O[SYMBOL] = function () { return 7; }; + return ''[KEY](O) != 7; + }); + + var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails$1(function () { + // Symbol-named RegExp methods call .exec + var execCalled = false; + var re = /a/; + + if (KEY === 'split') { + // We can't use real regex here since it causes deoptimization + // and serious performance degradation in V8 + // https://github.com/zloirock/core-js/issues/306 + re = {}; + // RegExp[@@split] doesn't call the regex's exec method, but first creates + // a new one. We need to return the patched regex when creating the new one. + re.constructor = {}; + re.constructor[SPECIES] = function () { return re; }; + re.flags = ''; + re[SYMBOL] = /./[SYMBOL]; + } + + re.exec = function () { execCalled = true; return null; }; + + re[SYMBOL](''); + return !execCalled; + }); + + if ( + !DELEGATES_TO_SYMBOL || + !DELEGATES_TO_EXEC || + FORCED + ) { + var uncurriedNativeRegExpMethod = uncurryThis$4(/./[SYMBOL]); + var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { + var uncurriedNativeMethod = uncurryThis$4(nativeMethod); + var $exec = regexp.exec; + if ($exec === regexpExec$1 || $exec === RegExpPrototype.exec) { + if (DELEGATES_TO_SYMBOL && !forceStringMethod) { + // The native String method already delegates to @@method (this + // polyfilled function), leasing to infinite recursion. + // We avoid it by directly calling the native @@method method. + return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) }; + } + return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) }; + } + return { done: false }; + }); + + defineBuiltIn(String.prototype, KEY, methods[0]); + defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]); + } + + if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true); +}; + +var charAt$1 = stringMultibyte.charAt; + +// `AdvanceStringIndex` abstract operation +// https://tc39.es/ecma262/#sec-advancestringindex +var advanceStringIndex$1 = function (S, index, unicode) { + return index + (unicode ? charAt$1(S, index).length : 1); +}; + +var uncurryThis$3 = functionUncurryThis; +var toObject = toObject$b; + +var floor = Math.floor; +var charAt = uncurryThis$3(''.charAt); +var replace = uncurryThis$3(''.replace); +var stringSlice$1 = uncurryThis$3(''.slice); +// eslint-disable-next-line redos/no-vulnerable -- safe +var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g; +var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g; + +// `GetSubstitution` abstract operation +// https://tc39.es/ecma262/#sec-getsubstitution +var getSubstitution$1 = function (matched, str, position, captures, namedCaptures, replacement) { + var tailPos = position + matched.length; + var m = captures.length; + var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; + if (namedCaptures !== undefined) { + namedCaptures = toObject(namedCaptures); + symbols = SUBSTITUTION_SYMBOLS; + } + return replace(replacement, symbols, function (match, ch) { + var capture; + switch (charAt(ch, 0)) { + case '$': return '$'; + case '&': return matched; + case '`': return stringSlice$1(str, 0, position); + case "'": return stringSlice$1(str, tailPos); + case '<': + capture = namedCaptures[stringSlice$1(ch, 1, -1)]; + break; + default: // \d\d? + var n = +ch; + if (n === 0) return match; + if (n > m) { + var f = floor(n / 10); + if (f === 0) return match; + if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1); + return match; + } + capture = captures[n - 1]; + } + return capture === undefined ? '' : capture; + }); +}; + +var call$1 = functionCall; +var anObject$1 = anObject$f; +var isCallable$1 = isCallable$o; +var classof = classofRaw$2; +var regexpExec = regexpExec$2; + +var $TypeError = TypeError; + +// `RegExpExec` abstract operation +// https://tc39.es/ecma262/#sec-regexpexec +var regexpExecAbstract = function (R, S) { + var exec = R.exec; + if (isCallable$1(exec)) { + var result = call$1(exec, R, S); + if (result !== null) anObject$1(result); + return result; + } + if (classof(R) === 'RegExp') return call$1(regexpExec, R, S); + throw $TypeError('RegExp#exec called on incompatible receiver'); +}; + +var apply = functionApply; +var call = functionCall; +var uncurryThis$2 = functionUncurryThis; +var fixRegExpWellKnownSymbolLogic = fixRegexpWellKnownSymbolLogic; +var fails = fails$u; +var anObject = anObject$f; +var isCallable = isCallable$o; +var isNullOrUndefined = isNullOrUndefined$8; +var toIntegerOrInfinity = toIntegerOrInfinity$4; +var toLength = toLength$3; +var toString$1 = toString$a; +var requireObjectCoercible$1 = requireObjectCoercible$7; +var advanceStringIndex = advanceStringIndex$1; +var getMethod = getMethod$4; +var getSubstitution = getSubstitution$1; +var regExpExec$1 = regexpExecAbstract; +var wellKnownSymbol = wellKnownSymbol$m; + +var REPLACE = wellKnownSymbol('replace'); +var max = Math.max; +var min = Math.min; +var concat = uncurryThis$2([].concat); +var push = uncurryThis$2([].push); +var stringIndexOf$1 = uncurryThis$2(''.indexOf); +var stringSlice = uncurryThis$2(''.slice); + +var maybeToString = function (it) { + return it === undefined ? it : String(it); +}; + +// IE <= 11 replaces $0 with the whole match, as if it was $& +// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 +var REPLACE_KEEPS_$0 = (function () { + // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing + return 'a'.replace(/./, '$0') === '$0'; +})(); + +// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string +var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { + if (/./[REPLACE]) { + return /./[REPLACE]('a', '$0') === ''; + } + return false; +})(); + +var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { + var re = /./; + re.exec = function () { + var result = []; + result.groups = { a: '7' }; + return result; + }; + // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive + return ''.replace(re, '$<a>') !== '7'; +}); + +// @@replace logic +fixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) { + var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; + + return [ + // `String.prototype.replace` method + // https://tc39.es/ecma262/#sec-string.prototype.replace + function replace(searchValue, replaceValue) { + var O = requireObjectCoercible$1(this); + var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE); + return replacer + ? call(replacer, searchValue, O, replaceValue) + : call(nativeReplace, toString$1(O), searchValue, replaceValue); + }, + // `RegExp.prototype[@@replace]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace + function (string, replaceValue) { + var rx = anObject(this); + var S = toString$1(string); + + if ( + typeof replaceValue == 'string' && + stringIndexOf$1(replaceValue, UNSAFE_SUBSTITUTE) === -1 && + stringIndexOf$1(replaceValue, '$<') === -1 + ) { + var res = maybeCallNative(nativeReplace, rx, S, replaceValue); + if (res.done) return res.value; + } + + var functionalReplace = isCallable(replaceValue); + if (!functionalReplace) replaceValue = toString$1(replaceValue); + + var global = rx.global; + if (global) { + var fullUnicode = rx.unicode; + rx.lastIndex = 0; + } + var results = []; + while (true) { + var result = regExpExec$1(rx, S); + if (result === null) break; + + push(results, result); + if (!global) break; + + var matchStr = toString$1(result[0]); + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + } + + var accumulatedResult = ''; + var nextSourcePosition = 0; + for (var i = 0; i < results.length; i++) { + result = results[i]; + + var matched = toString$1(result[0]); + var position = max(min(toIntegerOrInfinity(result.index), S.length), 0); + var captures = []; + // NOTE: This is equivalent to + // captures = result.slice(1).map(maybeToString) + // but for some reason `nativeSlice.call(result, 1, result.length)` (called in + // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and + // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. + for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j])); + var namedCaptures = result.groups; + if (functionalReplace) { + var replacerArgs = concat([matched], captures, position, S); + if (namedCaptures !== undefined) push(replacerArgs, namedCaptures); + var replacement = toString$1(apply(replaceValue, undefined, replacerArgs)); + } else { + replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); + } + if (position >= nextSourcePosition) { + accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement; + nextSourcePosition = position + matched.length; + } + } + return accumulatedResult + stringSlice(S, nextSourcePosition); + } + ]; +}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE); + +var _DataFetcher_instances, _DataFetcher_fetch; +var DataFetcher = /*#__PURE__*/function () { + function DataFetcher(calendar) { + _classCallCheck(this, DataFetcher); + _DataFetcher_instances.add(this); + this.calendar = calendar; + } + /** + * Fetch and interpret data from the datasource + * + * @param {string|object} source + * @param {number} startTimestamp + * @param {number} endTimestamp + * + * @return {Promize} A promise, that will return the final data when resolved + */ + _createClass(DataFetcher, [{ + key: "getDatas", + value: function getDatas(source, startTimestamp, endTimestamp) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() { + var d; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + if (!(typeof source === 'string' && source.length > 0)) { + _context.next = 2; + break; + } + return _context.abrupt("return", __classPrivateFieldGet(this, _DataFetcher_instances, "m", _DataFetcher_fetch).call(this, source, startTimestamp, endTimestamp)); + case 2: + d = []; + if (Array.isArray(source)) { + d = source; + } + return _context.abrupt("return", new Promise(function (resolve) { + resolve(d); + })); + case 5: + case "end": + return _context.stop(); + } + }, _callee, this); + })); + } + }, { + key: "parseURI", + value: function parseURI(str, startTimestamp, endTimestamp) { + var _this = this; + var newUri = str.replace(/\{\{start=(.*)\}\}/g, function (_, format) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + _this.calendar.dateHelper.date(startTimestamp).format(format) + ); + }); + newUri = newUri.replace(/\{\{end=(.*)\}\}/g, function (_, format) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + _this.calendar.dateHelper.date(endTimestamp).format(format) + ); + }); + return newUri; + } + }]); + return DataFetcher; +}(); +_DataFetcher_instances = new WeakSet(), _DataFetcher_fetch = function _DataFetcher_fetch(source, startTimestamp, endTimestamp) { + var _this$calendar$option = this.calendar.options.options.data, + type = _this$calendar$option.type, + requestInit = _this$calendar$option.requestInit; + var url = this.parseURI(source, startTimestamp, endTimestamp); + switch (type) { + case 'json': + return json(url, requestInit); + case 'csv': + return csv(url, requestInit); + case 'tsv': + return dsv('\t', url, requestInit); + case 'txt': + return text(url, requestInit); + default: + return new Promise(function (resolve) { + resolve([]); + }); + } +}; + +var DESCRIPTORS = descriptors; +var FUNCTION_NAME_EXISTS = functionName.EXISTS; +var uncurryThis$1 = functionUncurryThis; +var defineBuiltInAccessor = defineBuiltInAccessor$3; + +var FunctionPrototype = Function.prototype; +var functionToString = uncurryThis$1(FunctionPrototype.toString); +var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/; +var regExpExec = uncurryThis$1(nameRE.exec); +var NAME = 'name'; + +// Function instances `.name` property +// https://tc39.es/ecma262/#sec-function-instances-name +if (DESCRIPTORS && !FUNCTION_NAME_EXISTS) { + defineBuiltInAccessor(FunctionPrototype, NAME, { + configurable: true, + get: function () { + try { + return regExpExec(nameRE, functionToString(this))[1]; + } catch (error) { + return ''; + } + } + }); +} + +var dayjs_min = {exports: {}}; + +(function (module, exports) { + !function(t,e){module.exports=e();}(commonjsGlobal,(function(){var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",f="month",h="quarter",c="year",d="date",l="Invalid Date",$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return "["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return !r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return (e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return -t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,f),s=n-i<0,u=e.clone().add(r+(s?-1:1),f);return +(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return {M:f,y:c,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:h}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},g="en",D={};D[g]=M;var p=function(t){return t instanceof _},S=function t(e,n,r){var i;if(!e)return g;if("string"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split("-");if(!i&&u.length>1)return t(u[0])}else {var a=e.name;D[a]=e,i=a;}return !r&&i&&(g=i),i||!r&&g},w=function(t,e){if(p(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=v;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t);}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init();},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds();},m.$utils=function(){return O},m.isValid=function(){return !(this.$d.toString()===l)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<w(t)},m.$g=function(t,e,n){return O.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!O.u(e)||e,h=O.p(t),l=function(t,e){var i=O.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return O.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v="set"+(this.$u?"UTC":"");switch(h){case c:return r?l(1,0):l(31,11);case f:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+"Hours",0);case u:return $(v+"Minutes",1);case s:return $(v+"Seconds",2);case i:return $(v+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=O.p(t),h="set"+(this.$u?"UTC":""),l=(n={},n[a]=h+"Date",n[d]=h+"Date",n[f]=h+"Month",n[c]=h+"FullYear",n[u]=h+"Hours",n[s]=h+"Minutes",n[i]=h+"Seconds",n[r]=h+"Milliseconds",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===f||o===c){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d;}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[O.p(t)]()},m.add=function(r,h){var d,l=this;r=Number(r);var $=O.p(h),y=function(t){var e=w(l);return O.w(e.date(e.date()+Math.round(t*r)),l)};if($===f)return this.set(f,this.$M+r);if($===c)return this.set(c,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return O.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=O.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,f=n.months,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},c=function(t){return O.s(s%12||12,t,"0")},d=n.meridiem||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r},$={YY:String(this.$y).slice(-2),YYYY:this.$y,M:a+1,MM:O.s(a+1,2,"0"),MMM:h(n.monthsShort,a,f,3),MMMM:h(f,a),D:this.$D,DD:O.s(this.$D,2,"0"),d:String(this.$W),dd:h(n.weekdaysMin,this.$W,o,2),ddd:h(n.weekdaysShort,this.$W,o,3),dddd:o[this.$W],H:String(s),HH:O.s(s,2,"0"),h:c(1),hh:c(2),a:d(s,u,!0),A:d(s,u,!1),m:String(u),mm:O.s(u,2,"0"),s:String(this.$s),ss:O.s(this.$s,2,"0"),SSS:O.s(this.$ms,3,"0"),Z:i};return r.replace(y,(function(t,e){return e||$[t]||i.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=O.p(d),M=w(r),m=(M.utcOffset()-this.utcOffset())*e,v=this-M,g=O.m(this,M);return g=($={},$[c]=g/12,$[f]=g,$[h]=g/3,$[o]=(v-m)/6048e5,$[a]=(v-m)/864e5,$[u]=v/n,$[s]=v/e,$[i]=v/t,$)[y]||v,l?g:O.a(g)},m.daysInMonth=function(){return this.endOf(f).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=S(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return O.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),T=_.prototype;return w.prototype=T,[["$ms",r],["$s",i],["$m",s],["$H",u],["$W",a],["$M",f],["$y",c],["$D",d]].forEach((function(t){T[t[1]]=function(e){return this.$g(e,t[0],t[1])};})),w.extend=function(t,e){return t.$i||(t(e,_,w),t.$i=!0),w},w.locale=S,w.isDayjs=p,w.unix=function(t){return w(1e3*t)},w.en=D[g],w.Ls=D,w.p={},w})); +} (dayjs_min)); + +var dayjs_minExports = dayjs_min.exports; +var dayjs = /*@__PURE__*/getDefaultExportFromCjs(dayjs_minExports); + +var weekOfYear$1 = {exports: {}}; + +(function (module, exports) { + !function(e,t){module.exports=t();}(commonjsGlobal,(function(){var e="week",t="year";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),"day");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,"millisecond"),o=this.diff(a,e,!0);return o<0?r(this).startOf("week").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)};}})); +} (weekOfYear$1)); + +var weekOfYearExports = weekOfYear$1.exports; +var weekOfYear = /*@__PURE__*/getDefaultExportFromCjs(weekOfYearExports); + +var dayOfYear$1 = {exports: {}}; + +(function (module, exports) { + !function(e,t){module.exports=t();}(commonjsGlobal,(function(){return function(e,t,n){t.prototype.dayOfYear=function(e){var t=Math.round((n(this).startOf("day")-n(this).startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"day")};}})); +} (dayOfYear$1)); + +var dayOfYearExports = dayOfYear$1.exports; +var dayOfYear = /*@__PURE__*/getDefaultExportFromCjs(dayOfYearExports); + +var weekday$1 = {exports: {}}; + +(function (module, exports) { + !function(e,t){module.exports=t();}(commonjsGlobal,(function(){return function(e,t){t.prototype.weekday=function(e){var t=this.$locale().weekStart||0,i=this.$W,n=(i<t?i+7:i)-t;return this.$utils().u(e)?n:this.subtract(n,"day").add(e,"day")};}})); +} (weekday$1)); + +var weekdayExports = weekday$1.exports; +var weekday = /*@__PURE__*/getDefaultExportFromCjs(weekdayExports); + +var minMax$1 = {exports: {}}; + +(function (module, exports) { + !function(e,n){module.exports=n();}(commonjsGlobal,(function(){return function(e,n,t){var i=function(e,n){if(!n||!n.length||!n[0]||1===n.length&&!n[0].length)return null;var t;1===n.length&&n[0].length>0&&(n=n[0]);t=n[0];for(var i=1;i<n.length;i+=1)n[i].isValid()&&!n[i][e](t)||(t=n[i]);return t};t.max=function(){var e=[].slice.call(arguments,0);return i("isAfter",e)},t.min=function(){var e=[].slice.call(arguments,0);return i("isBefore",e)};}})); +} (minMax$1)); + +var minMaxExports = minMax$1.exports; +var minMax = /*@__PURE__*/getDefaultExportFromCjs(minMaxExports); + +var isoWeeksInYear$1 = {exports: {}}; + +(function (module, exports) { + !function(e,n){module.exports=n();}(commonjsGlobal,(function(){return function(e,n){n.prototype.isoWeeksInYear=function(){var e=this.isLeapYear(),n=this.endOf("y").day();return 4===n||e&&5===n?53:52};}})); +} (isoWeeksInYear$1)); + +var isoWeeksInYearExports = isoWeeksInYear$1.exports; +var isoWeeksInYear = /*@__PURE__*/getDefaultExportFromCjs(isoWeeksInYearExports); + +var isoWeek$1 = {exports: {}}; + +(function (module, exports) { + !function(e,t){module.exports=t();}(commonjsGlobal,(function(){var e="day";return function(t,i,s){var a=function(t){return t.add(4-t.isoWeekday(),e)},d=i.prototype;d.isoWeekYear=function(){return a(this).year()},d.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var i,d,n,o,r=a(this),u=(i=this.isoWeekYear(),d=this.$u,n=(d?s.utc:s)().year(i).startOf("year"),o=4-n.isoWeekday(),n.isoWeekday()>4&&(o+=7),n.add(o,e));return r.diff(u,"week")+1},d.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var n=d.startOf;d.startOf=function(e,t){var i=this.$utils(),s=!!i.u(t)||t;return "isoweek"===i.p(e)?s?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):n.bind(this)(e,t)};}})); +} (isoWeek$1)); + +var isoWeekExports = isoWeek$1.exports; +var isoWeek = /*@__PURE__*/getDefaultExportFromCjs(isoWeekExports); + +var isLeapYear$1 = {exports: {}}; + +(function (module, exports) { + !function(e,t){module.exports=t();}(commonjsGlobal,(function(){return function(e,t){t.prototype.isLeapYear=function(){return this.$y%4==0&&this.$y%100!=0||this.$y%400==0};}})); +} (isLeapYear$1)); + +var isLeapYearExports = isLeapYear$1.exports; +var isLeapYear = /*@__PURE__*/getDefaultExportFromCjs(isLeapYearExports); + +var advancedFormat$1 = {exports: {}}; + +(function (module, exports) { + !function(e,t){module.exports=t();}(commonjsGlobal,(function(){return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case"Q":return Math.ceil((t.$M+1)/3);case"Do":return r.ordinal(t.$D);case"gggg":return t.weekYear();case"GGGG":return t.isoWeekYear();case"wo":return r.ordinal(t.week(),"W");case"w":case"ww":return s.s(t.week(),"w"===e?1:2,"0");case"W":case"WW":return s.s(t.isoWeek(),"W"===e?1:2,"0");case"k":case"kk":return s.s(String(0===t.$H?24:t.$H),"k"===e?1:2,"0");case"X":return Math.floor(t.$d.getTime()/1e3);case"x":return t.$d.getTime();case"z":return "["+t.offsetName()+"]";case"zzz":return "["+t.offsetName("long")+"]";default:return e}}));return n.bind(this)(a)};}})); +} (advancedFormat$1)); + +var advancedFormatExports = advancedFormat$1.exports; +var advancedFormat = /*@__PURE__*/getDefaultExportFromCjs(advancedFormatExports); + +var utc$1 = {exports: {}}; + +(function (module, exports) { + !function(t,i){module.exports=i();}(commonjsGlobal,(function(){var t="minute",i=/[+-]\d\d(?::?\d\d)?/g,e=/([+-]|\d\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t);};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds();}else r.call(this);};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if("string"==typeof s&&(s=function(t){void 0===t&&(t="");var s=t.match(i);if(!s)return null;var f=(""+s[0]).match(e)||["-",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:"+"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r;}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return !!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return "s"===t&&this.$offset?n(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)};}})); +} (utc$1)); + +var utcExports = utc$1.exports; +var utc = /*@__PURE__*/getDefaultExportFromCjs(utcExports); + +var timezone$1 = {exports: {}}; + +(function (module, exports) { + !function(t,e){module.exports=e();}(commonjsGlobal,(function(){var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||"short",o=t+"|"+i,r=e[o];return r||(r=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(r[c]=parseInt(m,10));}var d=r[3],l=24===d?0:d,v=r[0]+"-"+r[1]+"-"+r[2]+" "+l+":"+r[4]+":"+r[5]+":000",h=+e;return (o.utc(v).valueOf()-(h-=h%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n=this.utcOffset(),i=this.toDate(),a=i.toLocaleString("en-US",{timeZone:t}),u=Math.round((i-new Date(a))/1e3/60),f=o(a).$set("millisecond",this.$ms).utcOffset(15*-Math.round(i.getTimezoneOffset()/15)-u,!0);if(e){var s=f.utcOffset();f=f.add(n-s,"minute");}return f.$x.$timezone=t,f},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return "timezonename"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format("YYYY-MM-DD HH:mm:ss:SSS"));return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if("string"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return [i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t;};}})); +} (timezone$1)); + +var timezoneExports = timezone$1.exports; +var timezone = /*@__PURE__*/getDefaultExportFromCjs(timezoneExports); + +var localeData$1 = {exports: {}}; + +(function (module, exports) { + !function(n,e){module.exports=e();}(commonjsGlobal,(function(){return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return {months:function(e){return e?e.format("MMMM"):u(n,"months")},monthsShort:function(e){return e?e.format("MMM"):u(n,"monthsShort","months",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format("dddd"):u(n,"weekdays")},weekdaysMin:function(e){return e?e.format("dd"):u(n,"weekdaysMin","weekdays",2)},weekdaysShort:function(e){return e?e.format("ddd"):u(n,"weekdaysShort","weekdays",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return {firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),"months")},t.monthsShort=function(){return u(i(),"monthsShort","months",3)},t.weekdays=function(n){return u(i(),"weekdays",null,null,n)},t.weekdaysShort=function(n){return u(i(),"weekdaysShort","weekdays",3,n)},t.weekdaysMin=function(n){return u(i(),"weekdaysMin","weekdays",2,n)};}})); +} (localeData$1)); + +var localeDataExports = localeData$1.exports; +var localeData = /*@__PURE__*/getDefaultExportFromCjs(localeDataExports); + +var localizedFormat$1 = {exports: {}}; + +(function (module, exports) { + !function(e,t){module.exports=t();}(commonjsGlobal,(function(){var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};return function(t,o,n){var r=o.prototype,i=r.format;n.en.formats=e,r.format=function(t){void 0===t&&(t="YYYY-MM-DDTHH:mm:ssZ");var o=this.$locale().formats,n=function(t,o){return t.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var i=r&&r.toUpperCase();return n||o[r]||e[r]||o[i].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,o){return t||o.slice(1)}))}))}(t,void 0===o?{}:o);return i.call(this,n)};}})); +} (localizedFormat$1)); + +var localizedFormatExports = localizedFormat$1.exports; +var localizedFormat = /*@__PURE__*/getDefaultExportFromCjs(localizedFormatExports); + +var updateLocale$1 = {exports: {}}; + +(function (module, exports) { + !function(e,n){module.exports=n();}(commonjsGlobal,(function(){return function(e,n,t){t.updateLocale=function(e,n){var o=t.Ls[e];if(o)return (n?Object.keys(n):[]).forEach((function(e){o[e]=n[e];})),o};}})); +} (updateLocale$1)); + +var updateLocaleExports = updateLocale$1.exports; +var updateLocale = /*@__PURE__*/getDefaultExportFromCjs(updateLocaleExports); + +dayjs.extend(weekOfYear); +dayjs.extend(isoWeeksInYear); +dayjs.extend(isoWeek); +dayjs.extend(isLeapYear); +dayjs.extend(dayOfYear); +dayjs.extend(weekday); +dayjs.extend(minMax); +dayjs.extend(advancedFormat); +dayjs.extend(utc); +dayjs.extend(timezone); +dayjs.extend(localeData); +dayjs.extend(localizedFormat); +dayjs.extend(updateLocale); +var DEFAULT_LOCALE = 'en'; +var DateHelper = /*#__PURE__*/function () { + function DateHelper() { + _classCallCheck(this, DateHelper); + var _a; + this.locale = DEFAULT_LOCALE; + this.timezone = dayjs.tz.guess(); + if ((typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object') { + (_a = window).dayjs || (_a.dayjs = dayjs); + } + } + _createClass(DateHelper, [{ + key: "setup", + value: function setup(_ref) { + var options = _ref.options; + return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() { + var userLocale, locale; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + this.timezone = options.date.timezone || dayjs.tz.guess(); + userLocale = options.date.locale; + if (!(typeof userLocale === 'string' && userLocale !== DEFAULT_LOCALE)) { + _context.next = 17; + break; + } + if (!((typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object')) { + _context.next = 12; + break; + } + _context.t0 = window["dayjs_locale_".concat(userLocale)]; + if (_context.t0) { + _context.next = 9; + break; + } + _context.next = 8; + return this.loadBrowserLocale(userLocale); + case 8: + _context.t0 = _context.sent; + case 9: + locale = _context.t0; + _context.next = 15; + break; + case 12: + _context.next = 14; + return this.loadNodeLocale(userLocale); + case 14: + locale = _context.sent; + case 15: + dayjs.locale(userLocale); + this.locale = locale; + case 17: + if (_typeof(userLocale) === 'object') { + if (userLocale.hasOwnProperty('name')) { + dayjs.locale(userLocale.name, userLocale); + this.locale = userLocale; + } else { + this.locale = dayjs.updateLocale(DEFAULT_LOCALE, userLocale); + } + } + case 18: + case "end": + return _context.stop(); + } + }, _callee, this); + })); + } + // eslint-disable-next-line class-methods-use-this + }, { + key: "extend", + value: function extend(dayjsPlugin) { + return dayjs.extend(dayjsPlugin); + } + /** + * Return the week number, relative to its month + * + * @param {number|Date} d Date or timestamp in milliseconds + * @returns {number} The week number, relative to the month [0-5] + */ + }, { + key: "getMonthWeekNumber", + value: function getMonthWeekNumber(d) { + var dayjsDate = this.date(d); + var date = dayjsDate.startOf('day'); + var endOfWeek = dayjsDate.startOf('month').endOf('week'); + if (date <= endOfWeek) { + return 1; + } + return Math.ceil(date.diff(endOfWeek, 'weeks', true)) + 1; + } + /** + * Return the number of weeks in the given month + * + * As there is no fixed standard to specify which month a partial week should + * belongs to, the ISO week date standard is used, where: + * - the first week of the month should have at least 4 days + * + * @see https://en.wikipedia.org/wiki/ISO_week_date + * + * @param {Timestamp | dayjs.Dayjs} d Datejs object or timestamp + * @return {number} The number of weeks + */ + }, { + key: "getWeeksCountInMonth", + value: function getWeeksCountInMonth(d) { + var pivotDate = this.date(d); + return this.getLastWeekOfMonth(pivotDate).diff(this.getFirstWeekOfMonth(pivotDate), 'week') + 1; + } + /** + * Return the start of the first week of the month + * + * @see getWeeksCountInMonth() about standard warning + * @return {dayjs.Dayjs} A dayjs object representing the start of the + * first week + */ + }, { + key: "getFirstWeekOfMonth", + value: function getFirstWeekOfMonth(d) { + var startOfMonth = this.date(d).startOf('month'); + var startOfFirstWeek = startOfMonth.startOf('week'); + if (startOfMonth.weekday() > 4) { + startOfFirstWeek = startOfFirstWeek.add(1, 'week'); + } + return startOfFirstWeek; + } + /** + * Return the end of the last week of the month + * + * @see getWeeksCountInMonth() about standard warning + * @return {dayjs.Dayjs} A dayjs object representing the end of the last week + */ + }, { + key: "getLastWeekOfMonth", + value: function getLastWeekOfMonth(d) { + var endOfMonth = this.date(d).endOf('month'); + var endOfLastWeek = endOfMonth.endOf('week'); + if (endOfMonth.weekday() < 4) { + endOfLastWeek = endOfLastWeek.subtract(1, 'week'); + } + return endOfLastWeek; + } + }, { + key: "date", + value: function date() { + var d = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date(); + if (dayjs.isDayjs(d)) { + return d; + } + return dayjs(d).tz(this.timezone).utcOffset(0).locale(this.locale); + } + }, { + key: "format", + value: function format(timestamp, formatter) { + if (typeof formatter === 'function') { + for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { + args[_key - 2] = arguments[_key]; + } + return formatter.apply(void 0, [timestamp].concat(args)); + } + if (typeof formatter === 'string') { + return this.date(timestamp).format(formatter); + } + return null; + } + /** + * Return an array of time interval + * + * @param {number|Date} date A random date included in the wanted interval + * @param {number|Date} range Length of the wanted interval, or a stop date. + * @param {boolean} range Whether the end date should be excluded + * from the result + * @returns {Array<number>} Array of unix timestamp, in milliseconds + */ + }, { + key: "intervals", + value: function intervals(interval, date, range) { + var excludeEnd = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; + var start = this.date(date); + var end; + if (typeof range === 'number') { + end = start.add(range, interval); + } else if (dayjs.isDayjs(range)) { + end = range; + } else { + end = this.date(range); + } + start = start.startOf(interval); + end = end.startOf(interval); + var pivot = dayjs.min(start, end); + end = dayjs.max(start, end); + var result = []; + if (!excludeEnd) { + end = end.add(1, 'second'); + } + do { + result.push(+pivot); + pivot = pivot.add(1, interval); + } while (pivot < end); + return result; + } + // this function will work cross-browser for loading scripts asynchronously + // eslint-disable-next-line class-methods-use-this + }, { + key: "loadBrowserLocale", + value: function loadBrowserLocale(userLocale) { + return new Promise(function (resolve, reject) { + var s = document.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = "https://cdn.jsdelivr.net/npm/dayjs@1/locale/".concat(userLocale, ".js"); + s.onerror = function (err) { + reject(err); + }; + s.onload = function () { + resolve(window["dayjs_locale_".concat(userLocale)]); + }; + document.head.appendChild(s); + }); + } + // eslint-disable-next-line class-methods-use-this + }, { + key: "loadNodeLocale", + value: function loadNodeLocale(userLocale) { + return import("dayjs/locale/".concat(userLocale, ".js")); + } + }]); + return DateHelper; +}(); + +var $ = _export; +var uncurryThis = functionUncurryThis; +var notARegExp = notARegexp; +var requireObjectCoercible = requireObjectCoercible$7; +var toString = toString$a; +var correctIsRegExpLogic = correctIsRegexpLogic; + +var stringIndexOf = uncurryThis(''.indexOf); + +// `String.prototype.includes` method +// https://tc39.es/ecma262/#sec-string.prototype.includes +$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, { + includes: function includes(searchString /* , position = 0 */) { + return !!~stringIndexOf( + toString(requireObjectCoercible(this)), + toString(notARegExp(searchString)), + arguments.length > 1 ? arguments[1] : undefined + ); + } +}); + +var ALLOWED_DATA_TYPES = ['json', 'csv', 'tsv', 'txt']; +/** + * Ensure that critical options are valid + * + * @throw {Error} on critical invalid options + * @return {boolean} Returns true when there is not critical errors + */ +function validate(templateCollection, _ref) { + var domain = _ref.domain, + subDomain = _ref.subDomain, + data = _ref.data; + var domainType = domain.type; + var subDomainType = subDomain.type; + if (!templateCollection.has(domainType)) { + throw new Error("'".concat(domainType, "' is not a valid domain type'")); + } + if (!templateCollection.has(subDomainType)) { + throw new Error("'".concat(subDomainType, "' is not a valid subDomain type'")); + } + if (data.type && !ALLOWED_DATA_TYPES.includes(data.type)) { + throw new Error("The data type '".concat(data.type, "' is not valid data type")); + } + if (!(templateCollection.get(subDomainType).allowedDomainType || []).includes(domainType)) { + throw new Error("The subDomain.type '".concat(subDomainType, "' can not be used together ") + "with the domain type ".concat(domainType)); + } + return true; +} + +var collection = collection$3; +var collectionStrong = collectionStrong$2; + +// `Set` constructor +// https://tc39.es/ecma262/#sec-set-objects +collection('Set', function (init) { + return function Set() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionStrong); + +function createPlugin(Creator, calendar) { + return new Creator(calendar); +} +function extractPluginName(PluginClass, options) { + return "".concat(new PluginClass().name).concat((options === null || options === void 0 ? void 0 : options.key) || ''); +} +var PluginManager = /*#__PURE__*/function () { + function PluginManager(calendar) { + _classCallCheck(this, PluginManager); + this.calendar = calendar; + this.settings = new Map(); + this.plugins = new Map(); + this.pendingPaint = new Set(); + } + _createClass(PluginManager, [{ + key: "add", + value: function add(plugins) { + var _this = this; + plugins.forEach(function (_ref) { + var _ref2 = _slicedToArray(_ref, 2), + PluginClass = _ref2[0], + pluginOptions = _ref2[1]; + var name = extractPluginName(PluginClass, pluginOptions); + var existingPlugin = _this.plugins.get(name); + if (existingPlugin && _this.settings.get(name) && isEqual(_this.settings.get(name).options, pluginOptions)) { + return; + } + _this.settings.set(name, { + options: pluginOptions, + dirty: true + }); + if (!_this.plugins.has(name)) { + _this.plugins.set(name, createPlugin(PluginClass, _this.calendar)); + } + _this.pendingPaint.add(_this.plugins.get(name)); + }); + } + }, { + key: "setupAll", + value: function setupAll() { + var _this2 = this; + this.plugins.forEach(function (pluginInstance, name) { + var settings = _this2.settings.get(name); + if (typeof settings !== 'undefined') { + if (settings.dirty) { + pluginInstance.setup(settings.options); + settings.dirty = false; + _this2.settings.set(name, settings); + } + } + }); + } + }, { + key: "paintAll", + value: function paintAll() { + return Array.from(this.pendingPaint.values()).map(function (p) { + return p.paint(); + }); + } + }, { + key: "destroyAll", + value: function destroyAll() { + return this.allPlugins().map(function (p) { + return p.destroy(); + }); + } + }, { + key: "getFromPosition", + value: function getFromPosition(position) { + return this.allPlugins().filter(function (plugin) { + var _a; + // eslint-disable-next-line implicit-arrow-linebreak + return ((_a = plugin.options) === null || _a === void 0 ? void 0 : _a.position) === position; + }); + } + }, { + key: "getHeightFromPosition", + value: function getHeightFromPosition(position) { + return this.getFromPosition(position).map(function (d) { + return d.options.dimensions.height; + }).reduce(function (a, b) { + return a + b; + }, 0); + } + }, { + key: "getWidthFromPosition", + value: function getWidthFromPosition(position) { + return this.getFromPosition(position).map(function (d) { + return d.options.dimensions.width; + }).reduce(function (a, b) { + return a + b; + }, 0); + } + }, { + key: "allPlugins", + value: function allPlugins() { + return Array.from(this.plugins.values()); + } + }]); + return PluginManager; +}(); + +var VERSION = '4.2.3'; + +var minuteTemplate = function minuteTemplate(DateHelper) { + var COLUMNS_COUNT = 10; + var ROWS_COUNT = 6; + var ALLOWED_DOMAIN_TYPE = ['day', 'hour']; + return { + name: 'minute', + allowedDomainType: ALLOWED_DOMAIN_TYPE, + rowsCount: function rowsCount() { + return COLUMNS_COUNT; + }, + columnsCount: function columnsCount() { + return ROWS_COUNT; + }, + mapping: function mapping(startTimestamp, endTimestamp) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + DateHelper.intervals('minute', startTimestamp, DateHelper.date(endTimestamp)).map(function (ts, index) { + return { + t: ts, + x: Math.floor(index / COLUMNS_COUNT), + y: index % COLUMNS_COUNT + }; + }) + ); + }, + extractUnit: function extractUnit(ts) { + return DateHelper.date(ts).startOf('minute').valueOf(); + } + }; +}; + +var hourTemplate = function hourTemplate(DateHelper, _ref) { + var domain = _ref.domain; + var TOTAL_ITEMS = 24; + var ROWS_COUNT = 6; + var ALLOWED_DOMAIN_TYPE = ['month', 'week', 'day']; + return { + name: 'hour', + allowedDomainType: ALLOWED_DOMAIN_TYPE, + rowsCount: function rowsCount() { + return ROWS_COUNT; + }, + columnsCount: function columnsCount(ts) { + switch (domain.type) { + case 'week': + return TOTAL_ITEMS / ROWS_COUNT * 7; + case 'month': + return TOTAL_ITEMS / ROWS_COUNT * (domain.dynamicDimension ? DateHelper.date(ts).daysInMonth() : 31); + case 'day': + default: + return TOTAL_ITEMS / ROWS_COUNT; + } + }, + mapping: function mapping(startTimestamp, endTimestamp) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + DateHelper.intervals('hour', startTimestamp, DateHelper.date(endTimestamp)).map(function (ts) { + var date = DateHelper.date(ts); + var hour = date.hour(); + var monthDate = date.date(); + var baseX = Math.floor(hour / ROWS_COUNT); + var columnOffset = TOTAL_ITEMS / ROWS_COUNT; + if (domain.type === 'month') { + baseX += (monthDate - 1) * columnOffset; + } + if (domain.type === 'week') { + baseX += +date.format('d') * columnOffset; + } + return { + t: ts, + x: baseX, + y: Math.floor(hour % ROWS_COUNT) + }; + }) + ); + }, + extractUnit: function extractUnit(ts) { + return DateHelper.date(ts).startOf('hour').valueOf(); + } + }; +}; + +var dayTemplate$2 = function dayTemplate(DateHelper, _ref) { + var domain = _ref.domain, + verticalOrientation = _ref.verticalOrientation; + var ROWS_COUNT = 7; + var ALLOWED_DOMAIN_TYPE = ['year', 'month', 'week']; + return { + name: 'day', + allowedDomainType: ALLOWED_DOMAIN_TYPE, + rowsCount: function rowsCount() { + return domain.type === 'week' ? 1 : ROWS_COUNT; + }, + columnsCount: function columnsCount(ts) { + switch (domain.type) { + case 'month': + return Math.ceil(domain.dynamicDimension && !verticalOrientation ? DateHelper.getMonthWeekNumber(DateHelper.date(ts).endOf('month')) : 6); + case 'year': + return Math.ceil(domain.dynamicDimension ? DateHelper.date(ts).endOf('year').dayOfYear() / ROWS_COUNT : 54); + case 'week': + default: + return ROWS_COUNT; + } + }, + mapping: function mapping(startTimestamp, endTimestamp) { + var weekNumber = 0; + var x = -1; + return DateHelper.intervals('day', startTimestamp, DateHelper.date(endTimestamp)).map(function (ts) { + var date = DateHelper.date(ts); + switch (domain.type) { + case 'month': + x = DateHelper.getMonthWeekNumber(ts) - 1; + break; + case 'year': + if (weekNumber !== date.week()) { + weekNumber = date.week(); + x += 1; + } + break; + case 'week': + x = date.weekday(); + break; + } + return { + t: ts, + x: x, + y: domain.type === 'week' ? 0 : date.weekday() + }; + }); + }, + extractUnit: function extractUnit(ts) { + return DateHelper.date(ts).startOf('day').valueOf(); + } + }; +}; + +var dayTemplate$1 = function dayTemplate(DateHelper, _ref) { + var domain = _ref.domain, + verticalOrientation = _ref.verticalOrientation; + var COLUMNS_COUNT = 7; + var ALLOWED_DOMAIN_TYPE = ['year', 'month', 'week']; + return { + name: 'xDay', + allowedDomainType: ALLOWED_DOMAIN_TYPE, + rowsCount: function rowsCount(ts) { + switch (domain.type) { + case 'month': + return Math.ceil(domain.dynamicDimension && !verticalOrientation ? DateHelper.getMonthWeekNumber(DateHelper.date(ts).endOf('month')) : 6); + case 'year': + return Math.ceil(domain.dynamicDimension ? DateHelper.date(ts).endOf('year').dayOfYear() / COLUMNS_COUNT : 54); + case 'week': + default: + return COLUMNS_COUNT; + } + }, + columnsCount: function columnsCount() { + if (domain.type === 'week') { + return 1; + } + return COLUMNS_COUNT; + }, + mapping: function mapping(startTimestamp, endTimestamp) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + DateHelper.intervals('day', startTimestamp, DateHelper.date(endTimestamp)).map(function (ts) { + var date = DateHelper.date(ts); + var endWeekNumber = date.endOf('year').week(); + var x = 0; + switch (domain.type) { + case 'month': + x = DateHelper.getMonthWeekNumber(ts) - 1; + break; + case 'year': + if (endWeekNumber === 1 && date.week() === endWeekNumber) { + x = date.subtract(1, 'week').week() + 1; + } + x = date.week() - 1; + break; + case 'week': + x = date.weekday(); + break; + } + return { + t: ts, + y: x, + x: domain.type === 'week' ? 0 : date.weekday() + }; + }) + ); + }, + extractUnit: function extractUnit(ts) { + return DateHelper.date(ts).startOf('day').valueOf(); + } + }; +}; + +var dayTemplate = function dayTemplate(DateHelper) { + var ROWS_COUNT = 7; + var ALLOWED_DOMAIN_TYPE = ['month']; + return { + name: 'ghDay', + allowedDomainType: ALLOWED_DOMAIN_TYPE, + rowsCount: function rowsCount() { + return ROWS_COUNT; + }, + columnsCount: function columnsCount(ts) { + return DateHelper.getWeeksCountInMonth(ts); + }, + mapping: function mapping(startTimestamp, endTimestamp) { + var clampStart = DateHelper.getFirstWeekOfMonth(startTimestamp); + var clampEnd = DateHelper.getFirstWeekOfMonth(endTimestamp); + var x = -1; + var pivotDay = clampStart.weekday(); + return DateHelper.intervals('day', clampStart, clampEnd).map(function (ts) { + var weekday = DateHelper.date(ts).weekday(); + if (weekday === pivotDay) { + x += 1; + } + return { + t: ts, + x: x, + y: weekday + }; + }); + }, + extractUnit: function extractUnit(ts) { + return DateHelper.date(ts).startOf('day').valueOf(); + } + }; +}; + +var weekTemplate = function weekTemplate(DateHelper, _ref) { + var domain = _ref.domain; + var ALLOWED_DOMAIN_TYPE = ['year', 'month']; + return { + name: 'week', + allowedDomainType: ALLOWED_DOMAIN_TYPE, + rowsCount: function rowsCount() { + return 1; + }, + columnsCount: function columnsCount(ts) { + switch (domain.type) { + case 'year': + return domain.dynamicDimension ? DateHelper.date(ts).endOf('year').isoWeeksInYear() : 53; + case 'month': + return domain.dynamicDimension ? DateHelper.getWeeksCountInMonth(ts) : 5; + default: + return 1; + } + }, + mapping: function mapping(startTimestamp, endTimestamp) { + var clampStart = DateHelper.getFirstWeekOfMonth(startTimestamp); + var clampEnd = DateHelper.getFirstWeekOfMonth(endTimestamp); + return DateHelper.intervals('week', clampStart, clampEnd).map(function (ts, i) { + return { + t: ts, + x: i, + y: 0 + }; + }); + }, + extractUnit: function extractUnit(ts) { + return DateHelper.date(ts).startOf('week').valueOf(); + } + }; +}; + +var monthTemplate = function monthTemplate(DateHelper) { + var ALLOWED_DOMAIN_TYPE = ['year']; + return { + name: 'month', + allowedDomainType: ALLOWED_DOMAIN_TYPE, + rowsCount: function rowsCount() { + return 1; + }, + columnsCount: function columnsCount() { + return 12; + }, + mapping: function mapping(startTimestamp, endTimestamp) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + DateHelper.intervals('month', startTimestamp, DateHelper.date(endTimestamp)).map(function (ts) { + return { + t: ts, + x: DateHelper.date(ts).month(), + y: 0 + }; + }) + ); + }, + extractUnit: function extractUnit(ts) { + return DateHelper.date(ts).startOf('month').valueOf(); + } + }; +}; + +var yearTemplate = function yearTemplate(DateHelper) { + var ALLOWED_DOMAIN_TYPE = []; + return { + name: 'year', + allowedDomainType: ALLOWED_DOMAIN_TYPE, + rowsCount: function rowsCount() { + return 1; + }, + columnsCount: function columnsCount() { + return 1; + }, + mapping: function mapping(startTimestamp, endTimestamp) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + DateHelper.intervals('year', startTimestamp, DateHelper.date(endTimestamp)).map(function (ts, index) { + return { + t: ts, + x: index, + y: 0 + }; + }) + ); + }, + extractUnit: function extractUnit(ts) { + return DateHelper.date(ts).startOf('year').valueOf(); + } + }; +}; + +var DefaultTemplates = [minuteTemplate, hourTemplate, dayTemplate$2, dayTemplate$1, dayTemplate, weekTemplate, monthTemplate, yearTemplate]; + +var TemplateCollection = /*#__PURE__*/function () { + function TemplateCollection(dateHelper, options) { + _classCallCheck(this, TemplateCollection); + this.settings = new Map(); + this.dateHelper = dateHelper; + this.options = options; + this.initiated = false; + } + _createClass(TemplateCollection, [{ + key: "get", + value: function get(subDomainType) { + return this.settings.get(subDomainType); + } + }, { + key: "has", + value: function has(subDomainType) { + return this.settings.has(subDomainType); + } + }, { + key: "init", + value: function init() { + if (!this.initiated) { + this.initiated = true; + this.add(DefaultTemplates); + } + } + }, { + key: "add", + value: function add(templates) { + var _this = this; + this.init(); + var tplWithParent = []; + castArray(templates).forEach(function (f) { + var template = f(_this.dateHelper, _this.options.options); + _this.settings.set(template.name, template); + if (template.hasOwnProperty('parent')) { + tplWithParent.push(template.name); + } + }); + tplWithParent.forEach(function (name) { + var parentTemplate = _this.settings.get(_this.settings.get(name).parent); + if (!parentTemplate) { + return; + } + _this.settings.set(name, Object.assign(Object.assign({}, parentTemplate), _this.settings.get(name))); + }); + } + }]); + return TemplateCollection; +}(); + +var CalHeatmap = /*#__PURE__*/function () { + function CalHeatmap() { + _classCallCheck(this, CalHeatmap); + // Default options + this.options = new Options(); + // Init the helpers with the default options + this.dateHelper = new DateHelper(); + this.templateCollection = new TemplateCollection(this.dateHelper, this.options); + this.dataFetcher = new DataFetcher(this); + this.navigator = new Navigator(this); + this.populator = new Populator(this); + this.calendarPainter = new CalendarPainter(this); + this.eventEmitter = new EventEmitter(); + this.pluginManager = new PluginManager(this); + } + _createClass(CalHeatmap, [{ + key: "createDomainCollection", + value: function createDomainCollection(startDate, range) { + var excludeEnd = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + return new DomainCollection(this.dateHelper, this.options.options.domain.type, startDate, range, excludeEnd); + } + // ========================================================================= + // PUBLIC API + // ========================================================================= + /** + * Setup and paint the calendar with the given options + * + * @param {Object} options The Options object + * @return A Promise, which will fulfill once all the underlying asynchronous + * tasks settle, whether resolved or rejected. + */ + }, { + key: "paint", + value: function paint(options, plugins) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() { + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + this.options.init(options); + _context.next = 3; + return this.dateHelper.setup(this.options); + case 3: + this.templateCollection.init(); + _context.prev = 4; + validate(this.templateCollection, this.options.options); + _context.next = 11; + break; + case 8: + _context.prev = 8; + _context.t0 = _context["catch"](4); + return _context.abrupt("return", Promise.reject(_context.t0)); + case 11: + if (plugins) { + this.pluginManager.add(castArray(plugins)); + } + this.calendarPainter.setup(); + // Record all the valid domains + // Each domain value is a timestamp in milliseconds + this.domainCollection = new DomainCollection(this.dateHelper); + this.navigator.loadNewDomains(this.createDomainCollection(this.options.options.date.start, this.options.options.range)); + return _context.abrupt("return", Promise.allSettled([this.calendarPainter.paint(), this.fill()])); + case 16: + case "end": + return _context.stop(); + } + }, _callee, this, [[4, 8]]); + })); + } + /** + * Add a new subDomainTemplate + * + * @since 4.0.0 + * @param {SubDomainTemplate[] | SubDomainTemplate} templates + * A single, or an array of SubDomainTemplate object + * @return void + */ + }, { + key: "addTemplates", + value: function addTemplates(templates) { + this.templateCollection.add(templates); + } + /** + * Shift the calendar by n domains forward + * + * @param {number} n Number of domain intervals to shift forward + * @return A Promise, which will fulfill once all the underlying asynchronous + * tasks settle, whether resolved or rejected. + */ + }, { + key: "next", + value: function next() { + var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; + var loadDirection = this.navigator.loadNewDomains(this.createDomainCollection(this.domainCollection.max, n + 1).slice(n), ScrollDirection.SCROLL_FORWARD); + return Promise.allSettled([this.calendarPainter.paint(loadDirection), this.fill()]); + } + /** + * Shift the calendar by n domains backward + * + * @param {number} n Number of domain intervals to shift backward + * @return A Promise, which will fulfill once all the underlying asynchronous + * tasks settle, whether resolved or rejected. + */ + }, { + key: "previous", + value: function previous() { + var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; + var loadDirection = this.navigator.loadNewDomains(this.createDomainCollection(this.domainCollection.min, -n), ScrollDirection.SCROLL_BACKWARD); + return Promise.allSettled([this.calendarPainter.paint(loadDirection), this.fill()]); + } + /** + * Jump directly to a specific date + * + * JumpTo will scroll the calendar until the wanted domain with the specified + * date is visible. Unless you set reset to true, the wanted domain + * will not necessarily be the first domain of the calendar. + * + * @param {Date} date Jump to the domain containing that date + * @param {boolean} reset Whether the wanted domain + * should be the first domain of the calendar + * @return A Promise, which will fulfill once all the underlying asynchronous + * tasks settle, whether resolved or rejected. + */ + }, { + key: "jumpTo", + value: function jumpTo(date) { + var reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + return Promise.allSettled([this.calendarPainter.paint(this.navigator.jumpTo(date, reset)), this.fill()]); + } + /** + * Fill the calendar with the given data + * + * @param {Object|string} dataSource The calendar's datasource, + * same type as `options.data.source` + * @return A Promise, which will fulfill once all the underlying asynchronous + * tasks settle, whether resolved or rejected. + */ + }, { + key: "fill", + value: function fill() { + var _this = this; + var dataSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.options.data.source; + var options = this.options.options; + var template = this.templateCollection; + var endDate = this.dateHelper.intervals(options.domain.type, this.domainCollection.max, 2)[1]; + var dataPromise = this.dataFetcher.getDatas(dataSource, this.domainCollection.min, endDate); + return new Promise(function (resolve, reject) { + dataPromise.then(function (data) { + _this.domainCollection.fill(data, options.data, template.get(options.subDomain.type).extractUnit); + _this.populator.populate(); + resolve(null); + }, function (error) { + reject(error); + }); + }); + } + /** + * Listener for all events + * + * @since 4.0.0 + * @param {string} eventName Name of the event to listen to + * @param {function} Callback function to execute on event trigger + * @return void + */ + }, { + key: "on", + value: function on(name, fn) { + this.eventEmitter.on(name, fn); + } + }, { + key: "dimensions", + value: function dimensions() { + return this.calendarPainter.dimensions; + } + /** + * Destroy the calendar + * + * @since 3.3.6 + * @return A Promise, which will fulfill once all the underlying asynchronous + * tasks settle, whether resolved or rejected. + */ + }, { + key: "destroy", + value: function destroy() { + return this.calendarPainter.destroy(); + } + }, { + key: "extendDayjs", + value: function extendDayjs(plugin) { + return this.dateHelper.extend(plugin); + } + }]); + return CalHeatmap; +}(); +CalHeatmap.VERSION = VERSION; + +export { CalHeatmap as default }; diff --git a/static/javascripts/cal-heatmap/cal-heatmap.js b/static/javascripts/cal-heatmap/cal-heatmap.js new file mode 100644 index 000000000..da6aaaa92 --- /dev/null +++ b/static/javascripts/cal-heatmap/cal-heatmap.js @@ -0,0 +1,13289 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('d3-selection'), require('d3-color'), require('d3'), require('d3-fetch')) : + typeof define === 'function' && define.amd ? define(['d3-selection', 'd3-color', 'd3', 'd3-fetch'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.CalHeatmap = factory(global.d3, global.d3, global.d3, global.d3)); +})(this, (function (d3Selection, d3Color, d3, d3Fetch) { 'use strict'; + + function _iterableToArrayLimit(arr, i) { + var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; + if (null != _i) { + var _s, + _e, + _x, + _r, + _arr = [], + _n = !0, + _d = !1; + try { + if (_x = (_i = _i.call(arr)).next, 0 === i) { + if (Object(_i) !== _i) return; + _n = !1; + } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); + } catch (err) { + _d = !0, _e = err; + } finally { + try { + if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; + } finally { + if (_d) throw _e; + } + } + return _arr; + } + } + function _regeneratorRuntime() { + _regeneratorRuntime = function () { + return exports; + }; + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + defineProperty = Object.defineProperty || function (obj, key, desc) { + obj[key] = desc.value; + }, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; + } + try { + define({}, ""); + } catch (err) { + define = function (obj, key, value) { + return obj[key] = value; + }; + } + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return defineProperty(generator, "_invoke", { + value: makeInvokeMethod(innerFn, self, context) + }), generator; + } + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; + } + } + exports.wrap = wrap; + var ContinueSentinel = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; + }); + var getProto = Object.getPrototypeOf, + NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); + }); + }); + } + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if ("throw" !== record.type) { + var result = record.arg, + value = result.value; + return value && "object" == typeof value && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }) : PromiseImpl.resolve(value).then(function (unwrapped) { + result.value = unwrapped, resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); + } + reject(record.arg); + } + var previousPromise; + defineProperty(this, "_invoke", { + value: function (method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } + }); + } + function makeInvokeMethod(innerFn, self, context) { + var state = "suspendedStart"; + return function (method, arg) { + if ("executing" === state) throw new Error("Generator is already running"); + if ("completed" === state) { + if ("throw" === method) throw arg; + return doneResult(); + } + for (context.method = method, context.arg = arg;;) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { + if ("suspendedStart" === state) throw state = "completed", context.arg; + context.dispatchException(context.arg); + } else "return" === context.method && context.abrupt("return", context.arg); + state = "executing"; + var record = tryCatch(innerFn, self, context); + if ("normal" === record.type) { + if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; + return { + value: record.arg, + done: context.done + }; + } + "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); + } + }; + } + function maybeInvokeDelegate(delegate, context) { + var methodName = context.method, + method = delegate.iterator[methodName]; + if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; + var record = tryCatch(method, delegate.iterator, context.arg); + if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; + var info = record.arg; + return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); + } + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); + } + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal", delete record.arg, entry.completion = record; + } + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); + } + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) return iteratorMethod.call(iterable); + if ("function" == typeof iterable.next) return iterable; + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; + return next.value = undefined, next.done = !0, next; + }; + return next.next = next; + } + } + return { + next: doneResult + }; + } + function doneResult() { + return { + value: undefined, + done: !0 + }; + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), defineProperty(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { + var ctor = "function" == typeof genFun && genFun.constructor; + return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); + }, exports.mark = function (genFun) { + return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; + }, exports.awrap = function (arg) { + return { + __await: arg + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { + return this; + }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { + void 0 === PromiseImpl && (PromiseImpl = Promise); + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); + return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { + return this; + }), define(Gp, "toString", function () { + return "[object Generator]"; + }), exports.keys = function (val) { + var object = Object(val), + keys = []; + for (var key in object) keys.push(key); + return keys.reverse(), function next() { + for (; keys.length;) { + var key = keys.pop(); + if (key in object) return next.value = key, next.done = !1, next; + } + return next.done = !0, next; + }; + }, exports.values = values, Context.prototype = { + constructor: Context, + reset: function (skipTempReset) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); + }, + stop: function () { + this.done = !0; + var rootRecord = this.tryEntries[0].completion; + if ("throw" === rootRecord.type) throw rootRecord.arg; + return this.rval; + }, + dispatchException: function (exception) { + if (this.done) throw exception; + var context = this; + function handle(loc, caught) { + return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + } + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i], + record = entry.completion; + if ("root" === entry.tryLoc) return handle("end"); + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"), + hasFinally = hasOwn.call(entry, "finallyLoc"); + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } else if (hasCatch) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + } else { + if (!hasFinally) throw new Error("try statement without catch or finally"); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } + } + } + }, + abrupt: function (type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); + var record = finallyEntry ? finallyEntry.completion : {}; + return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); + }, + complete: function (record, afterLoc) { + if ("throw" === record.type) throw record.arg; + return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + }, + finish: function (finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } + }, + catch: function (tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if ("throw" === record.type) { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + throw new Error("illegal catch attempt"); + }, + delegateYield: function (iterable, resultName, nextLoc) { + return this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + } + }, exports; + } + function _typeof(obj) { + "@babel/helpers - typeof"; + + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _defineProperty(obj, key, value) { + key = _toPropertyKey(key); + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _toPrimitive(input, hint) { + if (typeof input !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (typeof res !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); + } + function _toPropertyKey(arg) { + var key = _toPrimitive(arg, "string"); + return typeof key === "symbol" ? key : String(key); + } + + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + function getDefaultExportFromCjs (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; + } + + var check = function (it) { + return it && it.Math == Math && it; + }; + + // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 + var global$n = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || commonjsGlobal || Function('return this')(); + + var shared$4 = {exports: {}}; + + var global$m = global$n; + + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$9 = Object.defineProperty; + + var defineGlobalProperty$3 = function (key, value) { + try { + defineProperty$9(global$m, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global$m[key] = value; + } return value; + }; + + var global$l = global$n; + var defineGlobalProperty$2 = defineGlobalProperty$3; + + var SHARED = '__core-js_shared__'; + var store$3 = global$l[SHARED] || defineGlobalProperty$2(SHARED, {}); + + var sharedStore = store$3; + + var store$2 = sharedStore; + + (shared$4.exports = function (key, value) { + return store$2[key] || (store$2[key] = value !== undefined ? value : {}); + })('versions', []).push({ + version: '3.30.2', + mode: 'global', + copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE', + source: 'https://github.com/zloirock/core-js' + }); + + var sharedExports = shared$4.exports; + + var fails$u = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } + }; + + var fails$t = fails$u; + + var functionBindNative = !fails$t(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); + }); + + var NATIVE_BIND$3 = functionBindNative; + + var FunctionPrototype$3 = Function.prototype; + var call$j = FunctionPrototype$3.call; + var uncurryThisWithBind = NATIVE_BIND$3 && FunctionPrototype$3.bind.bind(call$j, call$j); + + var functionUncurryThis = NATIVE_BIND$3 ? uncurryThisWithBind : function (fn) { + return function () { + return call$j.apply(fn, arguments); + }; + }; + + // we can't use just `it == null` since of `document.all` special case + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec + var isNullOrUndefined$8 = function (it) { + return it === null || it === undefined; + }; + + var isNullOrUndefined$7 = isNullOrUndefined$8; + + var $TypeError$h = TypeError; + + // `RequireObjectCoercible` abstract operation + // https://tc39.es/ecma262/#sec-requireobjectcoercible + var requireObjectCoercible$7 = function (it) { + if (isNullOrUndefined$7(it)) throw $TypeError$h("Can't call method on " + it); + return it; + }; + + var requireObjectCoercible$6 = requireObjectCoercible$7; + + var $Object$4 = Object; + + // `ToObject` abstract operation + // https://tc39.es/ecma262/#sec-toobject + var toObject$b = function (argument) { + return $Object$4(requireObjectCoercible$6(argument)); + }; + + var uncurryThis$v = functionUncurryThis; + var toObject$a = toObject$b; + + var hasOwnProperty$d = uncurryThis$v({}.hasOwnProperty); + + // `HasOwnProperty` abstract operation + // https://tc39.es/ecma262/#sec-hasownproperty + // eslint-disable-next-line es/no-object-hasown -- safe + var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty$d(toObject$a(it), key); + }; + + var uncurryThis$u = functionUncurryThis; + + var id$2 = 0; + var postfix = Math.random(); + var toString$d = uncurryThis$u(1.0.toString); + + var uid$3 = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$d(++id$2 + postfix, 36); + }; + + var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + + var global$k = global$n; + var userAgent$5 = engineUserAgent; + + var process$4 = global$k.process; + var Deno$1 = global$k.Deno; + var versions = process$4 && process$4.versions || Deno$1 && Deno$1.version; + var v8 = versions && versions.v8; + var match, version; + + if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); + } + + // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` + // so check `userAgent` even if `.v8` exists, but 0 + if (!version && userAgent$5) { + match = userAgent$5.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent$5.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } + } + + var engineV8Version = version; + + /* eslint-disable es/no-symbol -- required for testing */ + + var V8_VERSION$3 = engineV8Version; + var fails$s = fails$u; + var global$j = global$n; + + var $String$5 = global$j.String; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing + var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$s(function () { + var symbol = Symbol(); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String$5(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION$3 && V8_VERSION$3 < 41; + }); + + /* eslint-disable es/no-symbol -- required for testing */ + + var NATIVE_SYMBOL$1 = symbolConstructorDetection; + + var useSymbolAsUid = NATIVE_SYMBOL$1 + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + + var global$i = global$n; + var shared$3 = sharedExports; + var hasOwn$b = hasOwnProperty_1; + var uid$2 = uid$3; + var NATIVE_SYMBOL = symbolConstructorDetection; + var USE_SYMBOL_AS_UID$1 = useSymbolAsUid; + + var Symbol$4 = global$i.Symbol; + var WellKnownSymbolsStore = shared$3('wks'); + var createWellKnownSymbol = USE_SYMBOL_AS_UID$1 ? Symbol$4['for'] || Symbol$4 : Symbol$4 && Symbol$4.withoutSetter || uid$2; + + var wellKnownSymbol$m = function (name) { + if (!hasOwn$b(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn$b(Symbol$4, name) + ? Symbol$4[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; + }; + + var wellKnownSymbol$l = wellKnownSymbol$m; + + var TO_STRING_TAG$3 = wellKnownSymbol$l('toStringTag'); + var test$1 = {}; + + test$1[TO_STRING_TAG$3] = 'z'; + + var toStringTagSupport = String(test$1) === '[object z]'; + + var documentAll$2 = typeof document == 'object' && document.all; + + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + // eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing + var IS_HTMLDDA = typeof documentAll$2 == 'undefined' && documentAll$2 !== undefined; + + var documentAll_1 = { + all: documentAll$2, + IS_HTMLDDA: IS_HTMLDDA + }; + + var $documentAll$1 = documentAll_1; + + var documentAll$1 = $documentAll$1.all; + + // `IsCallable` abstract operation + // https://tc39.es/ecma262/#sec-iscallable + var isCallable$o = $documentAll$1.IS_HTMLDDA ? function (argument) { + return typeof argument == 'function' || argument === documentAll$1; + } : function (argument) { + return typeof argument == 'function'; + }; + + var objectDefineProperty = {}; + + var fails$r = fails$u; + + // Detect IE8's incomplete defineProperty implementation + var descriptors = !fails$r(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; + }); + + var isCallable$n = isCallable$o; + var $documentAll = documentAll_1; + + var documentAll = $documentAll.all; + + var isObject$j = $documentAll.IS_HTMLDDA ? function (it) { + return typeof it == 'object' ? it !== null : isCallable$n(it) || it === documentAll; + } : function (it) { + return typeof it == 'object' ? it !== null : isCallable$n(it); + }; + + var global$h = global$n; + var isObject$i = isObject$j; + + var document$3 = global$h.document; + // typeof document.createElement is 'object' in old IE + var EXISTS$1 = isObject$i(document$3) && isObject$i(document$3.createElement); + + var documentCreateElement$2 = function (it) { + return EXISTS$1 ? document$3.createElement(it) : {}; + }; + + var DESCRIPTORS$d = descriptors; + var fails$q = fails$u; + var createElement$1 = documentCreateElement$2; + + // Thanks to IE8 for its funny defineProperty + var ie8DomDefine = !DESCRIPTORS$d && !fails$q(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement$1('div'), 'a', { + get: function () { return 7; } + }).a != 7; + }); + + var DESCRIPTORS$c = descriptors; + var fails$p = fails$u; + + // V8 ~ Chrome 36- + // https://bugs.chromium.org/p/v8/issues/detail?id=3334 + var v8PrototypeDefineBug = DESCRIPTORS$c && fails$p(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype != 42; + }); + + var isObject$h = isObject$j; + + var $String$4 = String; + var $TypeError$g = TypeError; + + // `Assert: Type(argument) is Object` + var anObject$f = function (argument) { + if (isObject$h(argument)) return argument; + throw $TypeError$g($String$4(argument) + ' is not an object'); + }; + + var NATIVE_BIND$2 = functionBindNative; + + var call$i = Function.prototype.call; + + var functionCall = NATIVE_BIND$2 ? call$i.bind(call$i) : function () { + return call$i.apply(call$i, arguments); + }; + + var global$g = global$n; + var isCallable$m = isCallable$o; + + var aFunction = function (argument) { + return isCallable$m(argument) ? argument : undefined; + }; + + var getBuiltIn$7 = function (namespace, method) { + return arguments.length < 2 ? aFunction(global$g[namespace]) : global$g[namespace] && global$g[namespace][method]; + }; + + var uncurryThis$t = functionUncurryThis; + + var objectIsPrototypeOf = uncurryThis$t({}.isPrototypeOf); + + var getBuiltIn$6 = getBuiltIn$7; + var isCallable$l = isCallable$o; + var isPrototypeOf$2 = objectIsPrototypeOf; + var USE_SYMBOL_AS_UID = useSymbolAsUid; + + var $Object$3 = Object; + + var isSymbol$3 = USE_SYMBOL_AS_UID ? function (it) { + return typeof it == 'symbol'; + } : function (it) { + var $Symbol = getBuiltIn$6('Symbol'); + return isCallable$l($Symbol) && isPrototypeOf$2($Symbol.prototype, $Object$3(it)); + }; + + var $String$3 = String; + + var tryToString$5 = function (argument) { + try { + return $String$3(argument); + } catch (error) { + return 'Object'; + } + }; + + var isCallable$k = isCallable$o; + var tryToString$4 = tryToString$5; + + var $TypeError$f = TypeError; + + // `Assert: IsCallable(argument) is true` + var aCallable$b = function (argument) { + if (isCallable$k(argument)) return argument; + throw $TypeError$f(tryToString$4(argument) + ' is not a function'); + }; + + var aCallable$a = aCallable$b; + var isNullOrUndefined$6 = isNullOrUndefined$8; + + // `GetMethod` abstract operation + // https://tc39.es/ecma262/#sec-getmethod + var getMethod$4 = function (V, P) { + var func = V[P]; + return isNullOrUndefined$6(func) ? undefined : aCallable$a(func); + }; + + var call$h = functionCall; + var isCallable$j = isCallable$o; + var isObject$g = isObject$j; + + var $TypeError$e = TypeError; + + // `OrdinaryToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-ordinarytoprimitive + var ordinaryToPrimitive$1 = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable$j(fn = input.toString) && !isObject$g(val = call$h(fn, input))) return val; + if (isCallable$j(fn = input.valueOf) && !isObject$g(val = call$h(fn, input))) return val; + if (pref !== 'string' && isCallable$j(fn = input.toString) && !isObject$g(val = call$h(fn, input))) return val; + throw $TypeError$e("Can't convert object to primitive value"); + }; + + var call$g = functionCall; + var isObject$f = isObject$j; + var isSymbol$2 = isSymbol$3; + var getMethod$3 = getMethod$4; + var ordinaryToPrimitive = ordinaryToPrimitive$1; + var wellKnownSymbol$k = wellKnownSymbol$m; + + var $TypeError$d = TypeError; + var TO_PRIMITIVE = wellKnownSymbol$k('toPrimitive'); + + // `ToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-toprimitive + var toPrimitive$1 = function (input, pref) { + if (!isObject$f(input) || isSymbol$2(input)) return input; + var exoticToPrim = getMethod$3(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call$g(exoticToPrim, input, pref); + if (!isObject$f(result) || isSymbol$2(result)) return result; + throw $TypeError$d("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); + }; + + var toPrimitive = toPrimitive$1; + var isSymbol$1 = isSymbol$3; + + // `ToPropertyKey` abstract operation + // https://tc39.es/ecma262/#sec-topropertykey + var toPropertyKey$3 = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol$1(key) ? key : key + ''; + }; + + var DESCRIPTORS$b = descriptors; + var IE8_DOM_DEFINE$1 = ie8DomDefine; + var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug; + var anObject$e = anObject$f; + var toPropertyKey$2 = toPropertyKey$3; + + var $TypeError$c = TypeError; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var $defineProperty = Object.defineProperty; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + var ENUMERABLE = 'enumerable'; + var CONFIGURABLE$1 = 'configurable'; + var WRITABLE = 'writable'; + + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + objectDefineProperty.f = DESCRIPTORS$b ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) { + anObject$e(O); + P = toPropertyKey$2(P); + anObject$e(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor$1(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE$1 in Attributes ? Attributes[CONFIGURABLE$1] : current[CONFIGURABLE$1], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); + } : $defineProperty : function defineProperty(O, P, Attributes) { + anObject$e(O); + P = toPropertyKey$2(P); + anObject$e(Attributes); + if (IE8_DOM_DEFINE$1) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw $TypeError$c('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; + }; + + var makeBuiltIn$3 = {exports: {}}; + + var DESCRIPTORS$a = descriptors; + var hasOwn$a = hasOwnProperty_1; + + var FunctionPrototype$2 = Function.prototype; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getDescriptor = DESCRIPTORS$a && Object.getOwnPropertyDescriptor; + + var EXISTS = hasOwn$a(FunctionPrototype$2, 'name'); + // additional protection from minified / mangled / dropped function names + var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; + var CONFIGURABLE = EXISTS && (!DESCRIPTORS$a || (DESCRIPTORS$a && getDescriptor(FunctionPrototype$2, 'name').configurable)); + + var functionName = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE + }; + + var uncurryThis$s = functionUncurryThis; + var isCallable$i = isCallable$o; + var store$1 = sharedStore; + + var functionToString$1 = uncurryThis$s(Function.toString); + + // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper + if (!isCallable$i(store$1.inspectSource)) { + store$1.inspectSource = function (it) { + return functionToString$1(it); + }; + } + + var inspectSource$3 = store$1.inspectSource; + + var global$f = global$n; + var isCallable$h = isCallable$o; + + var WeakMap$3 = global$f.WeakMap; + + var weakMapBasicDetection = isCallable$h(WeakMap$3) && /native code/.test(String(WeakMap$3)); + + var createPropertyDescriptor$4 = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; + }; + + var DESCRIPTORS$9 = descriptors; + var definePropertyModule$4 = objectDefineProperty; + var createPropertyDescriptor$3 = createPropertyDescriptor$4; + + var createNonEnumerableProperty$6 = DESCRIPTORS$9 ? function (object, key, value) { + return definePropertyModule$4.f(object, key, createPropertyDescriptor$3(1, value)); + } : function (object, key, value) { + object[key] = value; + return object; + }; + + var shared$2 = sharedExports; + var uid$1 = uid$3; + + var keys$1 = shared$2('keys'); + + var sharedKey$3 = function (key) { + return keys$1[key] || (keys$1[key] = uid$1(key)); + }; + + var hiddenKeys$5 = {}; + + var NATIVE_WEAK_MAP = weakMapBasicDetection; + var global$e = global$n; + var isObject$e = isObject$j; + var createNonEnumerableProperty$5 = createNonEnumerableProperty$6; + var hasOwn$9 = hasOwnProperty_1; + var shared$1 = sharedStore; + var sharedKey$2 = sharedKey$3; + var hiddenKeys$4 = hiddenKeys$5; + + var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; + var TypeError$2 = global$e.TypeError; + var WeakMap$2 = global$e.WeakMap; + var set$2, get$1, has$1; + + var enforce = function (it) { + return has$1(it) ? get$1(it) : set$2(it, {}); + }; + + var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject$e(it) || (state = get$1(it)).type !== TYPE) { + throw TypeError$2('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; + }; + + if (NATIVE_WEAK_MAP || shared$1.state) { + var store = shared$1.state || (shared$1.state = new WeakMap$2()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set$2 = function (it, metadata) { + if (store.has(it)) throw TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get$1 = function (it) { + return store.get(it) || {}; + }; + has$1 = function (it) { + return store.has(it); + }; + } else { + var STATE = sharedKey$2('state'); + hiddenKeys$4[STATE] = true; + set$2 = function (it, metadata) { + if (hasOwn$9(it, STATE)) throw TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty$5(it, STATE, metadata); + return metadata; + }; + get$1 = function (it) { + return hasOwn$9(it, STATE) ? it[STATE] : {}; + }; + has$1 = function (it) { + return hasOwn$9(it, STATE); + }; + } + + var internalState = { + set: set$2, + get: get$1, + has: has$1, + enforce: enforce, + getterFor: getterFor + }; + + var uncurryThis$r = functionUncurryThis; + var fails$o = fails$u; + var isCallable$g = isCallable$o; + var hasOwn$8 = hasOwnProperty_1; + var DESCRIPTORS$8 = descriptors; + var CONFIGURABLE_FUNCTION_NAME$1 = functionName.CONFIGURABLE; + var inspectSource$2 = inspectSource$3; + var InternalStateModule$5 = internalState; + + var enforceInternalState = InternalStateModule$5.enforce; + var getInternalState$3 = InternalStateModule$5.get; + var $String$2 = String; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$8 = Object.defineProperty; + var stringSlice$6 = uncurryThis$r(''.slice); + var replace$3 = uncurryThis$r(''.replace); + var join = uncurryThis$r([].join); + + var CONFIGURABLE_LENGTH = DESCRIPTORS$8 && !fails$o(function () { + return defineProperty$8(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; + }); + + var TEMPLATE = String(String).split('String'); + + var makeBuiltIn$2 = makeBuiltIn$3.exports = function (value, name, options) { + if (stringSlice$6($String$2(name), 0, 7) === 'Symbol(') { + name = '[' + replace$3($String$2(name), /^Symbol\(([^)]*)\)/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn$8(value, 'name') || (CONFIGURABLE_FUNCTION_NAME$1 && value.name !== name)) { + if (DESCRIPTORS$8) defineProperty$8(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn$8(options, 'arity') && value.length !== options.arity) { + defineProperty$8(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn$8(options, 'constructor') && options.constructor) { + if (DESCRIPTORS$8) defineProperty$8(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn$8(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; + }; + + // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative + // eslint-disable-next-line no-extend-native -- required + Function.prototype.toString = makeBuiltIn$2(function toString() { + return isCallable$g(this) && getInternalState$3(this).source || inspectSource$2(this); + }, 'toString'); + + var makeBuiltInExports = makeBuiltIn$3.exports; + + var isCallable$f = isCallable$o; + var definePropertyModule$3 = objectDefineProperty; + var makeBuiltIn$1 = makeBuiltInExports; + var defineGlobalProperty$1 = defineGlobalProperty$3; + + var defineBuiltIn$9 = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable$f(value)) makeBuiltIn$1(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty$1(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule$3.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; + }; + + var uncurryThis$q = functionUncurryThis; + + var toString$c = uncurryThis$q({}.toString); + var stringSlice$5 = uncurryThis$q(''.slice); + + var classofRaw$2 = function (it) { + return stringSlice$5(toString$c(it), 8, -1); + }; + + var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport; + var isCallable$e = isCallable$o; + var classofRaw$1 = classofRaw$2; + var wellKnownSymbol$j = wellKnownSymbol$m; + + var TO_STRING_TAG$2 = wellKnownSymbol$j('toStringTag'); + var $Object$2 = Object; + + // ES3 wrong here + var CORRECT_ARGUMENTS = classofRaw$1(function () { return arguments; }()) == 'Arguments'; + + // fallback for IE11 Script Access Denied error + var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } + }; + + // getting tag from ES6+ `Object.prototype.toString` + var classof$b = TO_STRING_TAG_SUPPORT$2 ? classofRaw$1 : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object$2(it), TO_STRING_TAG$2)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw$1(O) + // ES3 arguments fallback + : (result = classofRaw$1(O)) == 'Object' && isCallable$e(O.callee) ? 'Arguments' : result; + }; + + var TO_STRING_TAG_SUPPORT$1 = toStringTagSupport; + var classof$a = classof$b; + + // `Object.prototype.toString` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.tostring + var objectToString$2 = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() { + return '[object ' + classof$a(this) + ']'; + }; + + var TO_STRING_TAG_SUPPORT = toStringTagSupport; + var defineBuiltIn$8 = defineBuiltIn$9; + var toString$b = objectToString$2; + + // `Object.prototype.toString` method + // https://tc39.es/ecma262/#sec-object.prototype.tostring + if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn$8(Object.prototype, 'toString', toString$b, { unsafe: true }); + } + + var objectGetOwnPropertyDescriptor = {}; + + var objectPropertyIsEnumerable = {}; + + var $propertyIsEnumerable$1 = {}.propertyIsEnumerable; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getOwnPropertyDescriptor$3 = Object.getOwnPropertyDescriptor; + + // Nashorn ~ JDK8 bug + var NASHORN_BUG = getOwnPropertyDescriptor$3 && !$propertyIsEnumerable$1.call({ 1: 2 }, 1); + + // `Object.prototype.propertyIsEnumerable` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable + objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor$3(this, V); + return !!descriptor && descriptor.enumerable; + } : $propertyIsEnumerable$1; + + var uncurryThis$p = functionUncurryThis; + var fails$n = fails$u; + var classof$9 = classofRaw$2; + + var $Object$1 = Object; + var split = uncurryThis$p(''.split); + + // fallback for non-array-like ES3 and non-enumerable old V8 strings + var indexedObject = fails$n(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object$1('z').propertyIsEnumerable(0); + }) ? function (it) { + return classof$9(it) == 'String' ? split(it, '') : $Object$1(it); + } : $Object$1; + + // toObject with fallback for non-array-like ES3 strings + var IndexedObject$4 = indexedObject; + var requireObjectCoercible$5 = requireObjectCoercible$7; + + var toIndexedObject$9 = function (it) { + return IndexedObject$4(requireObjectCoercible$5(it)); + }; + + var DESCRIPTORS$7 = descriptors; + var call$f = functionCall; + var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable; + var createPropertyDescriptor$2 = createPropertyDescriptor$4; + var toIndexedObject$8 = toIndexedObject$9; + var toPropertyKey$1 = toPropertyKey$3; + var hasOwn$7 = hasOwnProperty_1; + var IE8_DOM_DEFINE = ie8DomDefine; + + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor + objectGetOwnPropertyDescriptor.f = DESCRIPTORS$7 ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject$8(O); + P = toPropertyKey$1(P); + if (IE8_DOM_DEFINE) try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (hasOwn$7(O, P)) return createPropertyDescriptor$2(!call$f(propertyIsEnumerableModule$1.f, O, P), O[P]); + }; + + var objectGetOwnPropertyNames = {}; + + var ceil = Math.ceil; + var floor$2 = Math.floor; + + // `Math.trunc` method + // https://tc39.es/ecma262/#sec-math.trunc + // eslint-disable-next-line es/no-math-trunc -- safe + var mathTrunc = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor$2 : ceil)(n); + }; + + var trunc = mathTrunc; + + // `ToIntegerOrInfinity` abstract operation + // https://tc39.es/ecma262/#sec-tointegerorinfinity + var toIntegerOrInfinity$4 = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); + }; + + var toIntegerOrInfinity$3 = toIntegerOrInfinity$4; + + var max$3 = Math.max; + var min$3 = Math.min; + + // Helper for a popular repeating case of the spec: + // Let integer be ? ToInteger(index). + // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). + var toAbsoluteIndex$4 = function (index, length) { + var integer = toIntegerOrInfinity$3(index); + return integer < 0 ? max$3(integer + length, 0) : min$3(integer, length); + }; + + var toIntegerOrInfinity$2 = toIntegerOrInfinity$4; + + var min$2 = Math.min; + + // `ToLength` abstract operation + // https://tc39.es/ecma262/#sec-tolength + var toLength$3 = function (argument) { + return argument > 0 ? min$2(toIntegerOrInfinity$2(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 + }; + + var toLength$2 = toLength$3; + + // `LengthOfArrayLike` abstract operation + // https://tc39.es/ecma262/#sec-lengthofarraylike + var lengthOfArrayLike$a = function (obj) { + return toLength$2(obj.length); + }; + + var toIndexedObject$7 = toIndexedObject$9; + var toAbsoluteIndex$3 = toAbsoluteIndex$4; + var lengthOfArrayLike$9 = lengthOfArrayLike$a; + + // `Array.prototype.{ indexOf, includes }` methods implementation + var createMethod$5 = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject$7($this); + var length = lengthOfArrayLike$9(O); + var index = toAbsoluteIndex$3(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; + }; + + var arrayIncludes = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod$5(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod$5(false) + }; + + var uncurryThis$o = functionUncurryThis; + var hasOwn$6 = hasOwnProperty_1; + var toIndexedObject$6 = toIndexedObject$9; + var indexOf$1 = arrayIncludes.indexOf; + var hiddenKeys$3 = hiddenKeys$5; + + var push$4 = uncurryThis$o([].push); + + var objectKeysInternal = function (object, names) { + var O = toIndexedObject$6(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn$6(hiddenKeys$3, key) && hasOwn$6(O, key) && push$4(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn$6(O, key = names[i++])) { + ~indexOf$1(result, key) || push$4(result, key); + } + return result; + }; + + // IE8- don't enum bug keys + var enumBugKeys$3 = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' + ]; + + var internalObjectKeys$1 = objectKeysInternal; + var enumBugKeys$2 = enumBugKeys$3; + + var hiddenKeys$2 = enumBugKeys$2.concat('length', 'prototype'); + + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + // eslint-disable-next-line es/no-object-getownpropertynames -- safe + objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys$1(O, hiddenKeys$2); + }; + + var objectGetOwnPropertySymbols = {}; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe + objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; + + var getBuiltIn$5 = getBuiltIn$7; + var uncurryThis$n = functionUncurryThis; + var getOwnPropertyNamesModule$1 = objectGetOwnPropertyNames; + var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols; + var anObject$d = anObject$f; + + var concat$2 = uncurryThis$n([].concat); + + // all object keys, includes non-enumerable and symbols + var ownKeys$1 = getBuiltIn$5('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule$1.f(anObject$d(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f; + return getOwnPropertySymbols ? concat$2(keys, getOwnPropertySymbols(it)) : keys; + }; + + var hasOwn$5 = hasOwnProperty_1; + var ownKeys = ownKeys$1; + var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor; + var definePropertyModule$2 = objectDefineProperty; + + var copyConstructorProperties$1 = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule$2.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn$5(target, key) && !(exceptions && hasOwn$5(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } + }; + + var fails$m = fails$u; + var isCallable$d = isCallable$o; + + var replacement = /#|\.prototype\./; + + var isForced$3 = function (feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true + : value == NATIVE ? false + : isCallable$d(detection) ? fails$m(detection) + : !!detection; + }; + + var normalize = isForced$3.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); + }; + + var data = isForced$3.data = {}; + var NATIVE = isForced$3.NATIVE = 'N'; + var POLYFILL = isForced$3.POLYFILL = 'P'; + + var isForced_1 = isForced$3; + + var global$d = global$n; + var getOwnPropertyDescriptor$2 = objectGetOwnPropertyDescriptor.f; + var createNonEnumerableProperty$4 = createNonEnumerableProperty$6; + var defineBuiltIn$7 = defineBuiltIn$9; + var defineGlobalProperty = defineGlobalProperty$3; + var copyConstructorProperties = copyConstructorProperties$1; + var isForced$2 = isForced_1; + + /* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key + */ + var _export = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global$d; + } else if (STATIC) { + target = global$d[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = (global$d[TARGET] || {}).prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor$2(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced$2(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty$4(sourceProperty, 'sham', true); + } + defineBuiltIn$7(target, key, sourceProperty, options); + } + }; + + var classof$8 = classofRaw$2; + + var engineIsNode = typeof process != 'undefined' && classof$8(process) == 'process'; + + var uncurryThis$m = functionUncurryThis; + var aCallable$9 = aCallable$b; + + var functionUncurryThisAccessor = function (object, key, method) { + try { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return uncurryThis$m(aCallable$9(Object.getOwnPropertyDescriptor(object, key)[method])); + } catch (error) { /* empty */ } + }; + + var isCallable$c = isCallable$o; + + var $String$1 = String; + var $TypeError$b = TypeError; + + var aPossiblePrototype$1 = function (argument) { + if (typeof argument == 'object' || isCallable$c(argument)) return argument; + throw $TypeError$b("Can't set " + $String$1(argument) + ' as a prototype'); + }; + + /* eslint-disable no-proto -- safe */ + + var uncurryThisAccessor = functionUncurryThisAccessor; + var anObject$c = anObject$f; + var aPossiblePrototype = aPossiblePrototype$1; + + // `Object.setPrototypeOf` method + // https://tc39.es/ecma262/#sec-object.setprototypeof + // Works with __proto__ only. Old v8 can't work with null proto objects. + // eslint-disable-next-line es/no-object-setprototypeof -- safe + var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set'); + setter(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + anObject$c(O); + aPossiblePrototype(proto); + if (CORRECT_SETTER) setter(O, proto); + else O.__proto__ = proto; + return O; + }; + }() : undefined); + + var defineProperty$7 = objectDefineProperty.f; + var hasOwn$4 = hasOwnProperty_1; + var wellKnownSymbol$i = wellKnownSymbol$m; + + var TO_STRING_TAG$1 = wellKnownSymbol$i('toStringTag'); + + var setToStringTag$4 = function (target, TAG, STATIC) { + if (target && !STATIC) target = target.prototype; + if (target && !hasOwn$4(target, TO_STRING_TAG$1)) { + defineProperty$7(target, TO_STRING_TAG$1, { configurable: true, value: TAG }); + } + }; + + var makeBuiltIn = makeBuiltInExports; + var defineProperty$6 = objectDefineProperty; + + var defineBuiltInAccessor$3 = function (target, name, descriptor) { + if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true }); + if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true }); + return defineProperty$6.f(target, name, descriptor); + }; + + var getBuiltIn$4 = getBuiltIn$7; + var defineBuiltInAccessor$2 = defineBuiltInAccessor$3; + var wellKnownSymbol$h = wellKnownSymbol$m; + var DESCRIPTORS$6 = descriptors; + + var SPECIES$6 = wellKnownSymbol$h('species'); + + var setSpecies$2 = function (CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn$4(CONSTRUCTOR_NAME); + + if (DESCRIPTORS$6 && Constructor && !Constructor[SPECIES$6]) { + defineBuiltInAccessor$2(Constructor, SPECIES$6, { + configurable: true, + get: function () { return this; } + }); + } + }; + + var isPrototypeOf$1 = objectIsPrototypeOf; + + var $TypeError$a = TypeError; + + var anInstance$4 = function (it, Prototype) { + if (isPrototypeOf$1(Prototype, it)) return it; + throw $TypeError$a('Incorrect invocation'); + }; + + var uncurryThis$l = functionUncurryThis; + var fails$l = fails$u; + var isCallable$b = isCallable$o; + var classof$7 = classof$b; + var getBuiltIn$3 = getBuiltIn$7; + var inspectSource$1 = inspectSource$3; + + var noop = function () { /* empty */ }; + var empty = []; + var construct = getBuiltIn$3('Reflect', 'construct'); + var constructorRegExp = /^\s*(?:class|function)\b/; + var exec$2 = uncurryThis$l(constructorRegExp.exec); + var INCORRECT_TO_STRING = !constructorRegExp.exec(noop); + + var isConstructorModern = function isConstructor(argument) { + if (!isCallable$b(argument)) return false; + try { + construct(noop, empty, argument); + return true; + } catch (error) { + return false; + } + }; + + var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable$b(argument)) return false; + switch (classof$7(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec$2(constructorRegExp, inspectSource$1(argument)); + } catch (error) { + return true; + } + }; + + isConstructorLegacy.sham = true; + + // `IsConstructor` abstract operation + // https://tc39.es/ecma262/#sec-isconstructor + var isConstructor$4 = !construct || fails$l(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; + }) ? isConstructorLegacy : isConstructorModern; + + var isConstructor$3 = isConstructor$4; + var tryToString$3 = tryToString$5; + + var $TypeError$9 = TypeError; + + // `Assert: IsConstructor(argument) is true` + var aConstructor$1 = function (argument) { + if (isConstructor$3(argument)) return argument; + throw $TypeError$9(tryToString$3(argument) + ' is not a constructor'); + }; + + var anObject$b = anObject$f; + var aConstructor = aConstructor$1; + var isNullOrUndefined$5 = isNullOrUndefined$8; + var wellKnownSymbol$g = wellKnownSymbol$m; + + var SPECIES$5 = wellKnownSymbol$g('species'); + + // `SpeciesConstructor` abstract operation + // https://tc39.es/ecma262/#sec-speciesconstructor + var speciesConstructor$1 = function (O, defaultConstructor) { + var C = anObject$b(O).constructor; + var S; + return C === undefined || isNullOrUndefined$5(S = anObject$b(C)[SPECIES$5]) ? defaultConstructor : aConstructor(S); + }; + + var NATIVE_BIND$1 = functionBindNative; + + var FunctionPrototype$1 = Function.prototype; + var apply$3 = FunctionPrototype$1.apply; + var call$e = FunctionPrototype$1.call; + + // eslint-disable-next-line es/no-reflect -- safe + var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND$1 ? call$e.bind(apply$3) : function () { + return call$e.apply(apply$3, arguments); + }); + + var classofRaw = classofRaw$2; + var uncurryThis$k = functionUncurryThis; + + var functionUncurryThisClause = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis$k(fn); + }; + + var uncurryThis$j = functionUncurryThisClause; + var aCallable$8 = aCallable$b; + var NATIVE_BIND = functionBindNative; + + var bind$7 = uncurryThis$j(uncurryThis$j.bind); + + // optional / simple context binding + var functionBindContext = function (fn, that) { + aCallable$8(fn); + return that === undefined ? fn : NATIVE_BIND ? bind$7(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; + }; + + var getBuiltIn$2 = getBuiltIn$7; + + var html$2 = getBuiltIn$2('document', 'documentElement'); + + var uncurryThis$i = functionUncurryThis; + + var arraySlice$3 = uncurryThis$i([].slice); + + var $TypeError$8 = TypeError; + + var validateArgumentsLength$1 = function (passed, required) { + if (passed < required) throw $TypeError$8('Not enough arguments'); + return passed; + }; + + var userAgent$4 = engineUserAgent; + + // eslint-disable-next-line redos/no-vulnerable -- safe + var engineIsIos = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent$4); + + var global$c = global$n; + var apply$2 = functionApply; + var bind$6 = functionBindContext; + var isCallable$a = isCallable$o; + var hasOwn$3 = hasOwnProperty_1; + var fails$k = fails$u; + var html$1 = html$2; + var arraySlice$2 = arraySlice$3; + var createElement = documentCreateElement$2; + var validateArgumentsLength = validateArgumentsLength$1; + var IS_IOS$1 = engineIsIos; + var IS_NODE$4 = engineIsNode; + + var set$1 = global$c.setImmediate; + var clear = global$c.clearImmediate; + var process$3 = global$c.process; + var Dispatch = global$c.Dispatch; + var Function$1 = global$c.Function; + var MessageChannel = global$c.MessageChannel; + var String$1 = global$c.String; + var counter = 0; + var queue$2 = {}; + var ONREADYSTATECHANGE = 'onreadystatechange'; + var $location, defer, channel, port; + + fails$k(function () { + // Deno throws a ReferenceError on `location` access without `--location` flag + $location = global$c.location; + }); + + var run = function (id) { + if (hasOwn$3(queue$2, id)) { + var fn = queue$2[id]; + delete queue$2[id]; + fn(); + } + }; + + var runner = function (id) { + return function () { + run(id); + }; + }; + + var eventListener = function (event) { + run(event.data); + }; + + var globalPostMessageDefer = function (id) { + // old engines have not location.origin + global$c.postMessage(String$1(id), $location.protocol + '//' + $location.host); + }; + + // Node.js 0.9+ & IE10+ has setImmediate, otherwise: + if (!set$1 || !clear) { + set$1 = function setImmediate(handler) { + validateArgumentsLength(arguments.length, 1); + var fn = isCallable$a(handler) ? handler : Function$1(handler); + var args = arraySlice$2(arguments, 1); + queue$2[++counter] = function () { + apply$2(fn, undefined, args); + }; + defer(counter); + return counter; + }; + clear = function clearImmediate(id) { + delete queue$2[id]; + }; + // Node.js 0.8- + if (IS_NODE$4) { + defer = function (id) { + process$3.nextTick(runner(id)); + }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(runner(id)); + }; + // Browsers with MessageChannel, includes WebWorkers + // except iOS - https://github.com/zloirock/core-js/issues/624 + } else if (MessageChannel && !IS_IOS$1) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = eventListener; + defer = bind$6(port.postMessage, port); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if ( + global$c.addEventListener && + isCallable$a(global$c.postMessage) && + !global$c.importScripts && + $location && $location.protocol !== 'file:' && + !fails$k(globalPostMessageDefer) + ) { + defer = globalPostMessageDefer; + global$c.addEventListener('message', eventListener, false); + // IE8- + } else if (ONREADYSTATECHANGE in createElement('script')) { + defer = function (id) { + html$1.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { + html$1.removeChild(this); + run(id); + }; + }; + // Rest old browsers + } else { + defer = function (id) { + setTimeout(runner(id), 0); + }; + } + } + + var task$1 = { + set: set$1, + clear: clear + }; + + var Queue$2 = function () { + this.head = null; + this.tail = null; + }; + + Queue$2.prototype = { + add: function (item) { + var entry = { item: item, next: null }; + var tail = this.tail; + if (tail) tail.next = entry; + else this.head = entry; + this.tail = entry; + }, + get: function () { + var entry = this.head; + if (entry) { + var next = this.head = entry.next; + if (next === null) this.tail = null; + return entry.item; + } + } + }; + + var queue$1 = Queue$2; + + var userAgent$3 = engineUserAgent; + + var engineIsIosPebble = /ipad|iphone|ipod/i.test(userAgent$3) && typeof Pebble != 'undefined'; + + var userAgent$2 = engineUserAgent; + + var engineIsWebosWebkit = /web0s(?!.*chrome)/i.test(userAgent$2); + + var global$b = global$n; + var bind$5 = functionBindContext; + var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f; + var macrotask = task$1.set; + var Queue$1 = queue$1; + var IS_IOS = engineIsIos; + var IS_IOS_PEBBLE = engineIsIosPebble; + var IS_WEBOS_WEBKIT = engineIsWebosWebkit; + var IS_NODE$3 = engineIsNode; + + var MutationObserver = global$b.MutationObserver || global$b.WebKitMutationObserver; + var document$2 = global$b.document; + var process$2 = global$b.process; + var Promise$3 = global$b.Promise; + // Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` + var queueMicrotaskDescriptor = getOwnPropertyDescriptor$1(global$b, 'queueMicrotask'); + var microtask$1 = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; + var notify$1, toggle, node, promise, then; + + // modern engines have queueMicrotask method + if (!microtask$1) { + var queue = new Queue$1(); + + var flush = function () { + var parent, fn; + if (IS_NODE$3 && (parent = process$2.domain)) parent.exit(); + while (fn = queue.get()) try { + fn(); + } catch (error) { + if (queue.head) notify$1(); + throw error; + } + if (parent) parent.enter(); + }; + + // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 + // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 + if (!IS_IOS && !IS_NODE$3 && !IS_WEBOS_WEBKIT && MutationObserver && document$2) { + toggle = true; + node = document$2.createTextNode(''); + new MutationObserver(flush).observe(node, { characterData: true }); + notify$1 = function () { + node.data = toggle = !toggle; + }; + // environments with maybe non-completely correct, but existent Promise + } else if (!IS_IOS_PEBBLE && Promise$3 && Promise$3.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + promise = Promise$3.resolve(undefined); + // workaround of WebKit ~ iOS Safari 10.1 bug + promise.constructor = Promise$3; + then = bind$5(promise.then, promise); + notify$1 = function () { + then(flush); + }; + // Node.js without promises + } else if (IS_NODE$3) { + notify$1 = function () { + process$2.nextTick(flush); + }; + // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessage + // - onreadystatechange + // - setTimeout + } else { + // `webpack` dev server bug on IE global methods - use bind(fn, global) + macrotask = bind$5(macrotask, global$b); + notify$1 = function () { + macrotask(flush); + }; + } + + microtask$1 = function (fn) { + if (!queue.head) notify$1(); + queue.add(fn); + }; + } + + var microtask_1 = microtask$1; + + var hostReportErrors$1 = function (a, b) { + try { + // eslint-disable-next-line no-console -- safe + arguments.length == 1 ? console.error(a) : console.error(a, b); + } catch (error) { /* empty */ } + }; + + var perform$4 = function (exec) { + try { + return { error: false, value: exec() }; + } catch (error) { + return { error: true, value: error }; + } + }; + + var global$a = global$n; + + var promiseNativeConstructor = global$a.Promise; + + /* global Deno -- Deno case */ + + var engineIsDeno = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; + + var IS_DENO$1 = engineIsDeno; + var IS_NODE$2 = engineIsNode; + + var engineIsBrowser = !IS_DENO$1 && !IS_NODE$2 + && typeof window == 'object' + && typeof document == 'object'; + + var global$9 = global$n; + var NativePromiseConstructor$3 = promiseNativeConstructor; + var isCallable$9 = isCallable$o; + var isForced$1 = isForced_1; + var inspectSource = inspectSource$3; + var wellKnownSymbol$f = wellKnownSymbol$m; + var IS_BROWSER = engineIsBrowser; + var IS_DENO = engineIsDeno; + var V8_VERSION$2 = engineV8Version; + + NativePromiseConstructor$3 && NativePromiseConstructor$3.prototype; + var SPECIES$4 = wellKnownSymbol$f('species'); + var SUBCLASSING = false; + var NATIVE_PROMISE_REJECTION_EVENT$1 = isCallable$9(global$9.PromiseRejectionEvent); + + var FORCED_PROMISE_CONSTRUCTOR$5 = isForced$1('Promise', function () { + var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor$3); + var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor$3); + // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // We can't detect it synchronously, so just check versions + if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION$2 === 66) return true; + // We can't use @@species feature detection in V8 since it causes + // deoptimization and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if (!V8_VERSION$2 || V8_VERSION$2 < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) { + // Detect correctness of subclassing with @@species support + var promise = new NativePromiseConstructor$3(function (resolve) { resolve(1); }); + var FakePromise = function (exec) { + exec(function () { /* empty */ }, function () { /* empty */ }); + }; + var constructor = promise.constructor = {}; + constructor[SPECIES$4] = FakePromise; + SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise; + if (!SUBCLASSING) return true; + // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test + } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT$1; + }); + + var promiseConstructorDetection = { + CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR$5, + REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT$1, + SUBCLASSING: SUBCLASSING + }; + + var newPromiseCapability$2 = {}; + + var aCallable$7 = aCallable$b; + + var $TypeError$7 = TypeError; + + var PromiseCapability = function (C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw $TypeError$7('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aCallable$7(resolve); + this.reject = aCallable$7(reject); + }; + + // `NewPromiseCapability` abstract operation + // https://tc39.es/ecma262/#sec-newpromisecapability + newPromiseCapability$2.f = function (C) { + return new PromiseCapability(C); + }; + + var $$r = _export; + var IS_NODE$1 = engineIsNode; + var global$8 = global$n; + var call$d = functionCall; + var defineBuiltIn$6 = defineBuiltIn$9; + var setPrototypeOf$2 = objectSetPrototypeOf; + var setToStringTag$3 = setToStringTag$4; + var setSpecies$1 = setSpecies$2; + var aCallable$6 = aCallable$b; + var isCallable$8 = isCallable$o; + var isObject$d = isObject$j; + var anInstance$3 = anInstance$4; + var speciesConstructor = speciesConstructor$1; + var task = task$1.set; + var microtask = microtask_1; + var hostReportErrors = hostReportErrors$1; + var perform$3 = perform$4; + var Queue = queue$1; + var InternalStateModule$4 = internalState; + var NativePromiseConstructor$2 = promiseNativeConstructor; + var PromiseConstructorDetection = promiseConstructorDetection; + var newPromiseCapabilityModule$4 = newPromiseCapability$2; + + var PROMISE = 'Promise'; + var FORCED_PROMISE_CONSTRUCTOR$4 = PromiseConstructorDetection.CONSTRUCTOR; + var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT; + var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING; + var getInternalPromiseState = InternalStateModule$4.getterFor(PROMISE); + var setInternalState$4 = InternalStateModule$4.set; + var NativePromisePrototype$1 = NativePromiseConstructor$2 && NativePromiseConstructor$2.prototype; + var PromiseConstructor = NativePromiseConstructor$2; + var PromisePrototype = NativePromisePrototype$1; + var TypeError$1 = global$8.TypeError; + var document$1 = global$8.document; + var process$1 = global$8.process; + var newPromiseCapability$1 = newPromiseCapabilityModule$4.f; + var newGenericPromiseCapability = newPromiseCapability$1; + + var DISPATCH_EVENT = !!(document$1 && document$1.createEvent && global$8.dispatchEvent); + var UNHANDLED_REJECTION = 'unhandledrejection'; + var REJECTION_HANDLED = 'rejectionhandled'; + var PENDING = 0; + var FULFILLED = 1; + var REJECTED = 2; + var HANDLED = 1; + var UNHANDLED = 2; + + var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; + + // helpers + var isThenable = function (it) { + var then; + return isObject$d(it) && isCallable$8(then = it.then) ? then : false; + }; + + var callReaction = function (reaction, state) { + var value = state.value; + var ok = state.state == FULFILLED; + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + try { + if (handler) { + if (!ok) { + if (state.rejection === UNHANDLED) onHandleUnhandled(state); + state.rejection = HANDLED; + } + if (handler === true) result = value; + else { + if (domain) domain.enter(); + result = handler(value); // can throw + if (domain) { + domain.exit(); + exited = true; + } + } + if (result === reaction.promise) { + reject(TypeError$1('Promise-chain cycle')); + } else if (then = isThenable(result)) { + call$d(then, result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (error) { + if (domain && !exited) domain.exit(); + reject(error); + } + }; + + var notify = function (state, isReject) { + if (state.notified) return; + state.notified = true; + microtask(function () { + var reactions = state.reactions; + var reaction; + while (reaction = reactions.get()) { + callReaction(reaction, state); + } + state.notified = false; + if (isReject && !state.rejection) onUnhandled(state); + }); + }; + + var dispatchEvent = function (name, promise, reason) { + var event, handler; + if (DISPATCH_EVENT) { + event = document$1.createEvent('Event'); + event.promise = promise; + event.reason = reason; + event.initEvent(name, false, true); + global$8.dispatchEvent(event); + } else event = { promise: promise, reason: reason }; + if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global$8['on' + name])) handler(event); + else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); + }; + + var onUnhandled = function (state) { + call$d(task, global$8, function () { + var promise = state.facade; + var value = state.value; + var IS_UNHANDLED = isUnhandled(state); + var result; + if (IS_UNHANDLED) { + result = perform$3(function () { + if (IS_NODE$1) { + process$1.emit('unhandledRejection', value, promise); + } else dispatchEvent(UNHANDLED_REJECTION, promise, value); + }); + // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + state.rejection = IS_NODE$1 || isUnhandled(state) ? UNHANDLED : HANDLED; + if (result.error) throw result.value; + } + }); + }; + + var isUnhandled = function (state) { + return state.rejection !== HANDLED && !state.parent; + }; + + var onHandleUnhandled = function (state) { + call$d(task, global$8, function () { + var promise = state.facade; + if (IS_NODE$1) { + process$1.emit('rejectionHandled', promise); + } else dispatchEvent(REJECTION_HANDLED, promise, state.value); + }); + }; + + var bind$4 = function (fn, state, unwrap) { + return function (value) { + fn(state, value, unwrap); + }; + }; + + var internalReject = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + state.value = value; + state.state = REJECTED; + notify(state, true); + }; + + var internalResolve = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + try { + if (state.facade === value) throw TypeError$1("Promise can't be resolved itself"); + var then = isThenable(value); + if (then) { + microtask(function () { + var wrapper = { done: false }; + try { + call$d(then, value, + bind$4(internalResolve, wrapper, state), + bind$4(internalReject, wrapper, state) + ); + } catch (error) { + internalReject(wrapper, error, state); + } + }); + } else { + state.value = value; + state.state = FULFILLED; + notify(state, false); + } + } catch (error) { + internalReject({ done: false }, error, state); + } + }; + + // constructor polyfill + if (FORCED_PROMISE_CONSTRUCTOR$4) { + // 25.4.3.1 Promise(executor) + PromiseConstructor = function Promise(executor) { + anInstance$3(this, PromisePrototype); + aCallable$6(executor); + call$d(Internal, this); + var state = getInternalPromiseState(this); + try { + executor(bind$4(internalResolve, state), bind$4(internalReject, state)); + } catch (error) { + internalReject(state, error); + } + }; + + PromisePrototype = PromiseConstructor.prototype; + + // eslint-disable-next-line no-unused-vars -- required for `.length` + Internal = function Promise(executor) { + setInternalState$4(this, { + type: PROMISE, + done: false, + notified: false, + parent: false, + reactions: new Queue(), + rejection: false, + state: PENDING, + value: undefined + }); + }; + + // `Promise.prototype.then` method + // https://tc39.es/ecma262/#sec-promise.prototype.then + Internal.prototype = defineBuiltIn$6(PromisePrototype, 'then', function then(onFulfilled, onRejected) { + var state = getInternalPromiseState(this); + var reaction = newPromiseCapability$1(speciesConstructor(this, PromiseConstructor)); + state.parent = true; + reaction.ok = isCallable$8(onFulfilled) ? onFulfilled : true; + reaction.fail = isCallable$8(onRejected) && onRejected; + reaction.domain = IS_NODE$1 ? process$1.domain : undefined; + if (state.state == PENDING) state.reactions.add(reaction); + else microtask(function () { + callReaction(reaction, state); + }); + return reaction.promise; + }); + + OwnPromiseCapability = function () { + var promise = new Internal(); + var state = getInternalPromiseState(promise); + this.promise = promise; + this.resolve = bind$4(internalResolve, state); + this.reject = bind$4(internalReject, state); + }; + + newPromiseCapabilityModule$4.f = newPromiseCapability$1 = function (C) { + return C === PromiseConstructor || C === PromiseWrapper + ? new OwnPromiseCapability(C) + : newGenericPromiseCapability(C); + }; + + if (isCallable$8(NativePromiseConstructor$2) && NativePromisePrototype$1 !== Object.prototype) { + nativeThen = NativePromisePrototype$1.then; + + if (!NATIVE_PROMISE_SUBCLASSING) { + // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs + defineBuiltIn$6(NativePromisePrototype$1, 'then', function then(onFulfilled, onRejected) { + var that = this; + return new PromiseConstructor(function (resolve, reject) { + call$d(nativeThen, that, resolve, reject); + }).then(onFulfilled, onRejected); + // https://github.com/zloirock/core-js/issues/640 + }, { unsafe: true }); + } + + // make `.constructor === Promise` work for native promise-based APIs + try { + delete NativePromisePrototype$1.constructor; + } catch (error) { /* empty */ } + + // make `instanceof Promise` work for native promise-based APIs + if (setPrototypeOf$2) { + setPrototypeOf$2(NativePromisePrototype$1, PromisePrototype); + } + } + } + + $$r({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR$4 }, { + Promise: PromiseConstructor + }); + + setToStringTag$3(PromiseConstructor, PROMISE, false); + setSpecies$1(PROMISE); + + var iterators = {}; + + var wellKnownSymbol$e = wellKnownSymbol$m; + var Iterators$4 = iterators; + + var ITERATOR$6 = wellKnownSymbol$e('iterator'); + var ArrayPrototype$1 = Array.prototype; + + // check on default Array iterator + var isArrayIteratorMethod$2 = function (it) { + return it !== undefined && (Iterators$4.Array === it || ArrayPrototype$1[ITERATOR$6] === it); + }; + + var classof$6 = classof$b; + var getMethod$2 = getMethod$4; + var isNullOrUndefined$4 = isNullOrUndefined$8; + var Iterators$3 = iterators; + var wellKnownSymbol$d = wellKnownSymbol$m; + + var ITERATOR$5 = wellKnownSymbol$d('iterator'); + + var getIteratorMethod$3 = function (it) { + if (!isNullOrUndefined$4(it)) return getMethod$2(it, ITERATOR$5) + || getMethod$2(it, '@@iterator') + || Iterators$3[classof$6(it)]; + }; + + var call$c = functionCall; + var aCallable$5 = aCallable$b; + var anObject$a = anObject$f; + var tryToString$2 = tryToString$5; + var getIteratorMethod$2 = getIteratorMethod$3; + + var $TypeError$6 = TypeError; + + var getIterator$2 = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod$2(argument) : usingIterator; + if (aCallable$5(iteratorMethod)) return anObject$a(call$c(iteratorMethod, argument)); + throw $TypeError$6(tryToString$2(argument) + ' is not iterable'); + }; + + var call$b = functionCall; + var anObject$9 = anObject$f; + var getMethod$1 = getMethod$4; + + var iteratorClose$2 = function (iterator, kind, value) { + var innerResult, innerError; + anObject$9(iterator); + try { + innerResult = getMethod$1(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') throw value; + return value; + } + innerResult = call$b(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === 'throw') throw value; + if (innerError) throw innerResult; + anObject$9(innerResult); + return value; + }; + + var bind$3 = functionBindContext; + var call$a = functionCall; + var anObject$8 = anObject$f; + var tryToString$1 = tryToString$5; + var isArrayIteratorMethod$1 = isArrayIteratorMethod$2; + var lengthOfArrayLike$8 = lengthOfArrayLike$a; + var isPrototypeOf = objectIsPrototypeOf; + var getIterator$1 = getIterator$2; + var getIteratorMethod$1 = getIteratorMethod$3; + var iteratorClose$1 = iteratorClose$2; + + var $TypeError$5 = TypeError; + + var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; + }; + + var ResultPrototype = Result.prototype; + + var iterate$6 = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_RECORD = !!(options && options.IS_RECORD); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind$3(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose$1(iterator, 'normal', condition); + return new Result(true, condition); + }; + + var callFn = function (value) { + if (AS_ENTRIES) { + anObject$8(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; + + if (IS_RECORD) { + iterator = iterable.iterator; + } else if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod$1(iterable); + if (!iterFn) throw $TypeError$5(tryToString$1(iterable) + ' is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod$1(iterFn)) { + for (index = 0, length = lengthOfArrayLike$8(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + } + iterator = getIterator$1(iterable, iterFn); + } + + next = IS_RECORD ? iterable.next : iterator.next; + while (!(step = call$a(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose$1(iterator, 'throw', error); + } + if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + }; + + var wellKnownSymbol$c = wellKnownSymbol$m; + + var ITERATOR$4 = wellKnownSymbol$c('iterator'); + var SAFE_CLOSING = false; + + try { + var called = 0; + var iteratorWithReturn = { + next: function () { + return { done: !!called++ }; + }, + 'return': function () { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR$4] = function () { + return this; + }; + // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing + Array.from(iteratorWithReturn, function () { throw 2; }); + } catch (error) { /* empty */ } + + var checkCorrectnessOfIteration$3 = function (exec, SKIP_CLOSING) { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR$4] = function () { + return { + next: function () { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { /* empty */ } + return ITERATION_SUPPORT; + }; + + var NativePromiseConstructor$1 = promiseNativeConstructor; + var checkCorrectnessOfIteration$2 = checkCorrectnessOfIteration$3; + var FORCED_PROMISE_CONSTRUCTOR$3 = promiseConstructorDetection.CONSTRUCTOR; + + var promiseStaticsIncorrectIteration = FORCED_PROMISE_CONSTRUCTOR$3 || !checkCorrectnessOfIteration$2(function (iterable) { + NativePromiseConstructor$1.all(iterable).then(undefined, function () { /* empty */ }); + }); + + var $$q = _export; + var call$9 = functionCall; + var aCallable$4 = aCallable$b; + var newPromiseCapabilityModule$3 = newPromiseCapability$2; + var perform$2 = perform$4; + var iterate$5 = iterate$6; + var PROMISE_STATICS_INCORRECT_ITERATION$2 = promiseStaticsIncorrectIteration; + + // `Promise.all` method + // https://tc39.es/ecma262/#sec-promise.all + $$q({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$2 }, { + all: function all(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$3.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform$2(function () { + var $promiseResolve = aCallable$4(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate$5(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call$9($promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } + }); + + var $$p = _export; + var FORCED_PROMISE_CONSTRUCTOR$2 = promiseConstructorDetection.CONSTRUCTOR; + var NativePromiseConstructor = promiseNativeConstructor; + var getBuiltIn$1 = getBuiltIn$7; + var isCallable$7 = isCallable$o; + var defineBuiltIn$5 = defineBuiltIn$9; + + var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + + // `Promise.prototype.catch` method + // https://tc39.es/ecma262/#sec-promise.prototype.catch + $$p({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR$2, real: true }, { + 'catch': function (onRejected) { + return this.then(undefined, onRejected); + } + }); + + // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` + if (isCallable$7(NativePromiseConstructor)) { + var method = getBuiltIn$1('Promise').prototype['catch']; + if (NativePromisePrototype['catch'] !== method) { + defineBuiltIn$5(NativePromisePrototype, 'catch', method, { unsafe: true }); + } + } + + var $$o = _export; + var call$8 = functionCall; + var aCallable$3 = aCallable$b; + var newPromiseCapabilityModule$2 = newPromiseCapability$2; + var perform$1 = perform$4; + var iterate$4 = iterate$6; + var PROMISE_STATICS_INCORRECT_ITERATION$1 = promiseStaticsIncorrectIteration; + + // `Promise.race` method + // https://tc39.es/ecma262/#sec-promise.race + $$o({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$1 }, { + race: function race(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$2.f(C); + var reject = capability.reject; + var result = perform$1(function () { + var $promiseResolve = aCallable$3(C.resolve); + iterate$4(iterable, function (promise) { + call$8($promiseResolve, C, promise).then(capability.resolve, reject); + }); + }); + if (result.error) reject(result.value); + return capability.promise; + } + }); + + var $$n = _export; + var call$7 = functionCall; + var newPromiseCapabilityModule$1 = newPromiseCapability$2; + var FORCED_PROMISE_CONSTRUCTOR$1 = promiseConstructorDetection.CONSTRUCTOR; + + // `Promise.reject` method + // https://tc39.es/ecma262/#sec-promise.reject + $$n({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR$1 }, { + reject: function reject(r) { + var capability = newPromiseCapabilityModule$1.f(this); + call$7(capability.reject, undefined, r); + return capability.promise; + } + }); + + var anObject$7 = anObject$f; + var isObject$c = isObject$j; + var newPromiseCapability = newPromiseCapability$2; + + var promiseResolve$1 = function (C, x) { + anObject$7(C); + if (isObject$c(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; + }; + + var $$m = _export; + var getBuiltIn = getBuiltIn$7; + var FORCED_PROMISE_CONSTRUCTOR = promiseConstructorDetection.CONSTRUCTOR; + var promiseResolve = promiseResolve$1; + + getBuiltIn('Promise'); + + // `Promise.resolve` method + // https://tc39.es/ecma262/#sec-promise.resolve + $$m({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + resolve: function resolve(x) { + return promiseResolve(this, x); + } + }); + + var objectDefineProperties = {}; + + var internalObjectKeys = objectKeysInternal; + var enumBugKeys$1 = enumBugKeys$3; + + // `Object.keys` method + // https://tc39.es/ecma262/#sec-object.keys + // eslint-disable-next-line es/no-object-keys -- safe + var objectKeys$3 = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys$1); + }; + + var DESCRIPTORS$5 = descriptors; + var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug; + var definePropertyModule$1 = objectDefineProperty; + var anObject$6 = anObject$f; + var toIndexedObject$5 = toIndexedObject$9; + var objectKeys$2 = objectKeys$3; + + // `Object.defineProperties` method + // https://tc39.es/ecma262/#sec-object.defineproperties + // eslint-disable-next-line es/no-object-defineproperties -- safe + objectDefineProperties.f = DESCRIPTORS$5 && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject$6(O); + var props = toIndexedObject$5(Properties); + var keys = objectKeys$2(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule$1.f(O, key = keys[index++], props[key]); + return O; + }; + + /* global ActiveXObject -- old IE, WSH */ + + var anObject$5 = anObject$f; + var definePropertiesModule = objectDefineProperties; + var enumBugKeys = enumBugKeys$3; + var hiddenKeys$1 = hiddenKeys$5; + var html = html$2; + var documentCreateElement$1 = documentCreateElement$2; + var sharedKey$1 = sharedKey$3; + + var GT = '>'; + var LT = '<'; + var PROTOTYPE = 'prototype'; + var SCRIPT = 'script'; + var IE_PROTO$1 = sharedKey$1('IE_PROTO'); + + var EmptyConstructor = function () { /* empty */ }; + + var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; + }; + + // Create object with fake `null` prototype: use ActiveX Object with cleared prototype + var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; + }; + + // Create object with fake `null` prototype: use iframe Object with cleared prototype + var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement$1('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; + }; + + // Check for document.domain and active x support + // No need to use active x approach when document.domain is not set + // see https://github.com/es-shims/es5-shim/issues/150 + // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 + // avoid IE GC bug + var activeXDocument; + var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); + }; + + hiddenKeys$1[IE_PROTO$1] = true; + + // `Object.create` method + // https://tc39.es/ecma262/#sec-object.create + // eslint-disable-next-line es/no-object-create -- safe + var objectCreate$1 = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject$5(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO$1] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); + }; + + var wellKnownSymbol$b = wellKnownSymbol$m; + var create$3 = objectCreate$1; + var defineProperty$5 = objectDefineProperty.f; + + var UNSCOPABLES = wellKnownSymbol$b('unscopables'); + var ArrayPrototype = Array.prototype; + + // Array.prototype[@@unscopables] + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + if (ArrayPrototype[UNSCOPABLES] == undefined) { + defineProperty$5(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create$3(null) + }); + } + + // add a key to Array.prototype[@@unscopables] + var addToUnscopables$3 = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; + }; + + var fails$j = fails$u; + + var correctPrototypeGetter = !fails$j(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + // eslint-disable-next-line es/no-object-getprototypeof -- required for testing + return Object.getPrototypeOf(new F()) !== F.prototype; + }); + + var hasOwn$2 = hasOwnProperty_1; + var isCallable$6 = isCallable$o; + var toObject$9 = toObject$b; + var sharedKey = sharedKey$3; + var CORRECT_PROTOTYPE_GETTER = correctPrototypeGetter; + + var IE_PROTO = sharedKey('IE_PROTO'); + var $Object = Object; + var ObjectPrototype = $Object.prototype; + + // `Object.getPrototypeOf` method + // https://tc39.es/ecma262/#sec-object.getprototypeof + // eslint-disable-next-line es/no-object-getprototypeof -- safe + var objectGetPrototypeOf = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { + var object = toObject$9(O); + if (hasOwn$2(object, IE_PROTO)) return object[IE_PROTO]; + var constructor = object.constructor; + if (isCallable$6(constructor) && object instanceof constructor) { + return constructor.prototype; + } return object instanceof $Object ? ObjectPrototype : null; + }; + + var fails$i = fails$u; + var isCallable$5 = isCallable$o; + var isObject$b = isObject$j; + var getPrototypeOf$1 = objectGetPrototypeOf; + var defineBuiltIn$4 = defineBuiltIn$9; + var wellKnownSymbol$a = wellKnownSymbol$m; + + var ITERATOR$3 = wellKnownSymbol$a('iterator'); + var BUGGY_SAFARI_ITERATORS$1 = false; + + // `%IteratorPrototype%` object + // https://tc39.es/ecma262/#sec-%iteratorprototype%-object + var IteratorPrototype$2, PrototypeOfArrayIteratorPrototype, arrayIterator; + + /* eslint-disable es/no-array-prototype-keys -- safe */ + if ([].keys) { + arrayIterator = [].keys(); + // Safari 8 has buggy iterators w/o `next` + if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS$1 = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf$1(getPrototypeOf$1(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype$2 = PrototypeOfArrayIteratorPrototype; + } + } + + var NEW_ITERATOR_PROTOTYPE = !isObject$b(IteratorPrototype$2) || fails$i(function () { + var test = {}; + // FF44- legacy iterators case + return IteratorPrototype$2[ITERATOR$3].call(test) !== test; + }); + + if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype$2 = {}; + + // `%IteratorPrototype%[@@iterator]()` method + // https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator + if (!isCallable$5(IteratorPrototype$2[ITERATOR$3])) { + defineBuiltIn$4(IteratorPrototype$2, ITERATOR$3, function () { + return this; + }); + } + + var iteratorsCore = { + IteratorPrototype: IteratorPrototype$2, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS$1 + }; + + var IteratorPrototype$1 = iteratorsCore.IteratorPrototype; + var create$2 = objectCreate$1; + var createPropertyDescriptor$1 = createPropertyDescriptor$4; + var setToStringTag$2 = setToStringTag$4; + var Iterators$2 = iterators; + + var returnThis$1 = function () { return this; }; + + var iteratorCreateConstructor = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = create$2(IteratorPrototype$1, { next: createPropertyDescriptor$1(+!ENUMERABLE_NEXT, next) }); + setToStringTag$2(IteratorConstructor, TO_STRING_TAG, false); + Iterators$2[TO_STRING_TAG] = returnThis$1; + return IteratorConstructor; + }; + + var $$l = _export; + var call$6 = functionCall; + var FunctionName = functionName; + var isCallable$4 = isCallable$o; + var createIteratorConstructor = iteratorCreateConstructor; + var getPrototypeOf = objectGetPrototypeOf; + var setPrototypeOf$1 = objectSetPrototypeOf; + var setToStringTag$1 = setToStringTag$4; + var createNonEnumerableProperty$3 = createNonEnumerableProperty$6; + var defineBuiltIn$3 = defineBuiltIn$9; + var wellKnownSymbol$9 = wellKnownSymbol$m; + var Iterators$1 = iterators; + var IteratorsCore = iteratorsCore; + + var PROPER_FUNCTION_NAME$1 = FunctionName.PROPER; + var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; + var IteratorPrototype = IteratorsCore.IteratorPrototype; + var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; + var ITERATOR$2 = wellKnownSymbol$9('iterator'); + var KEYS = 'keys'; + var VALUES = 'values'; + var ENTRIES = 'entries'; + + var returnThis = function () { return this; }; + + var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + + var getIterationMethod = function (KIND) { + if (KIND === DEFAULT && defaultIterator) return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; + switch (KIND) { + case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; + case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; + case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; + } return function () { return new IteratorConstructor(this); }; + }; + + var TO_STRING_TAG = NAME + ' Iterator'; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR$2] + || IterablePrototype['@@iterator'] + || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + + // fix native + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf$1) { + setPrototypeOf$1(CurrentIteratorPrototype, IteratorPrototype); + } else if (!isCallable$4(CurrentIteratorPrototype[ITERATOR$2])) { + defineBuiltIn$3(CurrentIteratorPrototype, ITERATOR$2, returnThis); + } + } + // Set @@toStringTag to native iterators + setToStringTag$1(CurrentIteratorPrototype, TO_STRING_TAG, true); + } + } + + // fix Array.prototype.{ values, @@iterator }.name in V8 / FF + if (PROPER_FUNCTION_NAME$1 && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { + if (CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty$3(IterablePrototype, 'name', VALUES); + } else { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { return call$6(nativeIterator, this); }; + } + } + + // export additional methods + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + defineBuiltIn$3(IterablePrototype, KEY, methods[KEY]); + } + } else $$l({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + + // define iterator + if (IterablePrototype[ITERATOR$2] !== defaultIterator) { + defineBuiltIn$3(IterablePrototype, ITERATOR$2, defaultIterator, { name: DEFAULT }); + } + Iterators$1[NAME] = defaultIterator; + + return methods; + }; + + // `CreateIterResultObject` abstract operation + // https://tc39.es/ecma262/#sec-createiterresultobject + var createIterResultObject$3 = function (value, done) { + return { value: value, done: done }; + }; + + var toIndexedObject$4 = toIndexedObject$9; + var addToUnscopables$2 = addToUnscopables$3; + var Iterators = iterators; + var InternalStateModule$3 = internalState; + var defineProperty$4 = objectDefineProperty.f; + var defineIterator$2 = iteratorDefine; + var createIterResultObject$2 = createIterResultObject$3; + var DESCRIPTORS$4 = descriptors; + + var ARRAY_ITERATOR = 'Array Iterator'; + var setInternalState$3 = InternalStateModule$3.set; + var getInternalState$2 = InternalStateModule$3.getterFor(ARRAY_ITERATOR); + + // `Array.prototype.entries` method + // https://tc39.es/ecma262/#sec-array.prototype.entries + // `Array.prototype.keys` method + // https://tc39.es/ecma262/#sec-array.prototype.keys + // `Array.prototype.values` method + // https://tc39.es/ecma262/#sec-array.prototype.values + // `Array.prototype[@@iterator]` method + // https://tc39.es/ecma262/#sec-array.prototype-@@iterator + // `CreateArrayIterator` internal method + // https://tc39.es/ecma262/#sec-createarrayiterator + var es_array_iterator = defineIterator$2(Array, 'Array', function (iterated, kind) { + setInternalState$3(this, { + type: ARRAY_ITERATOR, + target: toIndexedObject$4(iterated), // target + index: 0, // next index + kind: kind // kind + }); + // `%ArrayIteratorPrototype%.next` method + // https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next + }, function () { + var state = getInternalState$2(this); + var target = state.target; + var kind = state.kind; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject$2(undefined, true); + } + if (kind == 'keys') return createIterResultObject$2(index, false); + if (kind == 'values') return createIterResultObject$2(target[index], false); + return createIterResultObject$2([index, target[index]], false); + }, 'values'); + + // argumentsList[@@iterator] is %ArrayProto_values% + // https://tc39.es/ecma262/#sec-createunmappedargumentsobject + // https://tc39.es/ecma262/#sec-createmappedargumentsobject + var values = Iterators.Arguments = Iterators.Array; + + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + addToUnscopables$2('keys'); + addToUnscopables$2('values'); + addToUnscopables$2('entries'); + + // V8 ~ Chrome 45- bug + if (DESCRIPTORS$4 && values.name !== 'values') try { + defineProperty$4(values, 'name', { value: 'values' }); + } catch (error) { /* empty */ } + + var $$k = _export; + var call$5 = functionCall; + var aCallable$2 = aCallable$b; + var newPromiseCapabilityModule = newPromiseCapability$2; + var perform = perform$4; + var iterate$3 = iterate$6; + var PROMISE_STATICS_INCORRECT_ITERATION = promiseStaticsIncorrectIteration; + + // `Promise.allSettled` method + // https://tc39.es/ecma262/#sec-promise.allsettled + $$k({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + allSettled: function allSettled(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var promiseResolve = aCallable$2(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate$3(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call$5(promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'fulfilled', value: value }; + --remaining || resolve(values); + }, function (error) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'rejected', reason: error }; + --remaining || resolve(values); + }); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } + }); + + var classof$5 = classof$b; + + var $String = String; + + var toString$a = function (argument) { + if (classof$5(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string'); + return $String(argument); + }; + + var uncurryThis$h = functionUncurryThis; + var toIntegerOrInfinity$1 = toIntegerOrInfinity$4; + var toString$9 = toString$a; + var requireObjectCoercible$4 = requireObjectCoercible$7; + + var charAt$4 = uncurryThis$h(''.charAt); + var charCodeAt = uncurryThis$h(''.charCodeAt); + var stringSlice$4 = uncurryThis$h(''.slice); + + var createMethod$4 = function (CONVERT_TO_STRING) { + return function ($this, pos) { + var S = toString$9(requireObjectCoercible$4($this)); + var position = toIntegerOrInfinity$1(pos); + var size = S.length; + var first, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; + first = charCodeAt(S, position); + return first < 0xD800 || first > 0xDBFF || position + 1 === size + || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF + ? CONVERT_TO_STRING + ? charAt$4(S, position) + : first + : CONVERT_TO_STRING + ? stringSlice$4(S, position, position + 2) + : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; + }; + }; + + var stringMultibyte = { + // `String.prototype.codePointAt` method + // https://tc39.es/ecma262/#sec-string.prototype.codepointat + codeAt: createMethod$4(false), + // `String.prototype.at` method + // https://github.com/mathiasbynens/String.prototype.at + charAt: createMethod$4(true) + }; + + var charAt$3 = stringMultibyte.charAt; + var toString$8 = toString$a; + var InternalStateModule$2 = internalState; + var defineIterator$1 = iteratorDefine; + var createIterResultObject$1 = createIterResultObject$3; + + var STRING_ITERATOR = 'String Iterator'; + var setInternalState$2 = InternalStateModule$2.set; + var getInternalState$1 = InternalStateModule$2.getterFor(STRING_ITERATOR); + + // `String.prototype[@@iterator]` method + // https://tc39.es/ecma262/#sec-string.prototype-@@iterator + defineIterator$1(String, 'String', function (iterated) { + setInternalState$2(this, { + type: STRING_ITERATOR, + string: toString$8(iterated), + index: 0 + }); + // `%StringIteratorPrototype%.next` method + // https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next + }, function next() { + var state = getInternalState$1(this); + var string = state.string; + var index = state.index; + var point; + if (index >= string.length) return createIterResultObject$1(undefined, true); + point = charAt$3(string, index); + state.index += point.length; + return createIterResultObject$1(point, false); + }); + + // iterable DOM collections + // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods + var domIterables = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 + }; + + // in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList` + var documentCreateElement = documentCreateElement$2; + + var classList = documentCreateElement('span').classList; + var DOMTokenListPrototype$2 = classList && classList.constructor && classList.constructor.prototype; + + var domTokenListPrototype = DOMTokenListPrototype$2 === Object.prototype ? undefined : DOMTokenListPrototype$2; + + var global$7 = global$n; + var DOMIterables$1 = domIterables; + var DOMTokenListPrototype$1 = domTokenListPrototype; + var ArrayIteratorMethods = es_array_iterator; + var createNonEnumerableProperty$2 = createNonEnumerableProperty$6; + var wellKnownSymbol$8 = wellKnownSymbol$m; + + var ITERATOR$1 = wellKnownSymbol$8('iterator'); + var TO_STRING_TAG = wellKnownSymbol$8('toStringTag'); + var ArrayValues = ArrayIteratorMethods.values; + + var handlePrototype$1 = function (CollectionPrototype, COLLECTION_NAME) { + if (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[ITERATOR$1] !== ArrayValues) try { + createNonEnumerableProperty$2(CollectionPrototype, ITERATOR$1, ArrayValues); + } catch (error) { + CollectionPrototype[ITERATOR$1] = ArrayValues; + } + if (!CollectionPrototype[TO_STRING_TAG]) { + createNonEnumerableProperty$2(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); + } + if (DOMIterables$1[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { + createNonEnumerableProperty$2(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); + } catch (error) { + CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; + } + } + } + }; + + for (var COLLECTION_NAME$1 in DOMIterables$1) { + handlePrototype$1(global$7[COLLECTION_NAME$1] && global$7[COLLECTION_NAME$1].prototype, COLLECTION_NAME$1); + } + + handlePrototype$1(DOMTokenListPrototype$1, 'DOMTokenList'); + + var toObject$8 = toObject$b; + var toAbsoluteIndex$2 = toAbsoluteIndex$4; + var lengthOfArrayLike$7 = lengthOfArrayLike$a; + + // `Array.prototype.fill` method implementation + // https://tc39.es/ecma262/#sec-array.prototype.fill + var arrayFill = function fill(value /* , start = 0, end = @length */) { + var O = toObject$8(this); + var length = lengthOfArrayLike$7(O); + var argumentsLength = arguments.length; + var index = toAbsoluteIndex$2(argumentsLength > 1 ? arguments[1] : undefined, length); + var end = argumentsLength > 2 ? arguments[2] : undefined; + var endPos = end === undefined ? length : toAbsoluteIndex$2(end, length); + while (endPos > index) O[index++] = value; + return O; + }; + + var $$j = _export; + var fill = arrayFill; + var addToUnscopables$1 = addToUnscopables$3; + + // `Array.prototype.fill` method + // https://tc39.es/ecma262/#sec-array.prototype.fill + $$j({ target: 'Array', proto: true }, { + fill: fill + }); + + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + addToUnscopables$1('fill'); + + var classof$4 = classofRaw$2; + + // `IsArray` abstract operation + // https://tc39.es/ecma262/#sec-isarray + // eslint-disable-next-line es/no-array-isarray -- safe + var isArray$5 = Array.isArray || function isArray(argument) { + return classof$4(argument) == 'Array'; + }; + + var toPropertyKey = toPropertyKey$3; + var definePropertyModule = objectDefineProperty; + var createPropertyDescriptor = createPropertyDescriptor$4; + + var createProperty$4 = function (object, key, value) { + var propertyKey = toPropertyKey(key); + if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); + else object[propertyKey] = value; + }; + + var fails$h = fails$u; + var wellKnownSymbol$7 = wellKnownSymbol$m; + var V8_VERSION$1 = engineV8Version; + + var SPECIES$3 = wellKnownSymbol$7('species'); + + var arrayMethodHasSpeciesSupport$4 = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION$1 >= 51 || !fails$h(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES$3] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); + }; + + var $$i = _export; + var isArray$4 = isArray$5; + var isConstructor$2 = isConstructor$4; + var isObject$a = isObject$j; + var toAbsoluteIndex$1 = toAbsoluteIndex$4; + var lengthOfArrayLike$6 = lengthOfArrayLike$a; + var toIndexedObject$3 = toIndexedObject$9; + var createProperty$3 = createProperty$4; + var wellKnownSymbol$6 = wellKnownSymbol$m; + var arrayMethodHasSpeciesSupport$3 = arrayMethodHasSpeciesSupport$4; + var nativeSlice = arraySlice$3; + + var HAS_SPECIES_SUPPORT$2 = arrayMethodHasSpeciesSupport$3('slice'); + + var SPECIES$2 = wellKnownSymbol$6('species'); + var $Array$3 = Array; + var max$2 = Math.max; + + // `Array.prototype.slice` method + // https://tc39.es/ecma262/#sec-array.prototype.slice + // fallback for not array-like ES3 strings and DOM objects + $$i({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$2 }, { + slice: function slice(start, end) { + var O = toIndexedObject$3(this); + var length = lengthOfArrayLike$6(O); + var k = toAbsoluteIndex$1(start, length); + var fin = toAbsoluteIndex$1(end === undefined ? length : end, length); + // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible + var Constructor, result, n; + if (isArray$4(O)) { + Constructor = O.constructor; + // cross-realm fallback + if (isConstructor$2(Constructor) && (Constructor === $Array$3 || isArray$4(Constructor.prototype))) { + Constructor = undefined; + } else if (isObject$a(Constructor)) { + Constructor = Constructor[SPECIES$2]; + if (Constructor === null) Constructor = undefined; + } + if (Constructor === $Array$3 || Constructor === undefined) { + return nativeSlice(O, k, fin); + } + } + result = new (Constructor === undefined ? $Array$3 : Constructor)(max$2(fin - k, 0)); + for (n = 0; k < fin; k++, n++) if (k in O) createProperty$3(result, n, O[k]); + result.length = n; + return result; + } + }); + + /****************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + /* global Reflect, Promise */ + + + function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + } + + function __classPrivateFieldGet(receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); + } + + var eventemitter3 = {exports: {}}; + + (function (module) { + + var has = Object.prototype.hasOwnProperty + , prefix = '~'; + + /** + * Constructor to create a storage for our `EE` objects. + * An `Events` instance is a plain object whose properties are event names. + * + * @constructor + * @private + */ + function Events() {} + + // + // We try to not inherit from `Object.prototype`. In some engines creating an + // instance in this way is faster than calling `Object.create(null)` directly. + // If `Object.create(null)` is not supported we prefix the event names with a + // character to make sure that the built-in object properties are not + // overridden or used as an attack vector. + // + if (Object.create) { + Events.prototype = Object.create(null); + + // + // This hack is needed because the `__proto__` property is still inherited in + // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5. + // + if (!new Events().__proto__) prefix = false; + } + + /** + * Representation of a single event listener. + * + * @param {Function} fn The listener function. + * @param {*} context The context to invoke the listener with. + * @param {Boolean} [once=false] Specify if the listener is a one-time listener. + * @constructor + * @private + */ + function EE(fn, context, once) { + this.fn = fn; + this.context = context; + this.once = once || false; + } + + /** + * Add a listener for a given event. + * + * @param {EventEmitter} emitter Reference to the `EventEmitter` instance. + * @param {(String|Symbol)} event The event name. + * @param {Function} fn The listener function. + * @param {*} context The context to invoke the listener with. + * @param {Boolean} once Specify if the listener is a one-time listener. + * @returns {EventEmitter} + * @private + */ + function addListener(emitter, event, fn, context, once) { + if (typeof fn !== 'function') { + throw new TypeError('The listener must be a function'); + } + + var listener = new EE(fn, context || emitter, once) + , evt = prefix ? prefix + event : event; + + if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++; + else if (!emitter._events[evt].fn) emitter._events[evt].push(listener); + else emitter._events[evt] = [emitter._events[evt], listener]; + + return emitter; + } + + /** + * Clear event by name. + * + * @param {EventEmitter} emitter Reference to the `EventEmitter` instance. + * @param {(String|Symbol)} evt The Event name. + * @private + */ + function clearEvent(emitter, evt) { + if (--emitter._eventsCount === 0) emitter._events = new Events(); + else delete emitter._events[evt]; + } + + /** + * Minimal `EventEmitter` interface that is molded against the Node.js + * `EventEmitter` interface. + * + * @constructor + * @public + */ + function EventEmitter() { + this._events = new Events(); + this._eventsCount = 0; + } + + /** + * Return an array listing the events for which the emitter has registered + * listeners. + * + * @returns {Array} + * @public + */ + EventEmitter.prototype.eventNames = function eventNames() { + var names = [] + , events + , name; + + if (this._eventsCount === 0) return names; + + for (name in (events = this._events)) { + if (has.call(events, name)) names.push(prefix ? name.slice(1) : name); + } + + if (Object.getOwnPropertySymbols) { + return names.concat(Object.getOwnPropertySymbols(events)); + } + + return names; + }; + + /** + * Return the listeners registered for a given event. + * + * @param {(String|Symbol)} event The event name. + * @returns {Array} The registered listeners. + * @public + */ + EventEmitter.prototype.listeners = function listeners(event) { + var evt = prefix ? prefix + event : event + , handlers = this._events[evt]; + + if (!handlers) return []; + if (handlers.fn) return [handlers.fn]; + + for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) { + ee[i] = handlers[i].fn; + } + + return ee; + }; + + /** + * Return the number of listeners listening to a given event. + * + * @param {(String|Symbol)} event The event name. + * @returns {Number} The number of listeners. + * @public + */ + EventEmitter.prototype.listenerCount = function listenerCount(event) { + var evt = prefix ? prefix + event : event + , listeners = this._events[evt]; + + if (!listeners) return 0; + if (listeners.fn) return 1; + return listeners.length; + }; + + /** + * Calls each of the listeners registered for a given event. + * + * @param {(String|Symbol)} event The event name. + * @returns {Boolean} `true` if the event had listeners, else `false`. + * @public + */ + EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) { + var evt = prefix ? prefix + event : event; + + if (!this._events[evt]) return false; + + var listeners = this._events[evt] + , len = arguments.length + , args + , i; + + if (listeners.fn) { + if (listeners.once) this.removeListener(event, listeners.fn, undefined, true); + + switch (len) { + case 1: return listeners.fn.call(listeners.context), true; + case 2: return listeners.fn.call(listeners.context, a1), true; + case 3: return listeners.fn.call(listeners.context, a1, a2), true; + case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true; + case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true; + case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true; + } + + for (i = 1, args = new Array(len -1); i < len; i++) { + args[i - 1] = arguments[i]; + } + + listeners.fn.apply(listeners.context, args); + } else { + var length = listeners.length + , j; + + for (i = 0; i < length; i++) { + if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true); + + switch (len) { + case 1: listeners[i].fn.call(listeners[i].context); break; + case 2: listeners[i].fn.call(listeners[i].context, a1); break; + case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break; + case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break; + default: + if (!args) for (j = 1, args = new Array(len -1); j < len; j++) { + args[j - 1] = arguments[j]; + } + + listeners[i].fn.apply(listeners[i].context, args); + } + } + } + + return true; + }; + + /** + * Add a listener for a given event. + * + * @param {(String|Symbol)} event The event name. + * @param {Function} fn The listener function. + * @param {*} [context=this] The context to invoke the listener with. + * @returns {EventEmitter} `this`. + * @public + */ + EventEmitter.prototype.on = function on(event, fn, context) { + return addListener(this, event, fn, context, false); + }; + + /** + * Add a one-time listener for a given event. + * + * @param {(String|Symbol)} event The event name. + * @param {Function} fn The listener function. + * @param {*} [context=this] The context to invoke the listener with. + * @returns {EventEmitter} `this`. + * @public + */ + EventEmitter.prototype.once = function once(event, fn, context) { + return addListener(this, event, fn, context, true); + }; + + /** + * Remove the listeners of a given event. + * + * @param {(String|Symbol)} event The event name. + * @param {Function} fn Only remove the listeners that match this function. + * @param {*} context Only remove the listeners that have this context. + * @param {Boolean} once Only remove one-time listeners. + * @returns {EventEmitter} `this`. + * @public + */ + EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) { + var evt = prefix ? prefix + event : event; + + if (!this._events[evt]) return this; + if (!fn) { + clearEvent(this, evt); + return this; + } + + var listeners = this._events[evt]; + + if (listeners.fn) { + if ( + listeners.fn === fn && + (!once || listeners.once) && + (!context || listeners.context === context) + ) { + clearEvent(this, evt); + } + } else { + for (var i = 0, events = [], length = listeners.length; i < length; i++) { + if ( + listeners[i].fn !== fn || + (once && !listeners[i].once) || + (context && listeners[i].context !== context) + ) { + events.push(listeners[i]); + } + } + + // + // Reset the array, or remove it completely if we have no more listeners. + // + if (events.length) this._events[evt] = events.length === 1 ? events[0] : events; + else clearEvent(this, evt); + } + + return this; + }; + + /** + * Remove all listeners, or those of the specified event. + * + * @param {(String|Symbol)} [event] The event name. + * @returns {EventEmitter} `this`. + * @public + */ + EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) { + var evt; + + if (event) { + evt = prefix ? prefix + event : event; + if (this._events[evt]) clearEvent(this, evt); + } else { + this._events = new Events(); + this._eventsCount = 0; + } + + return this; + }; + + // + // Alias methods names because people roll like that. + // + EventEmitter.prototype.off = EventEmitter.prototype.removeListener; + EventEmitter.prototype.addListener = EventEmitter.prototype.on; + + // + // Expose the prefix. + // + EventEmitter.prefixed = prefix; + + // + // Allow `EventEmitter` to be imported as module namespace. + // + EventEmitter.EventEmitter = EventEmitter; + + // + // Expose the module. + // + { + module.exports = EventEmitter; + } + } (eventemitter3)); + + var eventemitter3Exports = eventemitter3.exports; + var EventEmitter = /*@__PURE__*/getDefaultExportFromCjs(eventemitter3Exports); + + /** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ + var isArray$2 = Array.isArray; + + var isArray$3 = isArray$2; + + /** + * Casts `value` as an array if it's not one. + * + * @static + * @memberOf _ + * @since 4.4.0 + * @category Lang + * @param {*} value The value to inspect. + * @returns {Array} Returns the cast array. + * @example + * + * _.castArray(1); + * // => [1] + * + * _.castArray({ 'a': 1 }); + * // => [{ 'a': 1 }] + * + * _.castArray('abc'); + * // => ['abc'] + * + * _.castArray(null); + * // => [null] + * + * _.castArray(undefined); + * // => [undefined] + * + * _.castArray(); + * // => [] + * + * var array = [1, 2, 3]; + * console.log(_.castArray(array) === array); + * // => true + */ + function castArray() { + if (!arguments.length) { + return []; + } + var value = arguments[0]; + return isArray$3(value) ? value : [value]; + } + + var isArray$1 = isArray$5; + var isConstructor$1 = isConstructor$4; + var isObject$9 = isObject$j; + var wellKnownSymbol$5 = wellKnownSymbol$m; + + var SPECIES$1 = wellKnownSymbol$5('species'); + var $Array$2 = Array; + + // a part of `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesConstructor$1 = function (originalArray) { + var C; + if (isArray$1(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor$1(C) && (C === $Array$2 || isArray$1(C.prototype))) C = undefined; + else if (isObject$9(C)) { + C = C[SPECIES$1]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array$2 : C; + }; + + var arraySpeciesConstructor = arraySpeciesConstructor$1; + + // `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesCreate$2 = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); + }; + + var bind$2 = functionBindContext; + var uncurryThis$g = functionUncurryThis; + var IndexedObject$3 = indexedObject; + var toObject$7 = toObject$b; + var lengthOfArrayLike$5 = lengthOfArrayLike$a; + var arraySpeciesCreate$1 = arraySpeciesCreate$2; + + var push$3 = uncurryThis$g([].push); + + // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation + var createMethod$3 = function (TYPE) { + var IS_MAP = TYPE == 1; + var IS_FILTER = TYPE == 2; + var IS_SOME = TYPE == 3; + var IS_EVERY = TYPE == 4; + var IS_FIND_INDEX = TYPE == 6; + var IS_FILTER_REJECT = TYPE == 7; + var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject$7($this); + var self = IndexedObject$3(O); + var boundFunction = bind$2(callbackfn, that); + var length = lengthOfArrayLike$5(self); + var index = 0; + var create = specificCreate || arraySpeciesCreate$1; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push$3(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push$3(target, value); // filterReject + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; + }; + + var arrayIteration = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod$3(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod$3(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod$3(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod$3(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod$3(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod$3(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod$3(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod$3(7) + }; + + var $$h = _export; + var $map = arrayIteration.map; + var arrayMethodHasSpeciesSupport$2 = arrayMethodHasSpeciesSupport$4; + + var HAS_SPECIES_SUPPORT$1 = arrayMethodHasSpeciesSupport$2('map'); + + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + // with adding support of @@species + $$h({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$1 }, { + map: function map(callbackfn /* , thisArg */) { + return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + var DESCRIPTORS$3 = descriptors; + var uncurryThis$f = functionUncurryThis; + var call$4 = functionCall; + var fails$g = fails$u; + var objectKeys$1 = objectKeys$3; + var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols; + var propertyIsEnumerableModule = objectPropertyIsEnumerable; + var toObject$6 = toObject$b; + var IndexedObject$2 = indexedObject; + + // eslint-disable-next-line es/no-object-assign -- safe + var $assign = Object.assign; + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + var defineProperty$3 = Object.defineProperty; + var concat$1 = uncurryThis$f([].concat); + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + var objectAssign = !$assign || fails$g(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS$3 && $assign({ b: 1 }, $assign(defineProperty$3({}, 'a', { + enumerable: true, + get: function () { + defineProperty$3(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol(); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] != 7 || objectKeys$1($assign({}, B)).join('') != alphabet; + }) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject$6(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject$2(arguments[index++]); + var keys = getOwnPropertySymbols ? concat$1(objectKeys$1(S), getOwnPropertySymbols(S)) : objectKeys$1(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS$3 || call$4(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; + } : $assign; + + var $$g = _export; + var assign = objectAssign; + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + // eslint-disable-next-line es/no-object-assign -- required for testing + $$g({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign + }); + + var internalMetadata = {exports: {}}; + + var objectGetOwnPropertyNamesExternal = {}; + + var toAbsoluteIndex = toAbsoluteIndex$4; + var lengthOfArrayLike$4 = lengthOfArrayLike$a; + var createProperty$2 = createProperty$4; + + var $Array$1 = Array; + var max$1 = Math.max; + + var arraySliceSimple = function (O, start, end) { + var length = lengthOfArrayLike$4(O); + var k = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + var result = $Array$1(max$1(fin - k, 0)); + for (var n = 0; k < fin; k++, n++) createProperty$2(result, n, O[k]); + result.length = n; + return result; + }; + + /* eslint-disable es/no-object-getownpropertynames -- safe */ + + var classof$3 = classofRaw$2; + var toIndexedObject$2 = toIndexedObject$9; + var $getOwnPropertyNames = objectGetOwnPropertyNames.f; + var arraySlice$1 = arraySliceSimple; + + var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + + var getWindowNames = function (it) { + try { + return $getOwnPropertyNames(it); + } catch (error) { + return arraySlice$1(windowNames); + } + }; + + // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window + objectGetOwnPropertyNamesExternal.f = function getOwnPropertyNames(it) { + return windowNames && classof$3(it) == 'Window' + ? getWindowNames(it) + : $getOwnPropertyNames(toIndexedObject$2(it)); + }; + + // FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it + var fails$f = fails$u; + + var arrayBufferNonExtensible = fails$f(function () { + if (typeof ArrayBuffer == 'function') { + var buffer = new ArrayBuffer(8); + // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe + if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 }); + } + }); + + var fails$e = fails$u; + var isObject$8 = isObject$j; + var classof$2 = classofRaw$2; + var ARRAY_BUFFER_NON_EXTENSIBLE = arrayBufferNonExtensible; + + // eslint-disable-next-line es/no-object-isextensible -- safe + var $isExtensible = Object.isExtensible; + var FAILS_ON_PRIMITIVES$1 = fails$e(function () { $isExtensible(1); }); + + // `Object.isExtensible` method + // https://tc39.es/ecma262/#sec-object.isextensible + var objectIsExtensible = (FAILS_ON_PRIMITIVES$1 || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) { + if (!isObject$8(it)) return false; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof$2(it) == 'ArrayBuffer') return false; + return $isExtensible ? $isExtensible(it) : true; + } : $isExtensible; + + var fails$d = fails$u; + + var freezing = !fails$d(function () { + // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing + return Object.isExtensible(Object.preventExtensions({})); + }); + + var $$f = _export; + var uncurryThis$e = functionUncurryThis; + var hiddenKeys = hiddenKeys$5; + var isObject$7 = isObject$j; + var hasOwn$1 = hasOwnProperty_1; + var defineProperty$2 = objectDefineProperty.f; + var getOwnPropertyNamesModule = objectGetOwnPropertyNames; + var getOwnPropertyNamesExternalModule = objectGetOwnPropertyNamesExternal; + var isExtensible = objectIsExtensible; + var uid = uid$3; + var FREEZING = freezing; + + var REQUIRED = false; + var METADATA = uid('meta'); + var id$1 = 0; + + var setMetadata = function (it) { + defineProperty$2(it, METADATA, { value: { + objectID: 'O' + id$1++, // object ID + weakData: {} // weak collections IDs + } }); + }; + + var fastKey$1 = function (it, create) { + // return a primitive with prefix + if (!isObject$7(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!hasOwn$1(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; + // not necessary to add metadata + if (!create) return 'E'; + // add missing metadata + setMetadata(it); + // return object ID + } return it[METADATA].objectID; + }; + + var getWeakData$1 = function (it, create) { + if (!hasOwn$1(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; + // not necessary to add metadata + if (!create) return false; + // add missing metadata + setMetadata(it); + // return the store of weak collections IDs + } return it[METADATA].weakData; + }; + + // add metadata on freeze-family methods calling + var onFreeze = function (it) { + if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn$1(it, METADATA)) setMetadata(it); + return it; + }; + + var enable = function () { + meta.enable = function () { /* empty */ }; + REQUIRED = true; + var getOwnPropertyNames = getOwnPropertyNamesModule.f; + var splice = uncurryThis$e([].splice); + var test = {}; + test[METADATA] = 1; + + // prevent exposing of metadata key + if (getOwnPropertyNames(test).length) { + getOwnPropertyNamesModule.f = function (it) { + var result = getOwnPropertyNames(it); + for (var i = 0, length = result.length; i < length; i++) { + if (result[i] === METADATA) { + splice(result, i, 1); + break; + } + } return result; + }; + + $$f({ target: 'Object', stat: true, forced: true }, { + getOwnPropertyNames: getOwnPropertyNamesExternalModule.f + }); + } + }; + + var meta = internalMetadata.exports = { + enable: enable, + fastKey: fastKey$1, + getWeakData: getWeakData$1, + onFreeze: onFreeze + }; + + hiddenKeys[METADATA] = true; + + var internalMetadataExports = internalMetadata.exports; + + var isCallable$3 = isCallable$o; + var isObject$6 = isObject$j; + var setPrototypeOf = objectSetPrototypeOf; + + // makes subclassing work correct for wrapped built-ins + var inheritIfRequired$1 = function ($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if ( + // it can work only with native `setPrototypeOf` + setPrototypeOf && + // we haven't completely correct pre-ES6 way for getting `new.target`, so use this + isCallable$3(NewTarget = dummy.constructor) && + NewTarget !== Wrapper && + isObject$6(NewTargetPrototype = NewTarget.prototype) && + NewTargetPrototype !== Wrapper.prototype + ) setPrototypeOf($this, NewTargetPrototype); + return $this; + }; + + var $$e = _export; + var global$6 = global$n; + var uncurryThis$d = functionUncurryThis; + var isForced = isForced_1; + var defineBuiltIn$2 = defineBuiltIn$9; + var InternalMetadataModule = internalMetadataExports; + var iterate$2 = iterate$6; + var anInstance$2 = anInstance$4; + var isCallable$2 = isCallable$o; + var isNullOrUndefined$3 = isNullOrUndefined$8; + var isObject$5 = isObject$j; + var fails$c = fails$u; + var checkCorrectnessOfIteration$1 = checkCorrectnessOfIteration$3; + var setToStringTag = setToStringTag$4; + var inheritIfRequired = inheritIfRequired$1; + + var collection$3 = function (CONSTRUCTOR_NAME, wrapper, common) { + var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; + var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; + var ADDER = IS_MAP ? 'set' : 'add'; + var NativeConstructor = global$6[CONSTRUCTOR_NAME]; + var NativePrototype = NativeConstructor && NativeConstructor.prototype; + var Constructor = NativeConstructor; + var exported = {}; + + var fixMethod = function (KEY) { + var uncurriedNativeMethod = uncurryThis$d(NativePrototype[KEY]); + defineBuiltIn$2(NativePrototype, KEY, + KEY == 'add' ? function add(value) { + uncurriedNativeMethod(this, value === 0 ? 0 : value); + return this; + } : KEY == 'delete' ? function (key) { + return IS_WEAK && !isObject$5(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY == 'get' ? function get(key) { + return IS_WEAK && !isObject$5(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY == 'has' ? function has(key) { + return IS_WEAK && !isObject$5(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : function set(key, value) { + uncurriedNativeMethod(this, key === 0 ? 0 : key, value); + return this; + } + ); + }; + + var REPLACE = isForced( + CONSTRUCTOR_NAME, + !isCallable$2(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails$c(function () { + new NativeConstructor().entries().next(); + })) + ); + + if (REPLACE) { + // create collection constructor + Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); + InternalMetadataModule.enable(); + } else if (isForced(CONSTRUCTOR_NAME, true)) { + var instance = new Constructor(); + // early implementations not supports chaining + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; + // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false + var THROWS_ON_PRIMITIVES = fails$c(function () { instance.has(1); }); + // most early implementations doesn't supports iterables, most modern - not close it correctly + // eslint-disable-next-line no-new -- required for testing + var ACCEPT_ITERABLES = checkCorrectnessOfIteration$1(function (iterable) { new NativeConstructor(iterable); }); + // for early implementations -0 and +0 not the same + var BUGGY_ZERO = !IS_WEAK && fails$c(function () { + // V8 ~ Chromium 42- fails only with 5+ elements + var $instance = new NativeConstructor(); + var index = 5; + while (index--) $instance[ADDER](index, index); + return !$instance.has(-0); + }); + + if (!ACCEPT_ITERABLES) { + Constructor = wrapper(function (dummy, iterable) { + anInstance$2(dummy, NativePrototype); + var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); + if (!isNullOrUndefined$3(iterable)) iterate$2(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + return that; + }); + Constructor.prototype = NativePrototype; + NativePrototype.constructor = Constructor; + } + + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); + + // weak collections should not contains .clear method + if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear; + } + + exported[CONSTRUCTOR_NAME] = Constructor; + $$e({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported); + + setToStringTag(Constructor, CONSTRUCTOR_NAME); + + if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); + + return Constructor; + }; + + var defineBuiltIn$1 = defineBuiltIn$9; + + var defineBuiltIns$2 = function (target, src, options) { + for (var key in src) defineBuiltIn$1(target, key, src[key], options); + return target; + }; + + var uncurryThis$c = functionUncurryThis; + var defineBuiltIns$1 = defineBuiltIns$2; + var getWeakData = internalMetadataExports.getWeakData; + var anInstance$1 = anInstance$4; + var anObject$4 = anObject$f; + var isNullOrUndefined$2 = isNullOrUndefined$8; + var isObject$4 = isObject$j; + var iterate$1 = iterate$6; + var ArrayIterationModule = arrayIteration; + var hasOwn = hasOwnProperty_1; + var InternalStateModule$1 = internalState; + + var setInternalState$1 = InternalStateModule$1.set; + var internalStateGetterFor$1 = InternalStateModule$1.getterFor; + var find = ArrayIterationModule.find; + var findIndex = ArrayIterationModule.findIndex; + var splice$1 = uncurryThis$c([].splice); + var id = 0; + + // fallback for uncaught frozen keys + var uncaughtFrozenStore = function (state) { + return state.frozen || (state.frozen = new UncaughtFrozenStore()); + }; + + var UncaughtFrozenStore = function () { + this.entries = []; + }; + + var findUncaughtFrozen = function (store, key) { + return find(store.entries, function (it) { + return it[0] === key; + }); + }; + + UncaughtFrozenStore.prototype = { + get: function (key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function (key) { + return !!findUncaughtFrozen(this, key); + }, + set: function (key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value; + else this.entries.push([key, value]); + }, + 'delete': function (key) { + var index = findIndex(this.entries, function (it) { + return it[0] === key; + }); + if (~index) splice$1(this.entries, index, 1); + return !!~index; + } + }; + + var collectionWeak$1 = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance$1(that, Prototype); + setInternalState$1(that, { + type: CONSTRUCTOR_NAME, + id: id++, + frozen: undefined + }); + if (!isNullOrUndefined$2(iterable)) iterate$1(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor$1(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var data = getWeakData(anObject$4(key), true); + if (data === true) uncaughtFrozenStore(state).set(key, value); + else data[state.id] = value; + return that; + }; + + defineBuiltIns$1(Prototype, { + // `{ WeakMap, WeakSet }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.delete + // https://tc39.es/ecma262/#sec-weakset.prototype.delete + 'delete': function (key) { + var state = getInternalState(this); + if (!isObject$4(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state)['delete'](key); + return data && hasOwn(data, state.id) && delete data[state.id]; + }, + // `{ WeakMap, WeakSet }.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.has + // https://tc39.es/ecma262/#sec-weakset.prototype.has + has: function has(key) { + var state = getInternalState(this); + if (!isObject$4(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).has(key); + return data && hasOwn(data, state.id); + } + }); + + defineBuiltIns$1(Prototype, IS_MAP ? { + // `WeakMap.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.get + get: function get(key) { + var state = getInternalState(this); + if (isObject$4(key)) { + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).get(key); + return data ? data[state.id] : undefined; + } + }, + // `WeakMap.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.set + set: function set(key, value) { + return define(this, key, value); + } + } : { + // `WeakSet.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-weakset.prototype.add + add: function add(value) { + return define(this, value, true); + } + }); + + return Constructor; + } + }; + + var collection$2 = collection$3; + var collectionWeak = collectionWeak$1; + + // `WeakSet` constructor + // https://tc39.es/ecma262/#sec-weakset-constructor + collection$2('WeakSet', function (init) { + return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); }; + }, collectionWeak); + + var ScrollDirection; + (function (ScrollDirection) { + ScrollDirection[ScrollDirection["SCROLL_NONE"] = 0] = "SCROLL_NONE"; + ScrollDirection[ScrollDirection["SCROLL_BACKWARD"] = 1] = "SCROLL_BACKWARD"; + ScrollDirection[ScrollDirection["SCROLL_FORWARD"] = 2] = "SCROLL_FORWARD"; + })(ScrollDirection || (ScrollDirection = {})); + var Position; + (function (Position) { + Position[Position["TOP"] = 0] = "TOP"; + Position[Position["RIGHT"] = 1] = "RIGHT"; + Position[Position["BOTTOM"] = 2] = "BOTTOM"; + Position[Position["LEFT"] = 3] = "LEFT"; + })(Position || (Position = {})); + var OPTIONS_DEFAULT_DOMAIN_TYPE = 'hour'; + var OPTIONS_DEFAULT_SUBDOMAIN_TYPE = 'minute'; + var OPTIONS_DEFAULT_SUBDOMAIN_WIDTH = 10; + var OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT = 10; + var OPTIONS_DEFAULT_SUBDOMAIN_GUTTER = 2; + var OPTIONS_DEFAULT_SUBDOMAIN_RADIUS = 0; + var OPTIONS_DEFAULT_ANIMATION_DURATION = 200; + var OPTIONS_DEFAULT_RANGE = 12; + var OPTIONS_DEFAULT_ITEM_SELECTOR = '#cal-heatmap'; + var OPTIONS_DEFAULT_THEME = 'light'; + var OPTIONS_DEFAULT_LOCALE = 'en'; + var SCALE_BASE_OPACITY_COLOR = 'red'; + var SCALE_BASE_COLOR_SCHEME = 'YlOrBr'; + var SCALE_BASE_COLOR_TYPE = 'quantize'; + var SCALE_BASE_COLOR_DOMAIN = [0, 100]; + + var _Navigator_instances, _Navigator_isDomainBoundaryReached, _Navigator_setDomainsBoundaryReached; + var Navigator = /*#__PURE__*/function () { + function Navigator(calendar) { + _classCallCheck(this, Navigator); + _Navigator_instances.add(this); + this.calendar = calendar; + this.maxDomainReached = false; + this.minDomainReached = false; + } + _createClass(Navigator, [{ + key: "loadNewDomains", + value: function loadNewDomains(newDomainCollection) { + var _this = this; + var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ScrollDirection.SCROLL_NONE; + var options = this.calendar.options.options; + var templatesClt = this.calendar.templateCollection; + var minDate = options.date.min ? templatesClt.get(options.domain.type).extractUnit(+options.date.min) : undefined; + var maxDate = options.date.max ? templatesClt.get(options.domain.type).extractUnit(+options.date.max) : undefined; + var domainCollection = this.calendar.domainCollection; + if (__classPrivateFieldGet(this, _Navigator_instances, "m", _Navigator_isDomainBoundaryReached).call(this, newDomainCollection, minDate, maxDate, direction)) { + return ScrollDirection.SCROLL_NONE; + } + if (direction !== ScrollDirection.SCROLL_NONE) { + newDomainCollection.clamp(minDate, maxDate).slice(options.range, direction === ScrollDirection.SCROLL_FORWARD); + } + domainCollection.merge(newDomainCollection, options.range, function (domainKey, index) { + var subDomainEndDate = null; + if (newDomainCollection.at(index + 1)) { + subDomainEndDate = newDomainCollection.at(index + 1); + } else { + subDomainEndDate = _this.calendar.dateHelper.intervals(options.domain.type, domainKey, 2).pop(); + } + return templatesClt.get(options.subDomain.type).mapping(domainKey, subDomainEndDate).map(function (d) { + return Object.assign(Object.assign({}, d), { + v: options.data.defaultValue + }); + }); + }); + __classPrivateFieldGet(this, _Navigator_instances, "m", _Navigator_setDomainsBoundaryReached).call(this, domainCollection.min, domainCollection.max, minDate, maxDate); + if (direction === ScrollDirection.SCROLL_BACKWARD) { + this.calendar.eventEmitter.emit('domainsLoaded', [domainCollection.min]); + } else if (direction === ScrollDirection.SCROLL_FORWARD) { + this.calendar.eventEmitter.emit('domainsLoaded', [domainCollection.max]); + } + return direction; + } + }, { + key: "jumpTo", + value: function jumpTo(date, reset) { + var _this$calendar = this.calendar, + domainCollection = _this$calendar.domainCollection, + options = _this$calendar.options; + var minDate = new Date(domainCollection.min); + var maxDate = new Date(domainCollection.max); + if (date < minDate) { + return this.loadNewDomains(this.calendar.createDomainCollection(date, minDate, false), ScrollDirection.SCROLL_BACKWARD); + } + if (reset) { + return this.loadNewDomains(this.calendar.createDomainCollection(date, options.options.range), minDate < date ? ScrollDirection.SCROLL_FORWARD : ScrollDirection.SCROLL_BACKWARD); + } + if (date > maxDate) { + return this.loadNewDomains(this.calendar.createDomainCollection(maxDate, date, false), ScrollDirection.SCROLL_FORWARD); + } + return ScrollDirection.SCROLL_NONE; + } + }]); + return Navigator; + }(); + _Navigator_instances = new WeakSet(), _Navigator_isDomainBoundaryReached = function _Navigator_isDomainBoundaryReached(newDomainCollection, minDate, maxDate, direction) { + if (maxDate && newDomainCollection.max >= maxDate && this.maxDomainReached && direction === ScrollDirection.SCROLL_FORWARD) { + return true; + } + if (minDate && newDomainCollection.min <= minDate && this.minDomainReached && direction === ScrollDirection.SCROLL_BACKWARD) { + return true; + } + return false; + }, _Navigator_setDomainsBoundaryReached = function _Navigator_setDomainsBoundaryReached(lowerBound, upperBound, min, max) { + if (min) { + var reached = lowerBound <= min; + this.calendar.eventEmitter.emit(reached ? 'minDateReached' : 'minDateNotReached'); + this.minDomainReached = reached; + } + if (max) { + var _reached = upperBound >= max; + this.calendar.eventEmitter.emit(_reached ? 'maxDateReached' : 'maxDateNotReached'); + this.maxDomainReached = _reached; + } + }; + + var $TypeError$4 = TypeError; + var MAX_SAFE_INTEGER$2 = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 + + var doesNotExceedSafeInteger$1 = function (it) { + if (it > MAX_SAFE_INTEGER$2) throw $TypeError$4('Maximum allowed index exceeded'); + return it; + }; + + var $$d = _export; + var fails$b = fails$u; + var isArray = isArray$5; + var isObject$3 = isObject$j; + var toObject$5 = toObject$b; + var lengthOfArrayLike$3 = lengthOfArrayLike$a; + var doesNotExceedSafeInteger = doesNotExceedSafeInteger$1; + var createProperty$1 = createProperty$4; + var arraySpeciesCreate = arraySpeciesCreate$2; + var arrayMethodHasSpeciesSupport$1 = arrayMethodHasSpeciesSupport$4; + var wellKnownSymbol$4 = wellKnownSymbol$m; + var V8_VERSION = engineV8Version; + + var IS_CONCAT_SPREADABLE = wellKnownSymbol$4('isConcatSpreadable'); + + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/679 + var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails$b(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; + }); + + var isConcatSpreadable = function (O) { + if (!isObject$3(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray(O); + }; + + var FORCED$4 = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport$1('concat'); + + // `Array.prototype.concat` method + // https://tc39.es/ecma262/#sec-array.prototype.concat + // with adding support of @@isConcatSpreadable and @@species + $$d({ target: 'Array', proto: true, arity: 1, forced: FORCED$4 }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + concat: function concat(arg) { + var O = toObject$5(this); + var A = arraySpeciesCreate(O, 0); + var n = 0; + var i, k, length, len, E; + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + if (isConcatSpreadable(E)) { + len = lengthOfArrayLike$3(E); + doesNotExceedSafeInteger(n + len); + for (k = 0; k < len; k++, n++) if (k in E) createProperty$1(A, n, E[k]); + } else { + doesNotExceedSafeInteger(n + 1); + createProperty$1(A, n++, E); + } + } + A.length = n; + return A; + } + }); + + var fails$a = fails$u; + + var arrayMethodIsStrict$4 = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails$a(function () { + // eslint-disable-next-line no-useless-call -- required for testing + method.call(null, argument || function () { return 1; }, 1); + }); + }; + + var $$c = _export; + var uncurryThis$b = functionUncurryThis; + var IndexedObject$1 = indexedObject; + var toIndexedObject$1 = toIndexedObject$9; + var arrayMethodIsStrict$3 = arrayMethodIsStrict$4; + + var nativeJoin = uncurryThis$b([].join); + + var ES3_STRINGS = IndexedObject$1 != Object; + var FORCED$3 = ES3_STRINGS || !arrayMethodIsStrict$3('join', ','); + + // `Array.prototype.join` method + // https://tc39.es/ecma262/#sec-array.prototype.join + $$c({ target: 'Array', proto: true, forced: FORCED$3 }, { + join: function join(separator) { + return nativeJoin(toIndexedObject$1(this), separator === undefined ? ',' : separator); + } + }); + + var create$1 = objectCreate$1; + var defineBuiltInAccessor$1 = defineBuiltInAccessor$3; + var defineBuiltIns = defineBuiltIns$2; + var bind$1 = functionBindContext; + var anInstance = anInstance$4; + var isNullOrUndefined$1 = isNullOrUndefined$8; + var iterate = iterate$6; + var defineIterator = iteratorDefine; + var createIterResultObject = createIterResultObject$3; + var setSpecies = setSpecies$2; + var DESCRIPTORS$2 = descriptors; + var fastKey = internalMetadataExports.fastKey; + var InternalStateModule = internalState; + + var setInternalState = InternalStateModule.set; + var internalStateGetterFor = InternalStateModule.getterFor; + + var collectionStrong$2 = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + index: create$1(null), + first: undefined, + last: undefined, + size: 0 + }); + if (!DESCRIPTORS$2) that.size = 0; + if (!isNullOrUndefined$1(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var entry = getEntry(that, key); + var previous, index; + // change existing entry + if (entry) { + entry.value = value; + // create new entry + } else { + state.last = entry = { + index: index = fastKey(key, true), + key: key, + value: value, + previous: previous = state.last, + next: undefined, + removed: false + }; + if (!state.first) state.first = entry; + if (previous) previous.next = entry; + if (DESCRIPTORS$2) state.size++; + else that.size++; + // add to index + if (index !== 'F') state.index[index] = entry; + } return that; + }; + + var getEntry = function (that, key) { + var state = getInternalState(that); + // fast case + var index = fastKey(key); + var entry; + if (index !== 'F') return state.index[index]; + // frozen object case + for (entry = state.first; entry; entry = entry.next) { + if (entry.key == key) return entry; + } + }; + + defineBuiltIns(Prototype, { + // `{ Map, Set }.prototype.clear()` methods + // https://tc39.es/ecma262/#sec-map.prototype.clear + // https://tc39.es/ecma262/#sec-set.prototype.clear + clear: function clear() { + var that = this; + var state = getInternalState(that); + var data = state.index; + var entry = state.first; + while (entry) { + entry.removed = true; + if (entry.previous) entry.previous = entry.previous.next = undefined; + delete data[entry.index]; + entry = entry.next; + } + state.first = state.last = undefined; + if (DESCRIPTORS$2) state.size = 0; + else that.size = 0; + }, + // `{ Map, Set }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-map.prototype.delete + // https://tc39.es/ecma262/#sec-set.prototype.delete + 'delete': function (key) { + var that = this; + var state = getInternalState(that); + var entry = getEntry(that, key); + if (entry) { + var next = entry.next; + var prev = entry.previous; + delete state.index[entry.index]; + entry.removed = true; + if (prev) prev.next = next; + if (next) next.previous = prev; + if (state.first == entry) state.first = next; + if (state.last == entry) state.last = prev; + if (DESCRIPTORS$2) state.size--; + else that.size--; + } return !!entry; + }, + // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods + // https://tc39.es/ecma262/#sec-map.prototype.foreach + // https://tc39.es/ecma262/#sec-set.prototype.foreach + forEach: function forEach(callbackfn /* , that = undefined */) { + var state = getInternalState(this); + var boundFunction = bind$1(callbackfn, arguments.length > 1 ? arguments[1] : undefined); + var entry; + while (entry = entry ? entry.next : state.first) { + boundFunction(entry.value, entry.key, this); + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + } + }, + // `{ Map, Set}.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-map.prototype.has + // https://tc39.es/ecma262/#sec-set.prototype.has + has: function has(key) { + return !!getEntry(this, key); + } + }); + + defineBuiltIns(Prototype, IS_MAP ? { + // `Map.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-map.prototype.get + get: function get(key) { + var entry = getEntry(this, key); + return entry && entry.value; + }, + // `Map.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-map.prototype.set + set: function set(key, value) { + return define(this, key === 0 ? 0 : key, value); + } + } : { + // `Set.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-set.prototype.add + add: function add(value) { + return define(this, value = value === 0 ? 0 : value, value); + } + }); + if (DESCRIPTORS$2) defineBuiltInAccessor$1(Prototype, 'size', { + configurable: true, + get: function () { + return getInternalState(this).size; + } + }); + return Constructor; + }, + setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) { + var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator'; + var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME); + var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME); + // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods + // https://tc39.es/ecma262/#sec-map.prototype.entries + // https://tc39.es/ecma262/#sec-map.prototype.keys + // https://tc39.es/ecma262/#sec-map.prototype.values + // https://tc39.es/ecma262/#sec-map.prototype-@@iterator + // https://tc39.es/ecma262/#sec-set.prototype.entries + // https://tc39.es/ecma262/#sec-set.prototype.keys + // https://tc39.es/ecma262/#sec-set.prototype.values + // https://tc39.es/ecma262/#sec-set.prototype-@@iterator + defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) { + setInternalState(this, { + type: ITERATOR_NAME, + target: iterated, + state: getInternalCollectionState(iterated), + kind: kind, + last: undefined + }); + }, function () { + var state = getInternalIteratorState(this); + var kind = state.kind; + var entry = state.last; + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + // get next entry + if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) { + // or finish the iteration + state.target = undefined; + return createIterResultObject(undefined, true); + } + // return step by kind + if (kind == 'keys') return createIterResultObject(entry.key, false); + if (kind == 'values') return createIterResultObject(entry.value, false); + return createIterResultObject([entry.key, entry.value], false); + }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); + + // `{ Map, Set }.prototype[@@species]` accessors + // https://tc39.es/ecma262/#sec-get-map-@@species + // https://tc39.es/ecma262/#sec-get-set-@@species + setSpecies(CONSTRUCTOR_NAME); + } + }; + + var collection$1 = collection$3; + var collectionStrong$1 = collectionStrong$2; + + // `Map` constructor + // https://tc39.es/ecma262/#sec-map-objects + collection$1('Map', function (init) { + return function Map() { return init(this, arguments.length ? arguments[0] : undefined); }; + }, collectionStrong$1); + + var tryToString = tryToString$5; + + var $TypeError$3 = TypeError; + + var deletePropertyOrThrow$1 = function (O, P) { + if (!delete O[P]) throw $TypeError$3('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O)); + }; + + var arraySlice = arraySliceSimple; + + var floor$1 = Math.floor; + + var mergeSort = function (array, comparefn) { + var length = array.length; + var middle = floor$1(length / 2); + return length < 8 ? insertionSort(array, comparefn) : merge( + array, + mergeSort(arraySlice(array, 0, middle), comparefn), + mergeSort(arraySlice(array, middle), comparefn), + comparefn + ); + }; + + var insertionSort = function (array, comparefn) { + var length = array.length; + var i = 1; + var element, j; + + while (i < length) { + j = i; + element = array[i]; + while (j && comparefn(array[j - 1], element) > 0) { + array[j] = array[--j]; + } + if (j !== i++) array[j] = element; + } return array; + }; + + var merge = function (array, left, right, comparefn) { + var llength = left.length; + var rlength = right.length; + var lindex = 0; + var rindex = 0; + + while (lindex < llength || rindex < rlength) { + array[lindex + rindex] = (lindex < llength && rindex < rlength) + ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++] + : lindex < llength ? left[lindex++] : right[rindex++]; + } return array; + }; + + var arraySort = mergeSort; + + var userAgent$1 = engineUserAgent; + + var firefox = userAgent$1.match(/firefox\/(\d+)/i); + + var engineFfVersion = !!firefox && +firefox[1]; + + var UA = engineUserAgent; + + var engineIsIeOrEdge = /MSIE|Trident/.test(UA); + + var userAgent = engineUserAgent; + + var webkit = userAgent.match(/AppleWebKit\/(\d+)\./); + + var engineWebkitVersion = !!webkit && +webkit[1]; + + var $$b = _export; + var uncurryThis$a = functionUncurryThis; + var aCallable$1 = aCallable$b; + var toObject$4 = toObject$b; + var lengthOfArrayLike$2 = lengthOfArrayLike$a; + var deletePropertyOrThrow = deletePropertyOrThrow$1; + var toString$7 = toString$a; + var fails$9 = fails$u; + var internalSort = arraySort; + var arrayMethodIsStrict$2 = arrayMethodIsStrict$4; + var FF = engineFfVersion; + var IE_OR_EDGE = engineIsIeOrEdge; + var V8 = engineV8Version; + var WEBKIT = engineWebkitVersion; + + var test = []; + var nativeSort = uncurryThis$a(test.sort); + var push$2 = uncurryThis$a(test.push); + + // IE8- + var FAILS_ON_UNDEFINED = fails$9(function () { + test.sort(undefined); + }); + // V8 bug + var FAILS_ON_NULL = fails$9(function () { + test.sort(null); + }); + // Old WebKit + var STRICT_METHOD$1 = arrayMethodIsStrict$2('sort'); + + var STABLE_SORT = !fails$9(function () { + // feature detection can be too slow, so check engines versions + if (V8) return V8 < 70; + if (FF && FF > 3) return; + if (IE_OR_EDGE) return true; + if (WEBKIT) return WEBKIT < 603; + + var result = ''; + var code, chr, value, index; + + // generate an array with more 512 elements (Chakra and old V8 fails only in this case) + for (code = 65; code < 76; code++) { + chr = String.fromCharCode(code); + + switch (code) { + case 66: case 69: case 70: case 72: value = 3; break; + case 68: case 71: value = 4; break; + default: value = 2; + } + + for (index = 0; index < 47; index++) { + test.push({ k: chr + index, v: value }); + } + } + + test.sort(function (a, b) { return b.v - a.v; }); + + for (index = 0; index < test.length; index++) { + chr = test[index].k.charAt(0); + if (result.charAt(result.length - 1) !== chr) result += chr; + } + + return result !== 'DGBEFHACIJK'; + }); + + var FORCED$2 = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD$1 || !STABLE_SORT; + + var getSortCompare = function (comparefn) { + return function (x, y) { + if (y === undefined) return -1; + if (x === undefined) return 1; + if (comparefn !== undefined) return +comparefn(x, y) || 0; + return toString$7(x) > toString$7(y) ? 1 : -1; + }; + }; + + // `Array.prototype.sort` method + // https://tc39.es/ecma262/#sec-array.prototype.sort + $$b({ target: 'Array', proto: true, forced: FORCED$2 }, { + sort: function sort(comparefn) { + if (comparefn !== undefined) aCallable$1(comparefn); + + var array = toObject$4(this); + + if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn); + + var items = []; + var arrayLength = lengthOfArrayLike$2(array); + var itemsLength, index; + + for (index = 0; index < arrayLength; index++) { + if (index in array) push$2(items, array[index]); + } + + internalSort(items, getSortCompare(comparefn)); + + itemsLength = lengthOfArrayLike$2(items); + index = 0; + + while (index < itemsLength) array[index] = items[index++]; + while (index < arrayLength) deletePropertyOrThrow(array, index++); + + return array; + } + }); + + var $forEach = arrayIteration.forEach; + var arrayMethodIsStrict$1 = arrayMethodIsStrict$4; + + var STRICT_METHOD = arrayMethodIsStrict$1('forEach'); + + // `Array.prototype.forEach` method implementation + // https://tc39.es/ecma262/#sec-array.prototype.foreach + var arrayForEach = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) { + return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + // eslint-disable-next-line es/no-array-prototype-foreach -- safe + } : [].forEach; + + var global$5 = global$n; + var DOMIterables = domIterables; + var DOMTokenListPrototype = domTokenListPrototype; + var forEach = arrayForEach; + var createNonEnumerableProperty$1 = createNonEnumerableProperty$6; + + var handlePrototype = function (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { + createNonEnumerableProperty$1(CollectionPrototype, 'forEach', forEach); + } catch (error) { + CollectionPrototype.forEach = forEach; + } + }; + + for (var COLLECTION_NAME in DOMIterables) { + if (DOMIterables[COLLECTION_NAME]) { + handlePrototype(global$5[COLLECTION_NAME] && global$5[COLLECTION_NAME].prototype); + } + } + + handlePrototype(DOMTokenListPrototype); + + function isVertical(position) { + return position === 'top' || position === 'bottom'; + } + function horizontalPadding(padding) { + return padding[Position.LEFT] + padding[Position.RIGHT]; + } + function verticalPadding(padding) { + return padding[Position.TOP] + padding[Position.BOTTOM]; + } + + var _DomainCoordinates_instances, _DomainCoordinates_getWidth, _DomainCoordinates_getHeight; + var DomainCoordinates = /*#__PURE__*/function () { + function DomainCoordinates(calendar, domainPainter) { + _classCallCheck(this, DomainCoordinates); + _DomainCoordinates_instances.add(this); + this.calendar = calendar; + this.domainPainter = domainPainter; + this.collection = new Map(); + this.scrollDirection = ScrollDirection.SCROLL_FORWARD; + } + _createClass(DomainCoordinates, [{ + key: "get", + value: function get(domainKey) { + return this.collection.get(domainKey); + } + }, { + key: "update", + value: function update(collection, scrollDirection) { + var _this = this; + var _this$calendar$option = this.calendar.options.options, + verticalOrientation = _this$calendar$option.verticalOrientation, + domain = _this$calendar$option.domain; + this.scrollDirection = scrollDirection; + var dimensions = { + width: 0, + height: 0 + }; + var exitingTotal = 0; + var scrollFactor = scrollDirection === ScrollDirection.SCROLL_FORWARD ? -1 : 1; + var keys = collection.keys; + if (this.calendar.options.options.domain.sort === 'desc') { + keys.reverse(); + scrollFactor *= -1; + } + collection.yankedDomains.forEach(function (domainKey) { + exitingTotal += _this.collection.get(domainKey)[verticalOrientation ? 'height' : 'width']; + }); + collection.yankedDomains.forEach(function (domainKey) { + var coor = _this.collection.get(domainKey); + _this.collection.set(domainKey, Object.assign(Object.assign({}, coor), { + x: verticalOrientation ? coor.x : coor.x + exitingTotal * scrollFactor, + y: verticalOrientation ? coor.y + exitingTotal * scrollFactor : coor.y + })); + }); + keys.forEach(function (domainKey) { + var w = __classPrivateFieldGet(_this, _DomainCoordinates_instances, "m", _DomainCoordinates_getWidth).call(_this, domainKey); + var h = __classPrivateFieldGet(_this, _DomainCoordinates_instances, "m", _DomainCoordinates_getHeight).call(_this, domainKey); + if (verticalOrientation) { + dimensions.height += h; + dimensions.width = Math.max(w, dimensions.width); + } else { + dimensions.width += w; + dimensions.height = Math.max(h, dimensions.height); + } + var x = dimensions.width - w; + var y = dimensions.height - h; + _this.collection.set(domainKey, Object.assign(Object.assign({}, _this.collection.get(domainKey)), { + x: verticalOrientation ? 0 : x, + y: verticalOrientation ? y : 0, + pre_x: verticalOrientation ? x : x - exitingTotal * scrollFactor, + pre_y: verticalOrientation ? y - exitingTotal * scrollFactor : y, + width: w, + height: h, + inner_width: w - (verticalOrientation ? 0 : domain.gutter), + inner_height: h - (!verticalOrientation ? 0 : domain.gutter) + })); + }); + return dimensions; + } + }]); + return DomainCoordinates; + }(); + _DomainCoordinates_instances = new WeakSet(), _DomainCoordinates_getWidth = function _DomainCoordinates_getWidth(d) { + var _this$calendar$option2 = this.calendar.options.options, + domain = _this$calendar$option2.domain, + subDomain = _this$calendar$option2.subDomain, + x = _this$calendar$option2.x, + verticalOrientation = _this$calendar$option2.verticalOrientation; + var columnsCount = this.calendar.templateCollection.get(subDomain.type).columnsCount(d); + var subDomainWidth = (subDomain.width + subDomain.gutter) * columnsCount - subDomain.gutter; + return horizontalPadding(domain.padding) + x.domainHorizontalLabelWidth + (verticalOrientation ? 0 : domain.gutter) + subDomainWidth; + }, _DomainCoordinates_getHeight = function _DomainCoordinates_getHeight(d) { + var _this$calendar$option3 = this.calendar.options.options, + domain = _this$calendar$option3.domain, + subDomain = _this$calendar$option3.subDomain, + x = _this$calendar$option3.x, + verticalOrientation = _this$calendar$option3.verticalOrientation; + var rowsCount = this.calendar.templateCollection.get(subDomain.type).rowsCount(d); + var subDomainHeight = (subDomain.height + subDomain.gutter) * rowsCount - subDomain.gutter; + return verticalPadding(domain.padding) + subDomainHeight + (verticalOrientation ? domain.gutter : 0) + x.domainVerticalLabelHeight; + }; + + var _DomainPainter_instances, _DomainPainter_getClassName; + var DEFAULT_SELECTOR$3 = '.ch-domain'; + var DomainPainter = /*#__PURE__*/function () { + function DomainPainter(calendar) { + _classCallCheck(this, DomainPainter); + _DomainPainter_instances.add(this); + this.calendar = calendar; + this.coordinates = new DomainCoordinates(calendar, this); + this.root = null; + // Dimensions of the internal area containing all the domains + // Excluding all surrounding margins + this.dimensions = { + width: 0, + height: 0 + }; + } + _createClass(DomainPainter, [{ + key: "paint", + value: function paint(scrollDirection, rootNode) { + var _this = this; + var animationDuration = this.calendar.options.options.animationDuration; + var t = rootNode.transition().duration(animationDuration); + var coor = this.coordinates; + this.dimensions = coor.update(this.calendar.domainCollection, scrollDirection); + var promises = []; + this.root = rootNode.selectAll(DEFAULT_SELECTOR$3).data(this.calendar.domainCollection.keys, function (d) { + return d; + }).join(function (enter) { + return enter.append('svg').attr('x', function (d) { + return coor.get(d).pre_x; + }).attr('y', function (d) { + return coor.get(d).pre_y; + }).attr('width', function (d) { + return coor.get(d).inner_width; + }).attr('height', function (d) { + return coor.get(d).inner_height; + }).attr('class', function (d) { + return __classPrivateFieldGet(_this, _DomainPainter_instances, "m", _DomainPainter_getClassName).call(_this, d); + }).call(function (enterSelection) { + return enterSelection.append('rect').attr('width', function (d) { + return coor.get(d).inner_width; + }).attr('height', function (d) { + return coor.get(d).inner_height; + }).attr('class', "".concat(DEFAULT_SELECTOR$3.slice(1), "-bg")); + }).call(function (enterSelection) { + return promises.push(enterSelection.transition(t).attr('x', function (d) { + return coor.get(d).x; + }).attr('y', function (d) { + return coor.get(d).y; + }).end()); + }); + }, function (update) { + return update.call(function (updateSelection) { + return promises.push(updateSelection.transition(t).attr('x', function (d) { + return coor.get(d).x; + }).attr('y', function (d) { + return coor.get(d).y; + }).attr('width', function (d) { + return coor.get(d).inner_width; + }).attr('height', function (d) { + return coor.get(d).inner_height; + }).end()); + }).call(function (updateSelection) { + return promises.push(updateSelection.selectAll("".concat(DEFAULT_SELECTOR$3, "-bg")).transition(t).attr('width', function (d) { + return coor.get(d).inner_width; + }).attr('height', function (d) { + return coor.get(d).inner_height; + }).end()); + }); + }, function (exit) { + return exit.call(function (exitSelection) { + return promises.push(exitSelection.transition(t).attr('x', function (d) { + return coor.get(d).x; + }).attr('y', function (d) { + return coor.get(d).y; + }).remove().end()); + }); + }); + return promises; + } + }]); + return DomainPainter; + }(); + _DomainPainter_instances = new WeakSet(), _DomainPainter_getClassName = function _DomainPainter_getClassName(d) { + var classname = DEFAULT_SELECTOR$3.slice(1); + var helper = this.calendar.dateHelper.date(d); + switch (this.calendar.options.options.domain.type) { + case 'hour': + classname += " h_".concat(helper.hour()); + break; + case 'day': + classname += " d_".concat(helper.date(), " dy_").concat(helper.format('d') + 1); + break; + case 'week': + classname += " w_".concat(helper.week()); + break; + case 'month': + classname += " m_".concat(helper.month() + 1); + break; + case 'year': + classname += " y_".concat(helper.year()); + break; + } + return classname; + }; + + var $$a = _export; + var $includes = arrayIncludes.includes; + var fails$8 = fails$u; + var addToUnscopables = addToUnscopables$3; + + // FF99+ bug + var BROKEN_ON_SPARSE = fails$8(function () { + // eslint-disable-next-line es/no-array-prototype-includes -- detection + return !Array(1).includes(); + }); + + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + $$a({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, { + includes: function includes(el /* , fromIndex = 0 */) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + addToUnscopables('includes'); + + var $$9 = _export; + var $filter = arrayIteration.filter; + var arrayMethodHasSpeciesSupport = arrayMethodHasSpeciesSupport$4; + + var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); + + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + // with adding support of @@species + $$9({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + filter: function filter(callbackfn /* , thisArg */) { + return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + var aCallable = aCallable$b; + var toObject$3 = toObject$b; + var IndexedObject = indexedObject; + var lengthOfArrayLike$1 = lengthOfArrayLike$a; + + var $TypeError$2 = TypeError; + + // `Array.prototype.{ reduce, reduceRight }` methods implementation + var createMethod$2 = function (IS_RIGHT) { + return function (that, callbackfn, argumentsLength, memo) { + aCallable(callbackfn); + var O = toObject$3(that); + var self = IndexedObject(O); + var length = lengthOfArrayLike$1(O); + var index = IS_RIGHT ? length - 1 : 0; + var i = IS_RIGHT ? -1 : 1; + if (argumentsLength < 2) while (true) { + if (index in self) { + memo = self[index]; + index += i; + break; + } + index += i; + if (IS_RIGHT ? index < 0 : length <= index) { + throw $TypeError$2('Reduce of empty array with no initial value'); + } + } + for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) { + memo = callbackfn(memo, self[index], index, O); + } + return memo; + }; + }; + + var arrayReduce = { + // `Array.prototype.reduce` method + // https://tc39.es/ecma262/#sec-array.prototype.reduce + left: createMethod$2(false), + // `Array.prototype.reduceRight` method + // https://tc39.es/ecma262/#sec-array.prototype.reduceright + right: createMethod$2(true) + }; + + var $$8 = _export; + var $reduce = arrayReduce.left; + var arrayMethodIsStrict = arrayMethodIsStrict$4; + var CHROME_VERSION = engineV8Version; + var IS_NODE = engineIsNode; + + // Chrome 80-82 has a critical bug + // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 + var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; + var FORCED$1 = CHROME_BUG || !arrayMethodIsStrict('reduce'); + + // `Array.prototype.reduce` method + // https://tc39.es/ecma262/#sec-array.prototype.reduce + $$8({ target: 'Array', proto: true, forced: FORCED$1 }, { + reduce: function reduce(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined); + } + }); + + var anObject$3 = anObject$f; + var iteratorClose = iteratorClose$2; + + // call something on iterator step with safe closing on error + var callWithSafeIterationClosing$1 = function (iterator, fn, value, ENTRIES) { + try { + return ENTRIES ? fn(anObject$3(value)[0], value[1]) : fn(value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } + }; + + var bind = functionBindContext; + var call$3 = functionCall; + var toObject$2 = toObject$b; + var callWithSafeIterationClosing = callWithSafeIterationClosing$1; + var isArrayIteratorMethod = isArrayIteratorMethod$2; + var isConstructor = isConstructor$4; + var lengthOfArrayLike = lengthOfArrayLike$a; + var createProperty = createProperty$4; + var getIterator = getIterator$2; + var getIteratorMethod = getIteratorMethod$3; + + var $Array = Array; + + // `Array.from` method implementation + // https://tc39.es/ecma262/#sec-array.from + var arrayFrom = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { + var O = toObject$2(arrayLike); + var IS_CONSTRUCTOR = isConstructor(this); + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined); + var iteratorMethod = getIteratorMethod(O); + var index = 0; + var length, result, step, iterator, next, value; + // if the target is not iterable or it's an array with the default iterator - use a simple case + if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) { + iterator = getIterator(O, iteratorMethod); + next = iterator.next; + result = IS_CONSTRUCTOR ? new this() : []; + for (;!(step = call$3(next, iterator)).done; index++) { + value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value; + createProperty(result, index, value); + } + } else { + length = lengthOfArrayLike(O); + result = IS_CONSTRUCTOR ? new this(length) : $Array(length); + for (;length > index; index++) { + value = mapping ? mapfn(O[index], index) : O[index]; + createProperty(result, index, value); + } + } + result.length = index; + return result; + }; + + var $$7 = _export; + var from = arrayFrom; + var checkCorrectnessOfIteration = checkCorrectnessOfIteration$3; + + var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) { + // eslint-disable-next-line es/no-array-from -- required for testing + Array.from(iterable); + }); + + // `Array.from` method + // https://tc39.es/ecma262/#sec-array.from + $$7({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, { + from: from + }); + + // a string of all valid unicode whitespaces + var whitespaces$3 = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + + '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; + + var uncurryThis$9 = functionUncurryThis; + var requireObjectCoercible$3 = requireObjectCoercible$7; + var toString$6 = toString$a; + var whitespaces$2 = whitespaces$3; + + var replace$2 = uncurryThis$9(''.replace); + var ltrim = RegExp('^[' + whitespaces$2 + ']+'); + var rtrim = RegExp('(^|[^' + whitespaces$2 + '])[' + whitespaces$2 + ']+$'); + + // `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation + var createMethod$1 = function (TYPE) { + return function ($this) { + var string = toString$6(requireObjectCoercible$3($this)); + if (TYPE & 1) string = replace$2(string, ltrim, ''); + if (TYPE & 2) string = replace$2(string, rtrim, '$1'); + return string; + }; + }; + + var stringTrim = { + // `String.prototype.{ trimLeft, trimStart }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimstart + start: createMethod$1(1), + // `String.prototype.{ trimRight, trimEnd }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimend + end: createMethod$1(2), + // `String.prototype.trim` method + // https://tc39.es/ecma262/#sec-string.prototype.trim + trim: createMethod$1(3) + }; + + var global$4 = global$n; + var fails$7 = fails$u; + var uncurryThis$8 = functionUncurryThis; + var toString$5 = toString$a; + var trim = stringTrim.trim; + var whitespaces$1 = whitespaces$3; + + var $parseInt$1 = global$4.parseInt; + var Symbol$3 = global$4.Symbol; + var ITERATOR = Symbol$3 && Symbol$3.iterator; + var hex = /^[+-]?0x/i; + var exec$1 = uncurryThis$8(hex.exec); + var FORCED = $parseInt$1(whitespaces$1 + '08') !== 8 || $parseInt$1(whitespaces$1 + '0x16') !== 22 + // MS Edge 18- broken with boxed symbols + || (ITERATOR && !fails$7(function () { $parseInt$1(Object(ITERATOR)); })); + + // `parseInt` method + // https://tc39.es/ecma262/#sec-parseint-string-radix + var numberParseInt = FORCED ? function parseInt(string, radix) { + var S = trim(toString$5(string)); + return $parseInt$1(S, (radix >>> 0) || (exec$1(hex, S) ? 16 : 10)); + } : $parseInt$1; + + var $$6 = _export; + var $parseInt = numberParseInt; + + // `parseInt` method + // https://tc39.es/ecma262/#sec-parseint-string-radix + $$6({ global: true, forced: parseInt != $parseInt }, { + parseInt: $parseInt + }); + + var _DomainCollection_instances, _DomainCollection_setSubDomainValues, _DomainCollection_extractValues, _DomainCollection_refreshKeys; + var DOMAIN_FORMAT = { + year: 'YYYY', + month: 'MMMM', + week: 'wo [week] YYYY', + xDay: 'Do MMM', + ghDay: 'Do MMM', + day: 'Do MMM', + hour: 'HH:00', + minute: 'HH:mm' + }; + var DomainCollection = /*#__PURE__*/function () { + function DomainCollection(dateHelper, interval, start, range) { + var excludeEnd = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + _classCallCheck(this, DomainCollection); + _DomainCollection_instances.add(this); + this.collection = new Map(); + this.dateHelper = dateHelper; + if (interval && start && range) { + var ts = this.dateHelper.intervals(interval, start, range, excludeEnd).map(function (d) { + return castArray(d); + }); + // @ts-ignore + this.collection = new Map(ts); + } + this.min = 0; + this.max = 0; + this.keys = []; + this.yankedDomains = []; + if (this.collection.size > 0) { + __classPrivateFieldGet(this, _DomainCollection_instances, "m", _DomainCollection_refreshKeys).call(this); + } + } + _createClass(DomainCollection, [{ + key: "has", + value: function has(key) { + return this.collection.has(key); + } + }, { + key: "get", + value: function get(key) { + return this.collection.get(key); + } + }, { + key: "forEach", + value: function forEach(callback) { + return this.collection.forEach(callback); + } + }, { + key: "at", + value: function at(index) { + return this.keys[index]; + } + }, { + key: "clamp", + value: function clamp(minDate, maxDate) { + var _this = this; + if (minDate && this.min < minDate) { + this.keys.filter(function (key) { + return key < minDate; + }).forEach(function (d) { + return _this.collection.delete(d); + }); + } + if (maxDate && this.max > maxDate) { + this.keys.filter(function (key) { + return key > maxDate; + }).forEach(function (d) { + return _this.collection.delete(d); + }); + } + __classPrivateFieldGet(this, _DomainCollection_instances, "m", _DomainCollection_refreshKeys).call(this); + return this; + } + }, { + key: "merge", + value: function merge(newCollection, limit, createValueCallback) { + var _this2 = this; + this.yankedDomains = []; + newCollection.keys.forEach(function (domainKey, index) { + if (_this2.has(domainKey)) { + return; + } + if (_this2.collection.size >= limit) { + var keyToRemove = _this2.max; + if (domainKey > _this2.max) { + keyToRemove = _this2.min; + } + if (keyToRemove && _this2.collection.delete(keyToRemove)) { + _this2.yankedDomains.push(keyToRemove); + } + } + _this2.collection.set(domainKey, createValueCallback(domainKey, index)); + __classPrivateFieldGet(_this2, _DomainCollection_instances, "m", _DomainCollection_refreshKeys).call(_this2); + }); + this.yankedDomains = this.yankedDomains.sort(function (a, b) { + return a - b; + }); + } + }, { + key: "slice", + value: function slice() { + var _this3 = this; + var limit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var fromBeginning = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + if (this.keys.length > limit) { + var keysToDelete = fromBeginning ? this.keys.slice(0, -limit) : this.keys.slice(limit); + keysToDelete.forEach(function (key) { + _this3.collection.delete(key); + }); + __classPrivateFieldGet(this, _DomainCollection_instances, "m", _DomainCollection_refreshKeys).call(this); + } + return this; + } + }, { + key: "fill", + value: function fill(data, _ref, subDomainKeyExtractor) { + var _this4 = this; + var x = _ref.x, + y = _ref.y, + groupY = _ref.groupY, + defaultValue = _ref.defaultValue; + var groupedRecords = this.groupRecords(data, x, subDomainKeyExtractor); + this.keys.forEach(function (domainKey) { + var records = groupedRecords.get(domainKey) || {}; + __classPrivateFieldGet(_this4, _DomainCollection_instances, "m", _DomainCollection_setSubDomainValues).call(_this4, domainKey, records, y, groupY, defaultValue); + }); + } + }, { + key: "groupRecords", + value: function groupRecords(data, x, subDomainKeyExtractor) { + var _this5 = this; + var results = new Map(); + var validSubDomainTimestamp = new Map(); + this.keys.forEach(function (domainKey) { + _this5.get(domainKey).forEach(function (subDomain) { + validSubDomainTimestamp.set(subDomain.t, domainKey); + }); + }); + data.forEach(function (d) { + var timestamp = _this5.extractTimestamp(d, x, subDomainKeyExtractor); + if (validSubDomainTimestamp.has(timestamp)) { + var domainKey = validSubDomainTimestamp.get(timestamp); + var records = results.get(domainKey) || {}; + records[timestamp] || (records[timestamp] = []); + records[timestamp].push(d); + results.set(domainKey, records); + } + }); + return results; + } + // eslint-disable-next-line class-methods-use-this + }, { + key: "groupValues", + value: function groupValues(values, groupFn) { + var cleanedValues = values.filter(function (n) { + return n !== null; + }); + if (typeof groupFn === 'string') { + if (cleanedValues.every(function (n) { + return typeof n === 'number'; + })) { + switch (groupFn) { + case 'sum': + return cleanedValues.reduce(function (a, b) { + return a + b; + }, 0); + case 'count': + return cleanedValues.length; + case 'min': + return Math.min.apply(Math, _toConsumableArray(cleanedValues)) || null; + case 'max': + return Math.max.apply(Math, _toConsumableArray(cleanedValues)) || null; + case 'average': + return cleanedValues.length > 0 ? cleanedValues.reduce(function (a, b) { + return a + b; + }, 0) / cleanedValues.length : null; + default: + return null; + } + } + switch (groupFn) { + case 'count': + return cleanedValues.length; + default: + return null; + } + } else if (typeof groupFn === 'function') { + return groupFn(cleanedValues); + } + return null; + } + // eslint-disable-next-line class-methods-use-this + }, { + key: "extractTimestamp", + value: function extractTimestamp(datum, x, extractorFn) { + var timestamp = typeof x === 'function' ? x(datum) : datum[x]; + if (typeof timestamp === 'string') { + timestamp = +new Date(timestamp); + } + return extractorFn(timestamp); + } + }]); + return DomainCollection; + }(); + _DomainCollection_instances = new WeakSet(), _DomainCollection_setSubDomainValues = function _DomainCollection_setSubDomainValues(domainKey, records, y, groupY, defaultValue) { + var _this6 = this; + this.get(domainKey).forEach(function (subDomain, index) { + var value = defaultValue; + if (records.hasOwnProperty(subDomain.t)) { + value = _this6.groupValues(__classPrivateFieldGet(_this6, _DomainCollection_instances, "m", _DomainCollection_extractValues).call(_this6, records[subDomain.t], y), groupY); + } + _this6.get(domainKey)[index].v = value; + }); + }, _DomainCollection_extractValues = function _DomainCollection_extractValues(data, y) { + return data.map(function (d) { + return typeof y === 'function' ? y(d) : d[y]; + }); + }, _DomainCollection_refreshKeys = function _DomainCollection_refreshKeys() { + this.keys = Array.from(this.collection.keys()).map(function (d) { + return parseInt(d, 10); + }).sort(function (a, b) { + return a - b; + }); + var keys = this.keys; + // eslint-disable-next-line prefer-destructuring + this.min = keys[0]; + this.max = keys[keys.length - 1]; + return this.keys; + }; + + var _DomainLabelPainter_instances, _DomainLabelPainter_textVerticalAlign, _DomainLabelPainter_getX, _DomainLabelPainter_getY, _DomainLabelPainter_getDomainInsideWidth, _DomainLabelPainter_getDomainInsideHeight, _DomainLabelPainter_domainRotate; + var DEFAULT_SELECTOR$2 = '.ch-domain-text'; + var DomainLabelPainter = /*#__PURE__*/function () { + function DomainLabelPainter(calendar) { + _classCallCheck(this, DomainLabelPainter); + _DomainLabelPainter_instances.add(this); + this.calendar = calendar; + } + _createClass(DomainLabelPainter, [{ + key: "paint", + value: function paint(root) { + var _this = this; + var _this$calendar$option = this.calendar.options.options.domain, + label = _this$calendar$option.label, + type = _this$calendar$option.type; + var dateHelper = this.calendar.dateHelper; + var format = label.text; + if (format === null || format === '') { + return; + } + if (typeof format === 'undefined') { + format = DOMAIN_FORMAT[type]; + } + root.selectAll(DEFAULT_SELECTOR$2).data(function (d) { + return [d]; + }, function (d) { + return d; + }).join(function (enter) { + return enter.append('text').attr('class', DEFAULT_SELECTOR$2.slice(1)).attr('x', function (d) { + return __classPrivateFieldGet(_this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getX).call(_this, d); + }).attr('y', function (d) { + return __classPrivateFieldGet(_this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getY).call(_this, d); + }).attr('text-anchor', label.textAlign).attr('dominant-baseline', function () { + return __classPrivateFieldGet(_this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_textVerticalAlign).call(_this); + }).text(function (d, i, nodes) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + dateHelper.format(d, format, nodes[i]) + ); + }).call(function (selection) { + return __classPrivateFieldGet(_this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_domainRotate).call(_this, selection); + }); + }, function (update) { + update.attr('x', function (d) { + return __classPrivateFieldGet(_this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getX).call(_this, d); + }).attr('y', function (d) { + return __classPrivateFieldGet(_this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getY).call(_this, d); + }).attr('text-anchor', label.textAlign).attr('dominant-baseline', function () { + return __classPrivateFieldGet(_this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_textVerticalAlign).call(_this); + }).text(function (d, i, nodes) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + dateHelper.format(d, format, nodes[i]) + ); + }).call(function (selection) { + return __classPrivateFieldGet(_this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_domainRotate).call(_this, selection); + }); + }); + } + }]); + return DomainLabelPainter; + }(); + _DomainLabelPainter_instances = new WeakSet(), _DomainLabelPainter_textVerticalAlign = function _DomainLabelPainter_textVerticalAlign() { + var _this$calendar$option2 = this.calendar.options.options.domain.label, + position = _this$calendar$option2.position, + rotate = _this$calendar$option2.rotate; + if (isVertical(position)) { + return 'middle'; + } + if (rotate === 'left' && position === 'left' || rotate === 'right' && position === 'right') { + return 'bottom'; + } + return 'hanging'; + }, _DomainLabelPainter_getX = function _DomainLabelPainter_getX(d) { + var _this$calendar$option3 = this.calendar.options.options.domain, + padding = _this$calendar$option3.padding, + _this$calendar$option4 = _this$calendar$option3.label, + position = _this$calendar$option4.position, + textAlign = _this$calendar$option4.textAlign, + offset = _this$calendar$option4.offset; + var domainHorizontalLabelWidth = this.calendar.options.options.x.domainHorizontalLabelWidth; + var x = padding[Position.LEFT]; + if (position === 'right') { + x += __classPrivateFieldGet(this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getDomainInsideWidth).call(this, d); + } + if (textAlign === 'middle') { + if (['top', 'bottom'].includes(position)) { + x += __classPrivateFieldGet(this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getDomainInsideWidth).call(this, d) / 2; + } else { + x += domainHorizontalLabelWidth / 2; + } + } + if (textAlign === 'end') { + if (isVertical(position)) { + x += __classPrivateFieldGet(this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getDomainInsideWidth).call(this, d); + } else { + x += domainHorizontalLabelWidth; + } + } + return x + offset.x; + }, _DomainLabelPainter_getY = function _DomainLabelPainter_getY(d) { + var _this$calendar$option5 = this.calendar.options.options, + _this$calendar$option6 = _this$calendar$option5.domain, + _this$calendar$option7 = _this$calendar$option6.label, + position = _this$calendar$option7.position, + offset = _this$calendar$option7.offset, + padding = _this$calendar$option6.padding, + x = _this$calendar$option5.x; + var y = padding[Position.TOP] + x.domainVerticalLabelHeight / 2; + if (position === 'bottom') { + y += __classPrivateFieldGet(this, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getDomainInsideHeight).call(this, d); + } + return y + offset.y; + }, _DomainLabelPainter_getDomainInsideWidth = function _DomainLabelPainter_getDomainInsideWidth(d) { + var _this$calendar$option8 = this.calendar.options.options, + padding = _this$calendar$option8.domain.padding, + domainHorizontalLabelWidth = _this$calendar$option8.x.domainHorizontalLabelWidth; + var coordinates = this.calendar.calendarPainter.domainsContainerPainter.domainPainter.coordinates; + return coordinates.get(d).inner_width - domainHorizontalLabelWidth - horizontalPadding(padding); + }, _DomainLabelPainter_getDomainInsideHeight = function _DomainLabelPainter_getDomainInsideHeight(d) { + var _this$calendar$option9 = this.calendar.options.options, + domainVerticalLabelHeight = _this$calendar$option9.x.domainVerticalLabelHeight, + padding = _this$calendar$option9.domain.padding; + var coordinates = this.calendar.calendarPainter.domainsContainerPainter.domainPainter.coordinates; + return coordinates.get(d).inner_height - domainVerticalLabelHeight - verticalPadding(padding); + }, _DomainLabelPainter_domainRotate = function _DomainLabelPainter_domainRotate(selection) { + var _this2 = this; + var _this$calendar$option10 = this.calendar.options.options, + _this$calendar$option11 = _this$calendar$option10.domain.label, + rotate = _this$calendar$option11.rotate, + textAlign = _this$calendar$option11.textAlign, + position = _this$calendar$option11.position, + x = _this$calendar$option10.x; + var labelWidth = x.domainHorizontalLabelWidth; + switch (rotate) { + // Rotating the text clockwise + case 'right': + selection.attr('transform', function (d) { + var domainWidth = __classPrivateFieldGet(_this2, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getDomainInsideWidth).call(_this2, d); + var domainHeight = __classPrivateFieldGet(_this2, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getDomainInsideHeight).call(_this2, d); + var s = ["rotate(90, ".concat(position === 'right' ? domainWidth : labelWidth, ", 0)")]; + switch (position) { + case 'right': + if (textAlign === 'middle') { + s.push("translate(".concat(domainHeight / 2 - labelWidth / 2, ")")); + } else if (textAlign === 'end') { + s.push("translate(".concat(domainHeight - labelWidth, ")")); + } + break; + case 'left': + if (textAlign === 'start') { + s.push("translate(".concat(labelWidth, ")")); + } else if (textAlign === 'middle') { + s.push("translate(".concat(labelWidth / 2 + domainHeight / 2, ")")); + } else if (textAlign === 'end') { + s.push("translate(".concat(domainHeight, ")")); + } + break; + } + return s.join(','); + }); + break; + // Rotating the text anticlockwise + case 'left': + selection.attr('transform', function (d) { + var domainWidth = __classPrivateFieldGet(_this2, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getDomainInsideWidth).call(_this2, d); + var domainHeight = __classPrivateFieldGet(_this2, _DomainLabelPainter_instances, "m", _DomainLabelPainter_getDomainInsideHeight).call(_this2, d); + var s = ["rotate(270, ".concat(position === 'right' ? domainWidth : labelWidth, ", 0)")]; + switch (position) { + case 'right': + if (textAlign === 'start') { + s.push("translate(-".concat(domainHeight, ")")); + } else if (textAlign === 'middle') { + s.push("translate(-".concat(domainHeight / 2 + labelWidth / 2, ")")); + } else if (textAlign === 'end') { + s.push("translate(-".concat(labelWidth, ")")); + } + break; + case 'left': + if (textAlign === 'start') { + s.push("translate(".concat(labelWidth - domainHeight, ")")); + } else if (textAlign === 'middle') { + s.push("translate(".concat(labelWidth / 2 - domainHeight / 2, ")")); + } + break; + } + return s.join(','); + }); + break; + } + }; + + var PROPER_FUNCTION_NAME = functionName.PROPER; + var fails$6 = fails$u; + var whitespaces = whitespaces$3; + + var non = '\u200B\u0085\u180E'; + + // check that a method works with the correct list + // of whitespaces and has a correct name + var stringTrimForced = function (METHOD_NAME) { + return fails$6(function () { + return !!whitespaces[METHOD_NAME]() + || non[METHOD_NAME]() !== non + || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME); + }); + }; + + var $$5 = _export; + var $trim = stringTrim.trim; + var forcedStringTrimMethod = stringTrimForced; + + // `String.prototype.trim` method + // https://tc39.es/ecma262/#sec-string.prototype.trim + $$5({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, { + trim: function trim() { + return $trim(this); + } + }); + + var _SubDomainPainter_instances, _SubDomainPainter_setPositions, _SubDomainPainter_classname, _SubDomainPainter_appendText, _SubDomainPainter_getCoordinates, _SubDomainPainter_getX, _SubDomainPainter_getY; + var DEFAULT_SELECTOR$1 = '.ch-subdomain'; + var HIGHLIGHT_CLASSNAME = 'highlight'; + var SubDomainPainter = /*#__PURE__*/function () { + function SubDomainPainter(calendar) { + _classCallCheck(this, SubDomainPainter); + _SubDomainPainter_instances.add(this); + this.calendar = calendar; + this.root = null; + } + _createClass(SubDomainPainter, [{ + key: "paint", + value: function paint(root) { + var _this = this; + this.root = root || this.root; + var containerClassname = "".concat(DEFAULT_SELECTOR$1, "-container"); + var subDomainSvgGroup = this.root.selectAll(containerClassname).data(function (d) { + return [d]; + }, function (d) { + return d; + }).join(function (enter) { + return enter.append('svg').call(function (selection) { + return __classPrivateFieldGet(_this, _SubDomainPainter_instances, "m", _SubDomainPainter_setPositions).call(_this, selection); + }).attr('class', containerClassname.slice(1)); + }, function (update) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + update.call(function (selection) { + return __classPrivateFieldGet(_this, _SubDomainPainter_instances, "m", _SubDomainPainter_setPositions).call(_this, selection); + }) + ); + }); + var _this$calendar$option = this.calendar.options.options.subDomain, + radius = _this$calendar$option.radius, + width = _this$calendar$option.width, + height = _this$calendar$option.height, + sort = _this$calendar$option.sort; + var evt = this.calendar.eventEmitter; + subDomainSvgGroup.selectAll('g').data(function (d) { + var subDomainsCollection = _this.calendar.domainCollection.get(d); + if (sort === 'desc') { + var max = Math.max.apply(Math, _toConsumableArray(subDomainsCollection.map(function (s) { + return s.x; + }))); + subDomainsCollection.forEach(function (s, i) { + subDomainsCollection[i].x = Math.abs(s.x - max); + }); + } + return subDomainsCollection; + }).join(function (enter) { + return enter.append('g').call(function (selection) { + return selection.insert('rect').attr('class', function (d) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + __classPrivateFieldGet(_this, _SubDomainPainter_instances, "m", _SubDomainPainter_classname).call(_this, d.t, "".concat(DEFAULT_SELECTOR$1.slice(1), "-bg")) + ); + }).attr('width', width).attr('height', height).attr('x', function (d) { + return __classPrivateFieldGet(_this, _SubDomainPainter_instances, "m", _SubDomainPainter_getX).call(_this, d); + }).attr('y', function (d) { + return __classPrivateFieldGet(_this, _SubDomainPainter_instances, "m", _SubDomainPainter_getY).call(_this, d); + }).on('click', function (ev, d) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + evt.emit('click', ev, d.t, d.v) + ); + }).on('mouseover', function (ev, d) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + evt.emit('mouseover', ev, d.t, d.v) + ); + }).on('mouseout', function (ev, d) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + evt.emit('mouseout', ev, d.t, d.v) + ); + }).attr('rx', radius > 0 ? radius : null).attr('ry', radius > 0 ? radius : null); + }).call(function (selection) { + return __classPrivateFieldGet(_this, _SubDomainPainter_instances, "m", _SubDomainPainter_appendText).call(_this, selection); + }); + }, function (update) { + return update.selectAll('rect').attr('class', function (d) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + __classPrivateFieldGet(_this, _SubDomainPainter_instances, "m", _SubDomainPainter_classname).call(_this, d.t, "".concat(DEFAULT_SELECTOR$1.slice(1), "-bg")) + ); + }).attr('width', width).attr('height', height).attr('x', function (d) { + return __classPrivateFieldGet(_this, _SubDomainPainter_instances, "m", _SubDomainPainter_getX).call(_this, d); + }).attr('y', function (d) { + return __classPrivateFieldGet(_this, _SubDomainPainter_instances, "m", _SubDomainPainter_getY).call(_this, d); + }).attr('rx', radius).attr('ry', radius); + }); + } + }]); + return SubDomainPainter; + }(); + _SubDomainPainter_instances = new WeakSet(), _SubDomainPainter_setPositions = function _SubDomainPainter_setPositions(selection) { + var options = this.calendar.options.options; + var _options$domain = options.domain, + padding = _options$domain.padding, + position = _options$domain.label.position; + selection.attr('x', function () { + var pos = padding[Position.LEFT]; + if (position === 'left') { + pos += options.x.domainHorizontalLabelWidth; + } + return pos; + }).attr('y', function () { + var pos = padding[Position.TOP]; + if (position === 'top') { + pos += options.x.domainVerticalLabelHeight; + } + return pos; + }); + }, _SubDomainPainter_classname = function _SubDomainPainter_classname(timestamp) { + var _this2 = this; + var _this$calendar$option2 = this.calendar.options.options, + highlight = _this$calendar$option2.date.highlight, + type = _this$calendar$option2.subDomain.type; + var classname = ''; + if (highlight.length > 0) { + highlight.forEach(function (d) { + var unitFn = _this2.calendar.templateCollection.get(type).extractUnit; + if (unitFn(+d) === unitFn(timestamp)) { + classname = HIGHLIGHT_CLASSNAME; + } + }); + } + for (var _len = arguments.length, otherClasses = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + otherClasses[_key - 1] = arguments[_key]; + } + return [classname].concat(otherClasses).join(' ').trim(); + }, _SubDomainPainter_appendText = function _SubDomainPainter_appendText(elem) { + var _this3 = this; + var _this$calendar$option3 = this.calendar.options.options.subDomain, + width = _this$calendar$option3.width, + height = _this$calendar$option3.height, + label = _this$calendar$option3.label; + if (!label) { + return null; + } + return elem.append('text').attr('class', function (d) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + __classPrivateFieldGet(_this3, _SubDomainPainter_instances, "m", _SubDomainPainter_classname).call(_this3, d.t, "".concat(DEFAULT_SELECTOR$1.slice(1), "-text")) + ); + }).attr('x', function (d) { + return __classPrivateFieldGet(_this3, _SubDomainPainter_instances, "m", _SubDomainPainter_getX).call(_this3, d) + width / 2; + }).attr('y', function (d) { + return __classPrivateFieldGet(_this3, _SubDomainPainter_instances, "m", _SubDomainPainter_getY).call(_this3, d) + height / 2; + }).attr('text-anchor', 'middle').attr('dominant-baseline', 'central').text(function (d, i, nodes) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + _this3.calendar.dateHelper.format(d.t, label, d.v, nodes[i]) + ); + }); + }, _SubDomainPainter_getCoordinates = function _SubDomainPainter_getCoordinates(axis, d) { + var subDomain = this.calendar.options.options.subDomain; + return d[axis] * (subDomain[axis === 'x' ? 'width' : 'height'] + subDomain.gutter); + }, _SubDomainPainter_getX = function _SubDomainPainter_getX(d) { + return __classPrivateFieldGet(this, _SubDomainPainter_instances, "m", _SubDomainPainter_getCoordinates).call(this, 'x', d); + }, _SubDomainPainter_getY = function _SubDomainPainter_getY(d) { + return __classPrivateFieldGet(this, _SubDomainPainter_instances, "m", _SubDomainPainter_getCoordinates).call(this, 'y', d); + }; + + var _DomainsContainerPainter_instances, _DomainsContainerPainter_startAnimation, _DomainsContainerPainter_endAnimation, _DomainsContainerPainter_recomputeDimensions; + var BASE_SELECTOR = '.ch-domain-container'; + var TRANSITION_CLASSNAME = 'in-transition'; + var DomainsContainerPainter = /*#__PURE__*/function () { + function DomainsContainerPainter(calendar) { + _classCallCheck(this, DomainsContainerPainter); + _DomainsContainerPainter_instances.add(this); + this.calendar = calendar; + this.domainPainter = new DomainPainter(calendar); + this.subDomainPainter = new SubDomainPainter(calendar); + this.domainLabelPainter = new DomainLabelPainter(calendar); + this.dimensions = { + width: 0, + height: 0 + }; + this.transitionsQueueCount = 0; + } + _createClass(DomainsContainerPainter, [{ + key: "setup", + value: function setup() { + this.root = this.calendar.calendarPainter.root.attr('x', 0).attr('y', 0).append('svg').attr('class', BASE_SELECTOR.slice(1)).append('svg').attr('class', "".concat(BASE_SELECTOR.slice(1), "-animation-wrapper")); + } + }, { + key: "paint", + value: function paint(scrollDirection) { + var _this = this; + __classPrivateFieldGet(this, _DomainsContainerPainter_instances, "m", _DomainsContainerPainter_startAnimation).call(this); + var result = this.domainPainter.paint(scrollDirection, this.root); + this.subDomainPainter.paint(this.domainPainter.root); + this.domainLabelPainter.paint(this.domainPainter.root); + __classPrivateFieldGet(this, _DomainsContainerPainter_instances, "m", _DomainsContainerPainter_recomputeDimensions).call(this); + Promise.allSettled(result).then(function () { + __classPrivateFieldGet(_this, _DomainsContainerPainter_instances, "m", _DomainsContainerPainter_endAnimation).call(_this); + }); + return result; + } + }, { + key: "updatePosition", + value: function updatePosition() { + var _a; + if (!((_a = this.root) === null || _a === void 0 ? void 0 : _a.node())) { + return Promise.resolve(); + } + var animationDuration = this.calendar.options.options.animationDuration; + var topHeight = this.calendar.pluginManager.getHeightFromPosition('top'); + var leftWidth = this.calendar.pluginManager.getWidthFromPosition('left'); + return [d3Selection.select(this.root.node().parentNode).transition().duration(animationDuration).call(function (selection) { + selection.attr('x', leftWidth).attr('y', topHeight); + }).end()]; + } + }, { + key: "width", + value: function width() { + return this.dimensions.width; + } + }, { + key: "height", + value: function height() { + return this.dimensions.height; + } + }, { + key: "destroy", + value: function destroy() { + __classPrivateFieldGet(this, _DomainsContainerPainter_instances, "m", _DomainsContainerPainter_startAnimation).call(this); + return Promise.resolve(); + } + }]); + return DomainsContainerPainter; + }(); + _DomainsContainerPainter_instances = new WeakSet(), _DomainsContainerPainter_startAnimation = function _DomainsContainerPainter_startAnimation() { + var _a; + if ((_a = this.root) === null || _a === void 0 ? void 0 : _a.node()) { + this.transitionsQueueCount += 1; + d3Selection.select(this.root.node().parentNode).classed(TRANSITION_CLASSNAME, true); + } + }, _DomainsContainerPainter_endAnimation = function _DomainsContainerPainter_endAnimation() { + var _a; + if ((_a = this.root) === null || _a === void 0 ? void 0 : _a.node()) { + this.transitionsQueueCount -= 1; + if (this.transitionsQueueCount === 0) { + d3Selection.select(this.root.node().parentNode).classed(TRANSITION_CLASSNAME, false); + } + } + }, _DomainsContainerPainter_recomputeDimensions = function _DomainsContainerPainter_recomputeDimensions() { + var _this$calendar$option = this.calendar.options.options, + animationDuration = _this$calendar$option.animationDuration, + verticalOrientation = _this$calendar$option.verticalOrientation, + gutter = _this$calendar$option.domain.gutter; + var domainsDimensions = this.domainPainter.dimensions; + this.dimensions = { + width: domainsDimensions.width - (verticalOrientation ? 0 : gutter), + height: domainsDimensions.height - (!verticalOrientation ? 0 : gutter) + }; + this.root.transition().duration(animationDuration).attr('width', this.dimensions.width).attr('height', this.dimensions.height); + }; + + var PluginPainter = /*#__PURE__*/function () { + function PluginPainter(calendar) { + _classCallCheck(this, PluginPainter); + this.calendar = calendar; + } + _createClass(PluginPainter, [{ + key: "paint", + value: function paint() { + var promises = []; + promises = promises.concat(this.calendar.pluginManager.paintAll()); + promises = promises.concat(this.setPluginsPosition()); + return promises; + } + }, { + key: "setPluginsPosition", + value: function setPluginsPosition() { + var pluginManager = this.calendar.pluginManager; + var animationDuration = this.calendar.options.options.animationDuration; + var domainsContainerPainter = this.calendar.calendarPainter.domainsContainerPainter; + var top = pluginManager.getFromPosition('top'); + var right = pluginManager.getFromPosition('right'); + var bottom = pluginManager.getFromPosition('bottom'); + var left = pluginManager.getFromPosition('left'); + var topHeight = pluginManager.getHeightFromPosition('top'); + var leftWidth = pluginManager.getWidthFromPosition('left'); + var promises = []; + var topOffset = 0; + top.forEach(function (plugin) { + promises.push(plugin.root.transition().duration(animationDuration).attr('y', topOffset).attr('x', leftWidth).end()); + topOffset += plugin.options.dimensions.height; + }); + var leftOffset = 0; + left.forEach(function (plugin) { + promises.push(plugin.root.transition().duration(animationDuration).attr('x', leftOffset).attr('y', topHeight).end()); + leftOffset += plugin.options.dimensions.width; + }); + bottom.forEach(function (plugin) { + promises.push(plugin.root.transition().duration(animationDuration).attr('x', leftWidth).attr('y', topHeight + domainsContainerPainter.height()).end()); + }); + leftOffset += domainsContainerPainter.width(); + right.forEach(function (plugin) { + promises.push(plugin.root.transition().duration(animationDuration).attr('x', leftOffset).attr('y', topHeight).end()); + leftOffset += plugin.options.dimensions.width; + }); + return promises; + } + }, { + key: "insideWidth", + value: function insideWidth() { + return this.calendar.pluginManager.getWidthFromPosition('left') + this.calendar.pluginManager.getWidthFromPosition('right'); + } + }, { + key: "insideHeight", + value: function insideHeight() { + return this.calendar.pluginManager.getHeightFromPosition('top') + this.calendar.pluginManager.getHeightFromPosition('bottom'); + } + }]); + return PluginPainter; + }(); + + var _CalendarPainter_instances, _CalendarPainter_getHeight, _CalendarPainter_getWidth, _CalendarPainter_resize; + var DEFAULT_SELECTOR = '.ch-container'; + var CalendarPainter = /*#__PURE__*/function () { + function CalendarPainter(calendar) { + _classCallCheck(this, CalendarPainter); + _CalendarPainter_instances.add(this); + this.calendar = calendar; + this.dimensions = { + width: 0, + height: 0 + }; + this.root = null; + this.domainsContainerPainter = new DomainsContainerPainter(calendar); + this.pluginPainter = new PluginPainter(calendar); + } + _createClass(CalendarPainter, [{ + key: "setup", + value: function setup() { + var _this$calendar$option = this.calendar.options.options, + itemSelector = _this$calendar$option.itemSelector, + theme = _this$calendar$option.theme; + if (!this.root) { + this.root = d3Selection.select(itemSelector).append('svg').attr('data-theme', theme).attr('class', DEFAULT_SELECTOR.slice(1)); + this.domainsContainerPainter.setup(); + } + this.calendar.pluginManager.setupAll(); + return true; + } + }, { + key: "paint", + value: function paint() { + var navigationDir = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ScrollDirection.SCROLL_NONE; + var transitions = this.domainsContainerPainter.paint(navigationDir).concat(this.pluginPainter.paint()).concat(this.domainsContainerPainter.updatePosition()); + __classPrivateFieldGet(this, _CalendarPainter_instances, "m", _CalendarPainter_resize).call(this); + return Promise.allSettled(transitions); + } + }, { + key: "destroy", + value: function destroy() { + var result = this.calendar.pluginManager.destroyAll().concat(this.domainsContainerPainter.destroy()); + if (!this.root) { + return Promise.allSettled(result); + } + result.push(this.root.transition().duration(this.calendar.options.options.animationDuration).attr('width', 0).attr('height', 0).remove().end()); + return Promise.allSettled(result); + } + }]); + return CalendarPainter; + }(); + _CalendarPainter_instances = new WeakSet(), _CalendarPainter_getHeight = function _CalendarPainter_getHeight() { + return this.domainsContainerPainter.height() + this.pluginPainter.insideHeight(); + }, _CalendarPainter_getWidth = function _CalendarPainter_getWidth() { + return this.domainsContainerPainter.width() + this.pluginPainter.insideWidth(); + }, _CalendarPainter_resize = function _CalendarPainter_resize() { + var options = this.calendar.options.options; + var newWidth = __classPrivateFieldGet(this, _CalendarPainter_instances, "m", _CalendarPainter_getWidth).call(this); + var newHeight = __classPrivateFieldGet(this, _CalendarPainter_instances, "m", _CalendarPainter_getHeight).call(this); + this.root.transition().duration(options.animationDuration).attr('width', newWidth).attr('height', newHeight); + if (newWidth !== this.dimensions.width || newHeight !== this.dimensions.height) { + this.calendar.eventEmitter.emit('resize', newWidth, newHeight, this.dimensions.width, this.dimensions.height); + } + this.dimensions = { + width: newWidth, + height: newHeight + }; + }; + + /** Detect free variable `global` from Node.js. */ + var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + + var freeGlobal$1 = freeGlobal; + + /** Detect free variable `self`. */ + var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + + /** Used as a reference to the global object. */ + var root = freeGlobal$1 || freeSelf || Function('return this')(); + + var root$1 = root; + + /** Built-in value references. */ + var Symbol$1 = root$1.Symbol; + + var Symbol$2 = Symbol$1; + + /** Used for built-in method references. */ + var objectProto$f = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$c = objectProto$f.hasOwnProperty; + + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var nativeObjectToString$1 = objectProto$f.toString; + + /** Built-in value references. */ + var symToStringTag$1 = Symbol$2 ? Symbol$2.toStringTag : undefined; + + /** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ + function getRawTag(value) { + var isOwn = hasOwnProperty$c.call(value, symToStringTag$1), + tag = value[symToStringTag$1]; + + try { + value[symToStringTag$1] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString$1.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag$1] = tag; + } else { + delete value[symToStringTag$1]; + } + } + return result; + } + + /** Used for built-in method references. */ + var objectProto$e = Object.prototype; + + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var nativeObjectToString = objectProto$e.toString; + + /** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ + function objectToString$1(value) { + return nativeObjectToString.call(value); + } + + /** `Object#toString` result references. */ + var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; + + /** Built-in value references. */ + var symToStringTag = Symbol$2 ? Symbol$2.toStringTag : undefined; + + /** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? getRawTag(value) + : objectToString$1(value); + } + + /** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ + function isObject$2(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); + } + + /** `Object#toString` result references. */ + var asyncTag = '[object AsyncFunction]', + funcTag$1 = '[object Function]', + genTag = '[object GeneratorFunction]', + proxyTag = '[object Proxy]'; + + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + if (!isObject$2(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag(value); + return tag == funcTag$1 || tag == genTag || tag == asyncTag || tag == proxyTag; + } + + var $$4 = _export; + var toObject$1 = toObject$b; + var nativeKeys$2 = objectKeys$3; + var fails$5 = fails$u; + + var FAILS_ON_PRIMITIVES = fails$5(function () { nativeKeys$2(1); }); + + // `Object.keys` method + // https://tc39.es/ecma262/#sec-object.keys + $$4({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { + keys: function keys(it) { + return nativeKeys$2(toObject$1(it)); + } + }); + + var isObject$1 = isObject$j; + var classof$1 = classofRaw$2; + var wellKnownSymbol$3 = wellKnownSymbol$m; + + var MATCH$1 = wellKnownSymbol$3('match'); + + // `IsRegExp` abstract operation + // https://tc39.es/ecma262/#sec-isregexp + var isRegexp = function (it) { + var isRegExp; + return isObject$1(it) && ((isRegExp = it[MATCH$1]) !== undefined ? !!isRegExp : classof$1(it) == 'RegExp'); + }; + + var isRegExp = isRegexp; + + var $TypeError$1 = TypeError; + + var notARegexp = function (it) { + if (isRegExp(it)) { + throw $TypeError$1("The method doesn't accept regular expressions"); + } return it; + }; + + var wellKnownSymbol$2 = wellKnownSymbol$m; + + var MATCH = wellKnownSymbol$2('match'); + + var correctIsRegexpLogic = function (METHOD_NAME) { + var regexp = /./; + try { + '/./'[METHOD_NAME](regexp); + } catch (error1) { + try { + regexp[MATCH] = false; + return '/./'[METHOD_NAME](regexp); + } catch (error2) { /* empty */ } + } return false; + }; + + var $$3 = _export; + var uncurryThis$7 = functionUncurryThisClause; + var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; + var toLength$1 = toLength$3; + var toString$4 = toString$a; + var notARegExp$1 = notARegexp; + var requireObjectCoercible$2 = requireObjectCoercible$7; + var correctIsRegExpLogic$1 = correctIsRegexpLogic; + + // eslint-disable-next-line es/no-string-prototype-startswith -- safe + var nativeStartsWith = uncurryThis$7(''.startsWith); + var stringSlice$3 = uncurryThis$7(''.slice); + var min$1 = Math.min; + + var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic$1('startsWith'); + // https://github.com/zloirock/core-js/pull/702 + var MDN_POLYFILL_BUG = !CORRECT_IS_REGEXP_LOGIC && !!function () { + var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith'); + return descriptor && !descriptor.writable; + }(); + + // `String.prototype.startsWith` method + // https://tc39.es/ecma262/#sec-string.prototype.startswith + $$3({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { + startsWith: function startsWith(searchString /* , position = 0 */) { + var that = toString$4(requireObjectCoercible$2(this)); + notARegExp$1(searchString); + var index = toLength$1(min$1(arguments.length > 1 ? arguments[1] : undefined, that.length)); + var search = toString$4(searchString); + return nativeStartsWith + ? nativeStartsWith(that, search, index) + : stringSlice$3(that, index, index + search.length) === search; + } + }); + + var DESCRIPTORS$1 = descriptors; + var uncurryThis$6 = functionUncurryThis; + var objectKeys = objectKeys$3; + var toIndexedObject = toIndexedObject$9; + var $propertyIsEnumerable = objectPropertyIsEnumerable.f; + + var propertyIsEnumerable$2 = uncurryThis$6($propertyIsEnumerable); + var push$1 = uncurryThis$6([].push); + + // `Object.{ entries, values }` methods implementation + var createMethod = function (TO_ENTRIES) { + return function (it) { + var O = toIndexedObject(it); + var keys = objectKeys(O); + var length = keys.length; + var i = 0; + var result = []; + var key; + while (length > i) { + key = keys[i++]; + if (!DESCRIPTORS$1 || propertyIsEnumerable$2(O, key)) { + push$1(result, TO_ENTRIES ? [key, O[key]] : O[key]); + } + } + return result; + }; + }; + + var objectToArray = { + // `Object.entries` method + // https://tc39.es/ecma262/#sec-object.entries + entries: createMethod(true), + // `Object.values` method + // https://tc39.es/ecma262/#sec-object.values + values: createMethod(false) + }; + + var $$2 = _export; + var $entries = objectToArray.entries; + + // `Object.entries` method + // https://tc39.es/ecma262/#sec-object.entries + $$2({ target: 'Object', stat: true }, { + entries: function entries(O) { + return $entries(O); + } + }); + + function defined(x) { + return x != null && !Number.isNaN(x); + } + + function ascendingDefined(a, b) { + return +defined(b) - +defined(a) || d3.ascending(a, b); + } + + function finite(x) { + return isFinite(x) ? x : NaN; + } + + function positive(x) { + return x > 0 && isFinite(x) ? x : NaN; + } + + function negative(x) { + return x < 0 && isFinite(x) ? x : NaN; + } + + const re = /^(?:[-+]\d{2})?\d{4}(?:-\d{2}(?:-\d{2})?)?(?:T\d{2}:\d{2}(?::\d{2}(?:\.\d{3})?)?(?:Z|[-+]\d{2}:?\d{2})?)?$/; + + function parse(string, fallback) { + if (!re.test(string += "")) return typeof fallback === "function" ? fallback(string) : fallback; + return new Date(string); + } + + const timeIntervals = new Map([ + ["second", d3.timeSecond], + ["minute", d3.timeMinute], + ["hour", d3.timeHour], + ["day", d3.timeDay], + ["week", d3.timeWeek], + ["month", d3.timeMonth], + ["quarter", d3.timeMonth.every(3)], + ["half", d3.timeMonth.every(6)], + ["year", d3.timeYear], + ["monday", d3.timeMonday], + ["tuesday", d3.timeTuesday], + ["wednesday", d3.timeWednesday], + ["thursday", d3.timeThursday], + ["friday", d3.timeFriday], + ["saturday", d3.timeSaturday], + ["sunday", d3.timeSunday] + ]); + + const utcIntervals = new Map([ + ["second", d3.utcSecond], + ["minute", d3.utcMinute], + ["hour", d3.utcHour], + ["day", d3.utcDay], + ["week", d3.utcWeek], + ["month", d3.utcMonth], + ["quarter", d3.utcMonth.every(3)], + ["half", d3.utcMonth.every(6)], + ["year", d3.utcYear], + ["monday", d3.utcMonday], + ["tuesday", d3.utcTuesday], + ["wednesday", d3.utcWednesday], + ["thursday", d3.utcThursday], + ["friday", d3.utcFriday], + ["saturday", d3.utcSaturday], + ["sunday", d3.utcSunday] + ]); + + function maybeTimeInterval(interval) { + const i = timeIntervals.get(`${interval}`.toLowerCase()); + if (!i) throw new Error(`unknown interval: ${interval}`); + return i; + } + + function maybeUtcInterval(interval) { + const i = utcIntervals.get(`${interval}`.toLowerCase()); + if (!i) throw new Error(`unknown interval: ${interval}`); + return i; + } + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray + const TypedArray = Object.getPrototypeOf(Uint8Array); + const objectToString = Object.prototype.toString; + const constant$1 = (x) => () => x; + + // If the values are specified as a typed array, no coercion is required. + function coerceNumbers(values) { + return values instanceof TypedArray ? values : map(values, coerceNumber, Float64Array); + } + + // Unlike Mark’s number, here we want to convert null and undefined to NaN since + // the result will be stored in a Float64Array and we don’t want null to be + // coerced to zero. We use Number instead of unary + to allow BigInt coercion. + function coerceNumber(x) { + return x == null ? NaN : Number(x); + } + + function coerceDates(values) { + return map(values, coerceDate); + } + + // When coercing strings to dates, we only want to allow the ISO 8601 format + // since the built-in string parsing of the Date constructor varies across + // browsers. (In the future, this could be made more liberal if desired, though + // it is still generally preferable to do date parsing yourself explicitly, + // rather than rely on Plot.) Any non-string values are coerced to number first + // and treated as milliseconds since UNIX epoch. + function coerceDate(x) { + return x instanceof Date && !isNaN(x) + ? x + : typeof x === "string" + ? parse(x) + : x == null || isNaN((x = +x)) + ? undefined + : new Date(x); + } + + // Promotes the specified data to an array as needed. + function arrayify(data) { + return data == null || data instanceof Array || data instanceof TypedArray ? data : Array.from(data); + } + + // An optimization of type.from(values, f): if the given values are already an + // instanceof the desired array type, the faster values.map method is used. + function map(values, f, type = Array) { + return values == null ? values : values instanceof type ? values.map(f) : type.from(values, f); + } + + // An optimization of type.from(values): if the given values are already an + // instanceof the desired array type, the faster values.slice method is used. + function slice(values, type = Array) { + return values instanceof type ? values.slice() : type.from(values); + } + + // Disambiguates an options object (e.g., {y: "x2"}) from a primitive value. + function isObject(option) { + return option?.toString === objectToString; + } + + // Disambiguates a scale options object (e.g., {color: {type: "linear"}}) from + // some other option (e.g., {color: "red"}). When creating standalone legends, + // this is used to test whether a scale is defined; this should be consistent + // with inferScaleType when there are no channels associated with the scale, and + // if this returns true, then normalizeScale must return non-null. + function isScaleOptions(option) { + return isObject(option) && (option.type !== undefined || option.domain !== undefined); + } + + // If interval is not nullish, converts interval shorthand such as a number (for + // multiples) or a time interval name (such as “dayâ€) to a {floor, offset, + // range} object similar to a D3 time interval. + function maybeInterval(interval, type) { + if (interval == null) return; + if (typeof interval === "number") { + if (0 < interval && interval < 1 && Number.isInteger(1 / interval)) interval = -1 / interval; + const n = Math.abs(interval); + return interval < 0 + ? { + floor: (d) => Math.floor(d * n) / n, + offset: (d) => (d * n + 1) / n, // note: no optional step for simplicity + range: (lo, hi) => d3.range(Math.ceil(lo * n), hi * n).map((x) => x / n) + } + : { + floor: (d) => Math.floor(d / n) * n, + offset: (d) => d + n, // note: no optional step for simplicity + range: (lo, hi) => d3.range(Math.ceil(lo / n), hi / n).map((x) => x * n) + }; + } + if (typeof interval === "string") return (type === "time" ? maybeTimeInterval : maybeUtcInterval)(interval); + if (typeof interval.floor !== "function") throw new Error("invalid interval; missing floor method"); + if (typeof interval.offset !== "function") throw new Error("invalid interval; missing offset method"); + return interval; + } + + // Like maybeInterval, but requires a range method too. + function maybeRangeInterval(interval, type) { + interval = maybeInterval(interval, type); + if (interval && typeof interval.range !== "function") throw new Error("invalid interval: missing range method"); + return interval; + } + + // Like maybeRangeInterval, but requires a ceil method too. + function maybeNiceInterval(interval, type) { + interval = maybeRangeInterval(interval, type); + if (interval && typeof interval.ceil !== "function") throw new Error("invalid interval: missing ceil method"); + return interval; + } + + function isOrdinal(values) { + for (const value of values) { + if (value == null) continue; + const type = typeof value; + return type === "string" || type === "boolean"; + } + } + + function isTemporal(values) { + for (const value of values) { + if (value == null) continue; + return value instanceof Date; + } + } + + // Are these strings that might represent dates? This is stricter than ISO 8601 + // because we want to ignore false positives on numbers; for example, the string + // "1192" is more likely to represent a number than a date even though it is + // valid ISO 8601 representing 1192-01-01. + function isTemporalString(values) { + for (const value of values) { + if (value == null) continue; + return typeof value === "string" && isNaN(value) && parse(value); + } + } + + // Are these strings that might represent numbers? This is stricter than + // coercion because we want to ignore false positives on e.g. empty strings. + function isNumericString(values) { + for (const value of values) { + if (value == null) continue; + if (typeof value !== "string") return false; + if (!value.trim()) continue; + return !isNaN(value); + } + } + + function isNoneish(value) { + return value == null || isNone(value); + } + + function isNone(value) { + return /^\s*none\s*$/i.test(value); + } + + // Like a sort comparator, returns a positive value if the given array of values + // is in ascending order, a negative value if the values are in descending + // order. Assumes monotonicity; only tests the first and last values. + function orderof(values) { + if (values == null) return; + const first = values[0]; + const last = values[values.length - 1]; + return d3.descending(first, last); + } + + // Positional scales have associated axes, and for ordinal data, a point or band + // scale is used instead of an ordinal scale. + const position = Symbol("position"); + + // Color scales default to the turbo interpolator for quantitative data, and to + // the Tableau10 scheme for ordinal data. Color scales may also have an + // associated legend. + const color = Symbol("color"); + + // Radius scales default to the sqrt type, have a default range of [0, 3], and a + // default domain from 0 to the median first quartile of associated channels. + const radius = Symbol("radius"); + + // Length scales default to the linear type, have a default range of [0, 12], + // and a default domain from 0 to the median median of associated channels. + const length = Symbol("length"); + + // Opacity scales have a default range of [0, 1], and a default domain from 0 to + // the maximum value of associated channels. + const opacity = Symbol("opacity"); + + // Symbol scales have a default range of categorical symbols. + const symbol = Symbol("symbol"); + + // TODO Rather than hard-coding the list of known scale names, collect the names + // and categories for each plot specification, so that custom marks can register + // custom scales. + const registry = new Map([ + ["x", position], + ["y", position], + ["fx", position], + ["fy", position], + ["r", radius], + ["color", color], + ["opacity", opacity], + ["symbol", symbol], + ["length", length] + ]); + + const sqrt3 = Math.sqrt(3); + const sqrt4_3 = 2 / sqrt3; + + const symbolHexagon = { + draw(context, size) { + const rx = Math.sqrt(size / Math.PI), + ry = rx * sqrt4_3, + hy = ry / 2; + context.moveTo(0, ry); + context.lineTo(rx, hy); + context.lineTo(rx, -hy); + context.lineTo(0, -ry); + context.lineTo(-rx, -hy); + context.lineTo(-rx, hy); + context.closePath(); + } + }; + + const symbols = new Map([ + ["asterisk", d3.symbolAsterisk], + ["circle", d3.symbolCircle], + ["cross", d3.symbolCross], + ["diamond", d3.symbolDiamond], + ["diamond2", d3.symbolDiamond2], + ["hexagon", symbolHexagon], + ["plus", d3.symbolPlus], + ["square", d3.symbolSquare], + ["square2", d3.symbolSquare2], + ["star", d3.symbolStar], + ["times", d3.symbolTimes], + ["triangle", d3.symbolTriangle], + ["triangle2", d3.symbolTriangle2], + ["wye", d3.symbolWye] + ]); + + function isSymbolObject(value) { + return value && typeof value.draw === "function"; + } + + function maybeSymbol(symbol) { + if (symbol == null || isSymbolObject(symbol)) return symbol; + const value = symbols.get(`${symbol}`.toLowerCase()); + if (value) return value; + throw new Error(`invalid symbol: ${symbol}`); + } + + function warn(message) { + console.warn(message); + } + + const ordinalSchemes = new Map([ + // categorical + ["accent", d3.schemeAccent], + ["category10", d3.schemeCategory10], + ["dark2", d3.schemeDark2], + ["paired", d3.schemePaired], + ["pastel1", d3.schemePastel1], + ["pastel2", d3.schemePastel2], + ["set1", d3.schemeSet1], + ["set2", d3.schemeSet2], + ["set3", d3.schemeSet3], + ["tableau10", d3.schemeTableau10], + + // diverging + ["brbg", scheme11(d3.schemeBrBG, d3.interpolateBrBG)], + ["prgn", scheme11(d3.schemePRGn, d3.interpolatePRGn)], + ["piyg", scheme11(d3.schemePiYG, d3.interpolatePiYG)], + ["puor", scheme11(d3.schemePuOr, d3.interpolatePuOr)], + ["rdbu", scheme11(d3.schemeRdBu, d3.interpolateRdBu)], + ["rdgy", scheme11(d3.schemeRdGy, d3.interpolateRdGy)], + ["rdylbu", scheme11(d3.schemeRdYlBu, d3.interpolateRdYlBu)], + ["rdylgn", scheme11(d3.schemeRdYlGn, d3.interpolateRdYlGn)], + ["spectral", scheme11(d3.schemeSpectral, d3.interpolateSpectral)], + + // reversed diverging (for temperature data) + ["burd", scheme11r(d3.schemeRdBu, d3.interpolateRdBu)], + ["buylrd", scheme11r(d3.schemeRdYlBu, d3.interpolateRdYlBu)], + + // sequential (single-hue) + ["blues", scheme9(d3.schemeBlues, d3.interpolateBlues)], + ["greens", scheme9(d3.schemeGreens, d3.interpolateGreens)], + ["greys", scheme9(d3.schemeGreys, d3.interpolateGreys)], + ["oranges", scheme9(d3.schemeOranges, d3.interpolateOranges)], + ["purples", scheme9(d3.schemePurples, d3.interpolatePurples)], + ["reds", scheme9(d3.schemeReds, d3.interpolateReds)], + + // sequential (multi-hue) + ["turbo", schemei(d3.interpolateTurbo)], + ["viridis", schemei(d3.interpolateViridis)], + ["magma", schemei(d3.interpolateMagma)], + ["inferno", schemei(d3.interpolateInferno)], + ["plasma", schemei(d3.interpolatePlasma)], + ["cividis", schemei(d3.interpolateCividis)], + ["cubehelix", schemei(d3.interpolateCubehelixDefault)], + ["warm", schemei(d3.interpolateWarm)], + ["cool", schemei(d3.interpolateCool)], + ["bugn", scheme9(d3.schemeBuGn, d3.interpolateBuGn)], + ["bupu", scheme9(d3.schemeBuPu, d3.interpolateBuPu)], + ["gnbu", scheme9(d3.schemeGnBu, d3.interpolateGnBu)], + ["orrd", scheme9(d3.schemeOrRd, d3.interpolateOrRd)], + ["pubu", scheme9(d3.schemePuBu, d3.interpolatePuBu)], + ["pubugn", scheme9(d3.schemePuBuGn, d3.interpolatePuBuGn)], + ["purd", scheme9(d3.schemePuRd, d3.interpolatePuRd)], + ["rdpu", scheme9(d3.schemeRdPu, d3.interpolateRdPu)], + ["ylgn", scheme9(d3.schemeYlGn, d3.interpolateYlGn)], + ["ylgnbu", scheme9(d3.schemeYlGnBu, d3.interpolateYlGnBu)], + ["ylorbr", scheme9(d3.schemeYlOrBr, d3.interpolateYlOrBr)], + ["ylorrd", scheme9(d3.schemeYlOrRd, d3.interpolateYlOrRd)], + + // cyclical + ["rainbow", schemeicyclical(d3.interpolateRainbow)], + ["sinebow", schemeicyclical(d3.interpolateSinebow)] + ]); + + function scheme9(scheme, interpolate) { + return ({length: n}) => { + if (n === 1) return [scheme[3][1]]; // favor midpoint + if (n === 2) return [scheme[3][1], scheme[3][2]]; // favor darker + n = Math.max(3, Math.floor(n)); + return n > 9 ? d3.quantize(interpolate, n) : scheme[n]; + }; + } + + function scheme11(scheme, interpolate) { + return ({length: n}) => { + if (n === 2) return [scheme[3][0], scheme[3][2]]; // favor diverging extrema + n = Math.max(3, Math.floor(n)); + return n > 11 ? d3.quantize(interpolate, n) : scheme[n]; + }; + } + + function scheme11r(scheme, interpolate) { + return ({length: n}) => { + if (n === 2) return [scheme[3][2], scheme[3][0]]; // favor diverging extrema + n = Math.max(3, Math.floor(n)); + return n > 11 ? d3.quantize((t) => interpolate(1 - t), n) : scheme[n].slice().reverse(); + }; + } + + function schemei(interpolate) { + return ({length: n}) => d3.quantize(interpolate, Math.max(2, Math.floor(n))); + } + + function schemeicyclical(interpolate) { + return ({length: n}) => d3.quantize(interpolate, Math.floor(n) + 1).slice(0, -1); + } + + function ordinalScheme(scheme) { + const s = `${scheme}`.toLowerCase(); + if (!ordinalSchemes.has(s)) throw new Error(`unknown ordinal scheme: ${s}`); + return ordinalSchemes.get(s); + } + + function ordinalRange(scheme, length) { + const s = ordinalScheme(scheme); + const r = typeof s === "function" ? s({length}) : s; + return r.length !== length ? r.slice(0, length) : r; + } + + // If the specified domain contains only booleans (ignoring null and undefined), + // returns a corresponding range where false is mapped to the low color and true + // is mapped to the high color of the specified scheme. + function maybeBooleanRange(domain, scheme = "greys") { + const range = new Set(); + const [f, t] = ordinalRange(scheme, 2); + for (const value of domain) { + if (value == null) continue; + if (value === true) range.add(t); + else if (value === false) range.add(f); + else return; + } + return [...range]; + } + + const quantitativeSchemes = new Map([ + // diverging + ["brbg", d3.interpolateBrBG], + ["prgn", d3.interpolatePRGn], + ["piyg", d3.interpolatePiYG], + ["puor", d3.interpolatePuOr], + ["rdbu", d3.interpolateRdBu], + ["rdgy", d3.interpolateRdGy], + ["rdylbu", d3.interpolateRdYlBu], + ["rdylgn", d3.interpolateRdYlGn], + ["spectral", d3.interpolateSpectral], + + // reversed diverging (for temperature data) + ["burd", (t) => d3.interpolateRdBu(1 - t)], + ["buylrd", (t) => d3.interpolateRdYlBu(1 - t)], + + // sequential (single-hue) + ["blues", d3.interpolateBlues], + ["greens", d3.interpolateGreens], + ["greys", d3.interpolateGreys], + ["purples", d3.interpolatePurples], + ["reds", d3.interpolateReds], + ["oranges", d3.interpolateOranges], + + // sequential (multi-hue) + ["turbo", d3.interpolateTurbo], + ["viridis", d3.interpolateViridis], + ["magma", d3.interpolateMagma], + ["inferno", d3.interpolateInferno], + ["plasma", d3.interpolatePlasma], + ["cividis", d3.interpolateCividis], + ["cubehelix", d3.interpolateCubehelixDefault], + ["warm", d3.interpolateWarm], + ["cool", d3.interpolateCool], + ["bugn", d3.interpolateBuGn], + ["bupu", d3.interpolateBuPu], + ["gnbu", d3.interpolateGnBu], + ["orrd", d3.interpolateOrRd], + ["pubugn", d3.interpolatePuBuGn], + ["pubu", d3.interpolatePuBu], + ["purd", d3.interpolatePuRd], + ["rdpu", d3.interpolateRdPu], + ["ylgnbu", d3.interpolateYlGnBu], + ["ylgn", d3.interpolateYlGn], + ["ylorbr", d3.interpolateYlOrBr], + ["ylorrd", d3.interpolateYlOrRd], + + // cyclical + ["rainbow", d3.interpolateRainbow], + ["sinebow", d3.interpolateSinebow] + ]); + + function quantitativeScheme(scheme) { + const s = `${scheme}`.toLowerCase(); + if (!quantitativeSchemes.has(s)) throw new Error(`unknown quantitative scheme: ${s}`); + return quantitativeSchemes.get(s); + } + + const divergingSchemes = new Set([ + "brbg", + "prgn", + "piyg", + "puor", + "rdbu", + "rdgy", + "rdylbu", + "rdylgn", + "spectral", + "burd", + "buylrd" + ]); + + function isDivergingScheme(scheme) { + return scheme != null && divergingSchemes.has(`${scheme}`.toLowerCase()); + } + + const flip = (i) => (t) => i(1 - t); + const unit = [0, 1]; + + const interpolators = new Map([ + // numbers + ["number", d3.interpolateNumber], + + // color spaces + ["rgb", d3.interpolateRgb], + ["hsl", d3.interpolateHsl], + ["hcl", d3.interpolateHcl], + ["lab", d3.interpolateLab] + ]); + + function maybeInterpolator(interpolate) { + const i = `${interpolate}`.toLowerCase(); + if (!interpolators.has(i)) throw new Error(`unknown interpolator: ${i}`); + return interpolators.get(i); + } + + function createScaleQ( + key, + scale, + channels, + { + type, + nice, + clamp, + zero, + domain = inferAutoDomain(key, channels), + unknown, + round, + scheme, + interval, + range = registry.get(key) === radius + ? inferRadialRange(channels, domain) + : registry.get(key) === length + ? inferLengthRange(channels, domain) + : registry.get(key) === opacity + ? unit + : undefined, + interpolate = registry.get(key) === color + ? scheme == null && range !== undefined + ? d3.interpolateRgb + : quantitativeScheme(scheme !== undefined ? scheme : type === "cyclical" ? "rainbow" : "turbo") + : round + ? d3.interpolateRound + : d3.interpolateNumber, + reverse + } + ) { + interval = maybeRangeInterval(interval, type); + if (type === "cyclical" || type === "sequential") type = "linear"; // shorthand for color schemes + reverse = !!reverse; + + // Sometimes interpolate is a named interpolator, such as "lab" for Lab color + // space. Other times interpolate is a function that takes two arguments and + // is used in conjunction with the range. And other times the interpolate + // function is a “fixed†interpolator on the [0, 1] interval, as when a + // color scheme such as interpolateRdBu is used. + if (typeof interpolate !== "function") { + interpolate = maybeInterpolator(interpolate); + } + if (interpolate.length === 1) { + if (reverse) { + interpolate = flip(interpolate); + reverse = false; + } + if (range === undefined) { + range = Float64Array.from(domain, (_, i) => i / (domain.length - 1)); + if (range.length === 2) range = unit; // optimize common case of [0, 1] + } + scale.interpolate((range === unit ? constant$1 : interpolatePiecewise)(interpolate)); + } else { + scale.interpolate(interpolate); + } + + // If a zero option is specified, we assume that the domain is numeric, and we + // want to ensure that the domain crosses zero. However, note that the domain + // may be reversed (descending) so we shouldn’t assume that the first value is + // smaller than the last; and also it’s possible that the domain has more than + // two values for a “poly†scale. And lastly be careful not to mutate input! + if (zero) { + const [min, max] = d3.extent(domain); + if (min > 0 || max < 0) { + domain = slice(domain); + if (orderof(domain) !== Math.sign(min)) domain[domain.length - 1] = 0; + // [2, 1] or [-2, -1] + else domain[0] = 0; // [1, 2] or [-1, -2] + } + } + + if (reverse) domain = d3.reverse(domain); + scale.domain(domain).unknown(unknown); + if (nice) scale.nice(maybeNice(nice, type)), (domain = scale.domain()); + if (range !== undefined) scale.range(range); + if (clamp) scale.clamp(clamp); + return {type, domain, range, scale, interpolate, interval}; + } + + function maybeNice(nice, type) { + return nice === true ? undefined : typeof nice === "number" ? nice : maybeNiceInterval(nice, type); + } + + function createScaleLinear(key, channels, options) { + return createScaleQ(key, d3.scaleLinear(), channels, options); + } + + function createScaleSqrt(key, channels, options) { + return createScalePow(key, channels, {...options, exponent: 0.5}); + } + + function createScalePow(key, channels, {exponent = 1, ...options}) { + return createScaleQ(key, d3.scalePow().exponent(exponent), channels, {...options, type: "pow"}); + } + + function createScaleLog(key, channels, {base = 10, domain = inferLogDomain(channels), ...options}) { + return createScaleQ(key, d3.scaleLog().base(base), channels, {...options, domain}); + } + + function createScaleSymlog(key, channels, {constant = 1, ...options}) { + return createScaleQ(key, d3.scaleSymlog().constant(constant), channels, options); + } + + function createScaleQuantile( + key, + channels, + { + range, + quantiles = range === undefined ? 5 : (range = [...range]).length, // deprecated; use n instead + n = quantiles, + scheme = "rdylbu", + domain = inferQuantileDomain(channels), + unknown, + interpolate, + reverse + } + ) { + if (range === undefined) { + range = + interpolate !== undefined + ? d3.quantize(interpolate, n) + : registry.get(key) === color + ? ordinalRange(scheme, n) + : undefined; + } + if (domain.length > 0) { + domain = d3.scaleQuantile(domain, range === undefined ? {length: n} : range).quantiles(); + } + return createScaleThreshold(key, channels, {domain, range, reverse, unknown}); + } + + function createScaleQuantize( + key, + channels, + { + range, + n = range === undefined ? 5 : (range = [...range]).length, + scheme = "rdylbu", + domain = inferAutoDomain(key, channels), + unknown, + interpolate, + reverse + } + ) { + const [min, max] = d3.extent(domain); + let thresholds; + if (range === undefined) { + thresholds = d3.ticks(min, max, n); // approximate number of nice, round thresholds + if (thresholds[0] <= min) thresholds.splice(0, 1); // drop exact lower bound + if (thresholds[thresholds.length - 1] >= max) thresholds.pop(); // drop exact upper bound + n = thresholds.length + 1; + range = + interpolate !== undefined + ? d3.quantize(interpolate, n) + : registry.get(key) === color + ? ordinalRange(scheme, n) + : undefined; + } else { + thresholds = d3.quantize(d3.interpolateNumber(min, max), n + 1).slice(1, -1); // exactly n - 1 thresholds to match range + if (min instanceof Date) thresholds = thresholds.map((x) => new Date(x)); // preserve date types + } + if (orderof(arrayify(domain)) < 0) thresholds.reverse(); // preserve descending domain + return createScaleThreshold(key, channels, {domain: thresholds, range, reverse, unknown}); + } + + function createScaleThreshold( + key, + channels, + { + domain = [0], // explicit thresholds in ascending order + unknown, + scheme = "rdylbu", + interpolate, + range = interpolate !== undefined + ? d3.quantize(interpolate, domain.length + 1) + : registry.get(key) === color + ? ordinalRange(scheme, domain.length + 1) + : undefined, + reverse + } + ) { + domain = arrayify(domain); + const sign = orderof(domain); // preserve descending domain + if (!isNaN(sign) && !isOrdered(domain, sign)) throw new Error(`the ${key} scale has a non-monotonic domain`); + if (reverse) range = d3.reverse(range); // domain ascending, so reverse range + return { + type: "threshold", + scale: d3.scaleThreshold(sign < 0 ? d3.reverse(domain) : domain, range === undefined ? [] : range).unknown(unknown), + domain, + range + }; + } + + function isOrdered(domain, sign) { + for (let i = 1, n = domain.length, d = domain[0]; i < n; ++i) { + const s = d3.descending(d, (d = domain[i])); + if (s !== 0 && s !== sign) return false; + } + return true; + } + + function createScaleIdentity() { + return {type: "identity", scale: d3.scaleIdentity()}; + } + + function inferDomain$1(channels, f = finite) { + return channels.length + ? [ + d3.min(channels, ({value}) => (value === undefined ? value : d3.min(value, f))), + d3.max(channels, ({value}) => (value === undefined ? value : d3.max(value, f))) + ] + : [0, 1]; + } + + function inferAutoDomain(key, channels) { + const type = registry.get(key); + return (type === radius || type === opacity || type === length ? inferZeroDomain : inferDomain$1)(channels); + } + + function inferZeroDomain(channels) { + return [0, channels.length ? d3.max(channels, ({value}) => (value === undefined ? value : d3.max(value, finite))) : 1]; + } + + // We don’t want the upper bound of the radial domain to be zero, as this would + // be degenerate, so we ignore nonpositive values. We also don’t want the + // maximum default radius to exceed 30px. + function inferRadialRange(channels, domain) { + const hint = channels.find(({radius}) => radius !== undefined); + if (hint !== undefined) return [0, hint.radius]; // a natural maximum radius, e.g. hexbins + const h25 = d3.quantile(channels, 0.5, ({value}) => (value === undefined ? NaN : d3.quantile(value, 0.25, positive))); + const range = domain.map((d) => 3 * Math.sqrt(d / h25)); + const k = 30 / d3.max(range); + return k < 1 ? range.map((r) => r * k) : range; + } + + // We want a length scale’s domain to go from zero to a positive value, and to + // treat negative lengths if any as inverted vectors of equivalent magnitude. We + // also don’t want the maximum default length to exceed 60px. + function inferLengthRange(channels, domain) { + const h50 = d3.median(channels, ({value}) => (value === undefined ? NaN : d3.median(value, Math.abs))); + const range = domain.map((d) => (12 * d) / h50); + const k = 60 / d3.max(range); + return k < 1 ? range.map((r) => r * k) : range; + } + + function inferLogDomain(channels) { + for (const {value} of channels) { + if (value !== undefined) { + for (let v of value) { + if (v > 0) return inferDomain$1(channels, positive); + if (v < 0) return inferDomain$1(channels, negative); + } + } + } + return [1, 10]; + } + + function inferQuantileDomain(channels) { + const domain = []; + for (const {value} of channels) { + if (value === undefined) continue; + for (const v of value) domain.push(v); + } + return domain; + } + + function interpolatePiecewise(interpolate) { + return (i, j) => (t) => interpolate(i + t * (j - i)); + } + + function createScaleD( + key, + scale, + transform, + channels, + { + type, + nice, + clamp, + domain = inferDomain$1(channels), + unknown, + pivot = 0, + scheme, + range, + symmetric = true, + interpolate = registry.get(key) === color + ? scheme == null && range !== undefined + ? d3.interpolateRgb + : quantitativeScheme(scheme !== undefined ? scheme : "rdbu") + : d3.interpolateNumber, + reverse + } + ) { + pivot = +pivot; + let [min, max] = domain; + if (d3.descending(min, max) < 0) ([min, max] = [max, min]), (reverse = !reverse); + min = Math.min(min, pivot); + max = Math.max(max, pivot); + + // Sometimes interpolate is a named interpolator, such as "lab" for Lab color + // space. Other times interpolate is a function that takes two arguments and + // is used in conjunction with the range. And other times the interpolate + // function is a “fixed†interpolator on the [0, 1] interval, as when a + // color scheme such as interpolateRdBu is used. + if (typeof interpolate !== "function") { + interpolate = maybeInterpolator(interpolate); + } + + // If an explicit range is specified, promote it to a piecewise interpolator. + if (range !== undefined) { + interpolate = + interpolate.length === 1 ? interpolatePiecewise(interpolate)(...range) : d3.piecewise(interpolate, range); + } + + // Reverse before normalization. + if (reverse) interpolate = flip(interpolate); + + // Normalize the interpolator for symmetric difference around the pivot. + if (symmetric) { + const mid = transform.apply(pivot); + const mindelta = mid - transform.apply(min); + const maxdelta = transform.apply(max) - mid; + if (mindelta < maxdelta) min = transform.invert(mid - maxdelta); + else if (mindelta > maxdelta) max = transform.invert(mid + mindelta); + } + + scale.domain([min, pivot, max]).unknown(unknown).interpolator(interpolate); + if (clamp) scale.clamp(clamp); + if (nice) scale.nice(nice); + return {type, domain: [min, max], pivot, interpolate, scale}; + } + + function createScaleDiverging(key, channels, options) { + return createScaleD(key, d3.scaleDiverging(), transformIdentity, channels, options); + } + + function createScaleDivergingSqrt(key, channels, options) { + return createScaleDivergingPow(key, channels, {...options, exponent: 0.5}); + } + + function createScaleDivergingPow(key, channels, {exponent = 1, ...options}) { + return createScaleD(key, d3.scaleDivergingPow().exponent((exponent = +exponent)), transformPow(exponent), channels, { + ...options, + type: "diverging-pow" + }); + } + + function createScaleDivergingLog( + key, + channels, + {base = 10, pivot = 1, domain = inferDomain$1(channels, pivot < 0 ? negative : positive), ...options} + ) { + return createScaleD(key, d3.scaleDivergingLog().base((base = +base)), transformLog, channels, { + domain, + pivot, + ...options + }); + } + + function createScaleDivergingSymlog(key, channels, {constant = 1, ...options}) { + return createScaleD( + key, + d3.scaleDivergingSymlog().constant((constant = +constant)), + transformSymlog(constant), + channels, + options + ); + } + + const transformIdentity = { + apply(x) { + return x; + }, + invert(x) { + return x; + } + }; + + const transformLog = { + apply: Math.log, + invert: Math.exp + }; + + const transformSqrt = { + apply(x) { + return Math.sign(x) * Math.sqrt(Math.abs(x)); + }, + invert(x) { + return Math.sign(x) * (x * x); + } + }; + + function transformPow(exponent) { + return exponent === 0.5 + ? transformSqrt + : { + apply(x) { + return Math.sign(x) * Math.pow(Math.abs(x), exponent); + }, + invert(x) { + return Math.sign(x) * Math.pow(Math.abs(x), 1 / exponent); + } + }; + } + + function transformSymlog(constant) { + return { + apply(x) { + return Math.sign(x) * Math.log1p(Math.abs(x / constant)); + }, + invert(x) { + return Math.sign(x) * Math.expm1(Math.abs(x)) * constant; + } + }; + } + + function createScaleT(key, scale, channels, options) { + return createScaleQ(key, scale, channels, options); + } + + function createScaleTime(key, channels, options) { + return createScaleT(key, d3.scaleTime(), channels, options); + } + + function createScaleUtc(key, channels, options) { + return createScaleT(key, d3.scaleUtc(), channels, options); + } + + // This denotes an implicitly ordinal color scale: the scale type was not set, + // but the associated values are strings or booleans. If the associated defined + // values are entirely boolean, the range will default to greys. You can opt out + // of this by setting the type explicitly. + const ordinalImplicit = Symbol("ordinal"); + + function createScaleO(key, scale, channels, {type, interval, domain, range, reverse, hint}) { + interval = maybeRangeInterval(interval, type); + if (domain === undefined) domain = inferDomain(channels, interval, key); + if (type === "categorical" || type === ordinalImplicit) type = "ordinal"; // shorthand for color schemes + if (reverse) domain = d3.reverse(domain); + scale.domain(domain); + if (range !== undefined) { + // If the range is specified as a function, pass it the domain. + if (typeof range === "function") range = range(domain); + scale.range(range); + } + return {type, domain, range, scale, hint, interval}; + } + + function createScaleOrdinal(key, channels, {type, interval, domain, range, scheme, unknown, ...options}) { + interval = maybeRangeInterval(interval, type); + if (domain === undefined) domain = inferDomain(channels, interval, key); + let hint; + if (registry.get(key) === symbol) { + hint = inferSymbolHint(channels); + range = range === undefined ? inferSymbolRange(hint) : map(range, maybeSymbol); + } else if (registry.get(key) === color) { + if (range === undefined && (type === "ordinal" || type === ordinalImplicit)) { + range = maybeBooleanRange(domain, scheme); + if (range !== undefined) scheme = undefined; // Don’t re-apply scheme. + } + if (scheme === undefined && range === undefined) { + scheme = type === "ordinal" ? "turbo" : "tableau10"; + } + if (scheme !== undefined) { + if (range !== undefined) { + const interpolate = quantitativeScheme(scheme); + const t0 = range[0], + d = range[1] - range[0]; + range = ({length: n}) => d3.quantize((t) => interpolate(t0 + d * t), n); + } else { + range = ordinalScheme(scheme); + } + } + } + if (unknown === d3.scaleImplicit) { + throw new Error(`implicit unknown on ${key} scale is not supported`); + } + return createScaleO(key, d3.scaleOrdinal().unknown(unknown), channels, {...options, type, domain, range, hint}); + } + + function createScalePoint(key, channels, {align = 0.5, padding = 0.5, ...options}) { + return maybeRound(d3.scalePoint().align(align).padding(padding), channels, options, key); + } + + function createScaleBand( + key, + channels, + { + align = 0.5, + padding = 0.1, + paddingInner = padding, + paddingOuter = key === "fx" || key === "fy" ? 0 : padding, + ...options + } + ) { + return maybeRound( + d3.scaleBand().align(align).paddingInner(paddingInner).paddingOuter(paddingOuter), + channels, + options, + key + ); + } + + function maybeRound(scale, channels, options, key) { + let {round} = options; + if (round !== undefined) scale.round((round = !!round)); + scale = createScaleO(key, scale, channels, options); + scale.round = round; // preserve for autoScaleRound + return scale; + } + + function inferDomain(channels, interval, key) { + const values = new d3.InternSet(); + for (const {value, domain} of channels) { + if (domain !== undefined) return domain(); // see channelDomain + if (value === undefined) continue; + for (const v of value) values.add(v); + } + if (interval !== undefined) { + const [min, max] = d3.extent(values).map(interval.floor, interval); + return interval.range(min, interval.offset(max)); + } + if (values.size > 10e3 && registry.get(key) === position) { + throw new Error(`implicit ordinal domain of ${key} scale has more than 10,000 values`); + } + return d3.sort(values, ascendingDefined); + } + + // If all channels provide a consistent hint, propagate it to the scale. + function inferHint(channels, key) { + let value; + for (const {hint} of channels) { + const candidate = hint?.[key]; + if (candidate === undefined) continue; // no hint here + if (value === undefined) value = candidate; + // first hint + else if (value !== candidate) return; // inconsistent hint + } + return value; + } + + function inferSymbolHint(channels) { + return { + fill: inferHint(channels, "fill"), + stroke: inferHint(channels, "stroke") + }; + } + + function inferSymbolRange(hint) { + return isNoneish(hint.fill) ? d3.symbolsStroke : d3.symbolsFill; + } + + function normalizeScale(key, scale, hint) { + return createScale(key, hint === undefined ? undefined : [{hint}], {...scale}); + } + + function createScale(key, channels = [], options = {}) { + const type = inferScaleType(key, channels, options); + + // Warn for common misuses of implicit ordinal scales. We disable this test if + // you specify a scale interval or if you set the domain or range explicitly, + // since setting the domain or range (typically with a cardinality of more than + // two) is another indication that you intended for the scale to be ordinal; we + // also disable it for facet scales since these are always band scales. + if ( + options.type === undefined && + options.domain === undefined && + options.range === undefined && + options.interval == null && + key !== "fx" && + key !== "fy" && + isOrdinalScale({type}) + ) { + const values = channels.map(({value}) => value).filter((value) => value !== undefined); + if (values.some(isTemporal)) + warn( + `Warning: some data associated with the ${key} scale are dates. Dates are typically associated with a "utc" or "time" scale rather than a "${formatScaleType( + type + )}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., d3.utcDay), or you can suppress this warning by setting the type of the ${key} scale to "${formatScaleType( + type + )}".` + ); + else if (values.some(isTemporalString)) + warn( + `Warning: some data associated with the ${key} scale are strings that appear to be dates (e.g., YYYY-MM-DD). If these strings represent dates, you should parse them to Date objects. Dates are typically associated with a "utc" or "time" scale rather than a "${formatScaleType( + type + )}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can suppress this warning by setting the type of the ${key} scale to "${formatScaleType( + type + )}".` + ); + else if (values.some(isNumericString)) + warn( + `Warning: some data associated with the ${key} scale are strings that appear to be numbers. If these strings represent numbers, you should parse or coerce them to numbers. Numbers are typically associated with a "linear" scale rather than a "${formatScaleType( + type + )}" scale. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., 1 for integers), or you can suppress this warning by setting the type of the ${key} scale to "${formatScaleType( + type + )}".` + ); + } + + options.type = type; // Mutates input! + + // Once the scale type is known, coerce the associated channel values and any + // explicitly-specified domain to the expected type. + switch (type) { + case "diverging": + case "diverging-sqrt": + case "diverging-pow": + case "diverging-log": + case "diverging-symlog": + case "cyclical": + case "sequential": + case "linear": + case "sqrt": + case "threshold": + case "quantile": + case "pow": + case "log": + case "symlog": + options = coerceType(channels, options, coerceNumbers); + break; + case "identity": + switch (registry.get(key)) { + case position: + options = coerceType(channels, options, coerceNumbers); + break; + case symbol: + options = coerceType(channels, options, coerceSymbols); + break; + } + break; + case "utc": + case "time": + options = coerceType(channels, options, coerceDates); + break; + } + + switch (type) { + case "diverging": + return createScaleDiverging(key, channels, options); + case "diverging-sqrt": + return createScaleDivergingSqrt(key, channels, options); + case "diverging-pow": + return createScaleDivergingPow(key, channels, options); + case "diverging-log": + return createScaleDivergingLog(key, channels, options); + case "diverging-symlog": + return createScaleDivergingSymlog(key, channels, options); + case "categorical": + case "ordinal": + case ordinalImplicit: + return createScaleOrdinal(key, channels, options); + case "cyclical": + case "sequential": + case "linear": + return createScaleLinear(key, channels, options); + case "sqrt": + return createScaleSqrt(key, channels, options); + case "threshold": + return createScaleThreshold(key, channels, options); + case "quantile": + return createScaleQuantile(key, channels, options); + case "quantize": + return createScaleQuantize(key, channels, options); + case "pow": + return createScalePow(key, channels, options); + case "log": + return createScaleLog(key, channels, options); + case "symlog": + return createScaleSymlog(key, channels, options); + case "utc": + return createScaleUtc(key, channels, options); + case "time": + return createScaleTime(key, channels, options); + case "point": + return createScalePoint(key, channels, options); + case "band": + return createScaleBand(key, channels, options); + case "identity": + return registry.get(key) === position ? createScaleIdentity() : {type: "identity"}; + case undefined: + return; + default: + throw new Error(`unknown scale type: ${type}`); + } + } + + function formatScaleType(type) { + return typeof type === "symbol" ? type.description : type; + } + + // A special type symbol when the x and y scales are replaced with a projection. + const typeProjection = {toString: () => "projection"}; + + function inferScaleType(key, channels, {type, domain, range, scheme, pivot, projection}) { + // The facet scales are always band scales; this cannot be changed. + if (key === "fx" || key === "fy") return "band"; + + // If a projection is specified, the x- and y-scales are disabled; these + // channels will be projected rather than scaled. (But still check that none + // of the associated channels are incompatible with a projection.) + if ((key === "x" || key === "y") && projection != null) type = typeProjection; + + // If a channel dictates a scale type, make sure that it is consistent with + // the user-specified scale type (if any) and all other channels. For example, + // barY requires x to be a band scale and disallows any other scale type. + for (const {type: t} of channels) { + if (t === undefined) continue; + else if (type === undefined) type = t; + else if (type !== t) throw new Error(`scale incompatible with channel: ${type} !== ${t}`); + } + + // If the scale, a channel, or user specified a (consistent) type, return it. + if (type === typeProjection) return; + if (type !== undefined) return type; + + // If there’s no data (and no type) associated with this scale, don’t create a scale. + if (domain === undefined && !channels.some(({value}) => value !== undefined)) return; + + // Some scales have default types. + const kind = registry.get(key); + if (kind === radius) return "sqrt"; + if (kind === opacity || kind === length) return "linear"; + if (kind === symbol) return "ordinal"; + + // If the domain or range has more than two values, assume it’s ordinal. You + // can still use a “piecewise†(or “polylinearâ€) scale, but you must set the + // type explicitly. + if ((domain || range || []).length > 2) return asOrdinalType(kind); + + // Otherwise, infer the scale type from the data! Prefer the domain, if + // present, over channels. (The domain and channels should be consistently + // typed, and the domain is more explicit and typically much smaller.) We only + // check the first defined value for expedience and simplicity; we expect + // that the types are consistent. + if (domain !== undefined) { + if (isOrdinal(domain)) return asOrdinalType(kind); + if (isTemporal(domain)) return "utc"; + if (kind === color && (pivot != null || isDivergingScheme(scheme))) return "diverging"; + return "linear"; + } + + // If any channel is ordinal or temporal, it takes priority. + const values = channels.map(({value}) => value).filter((value) => value !== undefined); + if (values.some(isOrdinal)) return asOrdinalType(kind); + if (values.some(isTemporal)) return "utc"; + if (kind === color && (pivot != null || isDivergingScheme(scheme))) return "diverging"; + return "linear"; + } + + // Positional scales default to a point scale instead of an ordinal scale. + function asOrdinalType(kind) { + switch (kind) { + case position: + return "point"; + case color: + return ordinalImplicit; + default: + return "ordinal"; + } + } + + function isOrdinalScale({type}) { + return type === "ordinal" || type === "point" || type === "band" || type === ordinalImplicit; + } + + // Mutates channel.value! + function coerceType(channels, {domain, ...options}, coerceValues) { + for (const c of channels) { + if (c.value !== undefined) { + c.value = coerceValues(c.value); + } + } + return { + domain: domain === undefined ? domain : coerceValues(domain), + ...options + }; + } + + function coerceSymbols(values) { + return map(values, maybeSymbol); + } + + function scale(options = {}) { + let scale; + for (const key in options) { + if (!registry.has(key)) continue; // ignore unknown properties + if (!isScaleOptions(options[key])) continue; // e.g., ignore {color: "red"} + if (scale !== undefined) throw new Error("ambiguous scale definition; multiple scales found"); + scale = exposeScale(normalizeScale(key, options[key])); + } + if (scale === undefined) throw new Error("invalid scale definition; no scale found"); + return scale; + } + + // Note: axis- and legend-related properties (such as label, ticks and + // tickFormat) are not included here as they do not affect the scale’s behavior. + function exposeScale({scale, type, domain, range, interpolate, interval, transform, percent, pivot}) { + if (type === "identity") return {type: "identity", apply: (d) => d, invert: (d) => d}; + const unknown = scale.unknown ? scale.unknown() : undefined; + return { + type, + domain: slice(domain), // defensive copy + ...(range !== undefined && {range: slice(range)}), // defensive copy + ...(transform !== undefined && {transform}), + ...(percent && {percent}), // only exposed if truthy + ...(unknown !== undefined && {unknown}), + ...(interval !== undefined && {interval}), + + // quantitative + ...(interpolate !== undefined && {interpolate}), + ...(scale.clamp && {clamp: scale.clamp()}), + + // diverging (always asymmetric; we never want to apply the symmetric transform twice) + ...(pivot !== undefined && {pivot, symmetric: false}), + + // log, diverging-log + ...(scale.base && {base: scale.base()}), + + // pow, diverging-pow + ...(scale.exponent && {exponent: scale.exponent()}), + + // symlog, diverging-symlog + ...(scale.constant && {constant: scale.constant()}), + + // band, point + ...(scale.align && {align: scale.align(), round: scale.round()}), + ...(scale.padding && + (scale.paddingInner + ? {paddingInner: scale.paddingInner(), paddingOuter: scale.paddingOuter()} + : {padding: scale.padding()})), + ...(scale.bandwidth && {bandwidth: scale.bandwidth(), step: scale.step()}), + + // utilities + apply: (t) => scale(t), + ...(scale.invert && {invert: (t) => scale.invert(t)}) + }; + } + + function normalizedScale(scaleOptions) { + try { + var scaleType = Object.keys(scaleOptions)[0]; + return scale(_defineProperty({}, scaleType, Object.assign(Object.assign({}, scaleOptions[scaleType]), { + clamp: true + }))); + } catch (error) { + return null; + } + } + function scaleStyle(_scale, scaleOptions) { + var styles = {}; + if (scaleOptions.hasOwnProperty('opacity')) { + styles.fill = function () { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + scaleOptions.opacity.baseColor || SCALE_BASE_OPACITY_COLOR + ); + }; + styles['fill-opacity'] = function (d) { + return _scale === null || _scale === void 0 ? void 0 : _scale.apply(d); + }; + } else { + styles.fill = function (d) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + typeof d === 'string' && (d === null || d === void 0 ? void 0 : d.startsWith('#')) ? d : _scale === null || _scale === void 0 ? void 0 : _scale.apply(d) + ); + }; + } + return styles; + } + function applyScaleStyle(elem, _scale, scaleOptions, keyname) { + Object.entries(scaleStyle(_scale, scaleOptions)).forEach(function (_ref) { + var _ref2 = _slicedToArray(_ref, 2), + prop = _ref2[0], + val = _ref2[1]; + return ( + // eslint-disable-next-line implicit-arrow-linebreak + elem.style(prop, function (d) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + val(keyname ? d[keyname] : d) + ); + }) + ); + }); + } + + var Populator = /*#__PURE__*/function () { + function Populator(calendar) { + _classCallCheck(this, Populator); + this.calendar = calendar; + } + _createClass(Populator, [{ + key: "populate", + value: function populate() { + var calendar = this.calendar; + var _calendar$options$opt = calendar.options.options, + scale = _calendar$options$opt.scale, + subDomain = _calendar$options$opt.subDomain; + var colorScale = normalizedScale(scale); + calendar.calendarPainter.root.selectAll('.ch-domain').selectAll('svg').selectAll('g').data(function (d) { + return calendar.domainCollection.get(d) || []; + }).call(function (element) { + applyScaleStyle(element.select('rect'), colorScale, scale, 'v'); + }).call(function (element) { + element.select('text').attr('style', function (d) { + var defaultColor = d3Color.hcl(colorScale === null || colorScale === void 0 ? void 0 : colorScale.apply(d.v)).l > 60 ? '#000' : '#fff'; + var color = subDomain.color || (d.v ? defaultColor : null); + if (isFunction(color)) { + color = color(d.t, d.v, colorScale === null || colorScale === void 0 ? void 0 : colorScale.apply(d.v)); + } + if (!color) { + return null; + } + return "fill: ".concat(color, ";"); + }).text(function (d, i, nodes) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + calendar.dateHelper.format(d.t, subDomain.label, d.v, nodes[i]) + ); + }); + }).call(function () { + calendar.eventEmitter.emit('fill'); + }); + } + }]); + return Populator; + }(); + + /** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ + function listCacheClear() { + this.__data__ = []; + this.size = 0; + } + + /** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ + function eq(value, other) { + return value === other || (value !== value && other !== other); + } + + /** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; + } + + /** Used for built-in method references. */ + var arrayProto = Array.prototype; + + /** Built-in value references. */ + var splice = arrayProto.splice; + + /** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; + } + + /** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; + } + + /** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; + } + + /** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ + function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; + } + + /** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + // Add methods to `ListCache`. + ListCache.prototype.clear = listCacheClear; + ListCache.prototype['delete'] = listCacheDelete; + ListCache.prototype.get = listCacheGet; + ListCache.prototype.has = listCacheHas; + ListCache.prototype.set = listCacheSet; + + /** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ + function stackClear() { + this.__data__ = new ListCache; + this.size = 0; + } + + /** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function stackDelete(key) { + var data = this.__data__, + result = data['delete'](key); + + this.size = data.size; + return result; + } + + /** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function stackGet(key) { + return this.__data__.get(key); + } + + /** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function stackHas(key) { + return this.__data__.has(key); + } + + /** Used to detect overreaching core-js shims. */ + var coreJsData = root$1['__core-js_shared__']; + + var coreJsData$1 = coreJsData; + + /** Used to detect methods masquerading as native. */ + var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData$1 && coreJsData$1.keys && coreJsData$1.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; + }()); + + /** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ + function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); + } + + /** Used for built-in method references. */ + var funcProto$2 = Function.prototype; + + /** Used to resolve the decompiled source of functions. */ + var funcToString$2 = funcProto$2.toString; + + /** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ + function toSource(func) { + if (func != null) { + try { + return funcToString$2.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; + } + + /** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ + var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + + /** Used to detect host constructors (Safari). */ + var reIsHostCtor = /^\[object .+?Constructor\]$/; + + /** Used for built-in method references. */ + var funcProto$1 = Function.prototype, + objectProto$d = Object.prototype; + + /** Used to resolve the decompiled source of functions. */ + var funcToString$1 = funcProto$1.toString; + + /** Used to check objects for own properties. */ + var hasOwnProperty$b = objectProto$d.hasOwnProperty; + + /** Used to detect if a method is native. */ + var reIsNative = RegExp('^' + + funcToString$1.call(hasOwnProperty$b).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' + ); + + /** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ + function baseIsNative(value) { + if (!isObject$2(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); + } + + /** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ + function getValue(object, key) { + return object == null ? undefined : object[key]; + } + + /** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ + function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; + } + + /* Built-in method references that are verified to be native. */ + var Map$1 = getNative(root$1, 'Map'); + + var Map$2 = Map$1; + + /* Built-in method references that are verified to be native. */ + var nativeCreate = getNative(Object, 'create'); + + var nativeCreate$1 = nativeCreate; + + /** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ + function hashClear() { + this.__data__ = nativeCreate$1 ? nativeCreate$1(null) : {}; + this.size = 0; + } + + /** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; + } + + /** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED$2 = '__lodash_hash_undefined__'; + + /** Used for built-in method references. */ + var objectProto$c = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$a = objectProto$c.hasOwnProperty; + + /** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function hashGet(key) { + var data = this.__data__; + if (nativeCreate$1) { + var result = data[key]; + return result === HASH_UNDEFINED$2 ? undefined : result; + } + return hasOwnProperty$a.call(data, key) ? data[key] : undefined; + } + + /** Used for built-in method references. */ + var objectProto$b = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$9 = objectProto$b.hasOwnProperty; + + /** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function hashHas(key) { + var data = this.__data__; + return nativeCreate$1 ? (data[key] !== undefined) : hasOwnProperty$9.call(data, key); + } + + /** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED$1 = '__lodash_hash_undefined__'; + + /** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ + function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = (nativeCreate$1 && value === undefined) ? HASH_UNDEFINED$1 : value; + return this; + } + + /** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function Hash(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + // Add methods to `Hash`. + Hash.prototype.clear = hashClear; + Hash.prototype['delete'] = hashDelete; + Hash.prototype.get = hashGet; + Hash.prototype.has = hashHas; + Hash.prototype.set = hashSet; + + /** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ + function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new Hash, + 'map': new (Map$2 || ListCache), + 'string': new Hash + }; + } + + /** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ + function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); + } + + /** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ + function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; + } + + /** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function mapCacheDelete(key) { + var result = getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; + } + + /** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function mapCacheGet(key) { + return getMapData(this, key).get(key); + } + + /** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function mapCacheHas(key) { + return getMapData(this, key).has(key); + } + + /** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ + function mapCacheSet(key, value) { + var data = getMapData(this, key), + size = data.size; + + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; + } + + /** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + // Add methods to `MapCache`. + MapCache.prototype.clear = mapCacheClear; + MapCache.prototype['delete'] = mapCacheDelete; + MapCache.prototype.get = mapCacheGet; + MapCache.prototype.has = mapCacheHas; + MapCache.prototype.set = mapCacheSet; + + /** Used as the size to enable large array optimizations. */ + var LARGE_ARRAY_SIZE = 200; + + /** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ + function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map$2 || (pairs.length < LARGE_ARRAY_SIZE - 1)) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; + } + + /** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function Stack(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; + } + + // Add methods to `Stack`. + Stack.prototype.clear = stackClear; + Stack.prototype['delete'] = stackDelete; + Stack.prototype.get = stackGet; + Stack.prototype.has = stackHas; + Stack.prototype.set = stackSet; + + var defineProperty = (function() { + try { + var func = getNative(Object, 'defineProperty'); + func({}, '', {}); + return func; + } catch (e) {} + }()); + + var defineProperty$1 = defineProperty; + + /** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function baseAssignValue(object, key, value) { + if (key == '__proto__' && defineProperty$1) { + defineProperty$1(object, key, { + 'configurable': true, + 'enumerable': true, + 'value': value, + 'writable': true + }); + } else { + object[key] = value; + } + } + + /** + * This function is like `assignValue` except that it doesn't assign + * `undefined` values. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function assignMergeValue(object, key, value) { + if ((value !== undefined && !eq(object[key], value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } + } + + /** + * Creates a base function for methods like `_.forIn` and `_.forOwn`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var index = -1, + iterable = Object(object), + props = keysFunc(object), + length = props.length; + + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; + } + + /** + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ + var baseFor = createBaseFor(); + + var baseFor$1 = baseFor; + + /** Detect free variable `exports`. */ + var freeExports$2 = typeof exports == 'object' && exports && !exports.nodeType && exports; + + /** Detect free variable `module`. */ + var freeModule$2 = freeExports$2 && typeof module == 'object' && module && !module.nodeType && module; + + /** Detect the popular CommonJS extension `module.exports`. */ + var moduleExports$2 = freeModule$2 && freeModule$2.exports === freeExports$2; + + /** Built-in value references. */ + var Buffer$1 = moduleExports$2 ? root$1.Buffer : undefined, + allocUnsafe = Buffer$1 ? Buffer$1.allocUnsafe : undefined; + + /** + * Creates a clone of `buffer`. + * + * @private + * @param {Buffer} buffer The buffer to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Buffer} Returns the cloned buffer. + */ + function cloneBuffer(buffer, isDeep) { + if (isDeep) { + return buffer.slice(); + } + var length = buffer.length, + result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); + + buffer.copy(result); + return result; + } + + /** Built-in value references. */ + var Uint8Array$1 = root$1.Uint8Array; + + var Uint8Array$2 = Uint8Array$1; + + /** + * Creates a clone of `arrayBuffer`. + * + * @private + * @param {ArrayBuffer} arrayBuffer The array buffer to clone. + * @returns {ArrayBuffer} Returns the cloned array buffer. + */ + function cloneArrayBuffer(arrayBuffer) { + var result = new arrayBuffer.constructor(arrayBuffer.byteLength); + new Uint8Array$2(result).set(new Uint8Array$2(arrayBuffer)); + return result; + } + + /** + * Creates a clone of `typedArray`. + * + * @private + * @param {Object} typedArray The typed array to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned typed array. + */ + function cloneTypedArray(typedArray, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; + return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); + } + + /** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ + function copyArray(source, array) { + var index = -1, + length = source.length; + + array || (array = Array(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; + } + + /** Built-in value references. */ + var objectCreate = Object.create; + + /** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} proto The object to inherit from. + * @returns {Object} Returns the new object. + */ + var baseCreate = (function() { + function object() {} + return function(proto) { + if (!isObject$2(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result = new object; + object.prototype = undefined; + return result; + }; + }()); + + var baseCreate$1 = baseCreate; + + /** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ + function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; + } + + /** Built-in value references. */ + var getPrototype = overArg(Object.getPrototypeOf, Object); + + var getPrototype$1 = getPrototype; + + /** Used for built-in method references. */ + var objectProto$a = Object.prototype; + + /** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ + function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$a; + + return value === proto; + } + + /** + * Initializes an object clone. + * + * @private + * @param {Object} object The object to clone. + * @returns {Object} Returns the initialized clone. + */ + function initCloneObject(object) { + return (typeof object.constructor == 'function' && !isPrototype(object)) + ? baseCreate$1(getPrototype$1(object)) + : {}; + } + + /** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return value != null && typeof value == 'object'; + } + + /** `Object#toString` result references. */ + var argsTag$2 = '[object Arguments]'; + + /** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ + function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag$2; + } + + /** Used for built-in method references. */ + var objectProto$9 = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$8 = objectProto$9.hasOwnProperty; + + /** Built-in value references. */ + var propertyIsEnumerable$1 = objectProto$9.propertyIsEnumerable; + + /** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ + var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty$8.call(value, 'callee') && + !propertyIsEnumerable$1.call(value, 'callee'); + }; + + var isArguments$1 = isArguments; + + /** Used as references for various `Number` constants. */ + var MAX_SAFE_INTEGER$1 = 9007199254740991; + + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ + function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER$1; + } + + /** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ + function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); + } + + /** + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. + * @example + * + * _.isArrayLikeObject([1, 2, 3]); + * // => true + * + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false + */ + function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); + } + + /** + * This method returns `false`. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {boolean} Returns `false`. + * @example + * + * _.times(2, _.stubFalse); + * // => [false, false] + */ + function stubFalse() { + return false; + } + + /** Detect free variable `exports`. */ + var freeExports$1 = typeof exports == 'object' && exports && !exports.nodeType && exports; + + /** Detect free variable `module`. */ + var freeModule$1 = freeExports$1 && typeof module == 'object' && module && !module.nodeType && module; + + /** Detect the popular CommonJS extension `module.exports`. */ + var moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1; + + /** Built-in value references. */ + var Buffer = moduleExports$1 ? root$1.Buffer : undefined; + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; + + /** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ + var isBuffer = nativeIsBuffer || stubFalse; + + var isBuffer$1 = isBuffer; + + /** `Object#toString` result references. */ + var objectTag$3 = '[object Object]'; + + /** Used for built-in method references. */ + var funcProto = Function.prototype, + objectProto$8 = Object.prototype; + + /** Used to resolve the decompiled source of functions. */ + var funcToString = funcProto.toString; + + /** Used to check objects for own properties. */ + var hasOwnProperty$7 = objectProto$8.hasOwnProperty; + + /** Used to infer the `Object` constructor. */ + var objectCtorString = funcToString.call(Object); + + /** + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. + * + * @static + * @memberOf _ + * @since 0.8.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true + * + * _.isPlainObject(Object.create(null)); + * // => true + */ + function isPlainObject(value) { + if (!isObjectLike(value) || baseGetTag(value) != objectTag$3) { + return false; + } + var proto = getPrototype$1(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty$7.call(proto, 'constructor') && proto.constructor; + return typeof Ctor == 'function' && Ctor instanceof Ctor && + funcToString.call(Ctor) == objectCtorString; + } + + /** `Object#toString` result references. */ + var argsTag$1 = '[object Arguments]', + arrayTag$1 = '[object Array]', + boolTag$1 = '[object Boolean]', + dateTag$1 = '[object Date]', + errorTag$1 = '[object Error]', + funcTag = '[object Function]', + mapTag$2 = '[object Map]', + numberTag$1 = '[object Number]', + objectTag$2 = '[object Object]', + regexpTag$1 = '[object RegExp]', + setTag$2 = '[object Set]', + stringTag$2 = '[object String]', + weakMapTag$1 = '[object WeakMap]'; + + var arrayBufferTag$1 = '[object ArrayBuffer]', + dataViewTag$2 = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + + /** Used to identify `toStringTag` values of typed arrays. */ + var typedArrayTags = {}; + typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = + typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = + typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = + typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = + typedArrayTags[uint32Tag] = true; + typedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] = + typedArrayTags[arrayBufferTag$1] = typedArrayTags[boolTag$1] = + typedArrayTags[dataViewTag$2] = typedArrayTags[dateTag$1] = + typedArrayTags[errorTag$1] = typedArrayTags[funcTag] = + typedArrayTags[mapTag$2] = typedArrayTags[numberTag$1] = + typedArrayTags[objectTag$2] = typedArrayTags[regexpTag$1] = + typedArrayTags[setTag$2] = typedArrayTags[stringTag$2] = + typedArrayTags[weakMapTag$1] = false; + + /** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ + function baseIsTypedArray(value) { + return isObjectLike(value) && + isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; + } + + /** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ + function baseUnary(func) { + return function(value) { + return func(value); + }; + } + + /** Detect free variable `exports`. */ + var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + + /** Detect free variable `module`. */ + var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + + /** Detect the popular CommonJS extension `module.exports`. */ + var moduleExports = freeModule && freeModule.exports === freeExports; + + /** Detect free variable `process` from Node.js. */ + var freeProcess = moduleExports && freeGlobal$1.process; + + /** Used to access faster Node.js helpers. */ + var nodeUtil = (function() { + try { + // Use `util.types` for Node.js 10+. + var types = freeModule && freeModule.require && freeModule.require('util').types; + + if (types) { + return types; + } + + // Legacy `process.binding('util')` for Node.js < 10. + return freeProcess && freeProcess.binding && freeProcess.binding('util'); + } catch (e) {} + }()); + + var nodeUtil$1 = nodeUtil; + + /* Node.js helper references. */ + var nodeIsTypedArray = nodeUtil$1 && nodeUtil$1.isTypedArray; + + /** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ + var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + + var isTypedArray$1 = isTypedArray; + + /** + * Gets the value at `key`, unless `key` is "__proto__" or "constructor". + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ + function safeGet(object, key) { + if (key === 'constructor' && typeof object[key] === 'function') { + return; + } + + if (key == '__proto__') { + return; + } + + return object[key]; + } + + /** Used for built-in method references. */ + var objectProto$7 = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$6 = objectProto$7.hasOwnProperty; + + /** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty$6.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } + } + + /** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property identifiers to copy. + * @param {Object} [object={}] The object to copy properties to. + * @param {Function} [customizer] The function to customize copied values. + * @returns {Object} Returns `object`. + */ + function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); + + var index = -1, + length = props.length; + + while (++index < length) { + var key = props[index]; + + var newValue = customizer + ? customizer(object[key], source[key], key, object, source) + : undefined; + + if (newValue === undefined) { + newValue = source[key]; + } + if (isNew) { + baseAssignValue(object, key, newValue); + } else { + assignValue(object, key, newValue); + } + } + return object; + } + + /** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ + function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); + + while (++index < n) { + result[index] = iteratee(index); + } + return result; + } + + /** Used as references for various `Number` constants. */ + var MAX_SAFE_INTEGER = 9007199254740991; + + /** Used to detect unsigned integer values. */ + var reIsUint = /^(?:0|[1-9]\d*)$/; + + /** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ + function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + + return !!length && + (type == 'number' || + (type != 'symbol' && reIsUint.test(value))) && + (value > -1 && value % 1 == 0 && value < length); + } + + /** Used for built-in method references. */ + var objectProto$6 = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$5 = objectProto$6.hasOwnProperty; + + /** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ + function arrayLikeKeys(value, inherited) { + var isArr = isArray$3(value), + isArg = !isArr && isArguments$1(value), + isBuff = !isArr && !isArg && isBuffer$1(value), + isType = !isArr && !isArg && !isBuff && isTypedArray$1(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? baseTimes(value.length, String) : [], + length = result.length; + + for (var key in value) { + if ((inherited || hasOwnProperty$5.call(value, key)) && + !(skipIndexes && ( + // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || + // Node.js 0.10 has enumerable non-index properties on buffers. + (isBuff && (key == 'offset' || key == 'parent')) || + // PhantomJS 2 has enumerable non-index properties on typed arrays. + (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || + // Skip index properties. + isIndex(key, length) + ))) { + result.push(key); + } + } + return result; + } + + /** + * This function is like + * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * except that it includes inherited enumerable properties. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function nativeKeysIn(object) { + var result = []; + if (object != null) { + for (var key in Object(object)) { + result.push(key); + } + } + return result; + } + + /** Used for built-in method references. */ + var objectProto$5 = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$4 = objectProto$5.hasOwnProperty; + + /** + * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function baseKeysIn(object) { + if (!isObject$2(object)) { + return nativeKeysIn(object); + } + var isProto = isPrototype(object), + result = []; + + for (var key in object) { + if (!(key == 'constructor' && (isProto || !hasOwnProperty$4.call(object, key)))) { + result.push(key); + } + } + return result; + } + + /** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ + function keysIn(object) { + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); + } + + /** + * Converts `value` to a plain object flattening inherited enumerable string + * keyed properties of `value` to own properties of the plain object. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {Object} Returns the converted plain object. + * @example + * + * function Foo() { + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.assign({ 'a': 1 }, new Foo); + * // => { 'a': 1, 'b': 2 } + * + * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); + * // => { 'a': 1, 'b': 2, 'c': 3 } + */ + function toPlainObject(value) { + return copyObject(value, keysIn(value)); + } + + /** + * A specialized version of `baseMerge` for arrays and objects which performs + * deep merges and tracks traversed objects enabling objects with circular + * references to be merged. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {string} key The key of the value to merge. + * @param {number} srcIndex The index of `source`. + * @param {Function} mergeFunc The function to merge values. + * @param {Function} [customizer] The function to customize assigned values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ + function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { + var objValue = safeGet(object, key), + srcValue = safeGet(source, key), + stacked = stack.get(srcValue); + + if (stacked) { + assignMergeValue(object, key, stacked); + return; + } + var newValue = customizer + ? customizer(objValue, srcValue, (key + ''), object, source, stack) + : undefined; + + var isCommon = newValue === undefined; + + if (isCommon) { + var isArr = isArray$3(srcValue), + isBuff = !isArr && isBuffer$1(srcValue), + isTyped = !isArr && !isBuff && isTypedArray$1(srcValue); + + newValue = srcValue; + if (isArr || isBuff || isTyped) { + if (isArray$3(objValue)) { + newValue = objValue; + } + else if (isArrayLikeObject(objValue)) { + newValue = copyArray(objValue); + } + else if (isBuff) { + isCommon = false; + newValue = cloneBuffer(srcValue, true); + } + else if (isTyped) { + isCommon = false; + newValue = cloneTypedArray(srcValue, true); + } + else { + newValue = []; + } + } + else if (isPlainObject(srcValue) || isArguments$1(srcValue)) { + newValue = objValue; + if (isArguments$1(objValue)) { + newValue = toPlainObject(objValue); + } + else if (!isObject$2(objValue) || isFunction(objValue)) { + newValue = initCloneObject(srcValue); + } + } + else { + isCommon = false; + } + } + if (isCommon) { + // Recursively merge objects and arrays (susceptible to call stack limits). + stack.set(srcValue, newValue); + mergeFunc(newValue, srcValue, srcIndex, customizer, stack); + stack['delete'](srcValue); + } + assignMergeValue(object, key, newValue); + } + + /** + * The base implementation of `_.merge` without support for multiple sources. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {number} srcIndex The index of `source`. + * @param {Function} [customizer] The function to customize merged values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ + function baseMerge(object, source, srcIndex, customizer, stack) { + if (object === source) { + return; + } + baseFor$1(source, function(srcValue, key) { + stack || (stack = new Stack); + if (isObject$2(srcValue)) { + baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); + } + else { + var newValue = customizer + ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack) + : undefined; + + if (newValue === undefined) { + newValue = srcValue; + } + assignMergeValue(object, key, newValue); + } + }, keysIn); + } + + /** + * This method returns the first argument it receives. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true + */ + function identity(value) { + return value; + } + + /** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ + function apply$1(func, thisArg, args) { + switch (args.length) { + case 0: return func.call(thisArg); + case 1: return func.call(thisArg, args[0]); + case 2: return func.call(thisArg, args[0], args[1]); + case 3: return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); + } + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeMax = Math.max; + + /** + * A specialized version of `baseRest` which transforms the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. + */ + function overRest(func, start, transform) { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); + + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform(array); + return apply$1(func, this, otherArgs); + }; + } + + /** + * Creates a function that returns `value`. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {*} value The value to return from the new function. + * @returns {Function} Returns the new constant function. + * @example + * + * var objects = _.times(2, _.constant({ 'a': 1 })); + * + * console.log(objects); + * // => [{ 'a': 1 }, { 'a': 1 }] + * + * console.log(objects[0] === objects[1]); + * // => true + */ + function constant(value) { + return function() { + return value; + }; + } + + /** + * The base implementation of `setToString` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ + var baseSetToString = !defineProperty$1 ? identity : function(func, string) { + return defineProperty$1(func, 'toString', { + 'configurable': true, + 'enumerable': false, + 'value': constant(string), + 'writable': true + }); + }; + + var baseSetToString$1 = baseSetToString; + + /** Used to detect hot functions by number of calls within a span of milliseconds. */ + var HOT_COUNT = 800, + HOT_SPAN = 16; + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeNow = Date.now; + + /** + * Creates a function that'll short out and invoke `identity` instead + * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` + * milliseconds. + * + * @private + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new shortable function. + */ + function shortOut(func) { + var count = 0, + lastCalled = 0; + + return function() { + var stamp = nativeNow(), + remaining = HOT_SPAN - (stamp - lastCalled); + + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + return func.apply(undefined, arguments); + }; + } + + /** + * Sets the `toString` method of `func` to return `string`. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ + var setToString = shortOut(baseSetToString$1); + + var setToString$1 = setToString; + + /** + * The base implementation of `_.rest` which doesn't validate or coerce arguments. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + */ + function baseRest(func, start) { + return setToString$1(overRest(func, start, identity), func + ''); + } + + /** + * Checks if the given arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * else `false`. + */ + function isIterateeCall(value, index, object) { + if (!isObject$2(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object) + ) { + return eq(object[index], value); + } + return false; + } + + /** + * Creates a function like `_.assign`. + * + * @private + * @param {Function} assigner The function to assign values. + * @returns {Function} Returns the new assigner function. + */ + function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, + length = sources.length, + customizer = length > 1 ? sources[length - 1] : undefined, + guard = length > 2 ? sources[2] : undefined; + + customizer = (assigner.length > 3 && typeof customizer == 'function') + ? (length--, customizer) + : undefined; + + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? undefined : customizer; + length = 1; + } + object = Object(object); + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } + } + return object; + }); + } + + /** + * This method is like `_.merge` except that it accepts `customizer` which + * is invoked to produce the merged values of the destination and source + * properties. If `customizer` returns `undefined`, merging is handled by the + * method instead. The `customizer` is invoked with six arguments: + * (objValue, srcValue, key, object, source, stack). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} sources The source objects. + * @param {Function} customizer The function to customize assigned values. + * @returns {Object} Returns `object`. + * @example + * + * function customizer(objValue, srcValue) { + * if (_.isArray(objValue)) { + * return objValue.concat(srcValue); + * } + * } + * + * var object = { 'a': [1], 'b': [2] }; + * var other = { 'a': [3], 'b': [4] }; + * + * _.mergeWith(object, other, customizer); + * // => { 'a': [1, 3], 'b': [2, 4] } + */ + var mergeWith = createAssigner(function(object, source, srcIndex, customizer) { + baseMerge(object, source, srcIndex, customizer); + }); + + var mergeWith$1 = mergeWith; + + /** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED = '__lodash_hash_undefined__'; + + /** + * Adds `value` to the array cache. + * + * @private + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. + */ + function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; + } + + /** + * Checks if `value` is in the array cache. + * + * @private + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. + */ + function setCacheHas(value) { + return this.__data__.has(value); + } + + /** + * + * Creates an array cache object to store unique values. + * + * @private + * @constructor + * @param {Array} [values] The values to cache. + */ + function SetCache(values) { + var index = -1, + length = values == null ? 0 : values.length; + + this.__data__ = new MapCache; + while (++index < length) { + this.add(values[index]); + } + } + + // Add methods to `SetCache`. + SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; + SetCache.prototype.has = setCacheHas; + + /** + * A specialized version of `_.some` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ + function arraySome(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; + } + + /** + * Checks if a `cache` value for `key` exists. + * + * @private + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function cacheHas(cache, key) { + return cache.has(key); + } + + /** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG$3 = 1, + COMPARE_UNORDERED_FLAG$1 = 2; + + /** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ + function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + // Check that cyclic values are equal. + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; + } + var index = -1, + result = true, + seen = (bitmask & COMPARE_UNORDERED_FLAG$1) ? new SetCache : undefined; + + stack.set(array, other); + stack.set(other, array); + + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, arrValue, index, other, array, stack) + : customizer(arrValue, othValue, index, array, other, stack); + } + if (compared !== undefined) { + if (compared) { + continue; + } + result = false; + break; + } + // Recursively compare arrays (susceptible to call stack limits). + if (seen) { + if (!arraySome(other, function(othValue, othIndex) { + if (!cacheHas(seen, othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result = false; + break; + } + } else if (!( + arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack) + )) { + result = false; + break; + } + } + stack['delete'](array); + stack['delete'](other); + return result; + } + + /** + * Converts `map` to its key-value pairs. + * + * @private + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. + */ + function mapToArray(map) { + var index = -1, + result = Array(map.size); + + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; + } + + /** + * Converts `set` to an array of its values. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. + */ + function setToArray(set) { + var index = -1, + result = Array(set.size); + + set.forEach(function(value) { + result[++index] = value; + }); + return result; + } + + /** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG$2 = 1, + COMPARE_UNORDERED_FLAG = 2; + + /** `Object#toString` result references. */ + var boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + mapTag$1 = '[object Map]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + setTag$1 = '[object Set]', + stringTag$1 = '[object String]', + symbolTag$1 = '[object Symbol]'; + + var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag$1 = '[object DataView]'; + + /** Used to convert symbols to primitives and strings. */ + var symbolProto$1 = Symbol$2 ? Symbol$2.prototype : undefined, + symbolValueOf = symbolProto$1 ? symbolProto$1.valueOf : undefined; + + /** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag$1: + if ((object.byteLength != other.byteLength) || + (object.byteOffset != other.byteOffset)) { + return false; + } + object = object.buffer; + other = other.buffer; + + case arrayBufferTag: + if ((object.byteLength != other.byteLength) || + !equalFunc(new Uint8Array$2(object), new Uint8Array$2(other))) { + return false; + } + return true; + + case boolTag: + case dateTag: + case numberTag: + // Coerce booleans to `1` or `0` and dates to milliseconds. + // Invalid dates are coerced to `NaN`. + return eq(+object, +other); + + case errorTag: + return object.name == other.name && object.message == other.message; + + case regexpTag: + case stringTag$1: + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring + // for more details. + return object == (other + ''); + + case mapTag$1: + var convert = mapToArray; + + case setTag$1: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$2; + convert || (convert = setToArray); + + if (object.size != other.size && !isPartial) { + return false; + } + // Assume cyclic values are equal. + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG; + + // Recursively compare objects (susceptible to call stack limits). + stack.set(object, other); + var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack['delete'](object); + return result; + + case symbolTag$1: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; + } + + /** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ + function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; + + while (++index < length) { + array[offset + index] = values[index]; + } + return array; + } + + /** + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. + */ + function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray$3(object) ? result : arrayPush(result, symbolsFunc(object)); + } + + /** + * A specialized version of `_.filter` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ + function arrayFilter(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[resIndex++] = value; + } + } + return result; + } + + /** + * This method returns a new empty array. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {Array} Returns the new empty array. + * @example + * + * var arrays = _.times(2, _.stubArray); + * + * console.log(arrays); + * // => [[], []] + * + * console.log(arrays[0] === arrays[1]); + * // => false + */ + function stubArray() { + return []; + } + + /** Used for built-in method references. */ + var objectProto$4 = Object.prototype; + + /** Built-in value references. */ + var propertyIsEnumerable = objectProto$4.propertyIsEnumerable; + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeGetSymbols = Object.getOwnPropertySymbols; + + /** + * Creates an array of the own enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ + var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); + }; + + var getSymbols$1 = getSymbols; + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeKeys = overArg(Object.keys, Object); + + var nativeKeys$1 = nativeKeys; + + /** Used for built-in method references. */ + var objectProto$3 = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$3 = objectProto$3.hasOwnProperty; + + /** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys$1(object); + } + var result = []; + for (var key in Object(object)) { + if (hasOwnProperty$3.call(object, key) && key != 'constructor') { + result.push(key); + } + } + return result; + } + + /** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ + function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); + } + + /** + * Creates an array of own enumerable property names and symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ + function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols$1); + } + + /** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG$1 = 1; + + /** Used for built-in method references. */ + var objectProto$2 = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$2 = objectProto$2.hasOwnProperty; + + /** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$1, + objProps = getAllKeys(object), + objLength = objProps.length, + othProps = getAllKeys(other), + othLength = othProps.length; + + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty$2.call(other, key))) { + return false; + } + } + // Check that cyclic values are equal. + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } + var result = true; + stack.set(object, other); + stack.set(other, object); + + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, objValue, key, other, object, stack) + : customizer(objValue, othValue, key, object, other, stack); + } + // Recursively compare objects (susceptible to call stack limits). + if (!(compared === undefined + ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) + : compared + )) { + result = false; + break; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (result && !skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + result = false; + } + } + stack['delete'](object); + stack['delete'](other); + return result; + } + + /* Built-in method references that are verified to be native. */ + var DataView = getNative(root$1, 'DataView'); + + var DataView$1 = DataView; + + /* Built-in method references that are verified to be native. */ + var Promise$1 = getNative(root$1, 'Promise'); + + var Promise$2 = Promise$1; + + /* Built-in method references that are verified to be native. */ + var Set$1 = getNative(root$1, 'Set'); + + var Set$2 = Set$1; + + /* Built-in method references that are verified to be native. */ + var WeakMap = getNative(root$1, 'WeakMap'); + + var WeakMap$1 = WeakMap; + + /** `Object#toString` result references. */ + var mapTag = '[object Map]', + objectTag$1 = '[object Object]', + promiseTag = '[object Promise]', + setTag = '[object Set]', + weakMapTag = '[object WeakMap]'; + + var dataViewTag = '[object DataView]'; + + /** Used to detect maps, sets, and weakmaps. */ + var dataViewCtorString = toSource(DataView$1), + mapCtorString = toSource(Map$2), + promiseCtorString = toSource(Promise$2), + setCtorString = toSource(Set$2), + weakMapCtorString = toSource(WeakMap$1); + + /** + * Gets the `toStringTag` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + var getTag = baseGetTag; + + // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. + if ((DataView$1 && getTag(new DataView$1(new ArrayBuffer(1))) != dataViewTag) || + (Map$2 && getTag(new Map$2) != mapTag) || + (Promise$2 && getTag(Promise$2.resolve()) != promiseTag) || + (Set$2 && getTag(new Set$2) != setTag) || + (WeakMap$1 && getTag(new WeakMap$1) != weakMapTag)) { + getTag = function(value) { + var result = baseGetTag(value), + Ctor = result == objectTag$1 ? value.constructor : undefined, + ctorString = Ctor ? toSource(Ctor) : ''; + + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: return dataViewTag; + case mapCtorString: return mapTag; + case promiseCtorString: return promiseTag; + case setCtorString: return setTag; + case weakMapCtorString: return weakMapTag; + } + } + return result; + }; + } + + var getTag$1 = getTag; + + /** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG = 1; + + /** `Object#toString` result references. */ + var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + objectTag = '[object Object]'; + + /** Used for built-in method references. */ + var objectProto$1 = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$1 = objectProto$1.hasOwnProperty; + + /** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray$3(object), + othIsArr = isArray$3(other), + objTag = objIsArr ? arrayTag : getTag$1(object), + othTag = othIsArr ? arrayTag : getTag$1(other); + + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; + + if (isSameTag && isBuffer$1(object)) { + if (!isBuffer$1(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack); + return (objIsArr || isTypedArray$1(object)) + ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) + : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty$1.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty$1.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; + + stack || (stack = new Stack); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new Stack); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); + } + + /** + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ + function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); + } + + /** + * Performs a deep comparison between two values to determine if they are + * equivalent. + * + * **Note:** This method supports comparing arrays, array buffers, booleans, + * date objects, error objects, maps, numbers, `Object` objects, regexes, + * sets, strings, symbols, and typed arrays. `Object` objects are compared + * by their own, not inherited, enumerable properties. Functions and DOM + * nodes are compared by strict equality, i.e. `===`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.isEqual(object, other); + * // => true + * + * object === other; + * // => false + */ + function isEqual(value, other) { + return baseIsEqual(value, other); + } + + /** Used for built-in method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** + * The base implementation of `_.has` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ + function baseHas(object, key) { + return object != null && hasOwnProperty.call(object, key); + } + + /** `Object#toString` result references. */ + var symbolTag = '[object Symbol]'; + + /** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ + function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && baseGetTag(value) == symbolTag); + } + + /** Used to match property names within property paths. */ + var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; + + /** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ + function isKey(value, object) { + if (isArray$3(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); + } + + /** Error message constants. */ + var FUNC_ERROR_TEXT = 'Expected a function'; + + /** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `clear`, `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */ + function memoize(func, resolver) { + if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; + + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize.Cache || MapCache); + return memoized; + } + + // Expose `MapCache`. + memoize.Cache = MapCache; + + /** Used as the maximum memoize cache size. */ + var MAX_MEMOIZE_SIZE = 500; + + /** + * A specialized version of `_.memoize` which clears the memoized function's + * cache when it exceeds `MAX_MEMOIZE_SIZE`. + * + * @private + * @param {Function} func The function to have its output memoized. + * @returns {Function} Returns the new memoized function. + */ + function memoizeCapped(func) { + var result = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + + var cache = result.cache; + return result; + } + + /** Used to match property names within property paths. */ + var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + + /** Used to match backslashes in property paths. */ + var reEscapeChar = /\\(\\)?/g; + + /** + * Converts `string` to a property path array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. + */ + var stringToPath = memoizeCapped(function(string) { + var result = []; + if (string.charCodeAt(0) === 46 /* . */) { + result.push(''); + } + string.replace(rePropName, function(match, number, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; + }); + + var stringToPath$1 = stringToPath; + + /** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ + function arrayMap(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; + } + + /** Used as references for various `Number` constants. */ + var INFINITY$1 = 1 / 0; + + /** Used to convert symbols to primitives and strings. */ + var symbolProto = Symbol$2 ? Symbol$2.prototype : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + + /** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ + function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isArray$3(value)) { + // Recursively convert values (susceptible to call stack limits). + return arrayMap(value, baseToString) + ''; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY$1) ? '-0' : result; + } + + /** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ + function toString$3(value) { + return value == null ? '' : baseToString(value); + } + + /** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. + * @returns {Array} Returns the cast property path array. + */ + function castPath(value, object) { + if (isArray$3(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath$1(toString$3(value)); + } + + /** Used as references for various `Number` constants. */ + var INFINITY = 1 / 0; + + /** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ + function toKey(value) { + if (typeof value == 'string' || isSymbol(value)) { + return value; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; + } + + /** + * Checks if `path` exists on `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @param {Function} hasFunc The function to check properties. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + */ + function hasPath(object, path, hasFunc) { + path = castPath(path, object); + + var index = -1, + length = path.length, + result = false; + + while (++index < length) { + var key = toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result || ++index != length) { + return result; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && + (isArray$3(object) || isArguments$1(object)); + } + + /** + * Checks if `path` is a direct property of `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = { 'a': { 'b': 2 } }; + * var other = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.has(object, 'a'); + * // => true + * + * _.has(object, 'a.b'); + * // => true + * + * _.has(object, ['a', 'b']); + * // => true + * + * _.has(other, 'a'); + * // => false + */ + function has(object, path) { + return object != null && hasPath(object, path, baseHas); + } + + /** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ + function baseGet(object, path) { + path = castPath(path, object); + + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return (index && index == length) ? object : undefined; + } + + /** + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is returned in its place. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' + */ + function get(object, path, defaultValue) { + var result = object == null ? undefined : baseGet(object, path); + return result === undefined ? defaultValue : result; + } + + /** + * The base implementation of `_.set`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @param {Function} [customizer] The function to customize path creation. + * @returns {Object} Returns `object`. + */ + function baseSet(object, path, value, customizer) { + if (!isObject$2(object)) { + return object; + } + path = castPath(path, object); + + var index = -1, + length = path.length, + lastIndex = length - 1, + nested = object; + + while (nested != null && ++index < length) { + var key = toKey(path[index]), + newValue = value; + + if (key === '__proto__' || key === 'constructor' || key === 'prototype') { + return object; + } + + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : undefined; + if (newValue === undefined) { + newValue = isObject$2(objValue) + ? objValue + : (isIndex(path[index + 1]) ? [] : {}); + } + } + assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; + } + + /** + * Sets the value at `path` of `object`. If a portion of `path` doesn't exist, + * it's created. Arrays are created for missing index properties while objects + * are created for all other missing properties. Use `_.setWith` to customize + * `path` creation. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @returns {Object} Returns `object`. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.set(object, 'a[0].b.c', 4); + * console.log(object.a[0].b.c); + * // => 4 + * + * _.set(object, ['x', '0', 'y', 'z'], 5); + * console.log(object.x[0].y.z); + * // => 5 + */ + function set(object, path, value) { + return object == null ? object : baseSet(object, path, value); + } + + /** `Object#toString` result references. */ + var stringTag = '[object String]'; + + /** + * Checks if `value` is classified as a `String` primitive or object. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a string, else `false`. + * @example + * + * _.isString('abc'); + * // => true + * + * _.isString(1); + * // => false + */ + function isString(value) { + return typeof value == 'string' || + (!isArray$3(value) && isObjectLike(value) && baseGetTag(value) == stringTag); + } + + var OptionsPreProcessors = { + range: function range(value) { + return Math.max(+value, 1); + }, + 'date.highlight': function dateHighlight(args) { + return castArray(args); + }, + 'subDomain.label': function subDomainLabel(value) { + return ( + // eslint-disable-next-line + isString(value) && value !== '' || isFunction(value) ? value : null + ); + } + }; + + var Options = /*#__PURE__*/function () { + function Options() { + var processors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : OptionsPreProcessors; + _classCallCheck(this, Options); + this.preProcessors = processors; + this.options = { + // selector string of the container to append the graph to + // Accept any string value accepted by document.querySelector or CSS3 + // or an Element object + itemSelector: OPTIONS_DEFAULT_ITEM_SELECTOR, + // Number of domain to display on the graph + range: OPTIONS_DEFAULT_RANGE, + domain: { + type: OPTIONS_DEFAULT_DOMAIN_TYPE, + // Space between each domain, in pixel + gutter: 4, + padding: [0, 0, 0, 0], + // Whether to enable dynamic domain size + // The width/height on a domain depends on the number of + // subDomains items count + dynamicDimension: true, + // Whether to show most recent date first + sort: 'asc', + label: { + // Formatting of the domain label + // @default: undefined, will use the formatting + // according to domain type + // Accept any string accepted by dayjs.format() + // or a function + // + // Refer to https://day.js.org/docs/en/display/format + // for list of accepted string tokens used by dayjs.format() + text: undefined, + // valid: top, right, bottom, left + position: 'bottom', + // Valid are the direct svg values: start, middle, end + textAlign: 'middle', + // By default, there is no margin/padding around the label + offset: { + x: 0, + y: 0 + }, + rotate: null, + // Used only on vertical orientation + width: 100, + // Used only on horizontal orientation + height: 25 + } + }, + subDomain: { + type: OPTIONS_DEFAULT_SUBDOMAIN_TYPE, + // Width of each subDomain cell, in pixel + width: OPTIONS_DEFAULT_SUBDOMAIN_WIDTH, + // Height of each subDomain cell, in pixel + height: OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT, + // Space between each subDomain cell, in pixel + gutter: OPTIONS_DEFAULT_SUBDOMAIN_GUTTER, + // Radius of each subDomain cell, in pixel + radius: OPTIONS_DEFAULT_SUBDOMAIN_RADIUS, + // Formatting of the text inside each subDomain cell + // @default: null, no text + // Accept any string accepted by dayjs.format() + // or a function + // + // Refer to https://day.js.org/docs/en/display/format + // for list of accepted string tokens used by dayjs.format() + label: null, + color: undefined, + sort: 'asc' + }, + date: { + // Start date of the graph + // @default now + start: new Date(), + min: undefined, + max: undefined, + // List of dates to highlight + // Valid values: + // - []: don't highlight anything + // - an array of Date objects: highlight the specified dates + highlight: [], + locale: OPTIONS_DEFAULT_LOCALE, + timezone: undefined + }, + // Calendar orientation + // false: display domains side by side + // true : display domains one under the other + verticalOrientation: false, + data: { + // Data source + // URL, where to fetch the original datas + source: '', + // Data type + // Default: json + type: 'json', + requestInit: {}, + // keyname of the time property + x: '', + // keyname of the value property + y: '', + // Grouping function of the values + groupY: 'sum', + defaultValue: null + }, + scale: undefined, + // Animation duration, in ms + animationDuration: OPTIONS_DEFAULT_ANIMATION_DURATION, + // Theme mode: dark/light + theme: OPTIONS_DEFAULT_THEME, + // Internally used options, do not edit not set + x: { + domainHorizontalLabelWidth: 0, + domainVerticalLabelHeight: 0 + } + }; + } + /** + * Set a new value for an option, only if unchanged + * @param {string} key Name of the option + * @param {any} value Value of the option + * @return {boolean} Whether the option have been changed + */ + _createClass(Options, [{ + key: "set", + value: function set$1(key, value) { + if (!has(this.options, key) || isEqual(get(this.options, key), value)) { + return false; + } + set(this.options, key, has(this.preProcessors, key) ? get(this.preProcessors, key)(value) : value); + return true; + } + }, { + key: "init", + value: function init(opts) { + var _this = this; + this.options = Object.assign({}, mergeWith$1(this.options, opts, function (_, srcValue) { + return Array.isArray(srcValue) ? srcValue : undefined; + })); + var options = this.options; + Object.keys(this.preProcessors).forEach(function (key) { + set(options, key, get(_this.preProcessors, key)(get(options, key))); + }); + if (typeof options.scale === 'undefined') { + this.initScale(); + } + options.x.domainVerticalLabelHeight = options.domain.label.height; + // When the label is affecting the height + if (options.domain.label.position === 'top' || options.domain.label.position === 'bottom') { + options.x.domainHorizontalLabelWidth = 0; + } else { + options.x.domainVerticalLabelHeight = 0; + options.x.domainHorizontalLabelWidth = options.domain.label.width; + } + if (options.domain.label.text === null || options.domain.label.text === '') { + options.x.domainVerticalLabelHeight = 0; + options.x.domainHorizontalLabelWidth = 0; + } + } + }, { + key: "initScale", + value: function initScale() { + this.options.scale = { + color: { + scheme: SCALE_BASE_COLOR_SCHEME, + type: SCALE_BASE_COLOR_TYPE, + domain: SCALE_BASE_COLOR_DOMAIN + } + }; + } + }]); + return Options; + }(); + + var anObject$2 = anObject$f; + + // `RegExp.prototype.flags` getter implementation + // https://tc39.es/ecma262/#sec-get-regexp.prototype.flags + var regexpFlags$1 = function () { + var that = anObject$2(this); + var result = ''; + if (that.hasIndices) result += 'd'; + if (that.global) result += 'g'; + if (that.ignoreCase) result += 'i'; + if (that.multiline) result += 'm'; + if (that.dotAll) result += 's'; + if (that.unicode) result += 'u'; + if (that.unicodeSets) result += 'v'; + if (that.sticky) result += 'y'; + return result; + }; + + var fails$4 = fails$u; + var global$3 = global$n; + + // babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError + var $RegExp$2 = global$3.RegExp; + + var UNSUPPORTED_Y$1 = fails$4(function () { + var re = $RegExp$2('a', 'y'); + re.lastIndex = 2; + return re.exec('abcd') != null; + }); + + // UC Browser bug + // https://github.com/zloirock/core-js/issues/1008 + var MISSED_STICKY = UNSUPPORTED_Y$1 || fails$4(function () { + return !$RegExp$2('a', 'y').sticky; + }); + + var BROKEN_CARET = UNSUPPORTED_Y$1 || fails$4(function () { + // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 + var re = $RegExp$2('^r', 'gy'); + re.lastIndex = 2; + return re.exec('str') != null; + }); + + var regexpStickyHelpers = { + BROKEN_CARET: BROKEN_CARET, + MISSED_STICKY: MISSED_STICKY, + UNSUPPORTED_Y: UNSUPPORTED_Y$1 + }; + + var fails$3 = fails$u; + var global$2 = global$n; + + // babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError + var $RegExp$1 = global$2.RegExp; + + var regexpUnsupportedDotAll = fails$3(function () { + var re = $RegExp$1('.', 's'); + return !(re.dotAll && re.exec('\n') && re.flags === 's'); + }); + + var fails$2 = fails$u; + var global$1 = global$n; + + // babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError + var $RegExp = global$1.RegExp; + + var regexpUnsupportedNcg = fails$2(function () { + var re = $RegExp('(?<a>b)', 'g'); + return re.exec('b').groups.a !== 'b' || + 'b'.replace(re, '$<a>c') !== 'bc'; + }); + + /* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */ + /* eslint-disable regexp/no-useless-quantifier -- testing */ + var call$2 = functionCall; + var uncurryThis$5 = functionUncurryThis; + var toString$2 = toString$a; + var regexpFlags = regexpFlags$1; + var stickyHelpers = regexpStickyHelpers; + var shared = sharedExports; + var create = objectCreate$1; + var getInternalState = internalState.get; + var UNSUPPORTED_DOT_ALL = regexpUnsupportedDotAll; + var UNSUPPORTED_NCG = regexpUnsupportedNcg; + + var nativeReplace = shared('native-string-replace', String.prototype.replace); + var nativeExec = RegExp.prototype.exec; + var patchedExec = nativeExec; + var charAt$2 = uncurryThis$5(''.charAt); + var indexOf = uncurryThis$5(''.indexOf); + var replace$1 = uncurryThis$5(''.replace); + var stringSlice$2 = uncurryThis$5(''.slice); + + var UPDATES_LAST_INDEX_WRONG = (function () { + var re1 = /a/; + var re2 = /b*/g; + call$2(nativeExec, re1, 'a'); + call$2(nativeExec, re2, 'a'); + return re1.lastIndex !== 0 || re2.lastIndex !== 0; + })(); + + var UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET; + + // nonparticipating capturing group, copied from es5-shim's String#split patch. + var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; + + var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG; + + if (PATCH) { + patchedExec = function exec(string) { + var re = this; + var state = getInternalState(re); + var str = toString$2(string); + var raw = state.raw; + var result, reCopy, lastIndex, match, i, object, group; + + if (raw) { + raw.lastIndex = re.lastIndex; + result = call$2(patchedExec, raw, str); + re.lastIndex = raw.lastIndex; + return result; + } + + var groups = state.groups; + var sticky = UNSUPPORTED_Y && re.sticky; + var flags = call$2(regexpFlags, re); + var source = re.source; + var charsAdded = 0; + var strCopy = str; + + if (sticky) { + flags = replace$1(flags, 'y', ''); + if (indexOf(flags, 'g') === -1) { + flags += 'g'; + } + + strCopy = stringSlice$2(str, re.lastIndex); + // Support anchored sticky behavior. + if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt$2(str, re.lastIndex - 1) !== '\n')) { + source = '(?: ' + source + ')'; + strCopy = ' ' + strCopy; + charsAdded++; + } + // ^(? + rx + ) is needed, in combination with some str slicing, to + // simulate the 'y' flag. + reCopy = new RegExp('^(?:' + source + ')', flags); + } + + if (NPCG_INCLUDED) { + reCopy = new RegExp('^' + source + '$(?!\\s)', flags); + } + if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; + + match = call$2(nativeExec, sticky ? reCopy : re, strCopy); + + if (sticky) { + if (match) { + match.input = stringSlice$2(match.input, charsAdded); + match[0] = stringSlice$2(match[0], charsAdded); + match.index = re.lastIndex; + re.lastIndex += match[0].length; + } else re.lastIndex = 0; + } else if (UPDATES_LAST_INDEX_WRONG && match) { + re.lastIndex = re.global ? match.index + match[0].length : lastIndex; + } + if (NPCG_INCLUDED && match && match.length > 1) { + // Fix browsers whose `exec` methods don't consistently return `undefined` + // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/ + call$2(nativeReplace, match[0], reCopy, function () { + for (i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) match[i] = undefined; + } + }); + } + + if (match && groups) { + match.groups = object = create(null); + for (i = 0; i < groups.length; i++) { + group = groups[i]; + object[group[0]] = match[group[1]]; + } + } + + return match; + }; + } + + var regexpExec$2 = patchedExec; + + var $$1 = _export; + var exec = regexpExec$2; + + // `RegExp.prototype.exec` method + // https://tc39.es/ecma262/#sec-regexp.prototype.exec + $$1({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { + exec: exec + }); + + // TODO: Remove from `core-js@4` since it's moved to entry points + + var uncurryThis$4 = functionUncurryThisClause; + var defineBuiltIn = defineBuiltIn$9; + var regexpExec$1 = regexpExec$2; + var fails$1 = fails$u; + var wellKnownSymbol$1 = wellKnownSymbol$m; + var createNonEnumerableProperty = createNonEnumerableProperty$6; + + var SPECIES = wellKnownSymbol$1('species'); + var RegExpPrototype = RegExp.prototype; + + var fixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) { + var SYMBOL = wellKnownSymbol$1(KEY); + + var DELEGATES_TO_SYMBOL = !fails$1(function () { + // String methods call symbol-named RegEp methods + var O = {}; + O[SYMBOL] = function () { return 7; }; + return ''[KEY](O) != 7; + }); + + var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails$1(function () { + // Symbol-named RegExp methods call .exec + var execCalled = false; + var re = /a/; + + if (KEY === 'split') { + // We can't use real regex here since it causes deoptimization + // and serious performance degradation in V8 + // https://github.com/zloirock/core-js/issues/306 + re = {}; + // RegExp[@@split] doesn't call the regex's exec method, but first creates + // a new one. We need to return the patched regex when creating the new one. + re.constructor = {}; + re.constructor[SPECIES] = function () { return re; }; + re.flags = ''; + re[SYMBOL] = /./[SYMBOL]; + } + + re.exec = function () { execCalled = true; return null; }; + + re[SYMBOL](''); + return !execCalled; + }); + + if ( + !DELEGATES_TO_SYMBOL || + !DELEGATES_TO_EXEC || + FORCED + ) { + var uncurriedNativeRegExpMethod = uncurryThis$4(/./[SYMBOL]); + var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { + var uncurriedNativeMethod = uncurryThis$4(nativeMethod); + var $exec = regexp.exec; + if ($exec === regexpExec$1 || $exec === RegExpPrototype.exec) { + if (DELEGATES_TO_SYMBOL && !forceStringMethod) { + // The native String method already delegates to @@method (this + // polyfilled function), leasing to infinite recursion. + // We avoid it by directly calling the native @@method method. + return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) }; + } + return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) }; + } + return { done: false }; + }); + + defineBuiltIn(String.prototype, KEY, methods[0]); + defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]); + } + + if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true); + }; + + var charAt$1 = stringMultibyte.charAt; + + // `AdvanceStringIndex` abstract operation + // https://tc39.es/ecma262/#sec-advancestringindex + var advanceStringIndex$1 = function (S, index, unicode) { + return index + (unicode ? charAt$1(S, index).length : 1); + }; + + var uncurryThis$3 = functionUncurryThis; + var toObject = toObject$b; + + var floor = Math.floor; + var charAt = uncurryThis$3(''.charAt); + var replace = uncurryThis$3(''.replace); + var stringSlice$1 = uncurryThis$3(''.slice); + // eslint-disable-next-line redos/no-vulnerable -- safe + var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g; + var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g; + + // `GetSubstitution` abstract operation + // https://tc39.es/ecma262/#sec-getsubstitution + var getSubstitution$1 = function (matched, str, position, captures, namedCaptures, replacement) { + var tailPos = position + matched.length; + var m = captures.length; + var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; + if (namedCaptures !== undefined) { + namedCaptures = toObject(namedCaptures); + symbols = SUBSTITUTION_SYMBOLS; + } + return replace(replacement, symbols, function (match, ch) { + var capture; + switch (charAt(ch, 0)) { + case '$': return '$'; + case '&': return matched; + case '`': return stringSlice$1(str, 0, position); + case "'": return stringSlice$1(str, tailPos); + case '<': + capture = namedCaptures[stringSlice$1(ch, 1, -1)]; + break; + default: // \d\d? + var n = +ch; + if (n === 0) return match; + if (n > m) { + var f = floor(n / 10); + if (f === 0) return match; + if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1); + return match; + } + capture = captures[n - 1]; + } + return capture === undefined ? '' : capture; + }); + }; + + var call$1 = functionCall; + var anObject$1 = anObject$f; + var isCallable$1 = isCallable$o; + var classof = classofRaw$2; + var regexpExec = regexpExec$2; + + var $TypeError = TypeError; + + // `RegExpExec` abstract operation + // https://tc39.es/ecma262/#sec-regexpexec + var regexpExecAbstract = function (R, S) { + var exec = R.exec; + if (isCallable$1(exec)) { + var result = call$1(exec, R, S); + if (result !== null) anObject$1(result); + return result; + } + if (classof(R) === 'RegExp') return call$1(regexpExec, R, S); + throw $TypeError('RegExp#exec called on incompatible receiver'); + }; + + var apply = functionApply; + var call = functionCall; + var uncurryThis$2 = functionUncurryThis; + var fixRegExpWellKnownSymbolLogic = fixRegexpWellKnownSymbolLogic; + var fails = fails$u; + var anObject = anObject$f; + var isCallable = isCallable$o; + var isNullOrUndefined = isNullOrUndefined$8; + var toIntegerOrInfinity = toIntegerOrInfinity$4; + var toLength = toLength$3; + var toString$1 = toString$a; + var requireObjectCoercible$1 = requireObjectCoercible$7; + var advanceStringIndex = advanceStringIndex$1; + var getMethod = getMethod$4; + var getSubstitution = getSubstitution$1; + var regExpExec$1 = regexpExecAbstract; + var wellKnownSymbol = wellKnownSymbol$m; + + var REPLACE = wellKnownSymbol('replace'); + var max = Math.max; + var min = Math.min; + var concat = uncurryThis$2([].concat); + var push = uncurryThis$2([].push); + var stringIndexOf$1 = uncurryThis$2(''.indexOf); + var stringSlice = uncurryThis$2(''.slice); + + var maybeToString = function (it) { + return it === undefined ? it : String(it); + }; + + // IE <= 11 replaces $0 with the whole match, as if it was $& + // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 + var REPLACE_KEEPS_$0 = (function () { + // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing + return 'a'.replace(/./, '$0') === '$0'; + })(); + + // Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string + var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { + if (/./[REPLACE]) { + return /./[REPLACE]('a', '$0') === ''; + } + return false; + })(); + + var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { + var re = /./; + re.exec = function () { + var result = []; + result.groups = { a: '7' }; + return result; + }; + // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive + return ''.replace(re, '$<a>') !== '7'; + }); + + // @@replace logic + fixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) { + var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; + + return [ + // `String.prototype.replace` method + // https://tc39.es/ecma262/#sec-string.prototype.replace + function replace(searchValue, replaceValue) { + var O = requireObjectCoercible$1(this); + var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE); + return replacer + ? call(replacer, searchValue, O, replaceValue) + : call(nativeReplace, toString$1(O), searchValue, replaceValue); + }, + // `RegExp.prototype[@@replace]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace + function (string, replaceValue) { + var rx = anObject(this); + var S = toString$1(string); + + if ( + typeof replaceValue == 'string' && + stringIndexOf$1(replaceValue, UNSAFE_SUBSTITUTE) === -1 && + stringIndexOf$1(replaceValue, '$<') === -1 + ) { + var res = maybeCallNative(nativeReplace, rx, S, replaceValue); + if (res.done) return res.value; + } + + var functionalReplace = isCallable(replaceValue); + if (!functionalReplace) replaceValue = toString$1(replaceValue); + + var global = rx.global; + if (global) { + var fullUnicode = rx.unicode; + rx.lastIndex = 0; + } + var results = []; + while (true) { + var result = regExpExec$1(rx, S); + if (result === null) break; + + push(results, result); + if (!global) break; + + var matchStr = toString$1(result[0]); + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + } + + var accumulatedResult = ''; + var nextSourcePosition = 0; + for (var i = 0; i < results.length; i++) { + result = results[i]; + + var matched = toString$1(result[0]); + var position = max(min(toIntegerOrInfinity(result.index), S.length), 0); + var captures = []; + // NOTE: This is equivalent to + // captures = result.slice(1).map(maybeToString) + // but for some reason `nativeSlice.call(result, 1, result.length)` (called in + // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and + // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. + for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j])); + var namedCaptures = result.groups; + if (functionalReplace) { + var replacerArgs = concat([matched], captures, position, S); + if (namedCaptures !== undefined) push(replacerArgs, namedCaptures); + var replacement = toString$1(apply(replaceValue, undefined, replacerArgs)); + } else { + replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); + } + if (position >= nextSourcePosition) { + accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement; + nextSourcePosition = position + matched.length; + } + } + return accumulatedResult + stringSlice(S, nextSourcePosition); + } + ]; + }, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE); + + var _DataFetcher_instances, _DataFetcher_fetch; + var DataFetcher = /*#__PURE__*/function () { + function DataFetcher(calendar) { + _classCallCheck(this, DataFetcher); + _DataFetcher_instances.add(this); + this.calendar = calendar; + } + /** + * Fetch and interpret data from the datasource + * + * @param {string|object} source + * @param {number} startTimestamp + * @param {number} endTimestamp + * + * @return {Promize} A promise, that will return the final data when resolved + */ + _createClass(DataFetcher, [{ + key: "getDatas", + value: function getDatas(source, startTimestamp, endTimestamp) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() { + var d; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + if (!(typeof source === 'string' && source.length > 0)) { + _context.next = 2; + break; + } + return _context.abrupt("return", __classPrivateFieldGet(this, _DataFetcher_instances, "m", _DataFetcher_fetch).call(this, source, startTimestamp, endTimestamp)); + case 2: + d = []; + if (Array.isArray(source)) { + d = source; + } + return _context.abrupt("return", new Promise(function (resolve) { + resolve(d); + })); + case 5: + case "end": + return _context.stop(); + } + }, _callee, this); + })); + } + }, { + key: "parseURI", + value: function parseURI(str, startTimestamp, endTimestamp) { + var _this = this; + var newUri = str.replace(/\{\{start=(.*)\}\}/g, function (_, format) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + _this.calendar.dateHelper.date(startTimestamp).format(format) + ); + }); + newUri = newUri.replace(/\{\{end=(.*)\}\}/g, function (_, format) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + _this.calendar.dateHelper.date(endTimestamp).format(format) + ); + }); + return newUri; + } + }]); + return DataFetcher; + }(); + _DataFetcher_instances = new WeakSet(), _DataFetcher_fetch = function _DataFetcher_fetch(source, startTimestamp, endTimestamp) { + var _this$calendar$option = this.calendar.options.options.data, + type = _this$calendar$option.type, + requestInit = _this$calendar$option.requestInit; + var url = this.parseURI(source, startTimestamp, endTimestamp); + switch (type) { + case 'json': + return d3Fetch.json(url, requestInit); + case 'csv': + return d3Fetch.csv(url, requestInit); + case 'tsv': + return d3Fetch.dsv('\t', url, requestInit); + case 'txt': + return d3Fetch.text(url, requestInit); + default: + return new Promise(function (resolve) { + resolve([]); + }); + } + }; + + var DESCRIPTORS = descriptors; + var FUNCTION_NAME_EXISTS = functionName.EXISTS; + var uncurryThis$1 = functionUncurryThis; + var defineBuiltInAccessor = defineBuiltInAccessor$3; + + var FunctionPrototype = Function.prototype; + var functionToString = uncurryThis$1(FunctionPrototype.toString); + var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/; + var regExpExec = uncurryThis$1(nameRE.exec); + var NAME = 'name'; + + // Function instances `.name` property + // https://tc39.es/ecma262/#sec-function-instances-name + if (DESCRIPTORS && !FUNCTION_NAME_EXISTS) { + defineBuiltInAccessor(FunctionPrototype, NAME, { + configurable: true, + get: function () { + try { + return regExpExec(nameRE, functionToString(this))[1]; + } catch (error) { + return ''; + } + } + }); + } + + var dayjs_min = {exports: {}}; + + (function (module, exports) { + !function(t,e){module.exports=e();}(commonjsGlobal,(function(){var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",f="month",h="quarter",c="year",d="date",l="Invalid Date",$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return "["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return !r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return (e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return -t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,f),s=n-i<0,u=e.clone().add(r+(s?-1:1),f);return +(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return {M:f,y:c,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:h}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},g="en",D={};D[g]=M;var p=function(t){return t instanceof _},S=function t(e,n,r){var i;if(!e)return g;if("string"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split("-");if(!i&&u.length>1)return t(u[0])}else {var a=e.name;D[a]=e,i=a;}return !r&&i&&(g=i),i||!r&&g},w=function(t,e){if(p(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=v;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t);}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init();},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds();},m.$utils=function(){return O},m.isValid=function(){return !(this.$d.toString()===l)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<w(t)},m.$g=function(t,e,n){return O.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!O.u(e)||e,h=O.p(t),l=function(t,e){var i=O.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return O.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v="set"+(this.$u?"UTC":"");switch(h){case c:return r?l(1,0):l(31,11);case f:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+"Hours",0);case u:return $(v+"Minutes",1);case s:return $(v+"Seconds",2);case i:return $(v+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=O.p(t),h="set"+(this.$u?"UTC":""),l=(n={},n[a]=h+"Date",n[d]=h+"Date",n[f]=h+"Month",n[c]=h+"FullYear",n[u]=h+"Hours",n[s]=h+"Minutes",n[i]=h+"Seconds",n[r]=h+"Milliseconds",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===f||o===c){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d;}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[O.p(t)]()},m.add=function(r,h){var d,l=this;r=Number(r);var $=O.p(h),y=function(t){var e=w(l);return O.w(e.date(e.date()+Math.round(t*r)),l)};if($===f)return this.set(f,this.$M+r);if($===c)return this.set(c,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return O.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=O.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,f=n.months,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},c=function(t){return O.s(s%12||12,t,"0")},d=n.meridiem||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r},$={YY:String(this.$y).slice(-2),YYYY:this.$y,M:a+1,MM:O.s(a+1,2,"0"),MMM:h(n.monthsShort,a,f,3),MMMM:h(f,a),D:this.$D,DD:O.s(this.$D,2,"0"),d:String(this.$W),dd:h(n.weekdaysMin,this.$W,o,2),ddd:h(n.weekdaysShort,this.$W,o,3),dddd:o[this.$W],H:String(s),HH:O.s(s,2,"0"),h:c(1),hh:c(2),a:d(s,u,!0),A:d(s,u,!1),m:String(u),mm:O.s(u,2,"0"),s:String(this.$s),ss:O.s(this.$s,2,"0"),SSS:O.s(this.$ms,3,"0"),Z:i};return r.replace(y,(function(t,e){return e||$[t]||i.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=O.p(d),M=w(r),m=(M.utcOffset()-this.utcOffset())*e,v=this-M,g=O.m(this,M);return g=($={},$[c]=g/12,$[f]=g,$[h]=g/3,$[o]=(v-m)/6048e5,$[a]=(v-m)/864e5,$[u]=v/n,$[s]=v/e,$[i]=v/t,$)[y]||v,l?g:O.a(g)},m.daysInMonth=function(){return this.endOf(f).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=S(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return O.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),T=_.prototype;return w.prototype=T,[["$ms",r],["$s",i],["$m",s],["$H",u],["$W",a],["$M",f],["$y",c],["$D",d]].forEach((function(t){T[t[1]]=function(e){return this.$g(e,t[0],t[1])};})),w.extend=function(t,e){return t.$i||(t(e,_,w),t.$i=!0),w},w.locale=S,w.isDayjs=p,w.unix=function(t){return w(1e3*t)},w.en=D[g],w.Ls=D,w.p={},w})); + } (dayjs_min)); + + var dayjs_minExports = dayjs_min.exports; + var dayjs = /*@__PURE__*/getDefaultExportFromCjs(dayjs_minExports); + + var weekOfYear$1 = {exports: {}}; + + (function (module, exports) { + !function(e,t){module.exports=t();}(commonjsGlobal,(function(){var e="week",t="year";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),"day");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,"millisecond"),o=this.diff(a,e,!0);return o<0?r(this).startOf("week").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)};}})); + } (weekOfYear$1)); + + var weekOfYearExports = weekOfYear$1.exports; + var weekOfYear = /*@__PURE__*/getDefaultExportFromCjs(weekOfYearExports); + + var dayOfYear$1 = {exports: {}}; + + (function (module, exports) { + !function(e,t){module.exports=t();}(commonjsGlobal,(function(){return function(e,t,n){t.prototype.dayOfYear=function(e){var t=Math.round((n(this).startOf("day")-n(this).startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"day")};}})); + } (dayOfYear$1)); + + var dayOfYearExports = dayOfYear$1.exports; + var dayOfYear = /*@__PURE__*/getDefaultExportFromCjs(dayOfYearExports); + + var weekday$1 = {exports: {}}; + + (function (module, exports) { + !function(e,t){module.exports=t();}(commonjsGlobal,(function(){return function(e,t){t.prototype.weekday=function(e){var t=this.$locale().weekStart||0,i=this.$W,n=(i<t?i+7:i)-t;return this.$utils().u(e)?n:this.subtract(n,"day").add(e,"day")};}})); + } (weekday$1)); + + var weekdayExports = weekday$1.exports; + var weekday = /*@__PURE__*/getDefaultExportFromCjs(weekdayExports); + + var minMax$1 = {exports: {}}; + + (function (module, exports) { + !function(e,n){module.exports=n();}(commonjsGlobal,(function(){return function(e,n,t){var i=function(e,n){if(!n||!n.length||!n[0]||1===n.length&&!n[0].length)return null;var t;1===n.length&&n[0].length>0&&(n=n[0]);t=n[0];for(var i=1;i<n.length;i+=1)n[i].isValid()&&!n[i][e](t)||(t=n[i]);return t};t.max=function(){var e=[].slice.call(arguments,0);return i("isAfter",e)},t.min=function(){var e=[].slice.call(arguments,0);return i("isBefore",e)};}})); + } (minMax$1)); + + var minMaxExports = minMax$1.exports; + var minMax = /*@__PURE__*/getDefaultExportFromCjs(minMaxExports); + + var isoWeeksInYear$1 = {exports: {}}; + + (function (module, exports) { + !function(e,n){module.exports=n();}(commonjsGlobal,(function(){return function(e,n){n.prototype.isoWeeksInYear=function(){var e=this.isLeapYear(),n=this.endOf("y").day();return 4===n||e&&5===n?53:52};}})); + } (isoWeeksInYear$1)); + + var isoWeeksInYearExports = isoWeeksInYear$1.exports; + var isoWeeksInYear = /*@__PURE__*/getDefaultExportFromCjs(isoWeeksInYearExports); + + var isoWeek$1 = {exports: {}}; + + (function (module, exports) { + !function(e,t){module.exports=t();}(commonjsGlobal,(function(){var e="day";return function(t,i,s){var a=function(t){return t.add(4-t.isoWeekday(),e)},d=i.prototype;d.isoWeekYear=function(){return a(this).year()},d.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var i,d,n,o,r=a(this),u=(i=this.isoWeekYear(),d=this.$u,n=(d?s.utc:s)().year(i).startOf("year"),o=4-n.isoWeekday(),n.isoWeekday()>4&&(o+=7),n.add(o,e));return r.diff(u,"week")+1},d.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var n=d.startOf;d.startOf=function(e,t){var i=this.$utils(),s=!!i.u(t)||t;return "isoweek"===i.p(e)?s?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):n.bind(this)(e,t)};}})); + } (isoWeek$1)); + + var isoWeekExports = isoWeek$1.exports; + var isoWeek = /*@__PURE__*/getDefaultExportFromCjs(isoWeekExports); + + var isLeapYear$1 = {exports: {}}; + + (function (module, exports) { + !function(e,t){module.exports=t();}(commonjsGlobal,(function(){return function(e,t){t.prototype.isLeapYear=function(){return this.$y%4==0&&this.$y%100!=0||this.$y%400==0};}})); + } (isLeapYear$1)); + + var isLeapYearExports = isLeapYear$1.exports; + var isLeapYear = /*@__PURE__*/getDefaultExportFromCjs(isLeapYearExports); + + var advancedFormat$1 = {exports: {}}; + + (function (module, exports) { + !function(e,t){module.exports=t();}(commonjsGlobal,(function(){return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case"Q":return Math.ceil((t.$M+1)/3);case"Do":return r.ordinal(t.$D);case"gggg":return t.weekYear();case"GGGG":return t.isoWeekYear();case"wo":return r.ordinal(t.week(),"W");case"w":case"ww":return s.s(t.week(),"w"===e?1:2,"0");case"W":case"WW":return s.s(t.isoWeek(),"W"===e?1:2,"0");case"k":case"kk":return s.s(String(0===t.$H?24:t.$H),"k"===e?1:2,"0");case"X":return Math.floor(t.$d.getTime()/1e3);case"x":return t.$d.getTime();case"z":return "["+t.offsetName()+"]";case"zzz":return "["+t.offsetName("long")+"]";default:return e}}));return n.bind(this)(a)};}})); + } (advancedFormat$1)); + + var advancedFormatExports = advancedFormat$1.exports; + var advancedFormat = /*@__PURE__*/getDefaultExportFromCjs(advancedFormatExports); + + var utc$1 = {exports: {}}; + + (function (module, exports) { + !function(t,i){module.exports=i();}(commonjsGlobal,(function(){var t="minute",i=/[+-]\d\d(?::?\d\d)?/g,e=/([+-]|\d\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t);};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds();}else r.call(this);};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if("string"==typeof s&&(s=function(t){void 0===t&&(t="");var s=t.match(i);if(!s)return null;var f=(""+s[0]).match(e)||["-",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:"+"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r;}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return !!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return "s"===t&&this.$offset?n(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)};}})); + } (utc$1)); + + var utcExports = utc$1.exports; + var utc = /*@__PURE__*/getDefaultExportFromCjs(utcExports); + + var timezone$1 = {exports: {}}; + + (function (module, exports) { + !function(t,e){module.exports=e();}(commonjsGlobal,(function(){var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||"short",o=t+"|"+i,r=e[o];return r||(r=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(r[c]=parseInt(m,10));}var d=r[3],l=24===d?0:d,v=r[0]+"-"+r[1]+"-"+r[2]+" "+l+":"+r[4]+":"+r[5]+":000",h=+e;return (o.utc(v).valueOf()-(h-=h%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n=this.utcOffset(),i=this.toDate(),a=i.toLocaleString("en-US",{timeZone:t}),u=Math.round((i-new Date(a))/1e3/60),f=o(a).$set("millisecond",this.$ms).utcOffset(15*-Math.round(i.getTimezoneOffset()/15)-u,!0);if(e){var s=f.utcOffset();f=f.add(n-s,"minute");}return f.$x.$timezone=t,f},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return "timezonename"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format("YYYY-MM-DD HH:mm:ss:SSS"));return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if("string"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return [i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t;};}})); + } (timezone$1)); + + var timezoneExports = timezone$1.exports; + var timezone = /*@__PURE__*/getDefaultExportFromCjs(timezoneExports); + + var localeData$1 = {exports: {}}; + + (function (module, exports) { + !function(n,e){module.exports=e();}(commonjsGlobal,(function(){return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return {months:function(e){return e?e.format("MMMM"):u(n,"months")},monthsShort:function(e){return e?e.format("MMM"):u(n,"monthsShort","months",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format("dddd"):u(n,"weekdays")},weekdaysMin:function(e){return e?e.format("dd"):u(n,"weekdaysMin","weekdays",2)},weekdaysShort:function(e){return e?e.format("ddd"):u(n,"weekdaysShort","weekdays",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return {firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),"months")},t.monthsShort=function(){return u(i(),"monthsShort","months",3)},t.weekdays=function(n){return u(i(),"weekdays",null,null,n)},t.weekdaysShort=function(n){return u(i(),"weekdaysShort","weekdays",3,n)},t.weekdaysMin=function(n){return u(i(),"weekdaysMin","weekdays",2,n)};}})); + } (localeData$1)); + + var localeDataExports = localeData$1.exports; + var localeData = /*@__PURE__*/getDefaultExportFromCjs(localeDataExports); + + var localizedFormat$1 = {exports: {}}; + + (function (module, exports) { + !function(e,t){module.exports=t();}(commonjsGlobal,(function(){var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};return function(t,o,n){var r=o.prototype,i=r.format;n.en.formats=e,r.format=function(t){void 0===t&&(t="YYYY-MM-DDTHH:mm:ssZ");var o=this.$locale().formats,n=function(t,o){return t.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var i=r&&r.toUpperCase();return n||o[r]||e[r]||o[i].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,o){return t||o.slice(1)}))}))}(t,void 0===o?{}:o);return i.call(this,n)};}})); + } (localizedFormat$1)); + + var localizedFormatExports = localizedFormat$1.exports; + var localizedFormat = /*@__PURE__*/getDefaultExportFromCjs(localizedFormatExports); + + var updateLocale$1 = {exports: {}}; + + (function (module, exports) { + !function(e,n){module.exports=n();}(commonjsGlobal,(function(){return function(e,n,t){t.updateLocale=function(e,n){var o=t.Ls[e];if(o)return (n?Object.keys(n):[]).forEach((function(e){o[e]=n[e];})),o};}})); + } (updateLocale$1)); + + var updateLocaleExports = updateLocale$1.exports; + var updateLocale = /*@__PURE__*/getDefaultExportFromCjs(updateLocaleExports); + + dayjs.extend(weekOfYear); + dayjs.extend(isoWeeksInYear); + dayjs.extend(isoWeek); + dayjs.extend(isLeapYear); + dayjs.extend(dayOfYear); + dayjs.extend(weekday); + dayjs.extend(minMax); + dayjs.extend(advancedFormat); + dayjs.extend(utc); + dayjs.extend(timezone); + dayjs.extend(localeData); + dayjs.extend(localizedFormat); + dayjs.extend(updateLocale); + var DEFAULT_LOCALE = 'en'; + var DateHelper = /*#__PURE__*/function () { + function DateHelper() { + _classCallCheck(this, DateHelper); + var _a; + this.locale = DEFAULT_LOCALE; + this.timezone = dayjs.tz.guess(); + if ((typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object') { + (_a = window).dayjs || (_a.dayjs = dayjs); + } + } + _createClass(DateHelper, [{ + key: "setup", + value: function setup(_ref) { + var options = _ref.options; + return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() { + var userLocale, locale; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + this.timezone = options.date.timezone || dayjs.tz.guess(); + userLocale = options.date.locale; + if (!(typeof userLocale === 'string' && userLocale !== DEFAULT_LOCALE)) { + _context.next = 17; + break; + } + if (!((typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object')) { + _context.next = 12; + break; + } + _context.t0 = window["dayjs_locale_".concat(userLocale)]; + if (_context.t0) { + _context.next = 9; + break; + } + _context.next = 8; + return this.loadBrowserLocale(userLocale); + case 8: + _context.t0 = _context.sent; + case 9: + locale = _context.t0; + _context.next = 15; + break; + case 12: + _context.next = 14; + return this.loadNodeLocale(userLocale); + case 14: + locale = _context.sent; + case 15: + dayjs.locale(userLocale); + this.locale = locale; + case 17: + if (_typeof(userLocale) === 'object') { + if (userLocale.hasOwnProperty('name')) { + dayjs.locale(userLocale.name, userLocale); + this.locale = userLocale; + } else { + this.locale = dayjs.updateLocale(DEFAULT_LOCALE, userLocale); + } + } + case 18: + case "end": + return _context.stop(); + } + }, _callee, this); + })); + } + // eslint-disable-next-line class-methods-use-this + }, { + key: "extend", + value: function extend(dayjsPlugin) { + return dayjs.extend(dayjsPlugin); + } + /** + * Return the week number, relative to its month + * + * @param {number|Date} d Date or timestamp in milliseconds + * @returns {number} The week number, relative to the month [0-5] + */ + }, { + key: "getMonthWeekNumber", + value: function getMonthWeekNumber(d) { + var dayjsDate = this.date(d); + var date = dayjsDate.startOf('day'); + var endOfWeek = dayjsDate.startOf('month').endOf('week'); + if (date <= endOfWeek) { + return 1; + } + return Math.ceil(date.diff(endOfWeek, 'weeks', true)) + 1; + } + /** + * Return the number of weeks in the given month + * + * As there is no fixed standard to specify which month a partial week should + * belongs to, the ISO week date standard is used, where: + * - the first week of the month should have at least 4 days + * + * @see https://en.wikipedia.org/wiki/ISO_week_date + * + * @param {Timestamp | dayjs.Dayjs} d Datejs object or timestamp + * @return {number} The number of weeks + */ + }, { + key: "getWeeksCountInMonth", + value: function getWeeksCountInMonth(d) { + var pivotDate = this.date(d); + return this.getLastWeekOfMonth(pivotDate).diff(this.getFirstWeekOfMonth(pivotDate), 'week') + 1; + } + /** + * Return the start of the first week of the month + * + * @see getWeeksCountInMonth() about standard warning + * @return {dayjs.Dayjs} A dayjs object representing the start of the + * first week + */ + }, { + key: "getFirstWeekOfMonth", + value: function getFirstWeekOfMonth(d) { + var startOfMonth = this.date(d).startOf('month'); + var startOfFirstWeek = startOfMonth.startOf('week'); + if (startOfMonth.weekday() > 4) { + startOfFirstWeek = startOfFirstWeek.add(1, 'week'); + } + return startOfFirstWeek; + } + /** + * Return the end of the last week of the month + * + * @see getWeeksCountInMonth() about standard warning + * @return {dayjs.Dayjs} A dayjs object representing the end of the last week + */ + }, { + key: "getLastWeekOfMonth", + value: function getLastWeekOfMonth(d) { + var endOfMonth = this.date(d).endOf('month'); + var endOfLastWeek = endOfMonth.endOf('week'); + if (endOfMonth.weekday() < 4) { + endOfLastWeek = endOfLastWeek.subtract(1, 'week'); + } + return endOfLastWeek; + } + }, { + key: "date", + value: function date() { + var d = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date(); + if (dayjs.isDayjs(d)) { + return d; + } + return dayjs(d).tz(this.timezone).utcOffset(0).locale(this.locale); + } + }, { + key: "format", + value: function format(timestamp, formatter) { + if (typeof formatter === 'function') { + for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { + args[_key - 2] = arguments[_key]; + } + return formatter.apply(void 0, [timestamp].concat(args)); + } + if (typeof formatter === 'string') { + return this.date(timestamp).format(formatter); + } + return null; + } + /** + * Return an array of time interval + * + * @param {number|Date} date A random date included in the wanted interval + * @param {number|Date} range Length of the wanted interval, or a stop date. + * @param {boolean} range Whether the end date should be excluded + * from the result + * @returns {Array<number>} Array of unix timestamp, in milliseconds + */ + }, { + key: "intervals", + value: function intervals(interval, date, range) { + var excludeEnd = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; + var start = this.date(date); + var end; + if (typeof range === 'number') { + end = start.add(range, interval); + } else if (dayjs.isDayjs(range)) { + end = range; + } else { + end = this.date(range); + } + start = start.startOf(interval); + end = end.startOf(interval); + var pivot = dayjs.min(start, end); + end = dayjs.max(start, end); + var result = []; + if (!excludeEnd) { + end = end.add(1, 'second'); + } + do { + result.push(+pivot); + pivot = pivot.add(1, interval); + } while (pivot < end); + return result; + } + // this function will work cross-browser for loading scripts asynchronously + // eslint-disable-next-line class-methods-use-this + }, { + key: "loadBrowserLocale", + value: function loadBrowserLocale(userLocale) { + return new Promise(function (resolve, reject) { + var s = document.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = "https://cdn.jsdelivr.net/npm/dayjs@1/locale/".concat(userLocale, ".js"); + s.onerror = function (err) { + reject(err); + }; + s.onload = function () { + resolve(window["dayjs_locale_".concat(userLocale)]); + }; + document.head.appendChild(s); + }); + } + // eslint-disable-next-line class-methods-use-this + }, { + key: "loadNodeLocale", + value: function loadNodeLocale(userLocale) { + return import("dayjs/locale/".concat(userLocale, ".js")); + } + }]); + return DateHelper; + }(); + + var $ = _export; + var uncurryThis = functionUncurryThis; + var notARegExp = notARegexp; + var requireObjectCoercible = requireObjectCoercible$7; + var toString = toString$a; + var correctIsRegExpLogic = correctIsRegexpLogic; + + var stringIndexOf = uncurryThis(''.indexOf); + + // `String.prototype.includes` method + // https://tc39.es/ecma262/#sec-string.prototype.includes + $({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, { + includes: function includes(searchString /* , position = 0 */) { + return !!~stringIndexOf( + toString(requireObjectCoercible(this)), + toString(notARegExp(searchString)), + arguments.length > 1 ? arguments[1] : undefined + ); + } + }); + + var ALLOWED_DATA_TYPES = ['json', 'csv', 'tsv', 'txt']; + /** + * Ensure that critical options are valid + * + * @throw {Error} on critical invalid options + * @return {boolean} Returns true when there is not critical errors + */ + function validate(templateCollection, _ref) { + var domain = _ref.domain, + subDomain = _ref.subDomain, + data = _ref.data; + var domainType = domain.type; + var subDomainType = subDomain.type; + if (!templateCollection.has(domainType)) { + throw new Error("'".concat(domainType, "' is not a valid domain type'")); + } + if (!templateCollection.has(subDomainType)) { + throw new Error("'".concat(subDomainType, "' is not a valid subDomain type'")); + } + if (data.type && !ALLOWED_DATA_TYPES.includes(data.type)) { + throw new Error("The data type '".concat(data.type, "' is not valid data type")); + } + if (!(templateCollection.get(subDomainType).allowedDomainType || []).includes(domainType)) { + throw new Error("The subDomain.type '".concat(subDomainType, "' can not be used together ") + "with the domain type ".concat(domainType)); + } + return true; + } + + var collection = collection$3; + var collectionStrong = collectionStrong$2; + + // `Set` constructor + // https://tc39.es/ecma262/#sec-set-objects + collection('Set', function (init) { + return function Set() { return init(this, arguments.length ? arguments[0] : undefined); }; + }, collectionStrong); + + function createPlugin(Creator, calendar) { + return new Creator(calendar); + } + function extractPluginName(PluginClass, options) { + return "".concat(new PluginClass().name).concat((options === null || options === void 0 ? void 0 : options.key) || ''); + } + var PluginManager = /*#__PURE__*/function () { + function PluginManager(calendar) { + _classCallCheck(this, PluginManager); + this.calendar = calendar; + this.settings = new Map(); + this.plugins = new Map(); + this.pendingPaint = new Set(); + } + _createClass(PluginManager, [{ + key: "add", + value: function add(plugins) { + var _this = this; + plugins.forEach(function (_ref) { + var _ref2 = _slicedToArray(_ref, 2), + PluginClass = _ref2[0], + pluginOptions = _ref2[1]; + var name = extractPluginName(PluginClass, pluginOptions); + var existingPlugin = _this.plugins.get(name); + if (existingPlugin && _this.settings.get(name) && isEqual(_this.settings.get(name).options, pluginOptions)) { + return; + } + _this.settings.set(name, { + options: pluginOptions, + dirty: true + }); + if (!_this.plugins.has(name)) { + _this.plugins.set(name, createPlugin(PluginClass, _this.calendar)); + } + _this.pendingPaint.add(_this.plugins.get(name)); + }); + } + }, { + key: "setupAll", + value: function setupAll() { + var _this2 = this; + this.plugins.forEach(function (pluginInstance, name) { + var settings = _this2.settings.get(name); + if (typeof settings !== 'undefined') { + if (settings.dirty) { + pluginInstance.setup(settings.options); + settings.dirty = false; + _this2.settings.set(name, settings); + } + } + }); + } + }, { + key: "paintAll", + value: function paintAll() { + return Array.from(this.pendingPaint.values()).map(function (p) { + return p.paint(); + }); + } + }, { + key: "destroyAll", + value: function destroyAll() { + return this.allPlugins().map(function (p) { + return p.destroy(); + }); + } + }, { + key: "getFromPosition", + value: function getFromPosition(position) { + return this.allPlugins().filter(function (plugin) { + var _a; + // eslint-disable-next-line implicit-arrow-linebreak + return ((_a = plugin.options) === null || _a === void 0 ? void 0 : _a.position) === position; + }); + } + }, { + key: "getHeightFromPosition", + value: function getHeightFromPosition(position) { + return this.getFromPosition(position).map(function (d) { + return d.options.dimensions.height; + }).reduce(function (a, b) { + return a + b; + }, 0); + } + }, { + key: "getWidthFromPosition", + value: function getWidthFromPosition(position) { + return this.getFromPosition(position).map(function (d) { + return d.options.dimensions.width; + }).reduce(function (a, b) { + return a + b; + }, 0); + } + }, { + key: "allPlugins", + value: function allPlugins() { + return Array.from(this.plugins.values()); + } + }]); + return PluginManager; + }(); + + var VERSION = '4.2.3'; + + var minuteTemplate = function minuteTemplate(DateHelper) { + var COLUMNS_COUNT = 10; + var ROWS_COUNT = 6; + var ALLOWED_DOMAIN_TYPE = ['day', 'hour']; + return { + name: 'minute', + allowedDomainType: ALLOWED_DOMAIN_TYPE, + rowsCount: function rowsCount() { + return COLUMNS_COUNT; + }, + columnsCount: function columnsCount() { + return ROWS_COUNT; + }, + mapping: function mapping(startTimestamp, endTimestamp) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + DateHelper.intervals('minute', startTimestamp, DateHelper.date(endTimestamp)).map(function (ts, index) { + return { + t: ts, + x: Math.floor(index / COLUMNS_COUNT), + y: index % COLUMNS_COUNT + }; + }) + ); + }, + extractUnit: function extractUnit(ts) { + return DateHelper.date(ts).startOf('minute').valueOf(); + } + }; + }; + + var hourTemplate = function hourTemplate(DateHelper, _ref) { + var domain = _ref.domain; + var TOTAL_ITEMS = 24; + var ROWS_COUNT = 6; + var ALLOWED_DOMAIN_TYPE = ['month', 'week', 'day']; + return { + name: 'hour', + allowedDomainType: ALLOWED_DOMAIN_TYPE, + rowsCount: function rowsCount() { + return ROWS_COUNT; + }, + columnsCount: function columnsCount(ts) { + switch (domain.type) { + case 'week': + return TOTAL_ITEMS / ROWS_COUNT * 7; + case 'month': + return TOTAL_ITEMS / ROWS_COUNT * (domain.dynamicDimension ? DateHelper.date(ts).daysInMonth() : 31); + case 'day': + default: + return TOTAL_ITEMS / ROWS_COUNT; + } + }, + mapping: function mapping(startTimestamp, endTimestamp) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + DateHelper.intervals('hour', startTimestamp, DateHelper.date(endTimestamp)).map(function (ts) { + var date = DateHelper.date(ts); + var hour = date.hour(); + var monthDate = date.date(); + var baseX = Math.floor(hour / ROWS_COUNT); + var columnOffset = TOTAL_ITEMS / ROWS_COUNT; + if (domain.type === 'month') { + baseX += (monthDate - 1) * columnOffset; + } + if (domain.type === 'week') { + baseX += +date.format('d') * columnOffset; + } + return { + t: ts, + x: baseX, + y: Math.floor(hour % ROWS_COUNT) + }; + }) + ); + }, + extractUnit: function extractUnit(ts) { + return DateHelper.date(ts).startOf('hour').valueOf(); + } + }; + }; + + var dayTemplate$2 = function dayTemplate(DateHelper, _ref) { + var domain = _ref.domain, + verticalOrientation = _ref.verticalOrientation; + var ROWS_COUNT = 7; + var ALLOWED_DOMAIN_TYPE = ['year', 'month', 'week']; + return { + name: 'day', + allowedDomainType: ALLOWED_DOMAIN_TYPE, + rowsCount: function rowsCount() { + return domain.type === 'week' ? 1 : ROWS_COUNT; + }, + columnsCount: function columnsCount(ts) { + switch (domain.type) { + case 'month': + return Math.ceil(domain.dynamicDimension && !verticalOrientation ? DateHelper.getMonthWeekNumber(DateHelper.date(ts).endOf('month')) : 6); + case 'year': + return Math.ceil(domain.dynamicDimension ? DateHelper.date(ts).endOf('year').dayOfYear() / ROWS_COUNT : 54); + case 'week': + default: + return ROWS_COUNT; + } + }, + mapping: function mapping(startTimestamp, endTimestamp) { + var weekNumber = 0; + var x = -1; + return DateHelper.intervals('day', startTimestamp, DateHelper.date(endTimestamp)).map(function (ts) { + var date = DateHelper.date(ts); + switch (domain.type) { + case 'month': + x = DateHelper.getMonthWeekNumber(ts) - 1; + break; + case 'year': + if (weekNumber !== date.week()) { + weekNumber = date.week(); + x += 1; + } + break; + case 'week': + x = date.weekday(); + break; + } + return { + t: ts, + x: x, + y: domain.type === 'week' ? 0 : date.weekday() + }; + }); + }, + extractUnit: function extractUnit(ts) { + return DateHelper.date(ts).startOf('day').valueOf(); + } + }; + }; + + var dayTemplate$1 = function dayTemplate(DateHelper, _ref) { + var domain = _ref.domain, + verticalOrientation = _ref.verticalOrientation; + var COLUMNS_COUNT = 7; + var ALLOWED_DOMAIN_TYPE = ['year', 'month', 'week']; + return { + name: 'xDay', + allowedDomainType: ALLOWED_DOMAIN_TYPE, + rowsCount: function rowsCount(ts) { + switch (domain.type) { + case 'month': + return Math.ceil(domain.dynamicDimension && !verticalOrientation ? DateHelper.getMonthWeekNumber(DateHelper.date(ts).endOf('month')) : 6); + case 'year': + return Math.ceil(domain.dynamicDimension ? DateHelper.date(ts).endOf('year').dayOfYear() / COLUMNS_COUNT : 54); + case 'week': + default: + return COLUMNS_COUNT; + } + }, + columnsCount: function columnsCount() { + if (domain.type === 'week') { + return 1; + } + return COLUMNS_COUNT; + }, + mapping: function mapping(startTimestamp, endTimestamp) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + DateHelper.intervals('day', startTimestamp, DateHelper.date(endTimestamp)).map(function (ts) { + var date = DateHelper.date(ts); + var endWeekNumber = date.endOf('year').week(); + var x = 0; + switch (domain.type) { + case 'month': + x = DateHelper.getMonthWeekNumber(ts) - 1; + break; + case 'year': + if (endWeekNumber === 1 && date.week() === endWeekNumber) { + x = date.subtract(1, 'week').week() + 1; + } + x = date.week() - 1; + break; + case 'week': + x = date.weekday(); + break; + } + return { + t: ts, + y: x, + x: domain.type === 'week' ? 0 : date.weekday() + }; + }) + ); + }, + extractUnit: function extractUnit(ts) { + return DateHelper.date(ts).startOf('day').valueOf(); + } + }; + }; + + var dayTemplate = function dayTemplate(DateHelper) { + var ROWS_COUNT = 7; + var ALLOWED_DOMAIN_TYPE = ['month']; + return { + name: 'ghDay', + allowedDomainType: ALLOWED_DOMAIN_TYPE, + rowsCount: function rowsCount() { + return ROWS_COUNT; + }, + columnsCount: function columnsCount(ts) { + return DateHelper.getWeeksCountInMonth(ts); + }, + mapping: function mapping(startTimestamp, endTimestamp) { + var clampStart = DateHelper.getFirstWeekOfMonth(startTimestamp); + var clampEnd = DateHelper.getFirstWeekOfMonth(endTimestamp); + var x = -1; + var pivotDay = clampStart.weekday(); + return DateHelper.intervals('day', clampStart, clampEnd).map(function (ts) { + var weekday = DateHelper.date(ts).weekday(); + if (weekday === pivotDay) { + x += 1; + } + return { + t: ts, + x: x, + y: weekday + }; + }); + }, + extractUnit: function extractUnit(ts) { + return DateHelper.date(ts).startOf('day').valueOf(); + } + }; + }; + + var weekTemplate = function weekTemplate(DateHelper, _ref) { + var domain = _ref.domain; + var ALLOWED_DOMAIN_TYPE = ['year', 'month']; + return { + name: 'week', + allowedDomainType: ALLOWED_DOMAIN_TYPE, + rowsCount: function rowsCount() { + return 1; + }, + columnsCount: function columnsCount(ts) { + switch (domain.type) { + case 'year': + return domain.dynamicDimension ? DateHelper.date(ts).endOf('year').isoWeeksInYear() : 53; + case 'month': + return domain.dynamicDimension ? DateHelper.getWeeksCountInMonth(ts) : 5; + default: + return 1; + } + }, + mapping: function mapping(startTimestamp, endTimestamp) { + var clampStart = DateHelper.getFirstWeekOfMonth(startTimestamp); + var clampEnd = DateHelper.getFirstWeekOfMonth(endTimestamp); + return DateHelper.intervals('week', clampStart, clampEnd).map(function (ts, i) { + return { + t: ts, + x: i, + y: 0 + }; + }); + }, + extractUnit: function extractUnit(ts) { + return DateHelper.date(ts).startOf('week').valueOf(); + } + }; + }; + + var monthTemplate = function monthTemplate(DateHelper) { + var ALLOWED_DOMAIN_TYPE = ['year']; + return { + name: 'month', + allowedDomainType: ALLOWED_DOMAIN_TYPE, + rowsCount: function rowsCount() { + return 1; + }, + columnsCount: function columnsCount() { + return 12; + }, + mapping: function mapping(startTimestamp, endTimestamp) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + DateHelper.intervals('month', startTimestamp, DateHelper.date(endTimestamp)).map(function (ts) { + return { + t: ts, + x: DateHelper.date(ts).month(), + y: 0 + }; + }) + ); + }, + extractUnit: function extractUnit(ts) { + return DateHelper.date(ts).startOf('month').valueOf(); + } + }; + }; + + var yearTemplate = function yearTemplate(DateHelper) { + var ALLOWED_DOMAIN_TYPE = []; + return { + name: 'year', + allowedDomainType: ALLOWED_DOMAIN_TYPE, + rowsCount: function rowsCount() { + return 1; + }, + columnsCount: function columnsCount() { + return 1; + }, + mapping: function mapping(startTimestamp, endTimestamp) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + DateHelper.intervals('year', startTimestamp, DateHelper.date(endTimestamp)).map(function (ts, index) { + return { + t: ts, + x: index, + y: 0 + }; + }) + ); + }, + extractUnit: function extractUnit(ts) { + return DateHelper.date(ts).startOf('year').valueOf(); + } + }; + }; + + var DefaultTemplates = [minuteTemplate, hourTemplate, dayTemplate$2, dayTemplate$1, dayTemplate, weekTemplate, monthTemplate, yearTemplate]; + + var TemplateCollection = /*#__PURE__*/function () { + function TemplateCollection(dateHelper, options) { + _classCallCheck(this, TemplateCollection); + this.settings = new Map(); + this.dateHelper = dateHelper; + this.options = options; + this.initiated = false; + } + _createClass(TemplateCollection, [{ + key: "get", + value: function get(subDomainType) { + return this.settings.get(subDomainType); + } + }, { + key: "has", + value: function has(subDomainType) { + return this.settings.has(subDomainType); + } + }, { + key: "init", + value: function init() { + if (!this.initiated) { + this.initiated = true; + this.add(DefaultTemplates); + } + } + }, { + key: "add", + value: function add(templates) { + var _this = this; + this.init(); + var tplWithParent = []; + castArray(templates).forEach(function (f) { + var template = f(_this.dateHelper, _this.options.options); + _this.settings.set(template.name, template); + if (template.hasOwnProperty('parent')) { + tplWithParent.push(template.name); + } + }); + tplWithParent.forEach(function (name) { + var parentTemplate = _this.settings.get(_this.settings.get(name).parent); + if (!parentTemplate) { + return; + } + _this.settings.set(name, Object.assign(Object.assign({}, parentTemplate), _this.settings.get(name))); + }); + } + }]); + return TemplateCollection; + }(); + + var CalHeatmap = /*#__PURE__*/function () { + function CalHeatmap() { + _classCallCheck(this, CalHeatmap); + // Default options + this.options = new Options(); + // Init the helpers with the default options + this.dateHelper = new DateHelper(); + this.templateCollection = new TemplateCollection(this.dateHelper, this.options); + this.dataFetcher = new DataFetcher(this); + this.navigator = new Navigator(this); + this.populator = new Populator(this); + this.calendarPainter = new CalendarPainter(this); + this.eventEmitter = new EventEmitter(); + this.pluginManager = new PluginManager(this); + } + _createClass(CalHeatmap, [{ + key: "createDomainCollection", + value: function createDomainCollection(startDate, range) { + var excludeEnd = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + return new DomainCollection(this.dateHelper, this.options.options.domain.type, startDate, range, excludeEnd); + } + // ========================================================================= + // PUBLIC API + // ========================================================================= + /** + * Setup and paint the calendar with the given options + * + * @param {Object} options The Options object + * @return A Promise, which will fulfill once all the underlying asynchronous + * tasks settle, whether resolved or rejected. + */ + }, { + key: "paint", + value: function paint(options, plugins) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() { + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + this.options.init(options); + _context.next = 3; + return this.dateHelper.setup(this.options); + case 3: + this.templateCollection.init(); + _context.prev = 4; + validate(this.templateCollection, this.options.options); + _context.next = 11; + break; + case 8: + _context.prev = 8; + _context.t0 = _context["catch"](4); + return _context.abrupt("return", Promise.reject(_context.t0)); + case 11: + if (plugins) { + this.pluginManager.add(castArray(plugins)); + } + this.calendarPainter.setup(); + // Record all the valid domains + // Each domain value is a timestamp in milliseconds + this.domainCollection = new DomainCollection(this.dateHelper); + this.navigator.loadNewDomains(this.createDomainCollection(this.options.options.date.start, this.options.options.range)); + return _context.abrupt("return", Promise.allSettled([this.calendarPainter.paint(), this.fill()])); + case 16: + case "end": + return _context.stop(); + } + }, _callee, this, [[4, 8]]); + })); + } + /** + * Add a new subDomainTemplate + * + * @since 4.0.0 + * @param {SubDomainTemplate[] | SubDomainTemplate} templates + * A single, or an array of SubDomainTemplate object + * @return void + */ + }, { + key: "addTemplates", + value: function addTemplates(templates) { + this.templateCollection.add(templates); + } + /** + * Shift the calendar by n domains forward + * + * @param {number} n Number of domain intervals to shift forward + * @return A Promise, which will fulfill once all the underlying asynchronous + * tasks settle, whether resolved or rejected. + */ + }, { + key: "next", + value: function next() { + var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; + var loadDirection = this.navigator.loadNewDomains(this.createDomainCollection(this.domainCollection.max, n + 1).slice(n), ScrollDirection.SCROLL_FORWARD); + return Promise.allSettled([this.calendarPainter.paint(loadDirection), this.fill()]); + } + /** + * Shift the calendar by n domains backward + * + * @param {number} n Number of domain intervals to shift backward + * @return A Promise, which will fulfill once all the underlying asynchronous + * tasks settle, whether resolved or rejected. + */ + }, { + key: "previous", + value: function previous() { + var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; + var loadDirection = this.navigator.loadNewDomains(this.createDomainCollection(this.domainCollection.min, -n), ScrollDirection.SCROLL_BACKWARD); + return Promise.allSettled([this.calendarPainter.paint(loadDirection), this.fill()]); + } + /** + * Jump directly to a specific date + * + * JumpTo will scroll the calendar until the wanted domain with the specified + * date is visible. Unless you set reset to true, the wanted domain + * will not necessarily be the first domain of the calendar. + * + * @param {Date} date Jump to the domain containing that date + * @param {boolean} reset Whether the wanted domain + * should be the first domain of the calendar + * @return A Promise, which will fulfill once all the underlying asynchronous + * tasks settle, whether resolved or rejected. + */ + }, { + key: "jumpTo", + value: function jumpTo(date) { + var reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + return Promise.allSettled([this.calendarPainter.paint(this.navigator.jumpTo(date, reset)), this.fill()]); + } + /** + * Fill the calendar with the given data + * + * @param {Object|string} dataSource The calendar's datasource, + * same type as `options.data.source` + * @return A Promise, which will fulfill once all the underlying asynchronous + * tasks settle, whether resolved or rejected. + */ + }, { + key: "fill", + value: function fill() { + var _this = this; + var dataSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.options.data.source; + var options = this.options.options; + var template = this.templateCollection; + var endDate = this.dateHelper.intervals(options.domain.type, this.domainCollection.max, 2)[1]; + var dataPromise = this.dataFetcher.getDatas(dataSource, this.domainCollection.min, endDate); + return new Promise(function (resolve, reject) { + dataPromise.then(function (data) { + _this.domainCollection.fill(data, options.data, template.get(options.subDomain.type).extractUnit); + _this.populator.populate(); + resolve(null); + }, function (error) { + reject(error); + }); + }); + } + /** + * Listener for all events + * + * @since 4.0.0 + * @param {string} eventName Name of the event to listen to + * @param {function} Callback function to execute on event trigger + * @return void + */ + }, { + key: "on", + value: function on(name, fn) { + this.eventEmitter.on(name, fn); + } + }, { + key: "dimensions", + value: function dimensions() { + return this.calendarPainter.dimensions; + } + /** + * Destroy the calendar + * + * @since 3.3.6 + * @return A Promise, which will fulfill once all the underlying asynchronous + * tasks settle, whether resolved or rejected. + */ + }, { + key: "destroy", + value: function destroy() { + return this.calendarPainter.destroy(); + } + }, { + key: "extendDayjs", + value: function extendDayjs(plugin) { + return this.dateHelper.extend(plugin); + } + }]); + return CalHeatmap; + }(); + CalHeatmap.VERSION = VERSION; + + return CalHeatmap; + +})); diff --git a/static/javascripts/cal-heatmap/cal-heatmap.min.esm.js b/static/javascripts/cal-heatmap/cal-heatmap.min.esm.js new file mode 100644 index 000000000..c786cb31f --- /dev/null +++ b/static/javascripts/cal-heatmap/cal-heatmap.min.esm.js @@ -0,0 +1 @@ +import{select as t}from"d3-selection";import{hcl as e}from"d3-color";import{ascending as n,timeSecond as r,timeMinute as i,timeHour as o,timeDay as a,timeWeek as u,timeMonth as s,timeYear as c,timeMonday as l,timeTuesday as f,timeWednesday as h,timeThursday as d,timeFriday as p,timeSaturday as v,timeSunday as y,utcSecond as m,utcMinute as g,utcHour as b,utcDay as w,utcWeek as x,utcMonth as O,utcYear as k,utcMonday as S,utcTuesday as j,utcWednesday as _,utcThursday as M,utcFriday as D,utcSaturday as E,utcSunday as $,descending as P,range as L,symbolAsterisk as A,symbolCircle as C,symbolCross as T,symbolDiamond as R,symbolDiamond2 as I,symbolPlus as N,symbolSquare as W,symbolSquare2 as F,symbolStar as z,symbolTimes as H,symbolTriangle as Y,symbolTriangle2 as U,symbolWye as B,schemeAccent as G,schemeCategory10 as V,schemeDark2 as q,schemePaired as K,schemePastel1 as Z,schemePastel2 as J,schemeSet1 as Q,schemeSet2 as X,schemeSet3 as tt,schemeTableau10 as et,quantize as nt,interpolateBrBG as rt,interpolatePRGn as it,interpolatePiYG as ot,interpolatePuOr as at,interpolateRdBu as ut,interpolateRdGy as st,interpolateRdYlBu as ct,interpolateRdYlGn as lt,interpolateSpectral as ft,interpolateBlues as ht,interpolateGreens as dt,interpolateGreys as pt,interpolatePurples as vt,interpolateReds as yt,interpolateOranges as mt,interpolateTurbo as gt,interpolateViridis as bt,interpolateMagma as wt,interpolateInferno as xt,interpolatePlasma as Ot,interpolateCividis as kt,interpolateCubehelixDefault as St,interpolateWarm as jt,interpolateCool as _t,interpolateBuGn as Mt,interpolateBuPu as Dt,interpolateGnBu as Et,interpolateOrRd as $t,interpolatePuBuGn as Pt,interpolatePuBu as Lt,interpolatePuRd as At,interpolateRdPu as Ct,interpolateYlGnBu as Tt,interpolateYlGn as Rt,interpolateYlOrBr as It,interpolateYlOrRd as Nt,interpolateRainbow as Wt,interpolateSinebow as Ft,schemeBrBG as zt,schemePRGn as Ht,schemePiYG as Yt,schemePuOr as Ut,schemeRdBu as Bt,schemeRdGy as Gt,schemeRdYlBu as Vt,schemeRdYlGn as qt,schemeSpectral as Kt,schemeBlues as Zt,schemeGreens as Jt,schemeGreys as Qt,schemeOranges as Xt,schemePurples as te,schemeReds as ee,schemeBuGn as ne,schemeBuPu as re,schemeGnBu as ie,schemeOrRd as oe,schemePuBu as ae,schemePuBuGn as ue,schemePuRd as se,schemeRdPu as ce,schemeYlGn as le,schemeYlGnBu as fe,schemeYlOrBr as he,schemeYlOrRd as de,interpolateNumber as pe,interpolateRgb as ve,interpolateHsl as ye,interpolateHcl as me,interpolateLab as ge,scaleLinear as be,scalePow as we,scaleLog as xe,scaleSymlog as Oe,scaleQuantile as ke,extent as Se,ticks as je,reverse as _e,scaleThreshold as Me,scaleIdentity as De,max as Ee,interpolateRound as $e,min as Pe,quantile as Le,median as Ae,scaleDiverging as Ce,scaleDivergingPow as Te,scaleDivergingLog as Re,scaleDivergingSymlog as Ie,piecewise as Ne,scaleTime as We,scaleUtc as Fe,scaleImplicit as ze,scaleOrdinal as He,scalePoint as Ye,scaleBand as Ue,InternSet as Be,sort as Ge,symbolsStroke as Ve,symbolsFill as qe}from"d3";import{text as Ke,dsv as Ze,csv as Je,json as Qe}from"d3-fetch";function Xe(){Xe=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,r=Object.defineProperty||function(t,e,n){t[e]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,n){return t[e]=n}}function c(t,e,n,i){var o=e&&e.prototype instanceof h?e:h,a=Object.create(o.prototype),u=new j(i||[]);return r(a,"_invoke",{value:x(t,n,u)}),a}function l(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var f={};function h(){}function d(){}function p(){}var v={};s(v,o,(function(){return this}));var y=Object.getPrototypeOf,m=y&&y(y(_([])));m&&m!==e&&n.call(m,o)&&(v=m);var g=p.prototype=h.prototype=Object.create(v);function b(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function w(t,e){function i(r,o,a,u){var s=l(t[r],t,o);if("throw"!==s.type){var c=s.arg,f=c.value;return f&&"object"==typeof f&&n.call(f,"__await")?e.resolve(f.__await).then((function(t){i("next",t,a,u)}),(function(t){i("throw",t,a,u)})):e.resolve(f).then((function(t){c.value=t,a(c)}),(function(t){return i("throw",t,a,u)}))}u(s.arg)}var o;r(this,"_invoke",{value:function(t,n){function r(){return new e((function(e,r){i(t,n,e,r)}))}return o=o?o.then(r,r):r()}})}function x(t,e,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return M()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var u=O(a,n);if(u){if(u===f)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var s=l(t,e,n);if("normal"===s.type){if(r=n.done?"completed":"suspendedYield",s.arg===f)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(r="completed",n.method="throw",n.arg=s.arg)}}}function O(t,e){var n=e.method,r=t.iterator[n];if(void 0===r)return e.delegate=null,"throw"===n&&t.iterator.return&&(e.method="return",e.arg=void 0,O(t,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var i=l(r,t.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,f;var o=i.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,f):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,f)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function S(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function j(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function _(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:M}}function M(){return{value:void 0,done:!0}}return d.prototype=p,r(g,"constructor",{value:p,configurable:!0}),r(p,"constructor",{value:d,configurable:!0}),d.displayName=s(p,u,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===d||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,s(t,u,"GeneratorFunction")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},b(w.prototype),s(w.prototype,a,(function(){return this})),t.AsyncIterator=w,t.async=function(e,n,r,i,o){void 0===o&&(o=Promise);var a=new w(c(e,n,r,i),o);return t.isGeneratorFunction(n)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},b(g),s(g,u,"Generator"),s(g,o,(function(){return this})),s(g,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=Object(t),n=[];for(var r in e)n.push(r);return n.reverse(),function t(){for(;n.length;){var r=n.pop();if(r in e)return t.value=r,t.done=!1,t}return t.done=!0,t}},t.values=_,j.prototype={constructor:j,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(S),!t)for(var e in this)"t"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type="throw",a.arg=t,e.next=n,r&&(e.method="next",e.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),s=n.call(o,"finallyLoc");if(u&&s){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(u){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=t,a.arg=e,o?(this.method="next",this.next=o.finallyLoc,f):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),f},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),S(n),f}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;S(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:_(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},t}function tn(t){return tn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},tn(t)}function en(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function nn(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,cn(r.key),r)}}function rn(t,e,n){return e&&nn(t.prototype,e),n&&nn(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function on(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,u=[],s=!0,c=!1;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=o.call(n)).done)&&(u.push(r.value),u.length!==e);s=!0);}catch(t){c=!0,i=t}finally{try{if(!s&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return u}}(t,e)||un(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function an(t){return function(t){if(Array.isArray(t))return sn(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||un(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function un(t,e){if(t){if("string"==typeof t)return sn(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?sn(t,e):void 0}}function sn(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function cn(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}var ln="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function fn(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var hn=function(t){return t&&t.Math==Math&&t},dn=hn("object"==typeof globalThis&&globalThis)||hn("object"==typeof window&&window)||hn("object"==typeof self&&self)||hn("object"==typeof ln&&ln)||function(){return this}()||ln||Function("return this")(),pn={exports:{}},vn=dn,yn=Object.defineProperty,mn=function(t,e){try{yn(vn,t,{value:e,configurable:!0,writable:!0})}catch(n){vn[t]=e}return e},gn=mn,bn="__core-js_shared__",wn=dn[bn]||gn(bn,{}),xn=wn;(pn.exports=function(t,e){return xn[t]||(xn[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.30.2",mode:"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE",source:"https://github.com/zloirock/core-js"});var On,kn,Sn=pn.exports,jn=function(t){try{return!!t()}catch(t){return!0}},_n=!jn((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})),Mn=_n,Dn=Function.prototype,En=Dn.call,$n=Mn&&Dn.bind.bind(En,En),Pn=Mn?$n:function(t){return function(){return En.apply(t,arguments)}},Ln=function(t){return null==t},An=Ln,Cn=TypeError,Tn=function(t){if(An(t))throw Cn("Can't call method on "+t);return t},Rn=Tn,In=Object,Nn=function(t){return In(Rn(t))},Wn=Nn,Fn=Pn({}.hasOwnProperty),zn=Object.hasOwn||function(t,e){return Fn(Wn(t),e)},Hn=Pn,Yn=0,Un=Math.random(),Bn=Hn(1..toString),Gn=function(t){return"Symbol("+(void 0===t?"":t)+")_"+Bn(++Yn+Un,36)},Vn="undefined"!=typeof navigator&&String(navigator.userAgent)||"",qn=dn,Kn=Vn,Zn=qn.process,Jn=qn.Deno,Qn=Zn&&Zn.versions||Jn&&Jn.version,Xn=Qn&&Qn.v8;Xn&&(kn=(On=Xn.split("."))[0]>0&&On[0]<4?1:+(On[0]+On[1])),!kn&&Kn&&(!(On=Kn.match(/Edge\/(\d+)/))||On[1]>=74)&&(On=Kn.match(/Chrome\/(\d+)/))&&(kn=+On[1]);var tr=kn,er=tr,nr=jn,rr=dn.String,ir=!!Object.getOwnPropertySymbols&&!nr((function(){var t=Symbol();return!rr(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&er&&er<41})),or=ir&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,ar=Sn,ur=zn,sr=Gn,cr=ir,lr=or,fr=dn.Symbol,hr=ar("wks"),dr=lr?fr.for||fr:fr&&fr.withoutSetter||sr,pr=function(t){return ur(hr,t)||(hr[t]=cr&&ur(fr,t)?fr[t]:dr("Symbol."+t)),hr[t]},vr={};vr[pr("toStringTag")]="z";var yr="[object z]"===String(vr),mr="object"==typeof document&&document.all,gr={all:mr,IS_HTMLDDA:void 0===mr&&void 0!==mr},br=gr.all,wr=gr.IS_HTMLDDA?function(t){return"function"==typeof t||t===br}:function(t){return"function"==typeof t},xr={},Or=!jn((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),kr=wr,Sr=gr.all,jr=gr.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:kr(t)||t===Sr}:function(t){return"object"==typeof t?null!==t:kr(t)},_r=jr,Mr=dn.document,Dr=_r(Mr)&&_r(Mr.createElement),Er=function(t){return Dr?Mr.createElement(t):{}},$r=Er,Pr=!Or&&!jn((function(){return 7!=Object.defineProperty($r("div"),"a",{get:function(){return 7}}).a})),Lr=Or&&jn((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),Ar=jr,Cr=String,Tr=TypeError,Rr=function(t){if(Ar(t))return t;throw Tr(Cr(t)+" is not an object")},Ir=_n,Nr=Function.prototype.call,Wr=Ir?Nr.bind(Nr):function(){return Nr.apply(Nr,arguments)},Fr=dn,zr=wr,Hr=function(t,e){return arguments.length<2?(n=Fr[t],zr(n)?n:void 0):Fr[t]&&Fr[t][e];var n},Yr=Pn({}.isPrototypeOf),Ur=Hr,Br=wr,Gr=Yr,Vr=Object,qr=or?function(t){return"symbol"==typeof t}:function(t){var e=Ur("Symbol");return Br(e)&&Gr(e.prototype,Vr(t))},Kr=String,Zr=function(t){try{return Kr(t)}catch(t){return"Object"}},Jr=wr,Qr=Zr,Xr=TypeError,ti=function(t){if(Jr(t))return t;throw Xr(Qr(t)+" is not a function")},ei=ti,ni=Ln,ri=function(t,e){var n=t[e];return ni(n)?void 0:ei(n)},ii=Wr,oi=wr,ai=jr,ui=TypeError,si=Wr,ci=jr,li=qr,fi=ri,hi=function(t,e){var n,r;if("string"===e&&oi(n=t.toString)&&!ai(r=ii(n,t)))return r;if(oi(n=t.valueOf)&&!ai(r=ii(n,t)))return r;if("string"!==e&&oi(n=t.toString)&&!ai(r=ii(n,t)))return r;throw ui("Can't convert object to primitive value")},di=TypeError,pi=pr("toPrimitive"),vi=function(t,e){if(!ci(t)||li(t))return t;var n,r=fi(t,pi);if(r){if(void 0===e&&(e="default"),n=si(r,t,e),!ci(n)||li(n))return n;throw di("Can't convert object to primitive value")}return void 0===e&&(e="number"),hi(t,e)},yi=qr,mi=function(t){var e=vi(t,"string");return yi(e)?e:e+""},gi=Or,bi=Pr,wi=Lr,xi=Rr,Oi=mi,ki=TypeError,Si=Object.defineProperty,ji=Object.getOwnPropertyDescriptor,_i="enumerable",Mi="configurable",Di="writable";xr.f=gi?wi?function(t,e,n){if(xi(t),e=Oi(e),xi(n),"function"==typeof t&&"prototype"===e&&"value"in n&&Di in n&&!n[Di]){var r=ji(t,e);r&&r[Di]&&(t[e]=n.value,n={configurable:Mi in n?n[Mi]:r[Mi],enumerable:_i in n?n[_i]:r[_i],writable:!1})}return Si(t,e,n)}:Si:function(t,e,n){if(xi(t),e=Oi(e),xi(n),bi)try{return Si(t,e,n)}catch(t){}if("get"in n||"set"in n)throw ki("Accessors not supported");return"value"in n&&(t[e]=n.value),t};var Ei={exports:{}},$i=Or,Pi=zn,Li=Function.prototype,Ai=$i&&Object.getOwnPropertyDescriptor,Ci=Pi(Li,"name"),Ti={EXISTS:Ci,PROPER:Ci&&"something"===function(){}.name,CONFIGURABLE:Ci&&(!$i||$i&&Ai(Li,"name").configurable)},Ri=wr,Ii=wn,Ni=Pn(Function.toString);Ri(Ii.inspectSource)||(Ii.inspectSource=function(t){return Ni(t)});var Wi,Fi,zi,Hi=Ii.inspectSource,Yi=wr,Ui=dn.WeakMap,Bi=Yi(Ui)&&/native code/.test(String(Ui)),Gi=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},Vi=xr,qi=Gi,Ki=Or?function(t,e,n){return Vi.f(t,e,qi(1,n))}:function(t,e,n){return t[e]=n,t},Zi=Gn,Ji=Sn("keys"),Qi=function(t){return Ji[t]||(Ji[t]=Zi(t))},Xi={},to=Bi,eo=dn,no=jr,ro=Ki,io=zn,oo=wn,ao=Qi,uo=Xi,so="Object already initialized",co=eo.TypeError,lo=eo.WeakMap;if(to||oo.state){var fo=oo.state||(oo.state=new lo);fo.get=fo.get,fo.has=fo.has,fo.set=fo.set,Wi=function(t,e){if(fo.has(t))throw co(so);return e.facade=t,fo.set(t,e),e},Fi=function(t){return fo.get(t)||{}},zi=function(t){return fo.has(t)}}else{var ho=ao("state");uo[ho]=!0,Wi=function(t,e){if(io(t,ho))throw co(so);return e.facade=t,ro(t,ho,e),e},Fi=function(t){return io(t,ho)?t[ho]:{}},zi=function(t){return io(t,ho)}}var po={set:Wi,get:Fi,has:zi,enforce:function(t){return zi(t)?Fi(t):Wi(t,{})},getterFor:function(t){return function(e){var n;if(!no(e)||(n=Fi(e)).type!==t)throw co("Incompatible receiver, "+t+" required");return n}}},vo=Pn,yo=jn,mo=wr,go=zn,bo=Or,wo=Ti.CONFIGURABLE,xo=Hi,Oo=po.enforce,ko=po.get,So=String,jo=Object.defineProperty,_o=vo("".slice),Mo=vo("".replace),Do=vo([].join),Eo=bo&&!yo((function(){return 8!==jo((function(){}),"length",{value:8}).length})),$o=String(String).split("String"),Po=Ei.exports=function(t,e,n){"Symbol("===_o(So(e),0,7)&&(e="["+Mo(So(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!go(t,"name")||wo&&t.name!==e)&&(bo?jo(t,"name",{value:e,configurable:!0}):t.name=e),Eo&&n&&go(n,"arity")&&t.length!==n.arity&&jo(t,"length",{value:n.arity});try{n&&go(n,"constructor")&&n.constructor?bo&&jo(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=Oo(t);return go(r,"source")||(r.source=Do($o,"string"==typeof e?e:"")),t};Function.prototype.toString=Po((function(){return mo(this)&&ko(this).source||xo(this)}),"toString");var Lo=Ei.exports,Ao=wr,Co=xr,To=Lo,Ro=mn,Io=function(t,e,n,r){r||(r={});var i=r.enumerable,o=void 0!==r.name?r.name:e;if(Ao(n)&&To(n,o,r),r.global)i?t[e]=n:Ro(e,n);else{try{r.unsafe?t[e]&&(i=!0):delete t[e]}catch(t){}i?t[e]=n:Co.f(t,e,{value:n,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return t},No=Pn,Wo=No({}.toString),Fo=No("".slice),zo=function(t){return Fo(Wo(t),8,-1)},Ho=yr,Yo=wr,Uo=zo,Bo=pr("toStringTag"),Go=Object,Vo="Arguments"==Uo(function(){return arguments}()),qo=Ho?Uo:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Go(t),Bo))?n:Vo?Uo(e):"Object"==(r=Uo(e))&&Yo(e.callee)?"Arguments":r},Ko=qo,Zo=yr?{}.toString:function(){return"[object "+Ko(this)+"]"};yr||Io(Object.prototype,"toString",Zo,{unsafe:!0});var Jo={},Qo={},Xo={}.propertyIsEnumerable,ta=Object.getOwnPropertyDescriptor,ea=ta&&!Xo.call({1:2},1);Qo.f=ea?function(t){var e=ta(this,t);return!!e&&e.enumerable}:Xo;var na=jn,ra=zo,ia=Object,oa=Pn("".split),aa=na((function(){return!ia("z").propertyIsEnumerable(0)}))?function(t){return"String"==ra(t)?oa(t,""):ia(t)}:ia,ua=aa,sa=Tn,ca=function(t){return ua(sa(t))},la=Or,fa=Wr,ha=Qo,da=Gi,pa=ca,va=mi,ya=zn,ma=Pr,ga=Object.getOwnPropertyDescriptor;Jo.f=la?ga:function(t,e){if(t=pa(t),e=va(e),ma)try{return ga(t,e)}catch(t){}if(ya(t,e))return da(!fa(ha.f,t,e),t[e])};var ba={},wa=Math.ceil,xa=Math.floor,Oa=Math.trunc||function(t){var e=+t;return(e>0?xa:wa)(e)},ka=function(t){var e=+t;return e!=e||0===e?0:Oa(e)},Sa=ka,ja=Math.max,_a=Math.min,Ma=function(t,e){var n=Sa(t);return n<0?ja(n+e,0):_a(n,e)},Da=ka,Ea=Math.min,$a=function(t){return t>0?Ea(Da(t),9007199254740991):0},Pa=$a,La=function(t){return Pa(t.length)},Aa=ca,Ca=Ma,Ta=La,Ra=function(t){return function(e,n,r){var i,o=Aa(e),a=Ta(o),u=Ca(r,a);if(t&&n!=n){for(;a>u;)if((i=o[u++])!=i)return!0}else for(;a>u;u++)if((t||u in o)&&o[u]===n)return t||u||0;return!t&&-1}},Ia={includes:Ra(!0),indexOf:Ra(!1)},Na=zn,Wa=ca,Fa=Ia.indexOf,za=Xi,Ha=Pn([].push),Ya=function(t,e){var n,r=Wa(t),i=0,o=[];for(n in r)!Na(za,n)&&Na(r,n)&&Ha(o,n);for(;e.length>i;)Na(r,n=e[i++])&&(~Fa(o,n)||Ha(o,n));return o},Ua=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Ba=Ya,Ga=Ua.concat("length","prototype");ba.f=Object.getOwnPropertyNames||function(t){return Ba(t,Ga)};var Va={};Va.f=Object.getOwnPropertySymbols;var qa=Hr,Ka=ba,Za=Va,Ja=Rr,Qa=Pn([].concat),Xa=qa("Reflect","ownKeys")||function(t){var e=Ka.f(Ja(t)),n=Za.f;return n?Qa(e,n(t)):e},tu=zn,eu=Xa,nu=Jo,ru=xr,iu=jn,ou=wr,au=/#|\.prototype\./,uu=function(t,e){var n=cu[su(t)];return n==fu||n!=lu&&(ou(e)?iu(e):!!e)},su=uu.normalize=function(t){return String(t).replace(au,".").toLowerCase()},cu=uu.data={},lu=uu.NATIVE="N",fu=uu.POLYFILL="P",hu=uu,du=dn,pu=Jo.f,vu=Ki,yu=Io,mu=mn,gu=function(t,e,n){for(var r=eu(e),i=ru.f,o=nu.f,a=0;a<r.length;a++){var u=r[a];tu(t,u)||n&&tu(n,u)||i(t,u,o(e,u))}},bu=hu,wu=function(t,e){var n,r,i,o,a,u=t.target,s=t.global,c=t.stat;if(n=s?du:c?du[u]||mu(u,{}):(du[u]||{}).prototype)for(r in e){if(o=e[r],i=t.dontCallGetSet?(a=pu(n,r))&&a.value:n[r],!bu(s?r:u+(c?".":"#")+r,t.forced)&&void 0!==i){if(typeof o==typeof i)continue;gu(o,i)}(t.sham||i&&i.sham)&&vu(o,"sham",!0),yu(n,r,o,t)}},xu="undefined"!=typeof process&&"process"==zo(process),Ou=Pn,ku=ti,Su=wr,ju=String,_u=TypeError,Mu=function(t,e,n){try{return Ou(ku(Object.getOwnPropertyDescriptor(t,e)[n]))}catch(t){}},Du=Rr,Eu=function(t){if("object"==typeof t||Su(t))return t;throw _u("Can't set "+ju(t)+" as a prototype")},$u=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=Mu(Object.prototype,"__proto__","set"))(n,[]),e=n instanceof Array}catch(t){}return function(n,r){return Du(n),Eu(r),e?t(n,r):n.__proto__=r,n}}():void 0),Pu=xr.f,Lu=zn,Au=pr("toStringTag"),Cu=function(t,e,n){t&&!n&&(t=t.prototype),t&&!Lu(t,Au)&&Pu(t,Au,{configurable:!0,value:e})},Tu=Lo,Ru=xr,Iu=function(t,e,n){return n.get&&Tu(n.get,e,{getter:!0}),n.set&&Tu(n.set,e,{setter:!0}),Ru.f(t,e,n)},Nu=Hr,Wu=Iu,Fu=Or,zu=pr("species"),Hu=function(t){var e=Nu(t);Fu&&e&&!e[zu]&&Wu(e,zu,{configurable:!0,get:function(){return this}})},Yu=Yr,Uu=TypeError,Bu=function(t,e){if(Yu(e,t))return t;throw Uu("Incorrect invocation")},Gu=Pn,Vu=jn,qu=wr,Ku=qo,Zu=Hi,Ju=function(){},Qu=[],Xu=Hr("Reflect","construct"),ts=/^\s*(?:class|function)\b/,es=Gu(ts.exec),ns=!ts.exec(Ju),rs=function(t){if(!qu(t))return!1;try{return Xu(Ju,Qu,t),!0}catch(t){return!1}},is=function(t){if(!qu(t))return!1;switch(Ku(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return ns||!!es(ts,Zu(t))}catch(t){return!0}};is.sham=!0;var os,as,us,ss,cs=!Xu||Vu((function(){var t;return rs(rs.call)||!rs(Object)||!rs((function(){t=!0}))||t}))?is:rs,ls=cs,fs=Zr,hs=TypeError,ds=Rr,ps=function(t){if(ls(t))return t;throw hs(fs(t)+" is not a constructor")},vs=Ln,ys=pr("species"),ms=_n,gs=Function.prototype,bs=gs.apply,ws=gs.call,xs="object"==typeof Reflect&&Reflect.apply||(ms?ws.bind(bs):function(){return ws.apply(bs,arguments)}),Os=zo,ks=Pn,Ss=function(t){if("Function"===Os(t))return ks(t)},js=ti,_s=_n,Ms=Ss(Ss.bind),Ds=function(t,e){return js(t),void 0===e?t:_s?Ms(t,e):function(){return t.apply(e,arguments)}},Es=Hr("document","documentElement"),$s=Pn([].slice),Ps=TypeError,Ls=/(?:ipad|iphone|ipod).*applewebkit/i.test(Vn),As=dn,Cs=xs,Ts=Ds,Rs=wr,Is=zn,Ns=jn,Ws=Es,Fs=$s,zs=Er,Hs=function(t,e){if(t<e)throw Ps("Not enough arguments");return t},Ys=Ls,Us=xu,Bs=As.setImmediate,Gs=As.clearImmediate,Vs=As.process,qs=As.Dispatch,Ks=As.Function,Zs=As.MessageChannel,Js=As.String,Qs=0,Xs={},tc="onreadystatechange";Ns((function(){os=As.location}));var ec=function(t){if(Is(Xs,t)){var e=Xs[t];delete Xs[t],e()}},nc=function(t){return function(){ec(t)}},rc=function(t){ec(t.data)},ic=function(t){As.postMessage(Js(t),os.protocol+"//"+os.host)};Bs&&Gs||(Bs=function(t){Hs(arguments.length,1);var e=Rs(t)?t:Ks(t),n=Fs(arguments,1);return Xs[++Qs]=function(){Cs(e,void 0,n)},as(Qs),Qs},Gs=function(t){delete Xs[t]},Us?as=function(t){Vs.nextTick(nc(t))}:qs&&qs.now?as=function(t){qs.now(nc(t))}:Zs&&!Ys?(ss=(us=new Zs).port2,us.port1.onmessage=rc,as=Ts(ss.postMessage,ss)):As.addEventListener&&Rs(As.postMessage)&&!As.importScripts&&os&&"file:"!==os.protocol&&!Ns(ic)?(as=ic,As.addEventListener("message",rc,!1)):as=tc in zs("script")?function(t){Ws.appendChild(zs("script"))[tc]=function(){Ws.removeChild(this),ec(t)}}:function(t){setTimeout(nc(t),0)});var oc={set:Bs,clear:Gs},ac=function(){this.head=null,this.tail=null};ac.prototype={add:function(t){var e={item:t,next:null},n=this.tail;n?n.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}};var uc,sc,cc,lc,fc,hc=ac,dc=/ipad|iphone|ipod/i.test(Vn)&&"undefined"!=typeof Pebble,pc=/web0s(?!.*chrome)/i.test(Vn),vc=dn,yc=Ds,mc=Jo.f,gc=oc.set,bc=hc,wc=Ls,xc=dc,Oc=pc,kc=xu,Sc=vc.MutationObserver||vc.WebKitMutationObserver,jc=vc.document,_c=vc.process,Mc=vc.Promise,Dc=mc(vc,"queueMicrotask"),Ec=Dc&&Dc.value;if(!Ec){var $c=new bc,Pc=function(){var t,e;for(kc&&(t=_c.domain)&&t.exit();e=$c.get();)try{e()}catch(t){throw $c.head&&uc(),t}t&&t.enter()};wc||kc||Oc||!Sc||!jc?!xc&&Mc&&Mc.resolve?((lc=Mc.resolve(void 0)).constructor=Mc,fc=yc(lc.then,lc),uc=function(){fc(Pc)}):kc?uc=function(){_c.nextTick(Pc)}:(gc=yc(gc,vc),uc=function(){gc(Pc)}):(sc=!0,cc=jc.createTextNode(""),new Sc(Pc).observe(cc,{characterData:!0}),uc=function(){cc.data=sc=!sc}),Ec=function(t){$c.head||uc(),$c.add(t)}}var Lc=Ec,Ac=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},Cc=dn.Promise,Tc="object"==typeof Deno&&Deno&&"object"==typeof Deno.version,Rc=!Tc&&!xu&&"object"==typeof window&&"object"==typeof document,Ic=dn,Nc=Cc,Wc=wr,Fc=hu,zc=Hi,Hc=pr,Yc=Rc,Uc=Tc,Bc=tr;Nc&&Nc.prototype;var Gc=Hc("species"),Vc=!1,qc=Wc(Ic.PromiseRejectionEvent),Kc=Fc("Promise",(function(){var t=zc(Nc),e=t!==String(Nc);if(!e&&66===Bc)return!0;if(!Bc||Bc<51||!/native code/.test(t)){var n=new Nc((function(t){t(1)})),r=function(t){t((function(){}),(function(){}))};if((n.constructor={})[Gc]=r,!(Vc=n.then((function(){}))instanceof r))return!0}return!e&&(Yc||Uc)&&!qc})),Zc={CONSTRUCTOR:Kc,REJECTION_EVENT:qc,SUBCLASSING:Vc},Jc={},Qc=ti,Xc=TypeError,tl=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw Xc("Bad Promise constructor");e=t,n=r})),this.resolve=Qc(e),this.reject=Qc(n)};Jc.f=function(t){return new tl(t)};var el,nl,rl,il=wu,ol=xu,al=dn,ul=Wr,sl=Io,cl=$u,ll=Cu,fl=Hu,hl=ti,dl=wr,pl=jr,vl=Bu,yl=function(t,e){var n,r=ds(t).constructor;return void 0===r||vs(n=ds(r)[ys])?e:ps(n)},ml=oc.set,gl=Lc,bl=function(t,e){try{1==arguments.length?console.error(t):console.error(t,e)}catch(t){}},wl=Ac,xl=hc,Ol=po,kl=Cc,Sl=Jc,jl="Promise",_l=Zc.CONSTRUCTOR,Ml=Zc.REJECTION_EVENT,Dl=Zc.SUBCLASSING,El=Ol.getterFor(jl),$l=Ol.set,Pl=kl&&kl.prototype,Ll=kl,Al=Pl,Cl=al.TypeError,Tl=al.document,Rl=al.process,Il=Sl.f,Nl=Il,Wl=!!(Tl&&Tl.createEvent&&al.dispatchEvent),Fl="unhandledrejection",zl=function(t){var e;return!(!pl(t)||!dl(e=t.then))&&e},Hl=function(t,e){var n,r,i,o=e.value,a=1==e.state,u=a?t.ok:t.fail,s=t.resolve,c=t.reject,l=t.domain;try{u?(a||(2===e.rejection&&Vl(e),e.rejection=1),!0===u?n=o:(l&&l.enter(),n=u(o),l&&(l.exit(),i=!0)),n===t.promise?c(Cl("Promise-chain cycle")):(r=zl(n))?ul(r,n,s,c):s(n)):c(o)}catch(t){l&&!i&&l.exit(),c(t)}},Yl=function(t,e){t.notified||(t.notified=!0,gl((function(){for(var n,r=t.reactions;n=r.get();)Hl(n,t);t.notified=!1,e&&!t.rejection&&Bl(t)})))},Ul=function(t,e,n){var r,i;Wl?((r=Tl.createEvent("Event")).promise=e,r.reason=n,r.initEvent(t,!1,!0),al.dispatchEvent(r)):r={promise:e,reason:n},!Ml&&(i=al["on"+t])?i(r):t===Fl&&bl("Unhandled promise rejection",n)},Bl=function(t){ul(ml,al,(function(){var e,n=t.facade,r=t.value;if(Gl(t)&&(e=wl((function(){ol?Rl.emit("unhandledRejection",r,n):Ul(Fl,n,r)})),t.rejection=ol||Gl(t)?2:1,e.error))throw e.value}))},Gl=function(t){return 1!==t.rejection&&!t.parent},Vl=function(t){ul(ml,al,(function(){var e=t.facade;ol?Rl.emit("rejectionHandled",e):Ul("rejectionhandled",e,t.value)}))},ql=function(t,e,n){return function(r){t(e,r,n)}},Kl=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=2,Yl(t,!0))},Zl=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw Cl("Promise can't be resolved itself");var r=zl(e);r?gl((function(){var n={done:!1};try{ul(r,e,ql(Zl,n,t),ql(Kl,n,t))}catch(e){Kl(n,e,t)}})):(t.value=e,t.state=1,Yl(t,!1))}catch(e){Kl({done:!1},e,t)}}};if(_l&&(Al=(Ll=function(t){vl(this,Al),hl(t),ul(el,this);var e=El(this);try{t(ql(Zl,e),ql(Kl,e))}catch(t){Kl(e,t)}}).prototype,(el=function(t){$l(this,{type:jl,done:!1,notified:!1,parent:!1,reactions:new xl,rejection:!1,state:0,value:void 0})}).prototype=sl(Al,"then",(function(t,e){var n=El(this),r=Il(yl(this,Ll));return n.parent=!0,r.ok=!dl(t)||t,r.fail=dl(e)&&e,r.domain=ol?Rl.domain:void 0,0==n.state?n.reactions.add(r):gl((function(){Hl(r,n)})),r.promise})),nl=function(){var t=new el,e=El(t);this.promise=t,this.resolve=ql(Zl,e),this.reject=ql(Kl,e)},Sl.f=Il=function(t){return t===Ll||undefined===t?new nl(t):Nl(t)},dl(kl)&&Pl!==Object.prototype)){rl=Pl.then,Dl||sl(Pl,"then",(function(t,e){var n=this;return new Ll((function(t,e){ul(rl,n,t,e)})).then(t,e)}),{unsafe:!0});try{delete Pl.constructor}catch(t){}cl&&cl(Pl,Al)}il({global:!0,constructor:!0,wrap:!0,forced:_l},{Promise:Ll}),ll(Ll,jl,!1),fl(jl);var Jl={},Ql=Jl,Xl=pr("iterator"),tf=Array.prototype,ef=function(t){return void 0!==t&&(Ql.Array===t||tf[Xl]===t)},nf=qo,rf=ri,of=Ln,af=Jl,uf=pr("iterator"),sf=function(t){if(!of(t))return rf(t,uf)||rf(t,"@@iterator")||af[nf(t)]},cf=Wr,lf=ti,ff=Rr,hf=Zr,df=sf,pf=TypeError,vf=function(t,e){var n=arguments.length<2?df(t):e;if(lf(n))return ff(cf(n,t));throw pf(hf(t)+" is not iterable")},yf=Wr,mf=Rr,gf=ri,bf=function(t,e,n){var r,i;mf(t);try{if(!(r=gf(t,"return"))){if("throw"===e)throw n;return n}r=yf(r,t)}catch(t){i=!0,r=t}if("throw"===e)throw n;if(i)throw r;return mf(r),n},wf=Ds,xf=Wr,Of=Rr,kf=Zr,Sf=ef,jf=La,_f=Yr,Mf=vf,Df=sf,Ef=bf,$f=TypeError,Pf=function(t,e){this.stopped=t,this.result=e},Lf=Pf.prototype,Af=function(t,e,n){var r,i,o,a,u,s,c,l=n&&n.that,f=!(!n||!n.AS_ENTRIES),h=!(!n||!n.IS_RECORD),d=!(!n||!n.IS_ITERATOR),p=!(!n||!n.INTERRUPTED),v=wf(e,l),y=function(t){return r&&Ef(r,"normal",t),new Pf(!0,t)},m=function(t){return f?(Of(t),p?v(t[0],t[1],y):v(t[0],t[1])):p?v(t,y):v(t)};if(h)r=t.iterator;else if(d)r=t;else{if(!(i=Df(t)))throw $f(kf(t)+" is not iterable");if(Sf(i)){for(o=0,a=jf(t);a>o;o++)if((u=m(t[o]))&&_f(Lf,u))return u;return new Pf(!1)}r=Mf(t,i)}for(s=h?t.next:r.next;!(c=xf(s,r)).done;){try{u=m(c.value)}catch(t){Ef(r,"throw",t)}if("object"==typeof u&&u&&_f(Lf,u))return u}return new Pf(!1)},Cf=pr("iterator"),Tf=!1;try{var Rf=0,If={next:function(){return{done:!!Rf++}},return:function(){Tf=!0}};If[Cf]=function(){return this},Array.from(If,(function(){throw 2}))}catch(t){}var Nf=function(t,e){if(!e&&!Tf)return!1;var n=!1;try{var r={};r[Cf]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(t){}return n},Wf=Cc,Ff=Zc.CONSTRUCTOR||!Nf((function(t){Wf.all(t).then(void 0,(function(){}))})),zf=Wr,Hf=ti,Yf=Jc,Uf=Ac,Bf=Af;wu({target:"Promise",stat:!0,forced:Ff},{all:function(t){var e=this,n=Yf.f(e),r=n.resolve,i=n.reject,o=Uf((function(){var n=Hf(e.resolve),o=[],a=0,u=1;Bf(t,(function(t){var s=a++,c=!1;u++,zf(n,e,t).then((function(t){c||(c=!0,o[s]=t,--u||r(o))}),i)})),--u||r(o)}));return o.error&&i(o.value),n.promise}});var Gf=wu,Vf=Zc.CONSTRUCTOR,qf=Cc,Kf=Hr,Zf=wr,Jf=Io,Qf=qf&&qf.prototype;if(Gf({target:"Promise",proto:!0,forced:Vf,real:!0},{catch:function(t){return this.then(void 0,t)}}),Zf(qf)){var Xf=Kf("Promise").prototype.catch;Qf.catch!==Xf&&Jf(Qf,"catch",Xf,{unsafe:!0})}var th=Wr,eh=ti,nh=Jc,rh=Ac,ih=Af;wu({target:"Promise",stat:!0,forced:Ff},{race:function(t){var e=this,n=nh.f(e),r=n.reject,i=rh((function(){var i=eh(e.resolve);ih(t,(function(t){th(i,e,t).then(n.resolve,r)}))}));return i.error&&r(i.value),n.promise}});var oh=Wr,ah=Jc;wu({target:"Promise",stat:!0,forced:Zc.CONSTRUCTOR},{reject:function(t){var e=ah.f(this);return oh(e.reject,void 0,t),e.promise}});var uh=Rr,sh=jr,ch=Jc,lh=wu,fh=Zc.CONSTRUCTOR,hh=function(t,e){if(uh(t),sh(e)&&e.constructor===t)return e;var n=ch.f(t);return(0,n.resolve)(e),n.promise};Hr("Promise"),lh({target:"Promise",stat:!0,forced:fh},{resolve:function(t){return hh(this,t)}});var dh={},ph=Ya,vh=Ua,yh=Object.keys||function(t){return ph(t,vh)},mh=Or,gh=Lr,bh=xr,wh=Rr,xh=ca,Oh=yh;dh.f=mh&&!gh?Object.defineProperties:function(t,e){wh(t);for(var n,r=xh(e),i=Oh(e),o=i.length,a=0;o>a;)bh.f(t,n=i[a++],r[n]);return t};var kh,Sh=Rr,jh=dh,_h=Ua,Mh=Xi,Dh=Es,Eh=Er,$h="prototype",Ph="script",Lh=Qi("IE_PROTO"),Ah=function(){},Ch=function(t){return"<"+Ph+">"+t+"</"+Ph+">"},Th=function(t){t.write(Ch("")),t.close();var e=t.parentWindow.Object;return t=null,e},Rh=function(){try{kh=new ActiveXObject("htmlfile")}catch(t){}var t,e,n;Rh="undefined"!=typeof document?document.domain&&kh?Th(kh):(e=Eh("iframe"),n="java"+Ph+":",e.style.display="none",Dh.appendChild(e),e.src=String(n),(t=e.contentWindow.document).open(),t.write(Ch("document.F=Object")),t.close(),t.F):Th(kh);for(var r=_h.length;r--;)delete Rh[$h][_h[r]];return Rh()};Mh[Lh]=!0;var Ih=Object.create||function(t,e){var n;return null!==t?(Ah[$h]=Sh(t),n=new Ah,Ah[$h]=null,n[Lh]=t):n=Rh(),void 0===e?n:jh.f(n,e)},Nh=pr,Wh=Ih,Fh=xr.f,zh=Nh("unscopables"),Hh=Array.prototype;null==Hh[zh]&&Fh(Hh,zh,{configurable:!0,value:Wh(null)});var Yh,Uh,Bh,Gh=function(t){Hh[zh][t]=!0},Vh=!jn((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})),qh=zn,Kh=wr,Zh=Nn,Jh=Vh,Qh=Qi("IE_PROTO"),Xh=Object,td=Xh.prototype,ed=Jh?Xh.getPrototypeOf:function(t){var e=Zh(t);if(qh(e,Qh))return e[Qh];var n=e.constructor;return Kh(n)&&e instanceof n?n.prototype:e instanceof Xh?td:null},nd=jn,rd=wr,id=jr,od=ed,ad=Io,ud=pr("iterator"),sd=!1;[].keys&&("next"in(Bh=[].keys())?(Uh=od(od(Bh)))!==Object.prototype&&(Yh=Uh):sd=!0);var cd=!id(Yh)||nd((function(){var t={};return Yh[ud].call(t)!==t}));cd&&(Yh={}),rd(Yh[ud])||ad(Yh,ud,(function(){return this}));var ld={IteratorPrototype:Yh,BUGGY_SAFARI_ITERATORS:sd},fd=ld.IteratorPrototype,hd=Ih,dd=Gi,pd=Cu,vd=Jl,yd=function(){return this},md=wu,gd=Wr,bd=wr,wd=function(t,e,n,r){var i=e+" Iterator";return t.prototype=hd(fd,{next:dd(+!r,n)}),pd(t,i,!1),vd[i]=yd,t},xd=ed,Od=$u,kd=Cu,Sd=Ki,jd=Io,_d=Jl,Md=Ti.PROPER,Dd=Ti.CONFIGURABLE,Ed=ld.IteratorPrototype,$d=ld.BUGGY_SAFARI_ITERATORS,Pd=pr("iterator"),Ld="keys",Ad="values",Cd="entries",Td=function(){return this},Rd=function(t,e,n,r,i,o,a){wd(n,e,r);var u,s,c,l=function(t){if(t===i&&v)return v;if(!$d&&t in d)return d[t];switch(t){case Ld:case Ad:case Cd:return function(){return new n(this,t)}}return function(){return new n(this)}},f=e+" Iterator",h=!1,d=t.prototype,p=d[Pd]||d["@@iterator"]||i&&d[i],v=!$d&&p||l(i),y="Array"==e&&d.entries||p;if(y&&(u=xd(y.call(new t)))!==Object.prototype&&u.next&&(xd(u)!==Ed&&(Od?Od(u,Ed):bd(u[Pd])||jd(u,Pd,Td)),kd(u,f,!0)),Md&&i==Ad&&p&&p.name!==Ad&&(Dd?Sd(d,"name",Ad):(h=!0,v=function(){return gd(p,this)})),i)if(s={values:l(Ad),keys:o?v:l(Ld),entries:l(Cd)},a)for(c in s)($d||h||!(c in d))&&jd(d,c,s[c]);else md({target:e,proto:!0,forced:$d||h},s);return d[Pd]!==v&&jd(d,Pd,v,{name:i}),_d[e]=v,s},Id=function(t,e){return{value:t,done:e}},Nd=ca,Wd=Gh,Fd=Jl,zd=po,Hd=xr.f,Yd=Rd,Ud=Id,Bd=Or,Gd="Array Iterator",Vd=zd.set,qd=zd.getterFor(Gd),Kd=Yd(Array,"Array",(function(t,e){Vd(this,{type:Gd,target:Nd(t),index:0,kind:e})}),(function(){var t=qd(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,Ud(void 0,!0)):Ud("keys"==n?r:"values"==n?e[r]:[r,e[r]],!1)}),"values"),Zd=Fd.Arguments=Fd.Array;if(Wd("keys"),Wd("values"),Wd("entries"),Bd&&"values"!==Zd.name)try{Hd(Zd,"name",{value:"values"})}catch(t){}var Jd=Wr,Qd=ti,Xd=Jc,tp=Ac,ep=Af;wu({target:"Promise",stat:!0,forced:Ff},{allSettled:function(t){var e=this,n=Xd.f(e),r=n.resolve,i=n.reject,o=tp((function(){var n=Qd(e.resolve),i=[],o=0,a=1;ep(t,(function(t){var u=o++,s=!1;a++,Jd(n,e,t).then((function(t){s||(s=!0,i[u]={status:"fulfilled",value:t},--a||r(i))}),(function(t){s||(s=!0,i[u]={status:"rejected",reason:t},--a||r(i))}))})),--a||r(i)}));return o.error&&i(o.value),n.promise}});var np=qo,rp=String,ip=function(t){if("Symbol"===np(t))throw TypeError("Cannot convert a Symbol value to a string");return rp(t)},op=Pn,ap=ka,up=ip,sp=Tn,cp=op("".charAt),lp=op("".charCodeAt),fp=op("".slice),hp=function(t){return function(e,n){var r,i,o=up(sp(e)),a=ap(n),u=o.length;return a<0||a>=u?t?"":void 0:(r=lp(o,a))<55296||r>56319||a+1===u||(i=lp(o,a+1))<56320||i>57343?t?cp(o,a):r:t?fp(o,a,a+2):i-56320+(r-55296<<10)+65536}},dp={codeAt:hp(!1),charAt:hp(!0)},pp=dp.charAt,vp=ip,yp=po,mp=Rd,gp=Id,bp="String Iterator",wp=yp.set,xp=yp.getterFor(bp);mp(String,"String",(function(t){wp(this,{type:bp,string:vp(t),index:0})}),(function(){var t,e=xp(this),n=e.string,r=e.index;return r>=n.length?gp(void 0,!0):(t=pp(n,r),e.index+=t.length,gp(t,!1))}));var Op={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},kp=Er("span").classList,Sp=kp&&kp.constructor&&kp.constructor.prototype,jp=Sp===Object.prototype?void 0:Sp,_p=dn,Mp=Op,Dp=jp,Ep=Kd,$p=Ki,Pp=pr,Lp=Pp("iterator"),Ap=Pp("toStringTag"),Cp=Ep.values,Tp=function(t,e){if(t){if(t[Lp]!==Cp)try{$p(t,Lp,Cp)}catch(e){t[Lp]=Cp}if(t[Ap]||$p(t,Ap,e),Mp[e])for(var n in Ep)if(t[n]!==Ep[n])try{$p(t,n,Ep[n])}catch(e){t[n]=Ep[n]}}};for(var Rp in Mp)Tp(_p[Rp]&&_p[Rp].prototype,Rp);Tp(Dp,"DOMTokenList");var Ip=Nn,Np=Ma,Wp=La,Fp=function(t){for(var e=Ip(this),n=Wp(e),r=arguments.length,i=Np(r>1?arguments[1]:void 0,n),o=r>2?arguments[2]:void 0,a=void 0===o?n:Np(o,n);a>i;)e[i++]=t;return e},zp=Gh;wu({target:"Array",proto:!0},{fill:Fp}),zp("fill");var Hp=zo,Yp=Array.isArray||function(t){return"Array"==Hp(t)},Up=mi,Bp=xr,Gp=Gi,Vp=function(t,e,n){var r=Up(e);r in t?Bp.f(t,r,Gp(0,n)):t[r]=n},qp=jn,Kp=tr,Zp=pr("species"),Jp=function(t){return Kp>=51||!qp((function(){var e=[];return(e.constructor={})[Zp]=function(){return{foo:1}},1!==e[t](Boolean).foo}))},Qp=wu,Xp=Yp,tv=cs,ev=jr,nv=Ma,rv=La,iv=ca,ov=Vp,av=pr,uv=$s,sv=Jp("slice"),cv=av("species"),lv=Array,fv=Math.max;function hv(t,e,n,r){return new(n||(n=Promise))((function(i,o){function a(t){try{s(r.next(t))}catch(t){o(t)}}function u(t){try{s(r.throw(t))}catch(t){o(t)}}function s(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,u)}s((r=r.apply(t,e||[])).next())}))}function dv(t,e,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(t):r?r.value:e.get(t)}Qp({target:"Array",proto:!0,forced:!sv},{slice:function(t,e){var n,r,i,o=iv(this),a=rv(o),u=nv(t,a),s=nv(void 0===e?a:e,a);if(Xp(o)&&(n=o.constructor,(tv(n)&&(n===lv||Xp(n.prototype))||ev(n)&&null===(n=n[cv]))&&(n=void 0),n===lv||void 0===n))return uv(o,u,s);for(r=new(void 0===n?lv:n)(fv(s-u,0)),i=0;u<s;u++,i++)u in o&&ov(r,i,o[u]);return r.length=i,r}});var pv={exports:{}};!function(t){var e=Object.prototype.hasOwnProperty,n="~";function r(){}function i(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function o(t,e,r,o,a){if("function"!=typeof r)throw new TypeError("The listener must be a function");var u=new i(r,o||t,a),s=n?n+e:e;return t._events[s]?t._events[s].fn?t._events[s]=[t._events[s],u]:t._events[s].push(u):(t._events[s]=u,t._eventsCount++),t}function a(t,e){0==--t._eventsCount?t._events=new r:delete t._events[e]}function u(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),u.prototype.eventNames=function(){var t,r,i=[];if(0===this._eventsCount)return i;for(r in t=this._events)e.call(t,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(t)):i},u.prototype.listeners=function(t){var e=n?n+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,o=r.length,a=new Array(o);i<o;i++)a[i]=r[i].fn;return a},u.prototype.listenerCount=function(t){var e=n?n+t:t,r=this._events[e];return r?r.fn?1:r.length:0},u.prototype.emit=function(t,e,r,i,o,a){var u=n?n+t:t;if(!this._events[u])return!1;var s,c,l=this._events[u],f=arguments.length;if(l.fn){switch(l.once&&this.removeListener(t,l.fn,void 0,!0),f){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,e),!0;case 3:return l.fn.call(l.context,e,r),!0;case 4:return l.fn.call(l.context,e,r,i),!0;case 5:return l.fn.call(l.context,e,r,i,o),!0;case 6:return l.fn.call(l.context,e,r,i,o,a),!0}for(c=1,s=new Array(f-1);c<f;c++)s[c-1]=arguments[c];l.fn.apply(l.context,s)}else{var h,d=l.length;for(c=0;c<d;c++)switch(l[c].once&&this.removeListener(t,l[c].fn,void 0,!0),f){case 1:l[c].fn.call(l[c].context);break;case 2:l[c].fn.call(l[c].context,e);break;case 3:l[c].fn.call(l[c].context,e,r);break;case 4:l[c].fn.call(l[c].context,e,r,i);break;default:if(!s)for(h=1,s=new Array(f-1);h<f;h++)s[h-1]=arguments[h];l[c].fn.apply(l[c].context,s)}}return!0},u.prototype.on=function(t,e,n){return o(this,t,e,n,!1)},u.prototype.once=function(t,e,n){return o(this,t,e,n,!0)},u.prototype.removeListener=function(t,e,r,i){var o=n?n+t:t;if(!this._events[o])return this;if(!e)return a(this,o),this;var u=this._events[o];if(u.fn)u.fn!==e||i&&!u.once||r&&u.context!==r||a(this,o);else{for(var s=0,c=[],l=u.length;s<l;s++)(u[s].fn!==e||i&&!u[s].once||r&&u[s].context!==r)&&c.push(u[s]);c.length?this._events[o]=1===c.length?c[0]:c:a(this,o)}return this},u.prototype.removeAllListeners=function(t){var e;return t?(e=n?n+t:t,this._events[e]&&a(this,e)):(this._events=new r,this._eventsCount=0),this},u.prototype.off=u.prototype.removeListener,u.prototype.addListener=u.prototype.on,u.prefixed=n,u.EventEmitter=u,t.exports=u}(pv);var vv=fn(pv.exports),yv=Array.isArray;function mv(){if(!arguments.length)return[];var t=arguments[0];return yv(t)?t:[t]}var gv=Yp,bv=cs,wv=jr,xv=pr("species"),Ov=Array,kv=function(t){var e;return gv(t)&&(e=t.constructor,(bv(e)&&(e===Ov||gv(e.prototype))||wv(e)&&null===(e=e[xv]))&&(e=void 0)),void 0===e?Ov:e},Sv=function(t,e){return new(kv(t))(0===e?0:e)},jv=Ds,_v=aa,Mv=Nn,Dv=La,Ev=Sv,$v=Pn([].push),Pv=function(t){var e=1==t,n=2==t,r=3==t,i=4==t,o=6==t,a=7==t,u=5==t||o;return function(s,c,l,f){for(var h,d,p=Mv(s),v=_v(p),y=jv(c,l),m=Dv(v),g=0,b=f||Ev,w=e?b(s,m):n||a?b(s,0):void 0;m>g;g++)if((u||g in v)&&(d=y(h=v[g],g,p),t))if(e)w[g]=d;else if(d)switch(t){case 3:return!0;case 5:return h;case 6:return g;case 2:$v(w,h)}else switch(t){case 4:return!1;case 7:$v(w,h)}return o?-1:r||i?i:w}},Lv={forEach:Pv(0),map:Pv(1),filter:Pv(2),some:Pv(3),every:Pv(4),find:Pv(5),findIndex:Pv(6),filterReject:Pv(7)},Av=Lv.map;wu({target:"Array",proto:!0,forced:!Jp("map")},{map:function(t){return Av(this,t,arguments.length>1?arguments[1]:void 0)}});var Cv=Or,Tv=Pn,Rv=Wr,Iv=jn,Nv=yh,Wv=Va,Fv=Qo,zv=Nn,Hv=aa,Yv=Object.assign,Uv=Object.defineProperty,Bv=Tv([].concat),Gv=!Yv||Iv((function(){if(Cv&&1!==Yv({b:1},Yv(Uv({},"a",{enumerable:!0,get:function(){Uv(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach((function(t){e[t]=t})),7!=Yv({},t)[n]||Nv(Yv({},e)).join("")!=r}))?function(t,e){for(var n=zv(t),r=arguments.length,i=1,o=Wv.f,a=Fv.f;r>i;)for(var u,s=Hv(arguments[i++]),c=o?Bv(Nv(s),o(s)):Nv(s),l=c.length,f=0;l>f;)u=c[f++],Cv&&!Rv(a,s,u)||(n[u]=s[u]);return n}:Yv,Vv=Gv;wu({target:"Object",stat:!0,arity:2,forced:Object.assign!==Vv},{assign:Vv});var qv={exports:{}},Kv={},Zv=Ma,Jv=La,Qv=Vp,Xv=Array,ty=Math.max,ey=function(t,e,n){for(var r=Jv(t),i=Zv(e,r),o=Zv(void 0===n?r:n,r),a=Xv(ty(o-i,0)),u=0;i<o;i++,u++)Qv(a,u,t[i]);return a.length=u,a},ny=zo,ry=ca,iy=ba.f,oy=ey,ay="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];Kv.f=function(t){return ay&&"Window"==ny(t)?function(t){try{return iy(t)}catch(t){return oy(ay)}}(t):iy(ry(t))};var uy=jn((function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}})),sy=jn,cy=jr,ly=zo,fy=uy,hy=Object.isExtensible,dy=sy((function(){hy(1)}))||fy?function(t){return!!cy(t)&&((!fy||"ArrayBuffer"!=ly(t))&&(!hy||hy(t)))}:hy,py=!jn((function(){return Object.isExtensible(Object.preventExtensions({}))})),vy=wu,yy=Pn,my=Xi,gy=jr,by=zn,wy=xr.f,xy=ba,Oy=Kv,ky=dy,Sy=py,jy=!1,_y=Gn("meta"),My=0,Dy=function(t){wy(t,_y,{value:{objectID:"O"+My++,weakData:{}}})},Ey=qv.exports={enable:function(){Ey.enable=function(){},jy=!0;var t=xy.f,e=yy([].splice),n={};n[_y]=1,t(n).length&&(xy.f=function(n){for(var r=t(n),i=0,o=r.length;i<o;i++)if(r[i]===_y){e(r,i,1);break}return r},vy({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:Oy.f}))},fastKey:function(t,e){if(!gy(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!by(t,_y)){if(!ky(t))return"F";if(!e)return"E";Dy(t)}return t[_y].objectID},getWeakData:function(t,e){if(!by(t,_y)){if(!ky(t))return!0;if(!e)return!1;Dy(t)}return t[_y].weakData},onFreeze:function(t){return Sy&&jy&&ky(t)&&!by(t,_y)&&Dy(t),t}};my[_y]=!0;var $y=qv.exports,Py=wr,Ly=jr,Ay=$u,Cy=wu,Ty=dn,Ry=Pn,Iy=hu,Ny=Io,Wy=$y,Fy=Af,zy=Bu,Hy=wr,Yy=Ln,Uy=jr,By=jn,Gy=Nf,Vy=Cu,qy=function(t,e,n){var r,i;return Ay&&Py(r=e.constructor)&&r!==n&&Ly(i=r.prototype)&&i!==n.prototype&&Ay(t,i),t},Ky=function(t,e,n){var r=-1!==t.indexOf("Map"),i=-1!==t.indexOf("Weak"),o=r?"set":"add",a=Ty[t],u=a&&a.prototype,s=a,c={},l=function(t){var e=Ry(u[t]);Ny(u,t,"add"==t?function(t){return e(this,0===t?0:t),this}:"delete"==t?function(t){return!(i&&!Uy(t))&&e(this,0===t?0:t)}:"get"==t?function(t){return i&&!Uy(t)?void 0:e(this,0===t?0:t)}:"has"==t?function(t){return!(i&&!Uy(t))&&e(this,0===t?0:t)}:function(t,n){return e(this,0===t?0:t,n),this})};if(Iy(t,!Hy(a)||!(i||u.forEach&&!By((function(){(new a).entries().next()})))))s=n.getConstructor(e,t,r,o),Wy.enable();else if(Iy(t,!0)){var f=new s,h=f[o](i?{}:-0,1)!=f,d=By((function(){f.has(1)})),p=Gy((function(t){new a(t)})),v=!i&&By((function(){for(var t=new a,e=5;e--;)t[o](e,e);return!t.has(-0)}));p||((s=e((function(t,e){zy(t,u);var n=qy(new a,t,s);return Yy(e)||Fy(e,n[o],{that:n,AS_ENTRIES:r}),n}))).prototype=u,u.constructor=s),(d||v)&&(l("delete"),l("has"),r&&l("get")),(v||h)&&l(o),i&&u.clear&&delete u.clear}return c[t]=s,Cy({global:!0,constructor:!0,forced:s!=a},c),Vy(s,t),i||n.setStrong(s,t,r),s},Zy=Io,Jy=function(t,e,n){for(var r in e)Zy(t,r,e[r],n);return t},Qy=Pn,Xy=Jy,tm=$y.getWeakData,em=Bu,nm=Rr,rm=Ln,im=jr,om=Af,am=zn,um=po.set,sm=po.getterFor,cm=Lv.find,lm=Lv.findIndex,fm=Qy([].splice),hm=0,dm=function(t){return t.frozen||(t.frozen=new pm)},pm=function(){this.entries=[]},vm=function(t,e){return cm(t.entries,(function(t){return t[0]===e}))};pm.prototype={get:function(t){var e=vm(this,t);if(e)return e[1]},has:function(t){return!!vm(this,t)},set:function(t,e){var n=vm(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=lm(this.entries,(function(e){return e[0]===t}));return~e&&fm(this.entries,e,1),!!~e}};var ym,mm,gm={getConstructor:function(t,e,n,r){var i=t((function(t,i){em(t,o),um(t,{type:e,id:hm++,frozen:void 0}),rm(i)||om(i,t[r],{that:t,AS_ENTRIES:n})})),o=i.prototype,a=sm(e),u=function(t,e,n){var r=a(t),i=tm(nm(e),!0);return!0===i?dm(r).set(e,n):i[r.id]=n,t};return Xy(o,{delete:function(t){var e=a(this);if(!im(t))return!1;var n=tm(t);return!0===n?dm(e).delete(t):n&&am(n,e.id)&&delete n[e.id]},has:function(t){var e=a(this);if(!im(t))return!1;var n=tm(t);return!0===n?dm(e).has(t):n&&am(n,e.id)}}),Xy(o,n?{get:function(t){var e=a(this);if(im(t)){var n=tm(t);return!0===n?dm(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return u(this,t,e)}}:{add:function(t){return u(this,t,!0)}}),i}};Ky("WeakSet",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),gm),function(t){t[t.SCROLL_NONE=0]="SCROLL_NONE",t[t.SCROLL_BACKWARD=1]="SCROLL_BACKWARD",t[t.SCROLL_FORWARD=2]="SCROLL_FORWARD"}(ym||(ym={})),function(t){t[t.TOP=0]="TOP",t[t.RIGHT=1]="RIGHT",t[t.BOTTOM=2]="BOTTOM",t[t.LEFT=3]="LEFT"}(mm||(mm={}));var bm,wm,xm,Om="red",km=[0,100],Sm=function(){function t(e){en(this,t),bm.add(this),this.calendar=e,this.maxDomainReached=!1,this.minDomainReached=!1}return rn(t,[{key:"loadNewDomains",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ym.SCROLL_NONE,r=this.calendar.options.options,i=this.calendar.templateCollection,o=r.date.min?i.get(r.domain.type).extractUnit(+r.date.min):void 0,a=r.date.max?i.get(r.domain.type).extractUnit(+r.date.max):void 0,u=this.calendar.domainCollection;return dv(this,bm,"m",wm).call(this,t,o,a,n)?ym.SCROLL_NONE:(n!==ym.SCROLL_NONE&&t.clamp(o,a).slice(r.range,n===ym.SCROLL_FORWARD),u.merge(t,r.range,(function(n,o){var a=null;return a=t.at(o+1)?t.at(o+1):e.calendar.dateHelper.intervals(r.domain.type,n,2).pop(),i.get(r.subDomain.type).mapping(n,a).map((function(t){return Object.assign(Object.assign({},t),{v:r.data.defaultValue})}))})),dv(this,bm,"m",xm).call(this,u.min,u.max,o,a),n===ym.SCROLL_BACKWARD?this.calendar.eventEmitter.emit("domainsLoaded",[u.min]):n===ym.SCROLL_FORWARD&&this.calendar.eventEmitter.emit("domainsLoaded",[u.max]),n)}},{key:"jumpTo",value:function(t,e){var n=this.calendar,r=n.domainCollection,i=n.options,o=new Date(r.min),a=new Date(r.max);return t<o?this.loadNewDomains(this.calendar.createDomainCollection(t,o,!1),ym.SCROLL_BACKWARD):e?this.loadNewDomains(this.calendar.createDomainCollection(t,i.options.range),o<t?ym.SCROLL_FORWARD:ym.SCROLL_BACKWARD):t>a?this.loadNewDomains(this.calendar.createDomainCollection(a,t,!1),ym.SCROLL_FORWARD):ym.SCROLL_NONE}}]),t}();bm=new WeakSet,wm=function(t,e,n,r){return!!(n&&t.max>=n&&this.maxDomainReached&&r===ym.SCROLL_FORWARD)||!!(e&&t.min<=e&&this.minDomainReached&&r===ym.SCROLL_BACKWARD)},xm=function(t,e,n,r){if(n){var i=t<=n;this.calendar.eventEmitter.emit(i?"minDateReached":"minDateNotReached"),this.minDomainReached=i}if(r){var o=e>=r;this.calendar.eventEmitter.emit(o?"maxDateReached":"maxDateNotReached"),this.maxDomainReached=o}};var jm=TypeError,_m=wu,Mm=jn,Dm=Yp,Em=jr,$m=Nn,Pm=La,Lm=function(t){if(t>9007199254740991)throw jm("Maximum allowed index exceeded");return t},Am=Vp,Cm=Sv,Tm=Jp,Rm=tr,Im=pr("isConcatSpreadable"),Nm=Rm>=51||!Mm((function(){var t=[];return t[Im]=!1,t.concat()[0]!==t})),Wm=function(t){if(!Em(t))return!1;var e=t[Im];return void 0!==e?!!e:Dm(t)};_m({target:"Array",proto:!0,arity:1,forced:!Nm||!Tm("concat")},{concat:function(t){var e,n,r,i,o,a=$m(this),u=Cm(a,0),s=0;for(e=-1,r=arguments.length;e<r;e++)if(Wm(o=-1===e?a:arguments[e]))for(i=Pm(o),Lm(s+i),n=0;n<i;n++,s++)n in o&&Am(u,s,o[n]);else Lm(s+1),Am(u,s++,o);return u.length=s,u}});var Fm=jn,zm=function(t,e){var n=[][t];return!!n&&Fm((function(){n.call(null,e||function(){return 1},1)}))},Hm=wu,Ym=aa,Um=ca,Bm=zm,Gm=Pn([].join);Hm({target:"Array",proto:!0,forced:Ym!=Object||!Bm("join",",")},{join:function(t){return Gm(Um(this),void 0===t?",":t)}});var Vm=Ih,qm=Iu,Km=Jy,Zm=Ds,Jm=Bu,Qm=Ln,Xm=Af,tg=Rd,eg=Id,ng=Hu,rg=Or,ig=$y.fastKey,og=po.set,ag=po.getterFor,ug={getConstructor:function(t,e,n,r){var i=t((function(t,i){Jm(t,o),og(t,{type:e,index:Vm(null),first:void 0,last:void 0,size:0}),rg||(t.size=0),Qm(i)||Xm(i,t[r],{that:t,AS_ENTRIES:n})})),o=i.prototype,a=ag(e),u=function(t,e,n){var r,i,o=a(t),u=s(t,e);return u?u.value=n:(o.last=u={index:i=ig(e,!0),key:e,value:n,previous:r=o.last,next:void 0,removed:!1},o.first||(o.first=u),r&&(r.next=u),rg?o.size++:t.size++,"F"!==i&&(o.index[i]=u)),t},s=function(t,e){var n,r=a(t),i=ig(e);if("F"!==i)return r.index[i];for(n=r.first;n;n=n.next)if(n.key==e)return n};return Km(o,{clear:function(){for(var t=a(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,rg?t.size=0:this.size=0},delete:function(t){var e=this,n=a(e),r=s(e,t);if(r){var i=r.next,o=r.previous;delete n.index[r.index],r.removed=!0,o&&(o.next=i),i&&(i.previous=o),n.first==r&&(n.first=i),n.last==r&&(n.last=o),rg?n.size--:e.size--}return!!r},forEach:function(t){for(var e,n=a(this),r=Zm(t,arguments.length>1?arguments[1]:void 0);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!s(this,t)}}),Km(o,n?{get:function(t){var e=s(this,t);return e&&e.value},set:function(t,e){return u(this,0===t?0:t,e)}}:{add:function(t){return u(this,t=0===t?0:t,t)}}),rg&&qm(o,"size",{configurable:!0,get:function(){return a(this).size}}),i},setStrong:function(t,e,n){var r=e+" Iterator",i=ag(e),o=ag(r);tg(t,e,(function(t,e){og(this,{type:r,target:t,state:i(t),kind:e,last:void 0})}),(function(){for(var t=o(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?eg("keys"==e?n.key:"values"==e?n.value:[n.key,n.value],!1):(t.target=void 0,eg(void 0,!0))}),n?"entries":"values",!n,!0),ng(e)}};Ky("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),ug);var sg=Zr,cg=TypeError,lg=ey,fg=Math.floor,hg=function(t,e){var n=t.length,r=fg(n/2);return n<8?dg(t,e):pg(t,hg(lg(t,0,r),e),hg(lg(t,r),e),e)},dg=function(t,e){for(var n,r,i=t.length,o=1;o<i;){for(r=o,n=t[o];r&&e(t[r-1],n)>0;)t[r]=t[--r];r!==o++&&(t[r]=n)}return t},pg=function(t,e,n,r){for(var i=e.length,o=n.length,a=0,u=0;a<i||u<o;)t[a+u]=a<i&&u<o?r(e[a],n[u])<=0?e[a++]:n[u++]:a<i?e[a++]:n[u++];return t},vg=hg,yg=Vn.match(/firefox\/(\d+)/i),mg=!!yg&&+yg[1],gg=/MSIE|Trident/.test(Vn),bg=Vn.match(/AppleWebKit\/(\d+)\./),wg=!!bg&&+bg[1],xg=wu,Og=Pn,kg=ti,Sg=Nn,jg=La,_g=function(t,e){if(!delete t[e])throw cg("Cannot delete property "+sg(e)+" of "+sg(t))},Mg=ip,Dg=jn,Eg=vg,$g=zm,Pg=mg,Lg=gg,Ag=tr,Cg=wg,Tg=[],Rg=Og(Tg.sort),Ig=Og(Tg.push),Ng=Dg((function(){Tg.sort(void 0)})),Wg=Dg((function(){Tg.sort(null)})),Fg=$g("sort"),zg=!Dg((function(){if(Ag)return Ag<70;if(!(Pg&&Pg>3)){if(Lg)return!0;if(Cg)return Cg<603;var t,e,n,r,i="";for(t=65;t<76;t++){switch(e=String.fromCharCode(t),t){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(r=0;r<47;r++)Tg.push({k:e+r,v:n})}for(Tg.sort((function(t,e){return e.v-t.v})),r=0;r<Tg.length;r++)e=Tg[r].k.charAt(0),i.charAt(i.length-1)!==e&&(i+=e);return"DGBEFHACIJK"!==i}}));xg({target:"Array",proto:!0,forced:Ng||!Wg||!Fg||!zg},{sort:function(t){void 0!==t&&kg(t);var e=Sg(this);if(zg)return void 0===t?Rg(e):Rg(e,t);var n,r,i=[],o=jg(e);for(r=0;r<o;r++)r in e&&Ig(i,e[r]);for(Eg(i,function(t){return function(e,n){return void 0===n?-1:void 0===e?1:void 0!==t?+t(e,n)||0:Mg(e)>Mg(n)?1:-1}}(t)),n=jg(i),r=0;r<n;)e[r]=i[r++];for(;r<o;)_g(e,r++);return e}});var Hg,Yg,Ug,Bg=Lv.forEach,Gg=dn,Vg=Op,qg=jp,Kg=zm("forEach")?[].forEach:function(t){return Bg(this,t,arguments.length>1?arguments[1]:void 0)},Zg=Ki,Jg=function(t){if(t&&t.forEach!==Kg)try{Zg(t,"forEach",Kg)}catch(e){t.forEach=Kg}};for(var Qg in Vg)Vg[Qg]&&Jg(Gg[Qg]&&Gg[Qg].prototype);function Xg(t){return"top"===t||"bottom"===t}function tb(t){return t[mm.LEFT]+t[mm.RIGHT]}function eb(t){return t[mm.TOP]+t[mm.BOTTOM]}Jg(qg);var nb,rb,ib=function(){function t(e,n){en(this,t),Hg.add(this),this.calendar=e,this.domainPainter=n,this.collection=new Map,this.scrollDirection=ym.SCROLL_FORWARD}return rn(t,[{key:"get",value:function(t){return this.collection.get(t)}},{key:"update",value:function(t,e){var n=this,r=this.calendar.options.options,i=r.verticalOrientation,o=r.domain;this.scrollDirection=e;var a={width:0,height:0},u=0,s=e===ym.SCROLL_FORWARD?-1:1,c=t.keys;return"desc"===this.calendar.options.options.domain.sort&&(c.reverse(),s*=-1),t.yankedDomains.forEach((function(t){u+=n.collection.get(t)[i?"height":"width"]})),t.yankedDomains.forEach((function(t){var e=n.collection.get(t);n.collection.set(t,Object.assign(Object.assign({},e),{x:i?e.x:e.x+u*s,y:i?e.y+u*s:e.y}))})),c.forEach((function(t){var e=dv(n,Hg,"m",Yg).call(n,t),r=dv(n,Hg,"m",Ug).call(n,t);i?(a.height+=r,a.width=Math.max(e,a.width)):(a.width+=e,a.height=Math.max(r,a.height));var c=a.width-e,l=a.height-r;n.collection.set(t,Object.assign(Object.assign({},n.collection.get(t)),{x:i?0:c,y:i?l:0,pre_x:i?c:c-u*s,pre_y:i?l-u*s:l,width:e,height:r,inner_width:e-(i?0:o.gutter),inner_height:r-(i?o.gutter:0)}))})),a}}]),t}();Hg=new WeakSet,Yg=function(t){var e=this.calendar.options.options,n=e.domain,r=e.subDomain,i=e.x,o=e.verticalOrientation,a=this.calendar.templateCollection.get(r.type).columnsCount(t),u=(r.width+r.gutter)*a-r.gutter;return tb(n.padding)+i.domainHorizontalLabelWidth+(o?0:n.gutter)+u},Ug=function(t){var e=this.calendar.options.options,n=e.domain,r=e.subDomain,i=e.x,o=e.verticalOrientation,a=this.calendar.templateCollection.get(r.type).rowsCount(t),u=(r.height+r.gutter)*a-r.gutter;return eb(n.padding)+u+(o?n.gutter:0)+i.domainVerticalLabelHeight};var ob=".ch-domain",ab=function(){function t(e){en(this,t),nb.add(this),this.calendar=e,this.coordinates=new ib(e,this),this.root=null,this.dimensions={width:0,height:0}}return rn(t,[{key:"paint",value:function(t,e){var n=this,r=this.calendar.options.options.animationDuration,i=e.transition().duration(r),o=this.coordinates;this.dimensions=o.update(this.calendar.domainCollection,t);var a=[];return this.root=e.selectAll(ob).data(this.calendar.domainCollection.keys,(function(t){return t})).join((function(t){return t.append("svg").attr("x",(function(t){return o.get(t).pre_x})).attr("y",(function(t){return o.get(t).pre_y})).attr("width",(function(t){return o.get(t).inner_width})).attr("height",(function(t){return o.get(t).inner_height})).attr("class",(function(t){return dv(n,nb,"m",rb).call(n,t)})).call((function(t){return t.append("rect").attr("width",(function(t){return o.get(t).inner_width})).attr("height",(function(t){return o.get(t).inner_height})).attr("class","".concat(ob.slice(1),"-bg"))})).call((function(t){return a.push(t.transition(i).attr("x",(function(t){return o.get(t).x})).attr("y",(function(t){return o.get(t).y})).end())}))}),(function(t){return t.call((function(t){return a.push(t.transition(i).attr("x",(function(t){return o.get(t).x})).attr("y",(function(t){return o.get(t).y})).attr("width",(function(t){return o.get(t).inner_width})).attr("height",(function(t){return o.get(t).inner_height})).end())})).call((function(t){return a.push(t.selectAll("".concat(ob,"-bg")).transition(i).attr("width",(function(t){return o.get(t).inner_width})).attr("height",(function(t){return o.get(t).inner_height})).end())}))}),(function(t){return t.call((function(t){return a.push(t.transition(i).attr("x",(function(t){return o.get(t).x})).attr("y",(function(t){return o.get(t).y})).remove().end())}))})),a}}]),t}();nb=new WeakSet,rb=function(t){var e=ob.slice(1),n=this.calendar.dateHelper.date(t);switch(this.calendar.options.options.domain.type){case"hour":e+=" h_".concat(n.hour());break;case"day":e+=" d_".concat(n.date()," dy_").concat(n.format("d")+1);break;case"week":e+=" w_".concat(n.week());break;case"month":e+=" m_".concat(n.month()+1);break;case"year":e+=" y_".concat(n.year())}return e};var ub=Ia.includes,sb=Gh;wu({target:"Array",proto:!0,forced:jn((function(){return!Array(1).includes()}))},{includes:function(t){return ub(this,t,arguments.length>1?arguments[1]:void 0)}}),sb("includes");var cb=Lv.filter;wu({target:"Array",proto:!0,forced:!Jp("filter")},{filter:function(t){return cb(this,t,arguments.length>1?arguments[1]:void 0)}});var lb=ti,fb=Nn,hb=aa,db=La,pb=TypeError,vb=function(t){return function(e,n,r,i){lb(n);var o=fb(e),a=hb(o),u=db(o),s=t?u-1:0,c=t?-1:1;if(r<2)for(;;){if(s in a){i=a[s],s+=c;break}if(s+=c,t?s<0:u<=s)throw pb("Reduce of empty array with no initial value")}for(;t?s>=0:u>s;s+=c)s in a&&(i=n(i,a[s],s,o));return i}},yb={left:vb(!1),right:vb(!0)}.left;wu({target:"Array",proto:!0,forced:!xu&&tr>79&&tr<83||!zm("reduce")},{reduce:function(t){var e=arguments.length;return yb(this,t,e,e>1?arguments[1]:void 0)}});var mb=Rr,gb=bf,bb=Ds,wb=Wr,xb=Nn,Ob=function(t,e,n,r){try{return r?e(mb(n)[0],n[1]):e(n)}catch(e){gb(t,"throw",e)}},kb=ef,Sb=cs,jb=La,_b=Vp,Mb=vf,Db=sf,Eb=Array,$b=function(t){var e=xb(t),n=Sb(this),r=arguments.length,i=r>1?arguments[1]:void 0,o=void 0!==i;o&&(i=bb(i,r>2?arguments[2]:void 0));var a,u,s,c,l,f,h=Db(e),d=0;if(!h||this===Eb&&kb(h))for(a=jb(e),u=n?new this(a):Eb(a);a>d;d++)f=o?i(e[d],d):e[d],_b(u,d,f);else for(l=(c=Mb(e,h)).next,u=n?new this:[];!(s=wb(l,c)).done;d++)f=o?Ob(c,i,[s.value,d],!0):s.value,_b(u,d,f);return u.length=d,u};wu({target:"Array",stat:!0,forced:!Nf((function(t){Array.from(t)}))},{from:$b});var Pb,Lb,Ab,Cb,Tb="\t\n\v\f\r    â€â€‚         âŸã€€\u2028\u2029\ufeff",Rb=Tn,Ib=ip,Nb=Tb,Wb=Pn("".replace),Fb=RegExp("^["+Nb+"]+"),zb=RegExp("(^|[^"+Nb+"])["+Nb+"]+$"),Hb=function(t){return function(e){var n=Ib(Rb(e));return 1&t&&(n=Wb(n,Fb,"")),2&t&&(n=Wb(n,zb,"$1")),n}},Yb={start:Hb(1),end:Hb(2),trim:Hb(3)},Ub=dn,Bb=jn,Gb=Pn,Vb=ip,qb=Yb.trim,Kb=Tb,Zb=Ub.parseInt,Jb=Ub.Symbol,Qb=Jb&&Jb.iterator,Xb=/^[+-]?0x/i,tw=Gb(Xb.exec),ew=8!==Zb(Kb+"08")||22!==Zb(Kb+"0x16")||Qb&&!Bb((function(){Zb(Object(Qb))}))?function(t,e){var n=qb(Vb(t));return Zb(n,e>>>0||(tw(Xb,n)?16:10))}:Zb;wu({global:!0,forced:parseInt!=ew},{parseInt:ew});var nw,rw,iw,ow,aw,uw,sw,cw={year:"YYYY",month:"MMMM",week:"wo [week] YYYY",xDay:"Do MMM",ghDay:"Do MMM",day:"Do MMM",hour:"HH:00",minute:"HH:mm"},lw=function(){function t(e,n,r,i){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(en(this,t),Pb.add(this),this.collection=new Map,this.dateHelper=e,n&&r&&i){var a=this.dateHelper.intervals(n,r,i,o).map((function(t){return mv(t)}));this.collection=new Map(a)}this.min=0,this.max=0,this.keys=[],this.yankedDomains=[],this.collection.size>0&&dv(this,Pb,"m",Cb).call(this)}return rn(t,[{key:"has",value:function(t){return this.collection.has(t)}},{key:"get",value:function(t){return this.collection.get(t)}},{key:"forEach",value:function(t){return this.collection.forEach(t)}},{key:"at",value:function(t){return this.keys[t]}},{key:"clamp",value:function(t,e){var n=this;return t&&this.min<t&&this.keys.filter((function(e){return e<t})).forEach((function(t){return n.collection.delete(t)})),e&&this.max>e&&this.keys.filter((function(t){return t>e})).forEach((function(t){return n.collection.delete(t)})),dv(this,Pb,"m",Cb).call(this),this}},{key:"merge",value:function(t,e,n){var r=this;this.yankedDomains=[],t.keys.forEach((function(t,i){if(!r.has(t)){if(r.collection.size>=e){var o=r.max;t>r.max&&(o=r.min),o&&r.collection.delete(o)&&r.yankedDomains.push(o)}r.collection.set(t,n(t,i)),dv(r,Pb,"m",Cb).call(r)}})),this.yankedDomains=this.yankedDomains.sort((function(t,e){return t-e}))}},{key:"slice",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.keys.length>e&&((n?this.keys.slice(0,-e):this.keys.slice(e)).forEach((function(e){t.collection.delete(e)})),dv(this,Pb,"m",Cb).call(this));return this}},{key:"fill",value:function(t,e,n){var r=this,i=e.x,o=e.y,a=e.groupY,u=e.defaultValue,s=this.groupRecords(t,i,n);this.keys.forEach((function(t){var e=s.get(t)||{};dv(r,Pb,"m",Lb).call(r,t,e,o,a,u)}))}},{key:"groupRecords",value:function(t,e,n){var r=this,i=new Map,o=new Map;return this.keys.forEach((function(t){r.get(t).forEach((function(e){o.set(e.t,t)}))})),t.forEach((function(t){var a=r.extractTimestamp(t,e,n);if(o.has(a)){var u=o.get(a),s=i.get(u)||{};s[a]||(s[a]=[]),s[a].push(t),i.set(u,s)}})),i}},{key:"groupValues",value:function(t,e){var n=t.filter((function(t){return null!==t}));if("string"==typeof e){if(n.every((function(t){return"number"==typeof t})))switch(e){case"sum":return n.reduce((function(t,e){return t+e}),0);case"count":return n.length;case"min":return Math.min.apply(Math,an(n))||null;case"max":return Math.max.apply(Math,an(n))||null;case"average":return n.length>0?n.reduce((function(t,e){return t+e}),0)/n.length:null;default:return null}return"count"===e?n.length:null}return"function"==typeof e?e(n):null}},{key:"extractTimestamp",value:function(t,e,n){var r="function"==typeof e?e(t):t[e];return"string"==typeof r&&(r=+new Date(r)),n(r)}}]),t}();Pb=new WeakSet,Lb=function(t,e,n,r,i){var o=this;this.get(t).forEach((function(a,u){var s=i;e.hasOwnProperty(a.t)&&(s=o.groupValues(dv(o,Pb,"m",Ab).call(o,e[a.t],n),r)),o.get(t)[u].v=s}))},Ab=function(t,e){return t.map((function(t){return"function"==typeof e?e(t):t[e]}))},Cb=function(){this.keys=Array.from(this.collection.keys()).map((function(t){return parseInt(t,10)})).sort((function(t,e){return t-e}));var t=this.keys;return this.min=t[0],this.max=t[t.length-1],this.keys};var fw=".ch-domain-text",hw=function(){function t(e){en(this,t),nw.add(this),this.calendar=e}return rn(t,[{key:"paint",value:function(t){var e=this,n=this.calendar.options.options.domain,r=n.label,i=n.type,o=this.calendar.dateHelper,a=r.text;null!==a&&""!==a&&(void 0===a&&(a=cw[i]),t.selectAll(fw).data((function(t){return[t]}),(function(t){return t})).join((function(t){return t.append("text").attr("class",fw.slice(1)).attr("x",(function(t){return dv(e,nw,"m",iw).call(e,t)})).attr("y",(function(t){return dv(e,nw,"m",ow).call(e,t)})).attr("text-anchor",r.textAlign).attr("dominant-baseline",(function(){return dv(e,nw,"m",rw).call(e)})).text((function(t,e,n){return o.format(t,a,n[e])})).call((function(t){return dv(e,nw,"m",sw).call(e,t)}))}),(function(t){t.attr("x",(function(t){return dv(e,nw,"m",iw).call(e,t)})).attr("y",(function(t){return dv(e,nw,"m",ow).call(e,t)})).attr("text-anchor",r.textAlign).attr("dominant-baseline",(function(){return dv(e,nw,"m",rw).call(e)})).text((function(t,e,n){return o.format(t,a,n[e])})).call((function(t){return dv(e,nw,"m",sw).call(e,t)}))})))}}]),t}();nw=new WeakSet,rw=function(){var t=this.calendar.options.options.domain.label,e=t.position,n=t.rotate;return Xg(e)?"middle":"left"===n&&"left"===e||"right"===n&&"right"===e?"bottom":"hanging"},iw=function(t){var e=this.calendar.options.options.domain,n=e.padding,r=e.label,i=r.position,o=r.textAlign,a=r.offset,u=this.calendar.options.options.x.domainHorizontalLabelWidth,s=n[mm.LEFT];return"right"===i&&(s+=dv(this,nw,"m",aw).call(this,t)),"middle"===o&&(["top","bottom"].includes(i)?s+=dv(this,nw,"m",aw).call(this,t)/2:s+=u/2),"end"===o&&(Xg(i)?s+=dv(this,nw,"m",aw).call(this,t):s+=u),s+a.x},ow=function(t){var e=this.calendar.options.options,n=e.domain,r=n.label,i=r.position,o=r.offset,a=n.padding,u=e.x,s=a[mm.TOP]+u.domainVerticalLabelHeight/2;return"bottom"===i&&(s+=dv(this,nw,"m",uw).call(this,t)),s+o.y},aw=function(t){var e=this.calendar.options.options,n=e.domain.padding,r=e.x.domainHorizontalLabelWidth;return this.calendar.calendarPainter.domainsContainerPainter.domainPainter.coordinates.get(t).inner_width-r-tb(n)},uw=function(t){var e=this.calendar.options.options,n=e.x.domainVerticalLabelHeight,r=e.domain.padding;return this.calendar.calendarPainter.domainsContainerPainter.domainPainter.coordinates.get(t).inner_height-n-eb(r)},sw=function(t){var e=this,n=this.calendar.options.options,r=n.domain.label,i=r.rotate,o=r.textAlign,a=r.position,u=n.x.domainHorizontalLabelWidth;switch(i){case"right":t.attr("transform",(function(t){var n=dv(e,nw,"m",aw).call(e,t),r=dv(e,nw,"m",uw).call(e,t),i=["rotate(90, ".concat("right"===a?n:u,", 0)")];switch(a){case"right":"middle"===o?i.push("translate(".concat(r/2-u/2,")")):"end"===o&&i.push("translate(".concat(r-u,")"));break;case"left":"start"===o?i.push("translate(".concat(u,")")):"middle"===o?i.push("translate(".concat(u/2+r/2,")")):"end"===o&&i.push("translate(".concat(r,")"))}return i.join(",")}));break;case"left":t.attr("transform",(function(t){var n=dv(e,nw,"m",aw).call(e,t),r=dv(e,nw,"m",uw).call(e,t),i=["rotate(270, ".concat("right"===a?n:u,", 0)")];switch(a){case"right":"start"===o?i.push("translate(-".concat(r,")")):"middle"===o?i.push("translate(-".concat(r/2+u/2,")")):"end"===o&&i.push("translate(-".concat(u,")"));break;case"left":"start"===o?i.push("translate(".concat(u-r,")")):"middle"===o&&i.push("translate(".concat(u/2-r/2,")"))}return i.join(",")}))}};var dw,pw,vw,yw,mw,gw,bw,ww=Ti.PROPER,xw=jn,Ow=Tb,kw=Yb.trim;wu({target:"String",proto:!0,forced:function(t){return xw((function(){return!!Ow[t]()||"â€‹Â…á Ž"!=="â€‹Â…á Ž"[t]()||ww&&Ow[t].name!==t}))}("trim")},{trim:function(){return kw(this)}});var Sw,jw,_w,Mw,Dw=".ch-subdomain",Ew=function(){function t(e){en(this,t),dw.add(this),this.calendar=e,this.root=null}return rn(t,[{key:"paint",value:function(t){var e=this;this.root=t||this.root;var n="".concat(Dw,"-container"),r=this.root.selectAll(n).data((function(t){return[t]}),(function(t){return t})).join((function(t){return t.append("svg").call((function(t){return dv(e,dw,"m",pw).call(e,t)})).attr("class",n.slice(1))}),(function(t){return t.call((function(t){return dv(e,dw,"m",pw).call(e,t)}))})),i=this.calendar.options.options.subDomain,o=i.radius,a=i.width,u=i.height,s=i.sort,c=this.calendar.eventEmitter;r.selectAll("g").data((function(t){var n=e.calendar.domainCollection.get(t);if("desc"===s){var r=Math.max.apply(Math,an(n.map((function(t){return t.x}))));n.forEach((function(t,e){n[e].x=Math.abs(t.x-r)}))}return n})).join((function(t){return t.append("g").call((function(t){return t.insert("rect").attr("class",(function(t){return dv(e,dw,"m",vw).call(e,t.t,"".concat(Dw.slice(1),"-bg"))})).attr("width",a).attr("height",u).attr("x",(function(t){return dv(e,dw,"m",gw).call(e,t)})).attr("y",(function(t){return dv(e,dw,"m",bw).call(e,t)})).on("click",(function(t,e){return c.emit("click",t,e.t,e.v)})).on("mouseover",(function(t,e){return c.emit("mouseover",t,e.t,e.v)})).on("mouseout",(function(t,e){return c.emit("mouseout",t,e.t,e.v)})).attr("rx",o>0?o:null).attr("ry",o>0?o:null)})).call((function(t){return dv(e,dw,"m",yw).call(e,t)}))}),(function(t){return t.selectAll("rect").attr("class",(function(t){return dv(e,dw,"m",vw).call(e,t.t,"".concat(Dw.slice(1),"-bg"))})).attr("width",a).attr("height",u).attr("x",(function(t){return dv(e,dw,"m",gw).call(e,t)})).attr("y",(function(t){return dv(e,dw,"m",bw).call(e,t)})).attr("rx",o).attr("ry",o)}))}}]),t}();dw=new WeakSet,pw=function(t){var e=this.calendar.options.options,n=e.domain,r=n.padding,i=n.label.position;t.attr("x",(function(){var t=r[mm.LEFT];return"left"===i&&(t+=e.x.domainHorizontalLabelWidth),t})).attr("y",(function(){var t=r[mm.TOP];return"top"===i&&(t+=e.x.domainVerticalLabelHeight),t}))},vw=function(t){var e=this,n=this.calendar.options.options,r=n.date.highlight,i=n.subDomain.type,o="";r.length>0&&r.forEach((function(n){var r=e.calendar.templateCollection.get(i).extractUnit;r(+n)===r(t)&&(o="highlight")}));for(var a=arguments.length,u=new Array(a>1?a-1:0),s=1;s<a;s++)u[s-1]=arguments[s];return[o].concat(u).join(" ").trim()},yw=function(t){var e=this,n=this.calendar.options.options.subDomain,r=n.width,i=n.height,o=n.label;return o?t.append("text").attr("class",(function(t){return dv(e,dw,"m",vw).call(e,t.t,"".concat(Dw.slice(1),"-text"))})).attr("x",(function(t){return dv(e,dw,"m",gw).call(e,t)+r/2})).attr("y",(function(t){return dv(e,dw,"m",bw).call(e,t)+i/2})).attr("text-anchor","middle").attr("dominant-baseline","central").text((function(t,n,r){return e.calendar.dateHelper.format(t.t,o,t.v,r[n])})):null},mw=function(t,e){var n=this.calendar.options.options.subDomain;return e[t]*(n["x"===t?"width":"height"]+n.gutter)},gw=function(t){return dv(this,dw,"m",mw).call(this,"x",t)},bw=function(t){return dv(this,dw,"m",mw).call(this,"y",t)};var $w=".ch-domain-container",Pw="in-transition",Lw=function(){function e(t){en(this,e),Sw.add(this),this.calendar=t,this.domainPainter=new ab(t),this.subDomainPainter=new Ew(t),this.domainLabelPainter=new hw(t),this.dimensions={width:0,height:0},this.transitionsQueueCount=0}return rn(e,[{key:"setup",value:function(){this.root=this.calendar.calendarPainter.root.attr("x",0).attr("y",0).append("svg").attr("class",$w.slice(1)).append("svg").attr("class","".concat($w.slice(1),"-animation-wrapper"))}},{key:"paint",value:function(t){var e=this;dv(this,Sw,"m",jw).call(this);var n=this.domainPainter.paint(t,this.root);return this.subDomainPainter.paint(this.domainPainter.root),this.domainLabelPainter.paint(this.domainPainter.root),dv(this,Sw,"m",Mw).call(this),Promise.allSettled(n).then((function(){dv(e,Sw,"m",_w).call(e)})),n}},{key:"updatePosition",value:function(){var e;if(!(null===(e=this.root)||void 0===e?void 0:e.node()))return Promise.resolve();var n=this.calendar.options.options.animationDuration,r=this.calendar.pluginManager.getHeightFromPosition("top"),i=this.calendar.pluginManager.getWidthFromPosition("left");return[t(this.root.node().parentNode).transition().duration(n).call((function(t){t.attr("x",i).attr("y",r)})).end()]}},{key:"width",value:function(){return this.dimensions.width}},{key:"height",value:function(){return this.dimensions.height}},{key:"destroy",value:function(){return dv(this,Sw,"m",jw).call(this),Promise.resolve()}}]),e}();Sw=new WeakSet,jw=function(){var e;(null===(e=this.root)||void 0===e?void 0:e.node())&&(this.transitionsQueueCount+=1,t(this.root.node().parentNode).classed(Pw,!0))},_w=function(){var e;(null===(e=this.root)||void 0===e?void 0:e.node())&&(this.transitionsQueueCount-=1,0===this.transitionsQueueCount&&t(this.root.node().parentNode).classed(Pw,!1))},Mw=function(){var t=this.calendar.options.options,e=t.animationDuration,n=t.verticalOrientation,r=t.domain.gutter,i=this.domainPainter.dimensions;this.dimensions={width:i.width-(n?0:r),height:i.height-(n?r:0)},this.root.transition().duration(e).attr("width",this.dimensions.width).attr("height",this.dimensions.height)};var Aw,Cw,Tw,Rw,Iw=function(){function t(e){en(this,t),this.calendar=e}return rn(t,[{key:"paint",value:function(){var t=[];return t=(t=t.concat(this.calendar.pluginManager.paintAll())).concat(this.setPluginsPosition())}},{key:"setPluginsPosition",value:function(){var t=this.calendar.pluginManager,e=this.calendar.options.options.animationDuration,n=this.calendar.calendarPainter.domainsContainerPainter,r=t.getFromPosition("top"),i=t.getFromPosition("right"),o=t.getFromPosition("bottom"),a=t.getFromPosition("left"),u=t.getHeightFromPosition("top"),s=t.getWidthFromPosition("left"),c=[],l=0;r.forEach((function(t){c.push(t.root.transition().duration(e).attr("y",l).attr("x",s).end()),l+=t.options.dimensions.height}));var f=0;return a.forEach((function(t){c.push(t.root.transition().duration(e).attr("x",f).attr("y",u).end()),f+=t.options.dimensions.width})),o.forEach((function(t){c.push(t.root.transition().duration(e).attr("x",s).attr("y",u+n.height()).end())})),f+=n.width(),i.forEach((function(t){c.push(t.root.transition().duration(e).attr("x",f).attr("y",u).end()),f+=t.options.dimensions.width})),c}},{key:"insideWidth",value:function(){return this.calendar.pluginManager.getWidthFromPosition("left")+this.calendar.pluginManager.getWidthFromPosition("right")}},{key:"insideHeight",value:function(){return this.calendar.pluginManager.getHeightFromPosition("top")+this.calendar.pluginManager.getHeightFromPosition("bottom")}}]),t}(),Nw=function(){function e(t){en(this,e),Aw.add(this),this.calendar=t,this.dimensions={width:0,height:0},this.root=null,this.domainsContainerPainter=new Lw(t),this.pluginPainter=new Iw(t)}return rn(e,[{key:"setup",value:function(){var e=this.calendar.options.options,n=e.itemSelector,r=e.theme;return this.root||(this.root=t(n).append("svg").attr("data-theme",r).attr("class",".ch-container".slice(1)),this.domainsContainerPainter.setup()),this.calendar.pluginManager.setupAll(),!0}},{key:"paint",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ym.SCROLL_NONE,e=this.domainsContainerPainter.paint(t).concat(this.pluginPainter.paint()).concat(this.domainsContainerPainter.updatePosition());return dv(this,Aw,"m",Rw).call(this),Promise.allSettled(e)}},{key:"destroy",value:function(){var t=this.calendar.pluginManager.destroyAll().concat(this.domainsContainerPainter.destroy());return this.root?(t.push(this.root.transition().duration(this.calendar.options.options.animationDuration).attr("width",0).attr("height",0).remove().end()),Promise.allSettled(t)):Promise.allSettled(t)}}]),e}();Aw=new WeakSet,Cw=function(){return this.domainsContainerPainter.height()+this.pluginPainter.insideHeight()},Tw=function(){return this.domainsContainerPainter.width()+this.pluginPainter.insideWidth()},Rw=function(){var t=this.calendar.options.options,e=dv(this,Aw,"m",Tw).call(this),n=dv(this,Aw,"m",Cw).call(this);this.root.transition().duration(t.animationDuration).attr("width",e).attr("height",n),e===this.dimensions.width&&n===this.dimensions.height||this.calendar.eventEmitter.emit("resize",e,n,this.dimensions.width,this.dimensions.height),this.dimensions={width:e,height:n}};var Ww="object"==typeof global&&global&&global.Object===Object&&global,Fw="object"==typeof self&&self&&self.Object===Object&&self,zw=Ww||Fw||Function("return this")(),Hw=zw.Symbol,Yw=Object.prototype,Uw=Yw.hasOwnProperty,Bw=Yw.toString,Gw=Hw?Hw.toStringTag:void 0;var Vw=Object.prototype.toString;var qw="[object Null]",Kw="[object Undefined]",Zw=Hw?Hw.toStringTag:void 0;function Jw(t){return null==t?void 0===t?Kw:qw:Zw&&Zw in Object(t)?function(t){var e=Uw.call(t,Gw),n=t[Gw];try{t[Gw]=void 0;var r=!0}catch(t){}var i=Bw.call(t);return r&&(e?t[Gw]=n:delete t[Gw]),i}(t):function(t){return Vw.call(t)}(t)}function Qw(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}var Xw="[object AsyncFunction]",tx="[object Function]",ex="[object GeneratorFunction]",nx="[object Proxy]";function rx(t){if(!Qw(t))return!1;var e=Jw(t);return e==tx||e==ex||e==Xw||e==nx}var ix=Nn,ox=yh;wu({target:"Object",stat:!0,forced:jn((function(){ox(1)}))},{keys:function(t){return ox(ix(t))}});var ax,ux=jr,sx=zo,cx=pr("match"),lx=function(t){var e;return ux(t)&&(void 0!==(e=t[cx])?!!e:"RegExp"==sx(t))},fx=TypeError,hx=function(t){if(lx(t))throw fx("The method doesn't accept regular expressions");return t},dx=pr("match"),px=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[dx]=!1,"/./"[t](e)}catch(t){}}return!1},vx=wu,yx=Ss,mx=Jo.f,gx=$a,bx=ip,wx=hx,xx=Tn,Ox=px,kx=yx("".startsWith),Sx=yx("".slice),jx=Math.min,_x=Ox("startsWith");vx({target:"String",proto:!0,forced:!!(_x||(ax=mx(String.prototype,"startsWith"),!ax||ax.writable))&&!_x},{startsWith:function(t){var e=bx(xx(this));wx(t);var n=gx(jx(arguments.length>1?arguments[1]:void 0,e.length)),r=bx(t);return kx?kx(e,r,n):Sx(e,n,n+r.length)===r}});var Mx=Or,Dx=Pn,Ex=yh,$x=ca,Px=Dx(Qo.f),Lx=Dx([].push),Ax=function(t){return function(e){for(var n,r=$x(e),i=Ex(r),o=i.length,a=0,u=[];o>a;)n=i[a++],Mx&&!Px(r,n)||Lx(u,t?[n,r[n]]:r[n]);return u}},Cx={entries:Ax(!0),values:Ax(!1)}.entries;function Tx(t){return null!=t&&!Number.isNaN(t)}function Rx(t,e){return+Tx(e)-+Tx(t)||n(t,e)}function Ix(t){return isFinite(t)?t:NaN}function Nx(t){return t>0&&isFinite(t)?t:NaN}function Wx(t){return t<0&&isFinite(t)?t:NaN}wu({target:"Object",stat:!0},{entries:function(t){return Cx(t)}});const Fx=/^(?:[-+]\d{2})?\d{4}(?:-\d{2}(?:-\d{2})?)?(?:T\d{2}:\d{2}(?::\d{2}(?:\.\d{3})?)?(?:Z|[-+]\d{2}:?\d{2})?)?$/;function zx(t,e){return Fx.test(t+="")?new Date(t):"function"==typeof e?e(t):e}const Hx=new Map([["second",r],["minute",i],["hour",o],["day",a],["week",u],["month",s],["quarter",s.every(3)],["half",s.every(6)],["year",c],["monday",l],["tuesday",f],["wednesday",h],["thursday",d],["friday",p],["saturday",v],["sunday",y]]),Yx=new Map([["second",m],["minute",g],["hour",b],["day",w],["week",x],["month",O],["quarter",O.every(3)],["half",O.every(6)],["year",k],["monday",S],["tuesday",j],["wednesday",_],["thursday",M],["friday",D],["saturday",E],["sunday",$]]);function Ux(t){const e=Hx.get(`${t}`.toLowerCase());if(!e)throw new Error(`unknown interval: ${t}`);return e}function Bx(t){const e=Yx.get(`${t}`.toLowerCase());if(!e)throw new Error(`unknown interval: ${t}`);return e}const Gx=Object.getPrototypeOf(Uint8Array),Vx=Object.prototype.toString,qx=t=>()=>t;function Kx(t){return t instanceof Gx?t:tO(t,Zx,Float64Array)}function Zx(t){return null==t?NaN:Number(t)}function Jx(t){return tO(t,Qx)}function Qx(t){return t instanceof Date&&!isNaN(t)?t:"string"==typeof t?zx(t):null==t||isNaN(t=+t)?void 0:new Date(t)}function Xx(t){return null==t||t instanceof Array||t instanceof Gx?t:Array.from(t)}function tO(t,e,n=Array){return null==t?t:t instanceof n?t.map(e):n.from(t,e)}function eO(t,e=Array){return t instanceof e?t.slice():e.from(t)}function nO(t){return function(t){return t?.toString===Vx}(t)&&(void 0!==t.type||void 0!==t.domain)}function rO(t,e){if(null!=t){if("number"==typeof t){0<t&&t<1&&Number.isInteger(1/t)&&(t=-1/t);const e=Math.abs(t);return t<0?{floor:t=>Math.floor(t*e)/e,offset:t=>(t*e+1)/e,range:(t,n)=>L(Math.ceil(t*e),n*e).map((t=>t/e))}:{floor:t=>Math.floor(t/e)*e,offset:t=>t+e,range:(t,n)=>L(Math.ceil(t/e),n/e).map((t=>t*e))}}if("string"==typeof t)return("time"===e?Ux:Bx)(t);if("function"!=typeof t.floor)throw new Error("invalid interval; missing floor method");if("function"!=typeof t.offset)throw new Error("invalid interval; missing offset method");return t}}function iO(t,e){if((t=rO(t,e))&&"function"!=typeof t.range)throw new Error("invalid interval: missing range method");return t}function oO(t){for(const e of t){if(null==e)continue;const t=typeof e;return"string"===t||"boolean"===t}}function aO(t){for(const e of t)if(null!=e)return e instanceof Date}function uO(t){for(const e of t)if(null!=e)return"string"==typeof e&&isNaN(e)&&zx(e)}function sO(t){for(const e of t)if(null!=e){if("string"!=typeof e)return!1;if(e.trim())return!isNaN(e)}}function cO(t){if(null==t)return;const e=t[0],n=t[t.length-1];return P(e,n)}const lO=Symbol("position"),fO=Symbol("color"),hO=Symbol("radius"),dO=Symbol("length"),pO=Symbol("opacity"),vO=Symbol("symbol"),yO=new Map([["x",lO],["y",lO],["fx",lO],["fy",lO],["r",hO],["color",fO],["opacity",pO],["symbol",vO],["length",dO]]),mO=2/Math.sqrt(3),gO=new Map([["asterisk",A],["circle",C],["cross",T],["diamond",R],["diamond2",I],["hexagon",{draw(t,e){const n=Math.sqrt(e/Math.PI),r=n*mO,i=r/2;t.moveTo(0,r),t.lineTo(n,i),t.lineTo(n,-i),t.lineTo(0,-r),t.lineTo(-n,-i),t.lineTo(-n,i),t.closePath()}}],["plus",N],["square",W],["square2",F],["star",z],["times",H],["triangle",Y],["triangle2",U],["wye",B]]);function bO(t){if(null==t||function(t){return t&&"function"==typeof t.draw}(t))return t;const e=gO.get(`${t}`.toLowerCase());if(e)return e;throw new Error(`invalid symbol: ${t}`)}function wO(t){console.warn(t)}const xO=new Map([["accent",G],["category10",V],["dark2",q],["paired",K],["pastel1",Z],["pastel2",J],["set1",Q],["set2",X],["set3",tt],["tableau10",et],["brbg",kO(zt,rt)],["prgn",kO(Ht,it)],["piyg",kO(Yt,ot)],["puor",kO(Ut,at)],["rdbu",kO(Bt,ut)],["rdgy",kO(Gt,st)],["rdylbu",kO(Vt,ct)],["rdylgn",kO(qt,lt)],["spectral",kO(Kt,ft)],["burd",SO(Bt,ut)],["buylrd",SO(Vt,ct)],["blues",OO(Zt,ht)],["greens",OO(Jt,dt)],["greys",OO(Qt,pt)],["oranges",OO(Xt,mt)],["purples",OO(te,vt)],["reds",OO(ee,yt)],["turbo",jO(gt)],["viridis",jO(bt)],["magma",jO(wt)],["inferno",jO(xt)],["plasma",jO(Ot)],["cividis",jO(kt)],["cubehelix",jO(St)],["warm",jO(jt)],["cool",jO(_t)],["bugn",OO(ne,Mt)],["bupu",OO(re,Dt)],["gnbu",OO(ie,Et)],["orrd",OO(oe,$t)],["pubu",OO(ae,Lt)],["pubugn",OO(ue,Pt)],["purd",OO(se,At)],["rdpu",OO(ce,Ct)],["ylgn",OO(le,Rt)],["ylgnbu",OO(fe,Tt)],["ylorbr",OO(he,It)],["ylorrd",OO(de,Nt)],["rainbow",_O(Wt)],["sinebow",_O(Ft)]]);function OO(t,e){return({length:n})=>1===n?[t[3][1]]:2===n?[t[3][1],t[3][2]]:(n=Math.max(3,Math.floor(n)))>9?nt(e,n):t[n]}function kO(t,e){return({length:n})=>2===n?[t[3][0],t[3][2]]:(n=Math.max(3,Math.floor(n)))>11?nt(e,n):t[n]}function SO(t,e){return({length:n})=>2===n?[t[3][2],t[3][0]]:(n=Math.max(3,Math.floor(n)))>11?nt((t=>e(1-t)),n):t[n].slice().reverse()}function jO(t){return({length:e})=>nt(t,Math.max(2,Math.floor(e)))}function _O(t){return({length:e})=>nt(t,Math.floor(e)+1).slice(0,-1)}function MO(t){const e=`${t}`.toLowerCase();if(!xO.has(e))throw new Error(`unknown ordinal scheme: ${e}`);return xO.get(e)}function DO(t,e){const n=MO(t),r="function"==typeof n?n({length:e}):n;return r.length!==e?r.slice(0,e):r}const EO=new Map([["brbg",rt],["prgn",it],["piyg",ot],["puor",at],["rdbu",ut],["rdgy",st],["rdylbu",ct],["rdylgn",lt],["spectral",ft],["burd",t=>ut(1-t)],["buylrd",t=>ct(1-t)],["blues",ht],["greens",dt],["greys",pt],["purples",vt],["reds",yt],["oranges",mt],["turbo",gt],["viridis",bt],["magma",wt],["inferno",xt],["plasma",Ot],["cividis",kt],["cubehelix",St],["warm",jt],["cool",_t],["bugn",Mt],["bupu",Dt],["gnbu",Et],["orrd",$t],["pubugn",Pt],["pubu",Lt],["purd",At],["rdpu",Ct],["ylgnbu",Tt],["ylgn",Rt],["ylorbr",It],["ylorrd",Nt],["rainbow",Wt],["sinebow",Ft]]);function $O(t){const e=`${t}`.toLowerCase();if(!EO.has(e))throw new Error(`unknown quantitative scheme: ${e}`);return EO.get(e)}const PO=new Set(["brbg","prgn","piyg","puor","rdbu","rdgy","rdylbu","rdylgn","spectral","burd","buylrd"]);function LO(t){return null!=t&&PO.has(`${t}`.toLowerCase())}const AO=t=>e=>t(1-e),CO=[0,1],TO=new Map([["number",pe],["rgb",ve],["hsl",ye],["hcl",me],["lab",ge]]);function RO(t){const e=`${t}`.toLowerCase();if(!TO.has(e))throw new Error(`unknown interpolator: ${e}`);return TO.get(e)}function IO(t,e,n,{type:r,nice:i,clamp:o,zero:a,domain:u=zO(t,n),unknown:s,round:c,scheme:l,interval:f,range:h=(yO.get(t)===hO?YO(n,u):yO.get(t)===dO?UO(n,u):yO.get(t)===pO?CO:void 0),interpolate:d=(yO.get(t)===fO?null==l&&void 0!==h?ve:$O(void 0!==l?l:"cyclical"===r?"rainbow":"turbo"):c?$e:pe),reverse:p}){if(f=iO(f,r),"cyclical"!==r&&"sequential"!==r||(r="linear"),p=!!p,"function"!=typeof d&&(d=RO(d)),1===d.length?(p&&(d=AO(d),p=!1),void 0===h&&2===(h=Float64Array.from(u,((t,e)=>e/(u.length-1)))).length&&(h=CO),e.interpolate((h===CO?qx:VO)(d))):e.interpolate(d),a){const[t,e]=Se(u);(t>0||e<0)&&(cO(u=eO(u))!==Math.sign(t)?u[u.length-1]=0:u[0]=0)}return p&&(u=_e(u)),e.domain(u).unknown(s),i&&(e.nice(function(t,e){return!0===t?void 0:"number"==typeof t?t:function(t,e){if((t=iO(t,e))&&"function"!=typeof t.ceil)throw new Error("invalid interval: missing ceil method");return t}(t,e)}(i,r)),u=e.domain()),void 0!==h&&e.range(h),o&&e.clamp(o),{type:r,domain:u,range:h,scale:e,interpolate:d,interval:f}}function NO(t,e,{exponent:n=1,...r}){return IO(t,we().exponent(n),e,{...r,type:"pow"})}function WO(t,e,{domain:n=[0],unknown:r,scheme:i="rdylbu",interpolate:o,range:a=(void 0!==o?nt(o,n.length+1):yO.get(t)===fO?DO(i,n.length+1):void 0),reverse:u}){const s=cO(n=Xx(n));if(!isNaN(s)&&!function(t,e){for(let n=1,r=t.length,i=t[0];n<r;++n){const r=P(i,i=t[n]);if(0!==r&&r!==e)return!1}return!0}(n,s))throw new Error(`the ${t} scale has a non-monotonic domain`);return u&&(a=_e(a)),{type:"threshold",scale:Me(s<0?_e(n):n,void 0===a?[]:a).unknown(r),domain:n,range:a}}function FO(t,e=Ix){return t.length?[Pe(t,(({value:t})=>void 0===t?t:Pe(t,e))),Ee(t,(({value:t})=>void 0===t?t:Ee(t,e)))]:[0,1]}function zO(t,e){const n=yO.get(t);return(n===hO||n===pO||n===dO?HO:FO)(e)}function HO(t){return[0,t.length?Ee(t,(({value:t})=>void 0===t?t:Ee(t,Ix))):1]}function YO(t,e){const n=t.find((({radius:t})=>void 0!==t));if(void 0!==n)return[0,n.radius];const r=Le(t,.5,(({value:t})=>void 0===t?NaN:Le(t,.25,Nx))),i=e.map((t=>3*Math.sqrt(t/r))),o=30/Ee(i);return o<1?i.map((t=>t*o)):i}function UO(t,e){const n=Ae(t,(({value:t})=>void 0===t?NaN:Ae(t,Math.abs))),r=e.map((t=>12*t/n)),i=60/Ee(r);return i<1?r.map((t=>t*i)):r}function BO(t){for(const{value:e}of t)if(void 0!==e)for(let n of e){if(n>0)return FO(t,Nx);if(n<0)return FO(t,Wx)}return[1,10]}function GO(t){const e=[];for(const{value:n}of t)if(void 0!==n)for(const t of n)e.push(t);return e}function VO(t){return(e,n)=>r=>t(e+r*(n-e))}function qO(t,e,n,r,{type:i,nice:o,clamp:a,domain:u=FO(r),unknown:s,pivot:c=0,scheme:l,range:f,symmetric:h=!0,interpolate:d=(yO.get(t)===fO?null==l&&void 0!==f?ve:$O(void 0!==l?l:"rdbu"):pe),reverse:p}){c=+c;let[v,y]=u;if(P(v,y)<0&&([v,y]=[y,v],p=!p),v=Math.min(v,c),y=Math.max(y,c),"function"!=typeof d&&(d=RO(d)),void 0!==f&&(d=1===d.length?VO(d)(...f):Ne(d,f)),p&&(d=AO(d)),h){const t=n.apply(c),e=t-n.apply(v),r=n.apply(y)-t;e<r?v=n.invert(t-r):e>r&&(y=n.invert(t+e))}return e.domain([v,c,y]).unknown(s).interpolator(d),a&&e.clamp(a),o&&e.nice(o),{type:i,domain:[v,y],pivot:c,interpolate:d,scale:e}}function KO(t,e,{exponent:n=1,...r}){return qO(t,Te().exponent(n=+n),function(t){return.5===t?XO:{apply:e=>Math.sign(e)*Math.pow(Math.abs(e),t),invert:e=>Math.sign(e)*Math.pow(Math.abs(e),1/t)}}(n),e,{...r,type:"diverging-pow"})}function ZO(t,e,{constant:n=1,...r}){return qO(t,Ie().constant(n=+n),function(t){return{apply:e=>Math.sign(e)*Math.log1p(Math.abs(e/t)),invert:e=>Math.sign(e)*Math.expm1(Math.abs(e))*t}}(n),e,r)}const JO={apply:t=>t,invert:t=>t},QO={apply:Math.log,invert:Math.exp},XO={apply:t=>Math.sign(t)*Math.sqrt(Math.abs(t)),invert:t=>Math.sign(t)*(t*t)};function tk(t,e,n,r){return IO(t,e,n,r)}const ek=Symbol("ordinal");function nk(t,e,n,{type:r,interval:i,domain:o,range:a,reverse:u,hint:s}){return i=iO(i,r),void 0===o&&(o=ok(n,i,t)),"categorical"!==r&&r!==ek||(r="ordinal"),u&&(o=_e(o)),e.domain(o),void 0!==a&&("function"==typeof a&&(a=a(o)),e.range(a)),{type:r,domain:o,range:a,scale:e,hint:s,interval:i}}function rk(t,e,{type:n,interval:r,domain:i,range:o,scheme:a,unknown:u,...s}){let c;if(r=iO(r,n),void 0===i&&(i=ok(e,r,t)),yO.get(t)===vO)c=function(t){return{fill:ak(t,"fill"),stroke:ak(t,"stroke")}}(e),o=void 0===o?function(t){return e=t.fill,null==e||function(t){return/^\s*none\s*$/i.test(t)}(e)?Ve:qe;var e}(c):tO(o,bO);else if(yO.get(t)===fO&&(void 0!==o||"ordinal"!==n&&n!==ek||(o=function(t,e="greys"){const n=new Set,[r,i]=DO(e,2);for(const e of t)if(null!=e)if(!0===e)n.add(i);else{if(!1!==e)return;n.add(r)}return[...n]}(i,a),void 0!==o&&(a=void 0)),void 0===a&&void 0===o&&(a="ordinal"===n?"turbo":"tableau10"),void 0!==a))if(void 0!==o){const t=$O(a),e=o[0],n=o[1]-o[0];o=({length:r})=>nt((r=>t(e+n*r)),r)}else o=MO(a);if(u===ze)throw new Error(`implicit unknown on ${t} scale is not supported`);return nk(t,He().unknown(u),e,{...s,type:n,domain:i,range:o,hint:c})}function ik(t,e,n,r){let{round:i}=n;return void 0!==i&&t.round(i=!!i),(t=nk(r,t,e,n)).round=i,t}function ok(t,e,n){const r=new Be;for(const{value:e,domain:n}of t){if(void 0!==n)return n();if(void 0!==e)for(const t of e)r.add(t)}if(void 0!==e){const[t,n]=Se(r).map(e.floor,e);return e.range(t,e.offset(n))}if(r.size>1e4&&yO.get(n)===lO)throw new Error(`implicit ordinal domain of ${n} scale has more than 10,000 values`);return Ge(r,Rx)}function ak(t,e){let n;for(const{hint:r}of t){const t=r?.[e];if(void 0!==t)if(void 0===n)n=t;else if(n!==t)return}return n}function uk(t,e,n){return function(t,e=[],n={}){const r=function(t,e,{type:n,domain:r,range:i,scheme:o,pivot:a,projection:u}){if("fx"===t||"fy"===t)return"band";"x"!==t&&"y"!==t||null==u||(n=ck);for(const{type:t}of e)if(void 0!==t)if(void 0===n)n=t;else if(n!==t)throw new Error(`scale incompatible with channel: ${n} !== ${t}`);if(n===ck)return;if(void 0!==n)return n;if(void 0===r&&!e.some((({value:t})=>void 0!==t)))return;const s=yO.get(t);if(s===hO)return"sqrt";if(s===pO||s===dO)return"linear";if(s===vO)return"ordinal";if((r||i||[]).length>2)return lk(s);if(void 0!==r)return oO(r)?lk(s):aO(r)?"utc":s!==fO||null==a&&!LO(o)?"linear":"diverging";const c=e.map((({value:t})=>t)).filter((t=>void 0!==t));return c.some(oO)?lk(s):c.some(aO)?"utc":s!==fO||null==a&&!LO(o)?"linear":"diverging"}(t,e,n);if(void 0===n.type&&void 0===n.domain&&void 0===n.range&&null==n.interval&&"fx"!==t&&"fy"!==t&&function({type:t}){return"ordinal"===t||"point"===t||"band"===t||t===ek}({type:r})){const n=e.map((({value:t})=>t)).filter((t=>void 0!==t));n.some(aO)?wO(`Warning: some data associated with the ${t} scale are dates. Dates are typically associated with a "utc" or "time" scale rather than a "${sk(r)}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can specify the interval of the ${t} scale (e.g., d3.utcDay), or you can suppress this warning by setting the type of the ${t} scale to "${sk(r)}".`):n.some(uO)?wO(`Warning: some data associated with the ${t} scale are strings that appear to be dates (e.g., YYYY-MM-DD). If these strings represent dates, you should parse them to Date objects. Dates are typically associated with a "utc" or "time" scale rather than a "${sk(r)}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can suppress this warning by setting the type of the ${t} scale to "${sk(r)}".`):n.some(sO)&&wO(`Warning: some data associated with the ${t} scale are strings that appear to be numbers. If these strings represent numbers, you should parse or coerce them to numbers. Numbers are typically associated with a "linear" scale rather than a "${sk(r)}" scale. If you want to treat this data as ordinal, you can specify the interval of the ${t} scale (e.g., 1 for integers), or you can suppress this warning by setting the type of the ${t} scale to "${sk(r)}".`)}switch(n.type=r,r){case"diverging":case"diverging-sqrt":case"diverging-pow":case"diverging-log":case"diverging-symlog":case"cyclical":case"sequential":case"linear":case"sqrt":case"threshold":case"quantile":case"pow":case"log":case"symlog":n=fk(e,n,Kx);break;case"identity":switch(yO.get(t)){case lO:n=fk(e,n,Kx);break;case vO:n=fk(e,n,hk)}break;case"utc":case"time":n=fk(e,n,Jx)}switch(r){case"diverging":return function(t,e,n){return qO(t,Ce(),JO,e,n)}(t,e,n);case"diverging-sqrt":return function(t,e,n){return KO(t,e,{...n,exponent:.5})}(t,e,n);case"diverging-pow":return KO(t,e,n);case"diverging-log":return function(t,e,{base:n=10,pivot:r=1,domain:i=FO(e,r<0?Wx:Nx),...o}){return qO(t,Re().base(n=+n),QO,e,{domain:i,pivot:r,...o})}(t,e,n);case"diverging-symlog":return ZO(t,e,n);case"categorical":case"ordinal":case ek:return rk(t,e,n);case"cyclical":case"sequential":case"linear":return function(t,e,n){return IO(t,be(),e,n)}(t,e,n);case"sqrt":return function(t,e,n){return NO(t,e,{...n,exponent:.5})}(t,e,n);case"threshold":return WO(t,0,n);case"quantile":return function(t,e,{range:n,quantiles:r=(void 0===n?5:(n=[...n]).length),n:i=r,scheme:o="rdylbu",domain:a=GO(e),unknown:u,interpolate:s,reverse:c}){return void 0===n&&(n=void 0!==s?nt(s,i):yO.get(t)===fO?DO(o,i):void 0),a.length>0&&(a=ke(a,void 0===n?{length:i}:n).quantiles()),WO(t,0,{domain:a,range:n,reverse:c,unknown:u})}(t,e,n);case"quantize":return function(t,e,{range:n,n:r=(void 0===n?5:(n=[...n]).length),scheme:i="rdylbu",domain:o=zO(t,e),unknown:a,interpolate:u,reverse:s}){const[c,l]=Se(o);let f;return void 0===n?(f=je(c,l,r),f[0]<=c&&f.splice(0,1),f[f.length-1]>=l&&f.pop(),r=f.length+1,n=void 0!==u?nt(u,r):yO.get(t)===fO?DO(i,r):void 0):(f=nt(pe(c,l),r+1).slice(1,-1),c instanceof Date&&(f=f.map((t=>new Date(t))))),cO(Xx(o))<0&&f.reverse(),WO(t,0,{domain:f,range:n,reverse:s,unknown:a})}(t,e,n);case"pow":return NO(t,e,n);case"log":return function(t,e,{base:n=10,domain:r=BO(e),...i}){return IO(t,xe().base(n),e,{...i,domain:r})}(t,e,n);case"symlog":return function(t,e,{constant:n=1,...r}){return IO(t,Oe().constant(n),e,r)}(t,e,n);case"utc":return function(t,e,n){return tk(t,Fe(),e,n)}(t,e,n);case"time":return function(t,e,n){return tk(t,We(),e,n)}(t,e,n);case"point":return function(t,e,{align:n=.5,padding:r=.5,...i}){return ik(Ye().align(n).padding(r),e,i,t)}(t,e,n);case"band":return function(t,e,{align:n=.5,padding:r=.1,paddingInner:i=r,paddingOuter:o=("fx"===t||"fy"===t?0:r),...a}){return ik(Ue().align(n).paddingInner(i).paddingOuter(o),e,a,t)}(t,e,n);case"identity":return yO.get(t)===lO?{type:"identity",scale:De()}:{type:"identity"};case void 0:return;default:throw new Error(`unknown scale type: ${r}`)}}(t,void 0===n?void 0:[{hint:n}],{...e})}function sk(t){return"symbol"==typeof t?t.description:t}const ck={toString:()=>"projection"};function lk(t){switch(t){case lO:return"point";case fO:return ek;default:return"ordinal"}}function fk(t,{domain:e,...n},r){for(const e of t)void 0!==e.value&&(e.value=r(e.value));return{domain:void 0===e?e:r(e),...n}}function hk(t){return tO(t,bO)}function dk({scale:t,type:e,domain:n,range:r,interpolate:i,interval:o,transform:a,percent:u,pivot:s}){if("identity"===e)return{type:"identity",apply:t=>t,invert:t=>t};const c=t.unknown?t.unknown():void 0;return{type:e,domain:eO(n),...void 0!==r&&{range:eO(r)},...void 0!==a&&{transform:a},...u&&{percent:u},...void 0!==c&&{unknown:c},...void 0!==o&&{interval:o},...void 0!==i&&{interpolate:i},...t.clamp&&{clamp:t.clamp()},...void 0!==s&&{pivot:s,symmetric:!1},...t.base&&{base:t.base()},...t.exponent&&{exponent:t.exponent()},...t.constant&&{constant:t.constant()},...t.align&&{align:t.align(),round:t.round()},...t.padding&&(t.paddingInner?{paddingInner:t.paddingInner(),paddingOuter:t.paddingOuter()}:{padding:t.padding()}),...t.bandwidth&&{bandwidth:t.bandwidth(),step:t.step()},apply:e=>t(e),...t.invert&&{invert:e=>t.invert(e)}}}function pk(t){try{var e=Object.keys(t)[0];return function(t={}){let e;for(const n in t)if(yO.has(n)&&nO(t[n])){if(void 0!==e)throw new Error("ambiguous scale definition; multiple scales found");e=dk(uk(n,t[n]))}if(void 0===e)throw new Error("invalid scale definition; no scale found");return e}((n={},r=e,i=Object.assign(Object.assign({},t[e]),{clamp:!0}),(r=cn(r))in n?Object.defineProperty(n,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[r]=i,n))}catch(t){return null}var n,r,i}function vk(t,e,n,r){Object.entries(function(t,e){var n={};return e.hasOwnProperty("opacity")?(n.fill=function(){return e.opacity.baseColor||Om},n["fill-opacity"]=function(e){return null==t?void 0:t.apply(e)}):n.fill=function(e){return"string"==typeof e&&(null==e?void 0:e.startsWith("#"))?e:null==t?void 0:t.apply(e)},n}(e,n)).forEach((function(e){var n=on(e,2),i=n[0],o=n[1];return t.style(i,(function(t){return o(r?t[r]:t)}))}))}var yk=function(){function t(e){en(this,t),this.calendar=e}return rn(t,[{key:"populate",value:function(){var t=this.calendar,n=t.options.options,r=n.scale,i=n.subDomain,o=pk(r);t.calendarPainter.root.selectAll(".ch-domain").selectAll("svg").selectAll("g").data((function(e){return t.domainCollection.get(e)||[]})).call((function(t){vk(t.select("rect"),o,r,"v")})).call((function(n){n.select("text").attr("style",(function(t){var n=e(null==o?void 0:o.apply(t.v)).l>60?"#000":"#fff",r=i.color||(t.v?n:null);return rx(r)&&(r=r(t.t,t.v,null==o?void 0:o.apply(t.v))),r?"fill: ".concat(r,";"):null})).text((function(e,n,r){return t.dateHelper.format(e.t,i.label,e.v,r[n])}))})).call((function(){t.eventEmitter.emit("fill")}))}}]),t}();function mk(t,e){return t===e||t!=t&&e!=e}function gk(t,e){for(var n=t.length;n--;)if(mk(t[n][0],e))return n;return-1}var bk=Array.prototype.splice;function wk(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}wk.prototype.clear=function(){this.__data__=[],this.size=0},wk.prototype.delete=function(t){var e=this.__data__,n=gk(e,t);return!(n<0)&&(n==e.length-1?e.pop():bk.call(e,n,1),--this.size,!0)},wk.prototype.get=function(t){var e=this.__data__,n=gk(e,t);return n<0?void 0:e[n][1]},wk.prototype.has=function(t){return gk(this.__data__,t)>-1},wk.prototype.set=function(t,e){var n=this.__data__,r=gk(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this};var xk=zw["__core-js_shared__"],Ok=function(){var t=/[^.]+$/.exec(xk&&xk.keys&&xk.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();var kk=Function.prototype.toString;function Sk(t){if(null!=t){try{return kk.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var jk=/^\[object .+?Constructor\]$/,_k=Function.prototype,Mk=Object.prototype,Dk=_k.toString,Ek=Mk.hasOwnProperty,$k=RegExp("^"+Dk.call(Ek).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Pk(t){return!(!Qw(t)||(e=t,Ok&&Ok in e))&&(rx(t)?$k:jk).test(Sk(t));var e}function Lk(t,e){var n=function(t,e){return null==t?void 0:t[e]}(t,e);return Pk(n)?n:void 0}var Ak=Lk(zw,"Map"),Ck=Lk(Object,"create");var Tk=Object.prototype.hasOwnProperty;var Rk=Object.prototype.hasOwnProperty;function Ik(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function Nk(t,e){var n,r,i=t.__data__;return("string"==(r=typeof(n=e))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?i["string"==typeof e?"string":"hash"]:i.map}function Wk(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}Ik.prototype.clear=function(){this.__data__=Ck?Ck(null):{},this.size=0},Ik.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},Ik.prototype.get=function(t){var e=this.__data__;if(Ck){var n=e[t];return"__lodash_hash_undefined__"===n?void 0:n}return Tk.call(e,t)?e[t]:void 0},Ik.prototype.has=function(t){var e=this.__data__;return Ck?void 0!==e[t]:Rk.call(e,t)},Ik.prototype.set=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=Ck&&void 0===e?"__lodash_hash_undefined__":e,this},Wk.prototype.clear=function(){this.size=0,this.__data__={hash:new Ik,map:new(Ak||wk),string:new Ik}},Wk.prototype.delete=function(t){var e=Nk(this,t).delete(t);return this.size-=e?1:0,e},Wk.prototype.get=function(t){return Nk(this,t).get(t)},Wk.prototype.has=function(t){return Nk(this,t).has(t)},Wk.prototype.set=function(t,e){var n=Nk(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this};function Fk(t){var e=this.__data__=new wk(t);this.size=e.size}Fk.prototype.clear=function(){this.__data__=new wk,this.size=0},Fk.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},Fk.prototype.get=function(t){return this.__data__.get(t)},Fk.prototype.has=function(t){return this.__data__.has(t)},Fk.prototype.set=function(t,e){var n=this.__data__;if(n instanceof wk){var r=n.__data__;if(!Ak||r.length<199)return r.push([t,e]),this.size=++n.size,this;n=this.__data__=new Wk(r)}return n.set(t,e),this.size=n.size,this};var zk=function(){try{var t=Lk(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),Hk=zk;function Yk(t,e,n){"__proto__"==e&&Hk?Hk(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}function Uk(t,e,n){(void 0!==n&&!mk(t[e],n)||void 0===n&&!(e in t))&&Yk(t,e,n)}var Bk,Gk=function(t,e,n){for(var r=-1,i=Object(t),o=n(t),a=o.length;a--;){var u=o[Bk?a:++r];if(!1===e(i[u],u,i))break}return t},Vk=Gk,qk="object"==typeof exports&&exports&&!exports.nodeType&&exports,Kk=qk&&"object"==typeof module&&module&&!module.nodeType&&module,Zk=Kk&&Kk.exports===qk?zw.Buffer:void 0,Jk=Zk?Zk.allocUnsafe:void 0;var Qk=zw.Uint8Array;function Xk(t,e){var n,r,i=e?(n=t.buffer,r=new n.constructor(n.byteLength),new Qk(r).set(new Qk(n)),r):t.buffer;return new t.constructor(i,t.byteOffset,t.length)}var tS=Object.create,eS=function(){function t(){}return function(e){if(!Qw(e))return{};if(tS)return tS(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();function nS(t,e){return function(n){return t(e(n))}}var rS=nS(Object.getPrototypeOf,Object),iS=Object.prototype;function oS(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||iS)}function aS(t){return null!=t&&"object"==typeof t}function uS(t){return aS(t)&&"[object Arguments]"==Jw(t)}var sS=Object.prototype,cS=sS.hasOwnProperty,lS=sS.propertyIsEnumerable,fS=uS(function(){return arguments}())?uS:function(t){return aS(t)&&cS.call(t,"callee")&&!lS.call(t,"callee")},hS=9007199254740991;function dS(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=hS}function pS(t){return null!=t&&dS(t.length)&&!rx(t)}var vS="object"==typeof exports&&exports&&!exports.nodeType&&exports,yS=vS&&"object"==typeof module&&module&&!module.nodeType&&module,mS=yS&&yS.exports===vS?zw.Buffer:void 0,gS=(mS?mS.isBuffer:void 0)||function(){return!1},bS="[object Object]",wS=Function.prototype,xS=Object.prototype,OS=wS.toString,kS=xS.hasOwnProperty,SS=OS.call(Object);var jS={};jS["[object Float32Array]"]=jS["[object Float64Array]"]=jS["[object Int8Array]"]=jS["[object Int16Array]"]=jS["[object Int32Array]"]=jS["[object Uint8Array]"]=jS["[object Uint8ClampedArray]"]=jS["[object Uint16Array]"]=jS["[object Uint32Array]"]=!0,jS["[object Arguments]"]=jS["[object Array]"]=jS["[object ArrayBuffer]"]=jS["[object Boolean]"]=jS["[object DataView]"]=jS["[object Date]"]=jS["[object Error]"]=jS["[object Function]"]=jS["[object Map]"]=jS["[object Number]"]=jS["[object Object]"]=jS["[object RegExp]"]=jS["[object Set]"]=jS["[object String]"]=jS["[object WeakMap]"]=!1;var _S,MS="object"==typeof exports&&exports&&!exports.nodeType&&exports,DS=MS&&"object"==typeof module&&module&&!module.nodeType&&module,ES=DS&&DS.exports===MS&&Ww.process,$S=function(){try{var t=DS&&DS.require&&DS.require("util").types;return t||ES&&ES.binding&&ES.binding("util")}catch(t){}}(),PS=$S&&$S.isTypedArray,LS=PS?(_S=PS,function(t){return _S(t)}):function(t){return aS(t)&&dS(t.length)&&!!jS[Jw(t)]};function AS(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}var CS=Object.prototype.hasOwnProperty;function TS(t,e,n){var r=t[e];CS.call(t,e)&&mk(r,n)&&(void 0!==n||e in t)||Yk(t,e,n)}var RS=9007199254740991,IS=/^(?:0|[1-9]\d*)$/;function NS(t,e){var n=typeof t;return!!(e=null==e?RS:e)&&("number"==n||"symbol"!=n&&IS.test(t))&&t>-1&&t%1==0&&t<e}var WS=Object.prototype.hasOwnProperty;function FS(t,e){var n=yv(t),r=!n&&fS(t),i=!n&&!r&&gS(t),o=!n&&!r&&!i&&LS(t),a=n||r||i||o,u=a?function(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}(t.length,String):[],s=u.length;for(var c in t)!e&&!WS.call(t,c)||a&&("length"==c||i&&("offset"==c||"parent"==c)||o&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||NS(c,s))||u.push(c);return u}var zS=Object.prototype.hasOwnProperty;function HS(t){if(!Qw(t))return function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}(t);var e=oS(t),n=[];for(var r in t)("constructor"!=r||!e&&zS.call(t,r))&&n.push(r);return n}function YS(t){return pS(t)?FS(t,!0):HS(t)}function US(t){return function(t,e,n,r){var i=!n;n||(n={});for(var o=-1,a=e.length;++o<a;){var u=e[o],s=r?r(n[u],t[u],u,n,t):void 0;void 0===s&&(s=t[u]),i?Yk(n,u,s):TS(n,u,s)}return n}(t,YS(t))}function BS(t,e,n,r,i,o,a){var u=AS(t,n),s=AS(e,n),c=a.get(s);if(c)Uk(t,n,c);else{var l,f=o?o(u,s,n+"",t,e,a):void 0,h=void 0===f;if(h){var d=yv(s),p=!d&&gS(s),v=!d&&!p&&LS(s);f=s,d||p||v?yv(u)?f=u:aS(l=u)&&pS(l)?f=function(t,e){var n=-1,r=t.length;for(e||(e=Array(r));++n<r;)e[n]=t[n];return e}(u):p?(h=!1,f=function(t,e){if(e)return t.slice();var n=t.length,r=Jk?Jk(n):new t.constructor(n);return t.copy(r),r}(s,!0)):v?(h=!1,f=Xk(s,!0)):f=[]:function(t){if(!aS(t)||Jw(t)!=bS)return!1;var e=rS(t);if(null===e)return!0;var n=kS.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&OS.call(n)==SS}(s)||fS(s)?(f=u,fS(u)?f=US(u):Qw(u)&&!rx(u)||(f=function(t){return"function"!=typeof t.constructor||oS(t)?{}:eS(rS(t))}(s))):h=!1}h&&(a.set(s,f),i(f,s,r,o,a),a.delete(s)),Uk(t,n,f)}}function GS(t,e,n,r,i){t!==e&&Vk(e,(function(o,a){if(i||(i=new Fk),Qw(o))BS(t,e,a,n,GS,r,i);else{var u=r?r(AS(t,a),o,a+"",t,e,i):void 0;void 0===u&&(u=o),Uk(t,a,u)}}),YS)}function VS(t){return t}var qS=Math.max;var KS=Hk?function(t,e){return Hk(t,"toString",{configurable:!0,enumerable:!1,value:(n=e,function(){return n}),writable:!0});var n}:VS,ZS=KS,JS=Date.now;var QS=function(t){var e=0,n=0;return function(){var r=JS(),i=16-(r-n);if(n=r,i>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(ZS),XS=QS;function tj(t,e){return XS(function(t,e,n){return e=qS(void 0===e?t.length-1:e,0),function(){for(var r=arguments,i=-1,o=qS(r.length-e,0),a=Array(o);++i<o;)a[i]=r[e+i];i=-1;for(var u=Array(e+1);++i<e;)u[i]=r[i];return u[e]=n(a),function(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}(t,this,u)}}(t,e,VS),t+"")}var ej,nj=(ej=function(t,e,n,r){GS(t,e,n,r)},tj((function(t,e){var n=-1,r=e.length,i=r>1?e[r-1]:void 0,o=r>2?e[2]:void 0;for(i=ej.length>3&&"function"==typeof i?(r--,i):void 0,o&&function(t,e,n){if(!Qw(n))return!1;var r=typeof e;return!!("number"==r?pS(n)&&NS(e,n.length):"string"==r&&e in n)&&mk(n[e],t)}(e[0],e[1],o)&&(i=r<3?void 0:i,r=1),t=Object(t);++n<r;){var a=e[n];a&&ej(t,a,n,i)}return t}))),rj=nj;function ij(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new Wk;++e<n;)this.add(t[e])}function oj(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}ij.prototype.add=ij.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},ij.prototype.has=function(t){return this.__data__.has(t)};var aj=1,uj=2;function sj(t,e,n,r,i,o){var a=n&aj,u=t.length,s=e.length;if(u!=s&&!(a&&s>u))return!1;var c=o.get(t),l=o.get(e);if(c&&l)return c==e&&l==t;var f=-1,h=!0,d=n&uj?new ij:void 0;for(o.set(t,e),o.set(e,t);++f<u;){var p=t[f],v=e[f];if(r)var y=a?r(v,p,f,e,t,o):r(p,v,f,t,e,o);if(void 0!==y){if(y)continue;h=!1;break}if(d){if(!oj(e,(function(t,e){if(a=e,!d.has(a)&&(p===t||i(p,t,n,r,o)))return d.push(e);var a}))){h=!1;break}}else if(p!==v&&!i(p,v,n,r,o)){h=!1;break}}return o.delete(t),o.delete(e),h}function cj(t){var e=-1,n=Array(t.size);return t.forEach((function(t,r){n[++e]=[r,t]})),n}function lj(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n}var fj=1,hj=2,dj="[object Boolean]",pj="[object Date]",vj="[object Error]",yj="[object Map]",mj="[object Number]",gj="[object RegExp]",bj="[object Set]",wj="[object String]",xj="[object Symbol]",Oj="[object ArrayBuffer]",kj="[object DataView]",Sj=Hw?Hw.prototype:void 0,jj=Sj?Sj.valueOf:void 0;var _j=Object.prototype.propertyIsEnumerable,Mj=Object.getOwnPropertySymbols,Dj=Mj?function(t){return null==t?[]:(t=Object(t),function(t,e){for(var n=-1,r=null==t?0:t.length,i=0,o=[];++n<r;){var a=t[n];e(a,n,t)&&(o[i++]=a)}return o}(Mj(t),(function(e){return _j.call(t,e)})))}:function(){return[]},Ej=Dj,$j=nS(Object.keys,Object),Pj=Object.prototype.hasOwnProperty;function Lj(t){return pS(t)?FS(t):function(t){if(!oS(t))return $j(t);var e=[];for(var n in Object(t))Pj.call(t,n)&&"constructor"!=n&&e.push(n);return e}(t)}function Aj(t){return function(t,e,n){var r=e(t);return yv(t)?r:function(t,e){for(var n=-1,r=e.length,i=t.length;++n<r;)t[i+n]=e[n];return t}(r,n(t))}(t,Lj,Ej)}var Cj=1,Tj=Object.prototype.hasOwnProperty;var Rj=Lk(zw,"DataView"),Ij=Lk(zw,"Promise"),Nj=Lk(zw,"Set"),Wj=Lk(zw,"WeakMap"),Fj="[object Map]",zj="[object Promise]",Hj="[object Set]",Yj="[object WeakMap]",Uj="[object DataView]",Bj=Sk(Rj),Gj=Sk(Ak),Vj=Sk(Ij),qj=Sk(Nj),Kj=Sk(Wj),Zj=Jw;(Rj&&Zj(new Rj(new ArrayBuffer(1)))!=Uj||Ak&&Zj(new Ak)!=Fj||Ij&&Zj(Ij.resolve())!=zj||Nj&&Zj(new Nj)!=Hj||Wj&&Zj(new Wj)!=Yj)&&(Zj=function(t){var e=Jw(t),n="[object Object]"==e?t.constructor:void 0,r=n?Sk(n):"";if(r)switch(r){case Bj:return Uj;case Gj:return Fj;case Vj:return zj;case qj:return Hj;case Kj:return Yj}return e});var Jj=Zj,Qj=1,Xj="[object Arguments]",t_="[object Array]",e_="[object Object]",n_=Object.prototype.hasOwnProperty;function r_(t,e,n,r,i,o){var a=yv(t),u=yv(e),s=a?t_:Jj(t),c=u?t_:Jj(e),l=(s=s==Xj?e_:s)==e_,f=(c=c==Xj?e_:c)==e_,h=s==c;if(h&&gS(t)){if(!gS(e))return!1;a=!0,l=!1}if(h&&!l)return o||(o=new Fk),a||LS(t)?sj(t,e,n,r,i,o):function(t,e,n,r,i,o,a){switch(n){case kj:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case Oj:return!(t.byteLength!=e.byteLength||!o(new Qk(t),new Qk(e)));case dj:case pj:case mj:return mk(+t,+e);case vj:return t.name==e.name&&t.message==e.message;case gj:case wj:return t==e+"";case yj:var u=cj;case bj:var s=r&fj;if(u||(u=lj),t.size!=e.size&&!s)return!1;var c=a.get(t);if(c)return c==e;r|=hj,a.set(t,e);var l=sj(u(t),u(e),r,i,o,a);return a.delete(t),l;case xj:if(jj)return jj.call(t)==jj.call(e)}return!1}(t,e,s,n,r,i,o);if(!(n&Qj)){var d=l&&n_.call(t,"__wrapped__"),p=f&&n_.call(e,"__wrapped__");if(d||p){var v=d?t.value():t,y=p?e.value():e;return o||(o=new Fk),i(v,y,n,r,o)}}return!!h&&(o||(o=new Fk),function(t,e,n,r,i,o){var a=n&Cj,u=Aj(t),s=u.length;if(s!=Aj(e).length&&!a)return!1;for(var c=s;c--;){var l=u[c];if(!(a?l in e:Tj.call(e,l)))return!1}var f=o.get(t),h=o.get(e);if(f&&h)return f==e&&h==t;var d=!0;o.set(t,e),o.set(e,t);for(var p=a;++c<s;){var v=t[l=u[c]],y=e[l];if(r)var m=a?r(y,v,l,e,t,o):r(v,y,l,t,e,o);if(!(void 0===m?v===y||i(v,y,n,r,o):m)){d=!1;break}p||(p="constructor"==l)}if(d&&!p){var g=t.constructor,b=e.constructor;g==b||!("constructor"in t)||!("constructor"in e)||"function"==typeof g&&g instanceof g&&"function"==typeof b&&b instanceof b||(d=!1)}return o.delete(t),o.delete(e),d}(t,e,n,r,i,o))}function i_(t,e,n,r,i){return t===e||(null==t||null==e||!aS(t)&&!aS(e)?t!=t&&e!=e:r_(t,e,n,r,i_,i))}function o_(t,e){return i_(t,e)}var a_=Object.prototype.hasOwnProperty;function u_(t,e){return null!=t&&a_.call(t,e)}var s_="[object Symbol]";function c_(t){return"symbol"==typeof t||aS(t)&&Jw(t)==s_}var l_=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,f_=/^\w*$/;var h_="Expected a function";function d_(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError(h_);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=t.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(d_.Cache||Wk),n}d_.Cache=Wk;var p_=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,v_=/\\(\\)?/g,y_=function(t){var e=d_(t,(function(t){return 500===n.size&&n.clear(),t})),n=e.cache;return e}((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(p_,(function(t,n,r,i){e.push(r?i.replace(v_,"$1"):n||t)})),e})),m_=y_;var g_=1/0,b_=Hw?Hw.prototype:void 0,w_=b_?b_.toString:void 0;function x_(t){if("string"==typeof t)return t;if(yv(t))return function(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}(t,x_)+"";if(c_(t))return w_?w_.call(t):"";var e=t+"";return"0"==e&&1/t==-g_?"-0":e}function O_(t,e){return yv(t)?t:function(t,e){if(yv(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!c_(t))||f_.test(t)||!l_.test(t)||null!=e&&t in Object(e)}(t,e)?[t]:m_(function(t){return null==t?"":x_(t)}(t))}var k_=1/0;function S_(t){if("string"==typeof t||c_(t))return t;var e=t+"";return"0"==e&&1/t==-k_?"-0":e}function j_(t,e){return null!=t&&function(t,e,n){for(var r=-1,i=(e=O_(e,t)).length,o=!1;++r<i;){var a=S_(e[r]);if(!(o=null!=t&&n(t,a)))break;t=t[a]}return o||++r!=i?o:!!(i=null==t?0:t.length)&&dS(i)&&NS(a,i)&&(yv(t)||fS(t))}(t,e,u_)}function __(t,e,n){var r=null==t?void 0:function(t,e){for(var n=0,r=(e=O_(e,t)).length;null!=t&&n<r;)t=t[S_(e[n++])];return n&&n==r?t:void 0}(t,e);return void 0===r?n:r}function M_(t,e,n){return null==t?t:function(t,e,n,r){if(!Qw(t))return t;for(var i=-1,o=(e=O_(e,t)).length,a=o-1,u=t;null!=u&&++i<o;){var s=S_(e[i]),c=n;if("__proto__"===s||"constructor"===s||"prototype"===s)return t;if(i!=a){var l=u[s];void 0===(c=r?r(l,s,u):void 0)&&(c=Qw(l)?l:NS(e[i+1])?[]:{})}TS(u,s,c),u=u[s]}return t}(t,e,n)}var D_,E_,$_={range:function(t){return Math.max(+t,1)},"date.highlight":function(t){return mv(t)},"subDomain.label":function(t){return function(t){return"string"==typeof t||!yv(t)&&aS(t)&&"[object String]"==Jw(t)}(t)&&""!==t||rx(t)?t:null}},P_=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:$_;en(this,t),this.preProcessors=e,this.options={itemSelector:"#cal-heatmap",range:12,domain:{type:"hour",gutter:4,padding:[0,0,0,0],dynamicDimension:!0,sort:"asc",label:{text:void 0,position:"bottom",textAlign:"middle",offset:{x:0,y:0},rotate:null,width:100,height:25}},subDomain:{type:"minute",width:10,height:10,gutter:2,radius:0,label:null,color:void 0,sort:"asc"},date:{start:new Date,min:void 0,max:void 0,highlight:[],locale:"en",timezone:void 0},verticalOrientation:!1,data:{source:"",type:"json",requestInit:{},x:"",y:"",groupY:"sum",defaultValue:null},scale:void 0,animationDuration:200,theme:"light",x:{domainHorizontalLabelWidth:0,domainVerticalLabelHeight:0}}}return rn(t,[{key:"set",value:function(t,e){return!(!j_(this.options,t)||o_(__(this.options,t),e))&&(M_(this.options,t,j_(this.preProcessors,t)?__(this.preProcessors,t)(e):e),!0)}},{key:"init",value:function(t){var e=this;this.options=Object.assign({},rj(this.options,t,(function(t,e){return Array.isArray(e)?e:void 0})));var n=this.options;Object.keys(this.preProcessors).forEach((function(t){M_(n,t,__(e.preProcessors,t)(__(n,t)))})),void 0===n.scale&&this.initScale(),n.x.domainVerticalLabelHeight=n.domain.label.height,"top"===n.domain.label.position||"bottom"===n.domain.label.position?n.x.domainHorizontalLabelWidth=0:(n.x.domainVerticalLabelHeight=0,n.x.domainHorizontalLabelWidth=n.domain.label.width),null!==n.domain.label.text&&""!==n.domain.label.text||(n.x.domainVerticalLabelHeight=0,n.x.domainHorizontalLabelWidth=0)}},{key:"initScale",value:function(){this.options.scale={color:{scheme:"YlOrBr",type:"quantize",domain:km}}}}]),t}(),L_=Rr,A_=jn,C_=dn.RegExp,T_=A_((function(){var t=C_("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),R_=T_||A_((function(){return!C_("a","y").sticky})),I_=T_||A_((function(){var t=C_("^r","gy");return t.lastIndex=2,null!=t.exec("str")})),N_={BROKEN_CARET:I_,MISSED_STICKY:R_,UNSUPPORTED_Y:T_},W_=jn,F_=dn.RegExp,z_=W_((function(){var t=F_(".","s");return!(t.dotAll&&t.exec("\n")&&"s"===t.flags)})),H_=jn,Y_=dn.RegExp,U_=H_((function(){var t=Y_("(?<a>b)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$<a>c")})),B_=Wr,G_=Pn,V_=ip,q_=function(){var t=L_(this),e="";return t.hasIndices&&(e+="d"),t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.unicodeSets&&(e+="v"),t.sticky&&(e+="y"),e},K_=N_,Z_=Ih,J_=po.get,Q_=z_,X_=U_,tM=Sn("native-string-replace",String.prototype.replace),eM=RegExp.prototype.exec,nM=eM,rM=G_("".charAt),iM=G_("".indexOf),oM=G_("".replace),aM=G_("".slice),uM=(E_=/b*/g,B_(eM,D_=/a/,"a"),B_(eM,E_,"a"),0!==D_.lastIndex||0!==E_.lastIndex),sM=K_.BROKEN_CARET,cM=void 0!==/()??/.exec("")[1];(uM||cM||sM||Q_||X_)&&(nM=function(t){var e,n,r,i,o,a,u,s=this,c=J_(s),l=V_(t),f=c.raw;if(f)return f.lastIndex=s.lastIndex,e=B_(nM,f,l),s.lastIndex=f.lastIndex,e;var h=c.groups,d=sM&&s.sticky,p=B_(q_,s),v=s.source,y=0,m=l;if(d&&(p=oM(p,"y",""),-1===iM(p,"g")&&(p+="g"),m=aM(l,s.lastIndex),s.lastIndex>0&&(!s.multiline||s.multiline&&"\n"!==rM(l,s.lastIndex-1))&&(v="(?: "+v+")",m=" "+m,y++),n=new RegExp("^(?:"+v+")",p)),cM&&(n=new RegExp("^"+v+"$(?!\\s)",p)),uM&&(r=s.lastIndex),i=B_(eM,d?n:s,m),d?i?(i.input=aM(i.input,y),i[0]=aM(i[0],y),i.index=s.lastIndex,s.lastIndex+=i[0].length):s.lastIndex=0:uM&&i&&(s.lastIndex=s.global?i.index+i[0].length:r),cM&&i&&i.length>1&&B_(tM,i[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(i[o]=void 0)})),i&&h)for(i.groups=a=Z_(null),o=0;o<h.length;o++)a[(u=h[o])[0]]=i[u[1]];return i});var lM=nM;wu({target:"RegExp",proto:!0,forced:/./.exec!==lM},{exec:lM});var fM,hM,dM=Ss,pM=Io,vM=lM,yM=jn,mM=pr,gM=Ki,bM=mM("species"),wM=RegExp.prototype,xM=dp.charAt,OM=Pn,kM=Nn,SM=Math.floor,jM=OM("".charAt),_M=OM("".replace),MM=OM("".slice),DM=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,EM=/\$([$&'`]|\d{1,2})/g,$M=Wr,PM=Rr,LM=wr,AM=zo,CM=lM,TM=TypeError,RM=xs,IM=Wr,NM=Pn,WM=function(t,e,n,r){var i=mM(t),o=!yM((function(){var e={};return e[i]=function(){return 7},7!=""[t](e)})),a=o&&!yM((function(){var e=!1,n=/a/;return"split"===t&&((n={}).constructor={},n.constructor[bM]=function(){return n},n.flags="",n[i]=/./[i]),n.exec=function(){return e=!0,null},n[i](""),!e}));if(!o||!a||n){var u=dM(/./[i]),s=e(i,""[t],(function(t,e,n,r,i){var a=dM(t),s=e.exec;return s===vM||s===wM.exec?o&&!i?{done:!0,value:u(e,n,r)}:{done:!0,value:a(n,e,r)}:{done:!1}}));pM(String.prototype,t,s[0]),pM(wM,i,s[1])}r&&gM(wM[i],"sham",!0)},FM=jn,zM=Rr,HM=wr,YM=Ln,UM=ka,BM=$a,GM=ip,VM=Tn,qM=function(t,e,n){return e+(n?xM(t,e).length:1)},KM=ri,ZM=function(t,e,n,r,i,o){var a=n+t.length,u=r.length,s=EM;return void 0!==i&&(i=kM(i),s=DM),_M(o,s,(function(o,s){var c;switch(jM(s,0)){case"$":return"$";case"&":return t;case"`":return MM(e,0,n);case"'":return MM(e,a);case"<":c=i[MM(s,1,-1)];break;default:var l=+s;if(0===l)return o;if(l>u){var f=SM(l/10);return 0===f?o:f<=u?void 0===r[f-1]?jM(s,1):r[f-1]+jM(s,1):o}c=r[l-1]}return void 0===c?"":c}))},JM=function(t,e){var n=t.exec;if(LM(n)){var r=$M(n,t,e);return null!==r&&PM(r),r}if("RegExp"===AM(t))return $M(CM,t,e);throw TM("RegExp#exec called on incompatible receiver")},QM=pr("replace"),XM=Math.max,tD=Math.min,eD=NM([].concat),nD=NM([].push),rD=NM("".indexOf),iD=NM("".slice),oD="$0"==="a".replace(/./,"$0"),aD=!!/./[QM]&&""===/./[QM]("a","$0"),uD=!FM((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}));WM("replace",(function(t,e,n){var r=aD?"$":"$0";return[function(t,n){var r=VM(this),i=YM(t)?void 0:KM(t,QM);return i?IM(i,t,r,n):IM(e,GM(r),t,n)},function(t,i){var o=zM(this),a=GM(t);if("string"==typeof i&&-1===rD(i,r)&&-1===rD(i,"$<")){var u=n(e,o,a,i);if(u.done)return u.value}var s=HM(i);s||(i=GM(i));var c=o.global;if(c){var l=o.unicode;o.lastIndex=0}for(var f=[];;){var h=JM(o,a);if(null===h)break;if(nD(f,h),!c)break;""===GM(h[0])&&(o.lastIndex=qM(a,BM(o.lastIndex),l))}for(var d,p="",v=0,y=0;y<f.length;y++){for(var m=GM((h=f[y])[0]),g=XM(tD(UM(h.index),a.length),0),b=[],w=1;w<h.length;w++)nD(b,void 0===(d=h[w])?d:String(d));var x=h.groups;if(s){var O=eD([m],b,g,a);void 0!==x&&nD(O,x);var k=GM(RM(i,void 0,O))}else k=ZM(m,a,g,b,x,i);g>=v&&(p+=iD(a,v,g)+k,v=g+m.length)}return p+iD(a,v)}]}),!uD||!oD||aD);var sD=function(){function t(e){en(this,t),fM.add(this),this.calendar=e}return rn(t,[{key:"getDatas",value:function(t,e,n){return hv(this,void 0,void 0,Xe().mark((function r(){var i;return Xe().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(!("string"==typeof t&&t.length>0)){r.next=2;break}return r.abrupt("return",dv(this,fM,"m",hM).call(this,t,e,n));case 2:return i=[],Array.isArray(t)&&(i=t),r.abrupt("return",new Promise((function(t){t(i)})));case 5:case"end":return r.stop()}}),r,this)})))}},{key:"parseURI",value:function(t,e,n){var r=this,i=t.replace(/\{\{start=(.*)\}\}/g,(function(t,n){return r.calendar.dateHelper.date(e).format(n)}));return i=i.replace(/\{\{end=(.*)\}\}/g,(function(t,e){return r.calendar.dateHelper.date(n).format(e)}))}}]),t}();fM=new WeakSet,hM=function(t,e,n){var r=this.calendar.options.options.data,i=r.type,o=r.requestInit,a=this.parseURI(t,e,n);switch(i){case"json":return Qe(a,o);case"csv":return Je(a,o);case"tsv":return Ze("\t",a,o);case"txt":return Ke(a,o);default:return new Promise((function(t){t([])}))}};var cD=Or,lD=Ti.EXISTS,fD=Pn,hD=Iu,dD=Function.prototype,pD=fD(dD.toString),vD=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,yD=fD(vD.exec);cD&&!lD&&hD(dD,"name",{configurable:!0,get:function(){try{return yD(vD,pD(this))[1]}catch(t){return""}}});var mD={exports:{}};mD.exports=function(){var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",o="minute",a="hour",u="day",s="week",c="month",l="quarter",f="year",h="date",d="Invalid Date",p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,v=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,y={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},g={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),o=n-i<0,a=e.clone().add(r+(o?-1:1),c);return+(-(r+(n-i)/(o?i-a:a-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:f,w:s,d:u,D:h,h:a,m:o,s:i,ms:r,Q:l}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},b="en",w={};w[b]=y;var x=function(t){return t instanceof j},O=function t(e,n,r){var i;if(!e)return b;if("string"==typeof e){var o=e.toLowerCase();w[o]&&(i=o),n&&(w[o]=n,i=o);var a=e.split("-");if(!i&&a.length>1)return t(a[0])}else{var u=e.name;w[u]=e,i=u}return!r&&i&&(b=i),i||!r&&b},k=function(t,e){if(x(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new j(n)},S=g;S.l=O,S.i=x,S.w=function(t,e){return k(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var j=function(){function y(t){this.$L=O(t.locale,null,!0),this.parse(t)}var m=y.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(S.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match(p);if(r){var i=r[2]-1||0,o=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return S},m.isValid=function(){return!(this.$d.toString()===d)},m.isSame=function(t,e){var n=k(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return k(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<k(t)},m.$g=function(t,e,n){return S.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!S.u(e)||e,l=S.p(t),d=function(t,e){var i=S.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(u)},p=function(t,e){return S.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},v=this.$W,y=this.$M,m=this.$D,g="set"+(this.$u?"UTC":"");switch(l){case f:return r?d(1,0):d(31,11);case c:return r?d(1,y):d(0,y+1);case s:var b=this.$locale().weekStart||0,w=(v<b?v+7:v)-b;return d(r?m-w:m+(6-w),y);case u:case h:return p(g+"Hours",0);case a:return p(g+"Minutes",1);case o:return p(g+"Seconds",2);case i:return p(g+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,s=S.p(t),l="set"+(this.$u?"UTC":""),d=(n={},n[u]=l+"Date",n[h]=l+"Date",n[c]=l+"Month",n[f]=l+"FullYear",n[a]=l+"Hours",n[o]=l+"Minutes",n[i]=l+"Seconds",n[r]=l+"Milliseconds",n)[s],p=s===u?this.$D+(e-this.$W):e;if(s===c||s===f){var v=this.clone().set(h,1);v.$d[d](p),v.init(),this.$d=v.set(h,Math.min(this.$D,v.daysInMonth())).$d}else d&&this.$d[d](p);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[S.p(t)]()},m.add=function(r,l){var h,d=this;r=Number(r);var p=S.p(l),v=function(t){var e=k(d);return S.w(e.date(e.date()+Math.round(t*r)),d)};if(p===c)return this.set(c,this.$M+r);if(p===f)return this.set(f,this.$y+r);if(p===u)return v(1);if(p===s)return v(7);var y=(h={},h[o]=e,h[a]=n,h[i]=t,h)[p]||1,m=this.$d.getTime()+r*y;return S.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||d;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=S.z(this),o=this.$H,a=this.$m,u=this.$M,s=n.weekdays,c=n.months,l=function(t,n,i,o){return t&&(t[n]||t(e,r))||i[n].slice(0,o)},f=function(t){return S.s(o%12||12,t,"0")},h=n.meridiem||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r},p={YY:String(this.$y).slice(-2),YYYY:this.$y,M:u+1,MM:S.s(u+1,2,"0"),MMM:l(n.monthsShort,u,c,3),MMMM:l(c,u),D:this.$D,DD:S.s(this.$D,2,"0"),d:String(this.$W),dd:l(n.weekdaysMin,this.$W,s,2),ddd:l(n.weekdaysShort,this.$W,s,3),dddd:s[this.$W],H:String(o),HH:S.s(o,2,"0"),h:f(1),hh:f(2),a:h(o,a,!0),A:h(o,a,!1),m:String(a),mm:S.s(a,2,"0"),s:String(this.$s),ss:S.s(this.$s,2,"0"),SSS:S.s(this.$ms,3,"0"),Z:i};return r.replace(v,(function(t,e){return e||p[t]||i.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,h,d){var p,v=S.p(h),y=k(r),m=(y.utcOffset()-this.utcOffset())*e,g=this-y,b=S.m(this,y);return b=(p={},p[f]=b/12,p[c]=b,p[l]=b/3,p[s]=(g-m)/6048e5,p[u]=(g-m)/864e5,p[a]=g/n,p[o]=g/e,p[i]=g/t,p)[v]||g,d?b:S.a(b)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return w[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=O(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return S.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},y}(),_=j.prototype;return k.prototype=_,[["$ms",r],["$s",i],["$m",o],["$H",a],["$W",u],["$M",c],["$y",f],["$D",h]].forEach((function(t){_[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),k.extend=function(t,e){return t.$i||(t(e,j,k),t.$i=!0),k},k.locale=O,k.isDayjs=x,k.unix=function(t){return k(1e3*t)},k.en=w[b],k.Ls=w,k.p={},k}();var gD,bD,wD=fn(mD.exports),xD={exports:{}},OD=fn(xD.exports=(gD="week",bD="year",function(t,e,n){var r=e.prototype;r.week=function(t){if(void 0===t&&(t=null),null!==t)return this.add(7*(t-this.week()),"day");var e=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var r=n(this).startOf(bD).add(1,bD).date(e),i=n(this).endOf(gD);if(r.isBefore(i))return 1}var o=n(this).startOf(bD).date(e).startOf(gD).subtract(1,"millisecond"),a=this.diff(o,gD,!0);return a<0?n(this).startOf("week").week():Math.ceil(a)},r.weeks=function(t){return void 0===t&&(t=null),this.week(t)}})),kD={exports:{}};kD.exports=function(t,e,n){e.prototype.dayOfYear=function(t){var e=Math.round((n(this).startOf("day")-n(this).startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"day")}};var SD=fn(kD.exports),jD={exports:{}};jD.exports=function(t,e){e.prototype.weekday=function(t){var e=this.$locale().weekStart||0,n=this.$W,r=(n<e?n+7:n)-e;return this.$utils().u(t)?r:this.subtract(r,"day").add(t,"day")}};var _D=fn(jD.exports),MD={exports:{}};MD.exports=function(t,e,n){var r=function(t,e){if(!e||!e.length||!e[0]||1===e.length&&!e[0].length)return null;var n;1===e.length&&e[0].length>0&&(e=e[0]),n=e[0];for(var r=1;r<e.length;r+=1)e[r].isValid()&&!e[r][t](n)||(n=e[r]);return n};n.max=function(){var t=[].slice.call(arguments,0);return r("isAfter",t)},n.min=function(){var t=[].slice.call(arguments,0);return r("isBefore",t)}};var DD=fn(MD.exports),ED={exports:{}};ED.exports=function(t,e){e.prototype.isoWeeksInYear=function(){var t=this.isLeapYear(),e=this.endOf("y").day();return 4===e||t&&5===e?53:52}};var $D=fn(ED.exports),PD={exports:{}};PD.exports=function(){var t="day";return function(e,n,r){var i=function(e){return e.add(4-e.isoWeekday(),t)},o=n.prototype;o.isoWeekYear=function(){return i(this).year()},o.isoWeek=function(e){if(!this.$utils().u(e))return this.add(7*(e-this.isoWeek()),t);var n,o,a,u=i(this),s=(n=this.isoWeekYear(),a=4-(o=(this.$u?r.utc:r)().year(n).startOf("year")).isoWeekday(),o.isoWeekday()>4&&(a+=7),o.add(a,t));return u.diff(s,"week")+1},o.isoWeekday=function(t){return this.$utils().u(t)?this.day()||7:this.day(this.day()%7?t:t-7)};var a=o.startOf;o.startOf=function(t,e){var n=this.$utils(),r=!!n.u(e)||e;return"isoweek"===n.p(t)?r?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):a.bind(this)(t,e)}}}();var LD=fn(PD.exports),AD={exports:{}};AD.exports=function(t,e){e.prototype.isLeapYear=function(){return this.$y%4==0&&this.$y%100!=0||this.$y%400==0}};var CD=fn(AD.exports),TD={exports:{}};TD.exports=function(t,e){var n=e.prototype,r=n.format;n.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return r.bind(this)(t);var i=this.$utils(),o=(t||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(t){switch(t){case"Q":return Math.ceil((e.$M+1)/3);case"Do":return n.ordinal(e.$D);case"gggg":return e.weekYear();case"GGGG":return e.isoWeekYear();case"wo":return n.ordinal(e.week(),"W");case"w":case"ww":return i.s(e.week(),"w"===t?1:2,"0");case"W":case"WW":return i.s(e.isoWeek(),"W"===t?1:2,"0");case"k":case"kk":return i.s(String(0===e.$H?24:e.$H),"k"===t?1:2,"0");case"X":return Math.floor(e.$d.getTime()/1e3);case"x":return e.$d.getTime();case"z":return"["+e.offsetName()+"]";case"zzz":return"["+e.offsetName("long")+"]";default:return t}}));return r.bind(this)(o)}};var RD=fn(TD.exports),ID={exports:{}};ID.exports=function(){var t="minute",e=/[+-]\d\d(?::?\d\d)?/g,n=/([+-]|\d\d)/g;return function(r,i,o){var a=i.prototype;o.utc=function(t){return new i({date:t,utc:!0,args:arguments})},a.utc=function(e){var n=o(this.toDate(),{locale:this.$L,utc:!0});return e?n.add(this.utcOffset(),t):n},a.local=function(){return o(this.toDate(),{locale:this.$L,utc:!1})};var u=a.parse;a.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),u.call(this,t)};var s=a.init;a.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else s.call(this)};var c=a.utcOffset;a.utcOffset=function(r,i){var o=this.$utils().u;if(o(r))return this.$u?0:o(this.$offset)?c.call(this):this.$offset;if("string"==typeof r&&(r=function(t){void 0===t&&(t="");var r=t.match(e);if(!r)return null;var i=(""+r[0]).match(n)||["-",0,0],o=i[0],a=60*+i[1]+ +i[2];return 0===a?0:"+"===o?a:-a}(r),null===r))return this;var a=Math.abs(r)<=16?60*r:r,u=this;if(i)return u.$offset=a,u.$u=0===r,u;if(0!==r){var s=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(u=this.local().add(a+s,t)).$offset=a,u.$x.$localOffset=s}else u=this.utc();return u};var l=a.format;a.format=function(t){var e=t||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return l.call(this,e)},a.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},a.isUTC=function(){return!!this.$u},a.toISOString=function(){return this.toDate().toISOString()},a.toString=function(){return this.toDate().toUTCString()};var f=a.toDate;a.toDate=function(t){return"s"===t&&this.$offset?o(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():f.call(this)};var h=a.diff;a.diff=function(t,e,n){if(t&&this.$u===t.$u)return h.call(this,t,e,n);var r=this.local(),i=o(t).local();return h.call(r,i,e,n)}}}();var ND=fn(ID.exports),WD={exports:{}};WD.exports=function(){var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,r,i){var o,a=function(t,n,r){void 0===r&&(r={});var i=new Date(t),o=function(t,n){void 0===n&&(n={});var r=n.timeZoneName||"short",i=t+"|"+r,o=e[i];return o||(o=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:r}),e[i]=o),o}(n,r);return o.formatToParts(i)},u=function(e,n){for(var r=a(e,n),o=[],u=0;u<r.length;u+=1){var s=r[u],c=s.type,l=s.value,f=t[c];f>=0&&(o[f]=parseInt(l,10))}var h=o[3],d=24===h?0:h,p=o[0]+"-"+o[1]+"-"+o[2]+" "+d+":"+o[4]+":"+o[5]+":000",v=+e;return(i.utc(p).valueOf()-(v-=v%1e3))/6e4},s=r.prototype;s.tz=function(t,e){void 0===t&&(t=o);var n=this.utcOffset(),r=this.toDate(),a=r.toLocaleString("en-US",{timeZone:t}),u=Math.round((r-new Date(a))/1e3/60),s=i(a).$set("millisecond",this.$ms).utcOffset(15*-Math.round(r.getTimezoneOffset()/15)-u,!0);if(e){var c=s.utcOffset();s=s.add(n-c,"minute")}return s.$x.$timezone=t,s},s.offsetName=function(t){var e=this.$x.$timezone||i.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return"timezonename"===t.type.toLowerCase()}));return n&&n.value};var c=s.startOf;s.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return c.call(this,t,e);var n=i(this.format("YYYY-MM-DD HH:mm:ss:SSS"));return c.call(n,t,e).tz(this.$x.$timezone,!0)},i.tz=function(t,e,n){var r=n&&e,a=n||e||o,s=u(+i(),a);if("string"!=typeof t)return i(t).tz(a);var c=function(t,e,n){var r=t-60*e*1e3,i=u(r,n);if(e===i)return[r,e];var o=u(r-=60*(i-e)*1e3,n);return i===o?[r,i]:[t-60*Math.min(i,o)*1e3,Math.max(i,o)]}(i.utc(t,r).valueOf(),s,a),l=c[0],f=c[1],h=i(l).utcOffset(f);return h.$x.$timezone=a,h},i.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},i.tz.setDefault=function(t){o=t}}}();var FD=fn(WD.exports),zD={exports:{}};zD.exports=function(t,e,n){var r=e.prototype,i=function(t){return t&&(t.indexOf?t:t.s)},o=function(t,e,n,r,o){var a=t.name?t:t.$locale(),u=i(a[e]),s=i(a[n]),c=u||s.map((function(t){return t.slice(0,r)}));if(!o)return c;var l=a.weekStart;return c.map((function(t,e){return c[(e+(l||0))%7]}))},a=function(){return n.Ls[n.locale()]},u=function(t,e){return t.formats[e]||function(t){return t.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(t,e,n){return e||n.slice(1)}))}(t.formats[e.toUpperCase()])},s=function(){var t=this;return{months:function(e){return e?e.format("MMMM"):o(t,"months")},monthsShort:function(e){return e?e.format("MMM"):o(t,"monthsShort","months",3)},firstDayOfWeek:function(){return t.$locale().weekStart||0},weekdays:function(e){return e?e.format("dddd"):o(t,"weekdays")},weekdaysMin:function(e){return e?e.format("dd"):o(t,"weekdaysMin","weekdays",2)},weekdaysShort:function(e){return e?e.format("ddd"):o(t,"weekdaysShort","weekdays",3)},longDateFormat:function(e){return u(t.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},n.localeData=function(){var t=a();return{firstDayOfWeek:function(){return t.weekStart||0},weekdays:function(){return n.weekdays()},weekdaysShort:function(){return n.weekdaysShort()},weekdaysMin:function(){return n.weekdaysMin()},months:function(){return n.months()},monthsShort:function(){return n.monthsShort()},longDateFormat:function(e){return u(t,e)},meridiem:t.meridiem,ordinal:t.ordinal}},n.months=function(){return o(a(),"months")},n.monthsShort=function(){return o(a(),"monthsShort","months",3)},n.weekdays=function(t){return o(a(),"weekdays",null,null,t)},n.weekdaysShort=function(t){return o(a(),"weekdaysShort","weekdays",3,t)},n.weekdaysMin=function(t){return o(a(),"weekdaysMin","weekdays",2,t)}};var HD=fn(zD.exports),YD={exports:{}};YD.exports=function(){var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};return function(e,n,r){var i=n.prototype,o=i.format;r.en.formats=t,i.format=function(e){void 0===e&&(e="YYYY-MM-DDTHH:mm:ssZ");var n=this.$locale().formats,r=function(e,n){return e.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(e,r,i){var o=i&&i.toUpperCase();return r||n[i]||t[i]||n[o].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(t,e,n){return e||n.slice(1)}))}))}(e,void 0===n?{}:n);return o.call(this,r)}}}();var UD=fn(YD.exports),BD={exports:{}};BD.exports=function(t,e,n){n.updateLocale=function(t,e){var r=n.Ls[t];if(r)return(e?Object.keys(e):[]).forEach((function(t){r[t]=e[t]})),r}};var GD=fn(BD.exports);wD.extend(OD),wD.extend($D),wD.extend(LD),wD.extend(CD),wD.extend(SD),wD.extend(_D),wD.extend(DD),wD.extend(RD),wD.extend(ND),wD.extend(FD),wD.extend(HD),wD.extend(UD),wD.extend(GD);var VD="en",qD=function(){function t(){var e;en(this,t),this.locale=VD,this.timezone=wD.tz.guess(),"object"===("undefined"==typeof window?"undefined":tn(window))&&((e=window).dayjs||(e.dayjs=wD))}return rn(t,[{key:"setup",value:function(t){var e=t.options;return hv(this,void 0,void 0,Xe().mark((function t(){var n,r;return Xe().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.timezone=e.date.timezone||wD.tz.guess(),"string"!=typeof(n=e.date.locale)||n===VD){t.next=17;break}if("object"!==("undefined"==typeof window?"undefined":tn(window))){t.next=12;break}if(t.t0=window["dayjs_locale_".concat(n)],t.t0){t.next=9;break}return t.next=8,this.loadBrowserLocale(n);case 8:t.t0=t.sent;case 9:r=t.t0,t.next=15;break;case 12:return t.next=14,this.loadNodeLocale(n);case 14:r=t.sent;case 15:wD.locale(n),this.locale=r;case 17:"object"===tn(n)&&(n.hasOwnProperty("name")?(wD.locale(n.name,n),this.locale=n):this.locale=wD.updateLocale(VD,n));case 18:case"end":return t.stop()}}),t,this)})))}},{key:"extend",value:function(t){return wD.extend(t)}},{key:"getMonthWeekNumber",value:function(t){var e=this.date(t),n=e.startOf("day"),r=e.startOf("month").endOf("week");return n<=r?1:Math.ceil(n.diff(r,"weeks",!0))+1}},{key:"getWeeksCountInMonth",value:function(t){var e=this.date(t);return this.getLastWeekOfMonth(e).diff(this.getFirstWeekOfMonth(e),"week")+1}},{key:"getFirstWeekOfMonth",value:function(t){var e=this.date(t).startOf("month"),n=e.startOf("week");return e.weekday()>4&&(n=n.add(1,"week")),n}},{key:"getLastWeekOfMonth",value:function(t){var e=this.date(t).endOf("month"),n=e.endOf("week");return e.weekday()<4&&(n=n.subtract(1,"week")),n}},{key:"date",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Date;return wD.isDayjs(t)?t:wD(t).tz(this.timezone).utcOffset(0).locale(this.locale)}},{key:"format",value:function(t,e){if("function"==typeof e){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];return e.apply(void 0,[t].concat(r))}return"string"==typeof e?this.date(t).format(e):null}},{key:"intervals",value:function(t,e,n){var r,i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=this.date(e);r="number"==typeof n?o.add(n,t):wD.isDayjs(n)?n:this.date(n),o=o.startOf(t),r=r.startOf(t);var a=wD.min(o,r);r=wD.max(o,r);var u=[];i||(r=r.add(1,"second"));do{u.push(+a),a=a.add(1,t)}while(a<r);return u}},{key:"loadBrowserLocale",value:function(t){return new Promise((function(e,n){var r=document.createElement("script");r.type="text/javascript",r.async=!0,r.src="https://cdn.jsdelivr.net/npm/dayjs@1/locale/".concat(t,".js"),r.onerror=function(t){n(t)},r.onload=function(){e(window["dayjs_locale_".concat(t)])},document.head.appendChild(r)}))}},{key:"loadNodeLocale",value:function(t){return import("dayjs/locale/".concat(t,".js"))}}]),t}(),KD=wu,ZD=hx,JD=Tn,QD=ip,XD=px,tE=Pn("".indexOf);KD({target:"String",proto:!0,forced:!XD("includes")},{includes:function(t){return!!~tE(QD(JD(this)),QD(ZD(t)),arguments.length>1?arguments[1]:void 0)}});var eE=["json","csv","tsv","txt"];function nE(t,e){var n=e.domain,r=e.subDomain,i=e.data,o=n.type,a=r.type;if(!t.has(o))throw new Error("'".concat(o,"' is not a valid domain type'"));if(!t.has(a))throw new Error("'".concat(a,"' is not a valid subDomain type'"));if(i.type&&!eE.includes(i.type))throw new Error("The data type '".concat(i.type,"' is not valid data type"));if(!(t.get(a).allowedDomainType||[]).includes(o))throw new Error("The subDomain.type '".concat(a,"' can not be used together ")+"with the domain type ".concat(o));return!0}Ky("Set",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),ug);var rE=function(){function t(e){en(this,t),this.calendar=e,this.settings=new Map,this.plugins=new Map,this.pendingPaint=new Set}return rn(t,[{key:"add",value:function(t){var e=this;t.forEach((function(t){var n,r,i=on(t,2),o=i[0],a=i[1],u=function(t,e){return"".concat((new t).name).concat((null==e?void 0:e.key)||"")}(o,a);e.plugins.get(u)&&e.settings.get(u)&&o_(e.settings.get(u).options,a)||(e.settings.set(u,{options:a,dirty:!0}),e.plugins.has(u)||e.plugins.set(u,(n=o,r=e.calendar,new n(r))),e.pendingPaint.add(e.plugins.get(u)))}))}},{key:"setupAll",value:function(){var t=this;this.plugins.forEach((function(e,n){var r=t.settings.get(n);void 0!==r&&r.dirty&&(e.setup(r.options),r.dirty=!1,t.settings.set(n,r))}))}},{key:"paintAll",value:function(){return Array.from(this.pendingPaint.values()).map((function(t){return t.paint()}))}},{key:"destroyAll",value:function(){return this.allPlugins().map((function(t){return t.destroy()}))}},{key:"getFromPosition",value:function(t){return this.allPlugins().filter((function(e){var n;return(null===(n=e.options)||void 0===n?void 0:n.position)===t}))}},{key:"getHeightFromPosition",value:function(t){return this.getFromPosition(t).map((function(t){return t.options.dimensions.height})).reduce((function(t,e){return t+e}),0)}},{key:"getWidthFromPosition",value:function(t){return this.getFromPosition(t).map((function(t){return t.options.dimensions.width})).reduce((function(t,e){return t+e}),0)}},{key:"allPlugins",value:function(){return Array.from(this.plugins.values())}}]),t}(),iE=[function(t){return{name:"minute",allowedDomainType:["day","hour"],rowsCount:function(){return 10},columnsCount:function(){return 6},mapping:function(e,n){return t.intervals("minute",e,t.date(n)).map((function(t,e){return{t:t,x:Math.floor(e/10),y:e%10}}))},extractUnit:function(e){return t.date(e).startOf("minute").valueOf()}}},function(t,e){var n=e.domain;return{name:"hour",allowedDomainType:["month","week","day"],rowsCount:function(){return 6},columnsCount:function(e){switch(n.type){case"week":return 28;case"month":return 4*(n.dynamicDimension?t.date(e).daysInMonth():31);default:return 4}},mapping:function(e,r){return t.intervals("hour",e,t.date(r)).map((function(e){var r=t.date(e),i=r.hour(),o=r.date(),a=Math.floor(i/6);return"month"===n.type&&(a+=4*(o-1)),"week"===n.type&&(a+=4*+r.format("d")),{t:e,x:a,y:Math.floor(i%6)}}))},extractUnit:function(e){return t.date(e).startOf("hour").valueOf()}}},function(t,e){var n=e.domain,r=e.verticalOrientation;return{name:"day",allowedDomainType:["year","month","week"],rowsCount:function(){return"week"===n.type?1:7},columnsCount:function(e){switch(n.type){case"month":return Math.ceil(n.dynamicDimension&&!r?t.getMonthWeekNumber(t.date(e).endOf("month")):6);case"year":return Math.ceil(n.dynamicDimension?t.date(e).endOf("year").dayOfYear()/7:54);default:return 7}},mapping:function(e,r){var i=0,o=-1;return t.intervals("day",e,t.date(r)).map((function(e){var r=t.date(e);switch(n.type){case"month":o=t.getMonthWeekNumber(e)-1;break;case"year":i!==r.week()&&(i=r.week(),o+=1);break;case"week":o=r.weekday()}return{t:e,x:o,y:"week"===n.type?0:r.weekday()}}))},extractUnit:function(e){return t.date(e).startOf("day").valueOf()}}},function(t,e){var n=e.domain,r=e.verticalOrientation;return{name:"xDay",allowedDomainType:["year","month","week"],rowsCount:function(e){switch(n.type){case"month":return Math.ceil(n.dynamicDimension&&!r?t.getMonthWeekNumber(t.date(e).endOf("month")):6);case"year":return Math.ceil(n.dynamicDimension?t.date(e).endOf("year").dayOfYear()/7:54);default:return 7}},columnsCount:function(){return"week"===n.type?1:7},mapping:function(e,r){return t.intervals("day",e,t.date(r)).map((function(e){var r=t.date(e),i=r.endOf("year").week(),o=0;switch(n.type){case"month":o=t.getMonthWeekNumber(e)-1;break;case"year":1===i&&r.week()===i&&(o=r.subtract(1,"week").week()+1),o=r.week()-1;break;case"week":o=r.weekday()}return{t:e,y:o,x:"week"===n.type?0:r.weekday()}}))},extractUnit:function(e){return t.date(e).startOf("day").valueOf()}}},function(t){return{name:"ghDay",allowedDomainType:["month"],rowsCount:function(){return 7},columnsCount:function(e){return t.getWeeksCountInMonth(e)},mapping:function(e,n){var r=t.getFirstWeekOfMonth(e),i=t.getFirstWeekOfMonth(n),o=-1,a=r.weekday();return t.intervals("day",r,i).map((function(e){var n=t.date(e).weekday();return n===a&&(o+=1),{t:e,x:o,y:n}}))},extractUnit:function(e){return t.date(e).startOf("day").valueOf()}}},function(t,e){var n=e.domain;return{name:"week",allowedDomainType:["year","month"],rowsCount:function(){return 1},columnsCount:function(e){switch(n.type){case"year":return n.dynamicDimension?t.date(e).endOf("year").isoWeeksInYear():53;case"month":return n.dynamicDimension?t.getWeeksCountInMonth(e):5;default:return 1}},mapping:function(e,n){var r=t.getFirstWeekOfMonth(e),i=t.getFirstWeekOfMonth(n);return t.intervals("week",r,i).map((function(t,e){return{t:t,x:e,y:0}}))},extractUnit:function(e){return t.date(e).startOf("week").valueOf()}}},function(t){return{name:"month",allowedDomainType:["year"],rowsCount:function(){return 1},columnsCount:function(){return 12},mapping:function(e,n){return t.intervals("month",e,t.date(n)).map((function(e){return{t:e,x:t.date(e).month(),y:0}}))},extractUnit:function(e){return t.date(e).startOf("month").valueOf()}}},function(t){return{name:"year",allowedDomainType:[],rowsCount:function(){return 1},columnsCount:function(){return 1},mapping:function(e,n){return t.intervals("year",e,t.date(n)).map((function(t,e){return{t:t,x:e,y:0}}))},extractUnit:function(e){return t.date(e).startOf("year").valueOf()}}}],oE=function(){function t(e,n){en(this,t),this.settings=new Map,this.dateHelper=e,this.options=n,this.initiated=!1}return rn(t,[{key:"get",value:function(t){return this.settings.get(t)}},{key:"has",value:function(t){return this.settings.has(t)}},{key:"init",value:function(){this.initiated||(this.initiated=!0,this.add(iE))}},{key:"add",value:function(t){var e=this;this.init();var n=[];mv(t).forEach((function(t){var r=t(e.dateHelper,e.options.options);e.settings.set(r.name,r),r.hasOwnProperty("parent")&&n.push(r.name)})),n.forEach((function(t){var n=e.settings.get(e.settings.get(t).parent);n&&e.settings.set(t,Object.assign(Object.assign({},n),e.settings.get(t)))}))}}]),t}(),aE=function(){function t(){en(this,t),this.options=new P_,this.dateHelper=new qD,this.templateCollection=new oE(this.dateHelper,this.options),this.dataFetcher=new sD(this),this.navigator=new Sm(this),this.populator=new yk(this),this.calendarPainter=new Nw(this),this.eventEmitter=new vv,this.pluginManager=new rE(this)}return rn(t,[{key:"createDomainCollection",value:function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return new lw(this.dateHelper,this.options.options.domain.type,t,e,n)}},{key:"paint",value:function(t,e){return hv(this,void 0,void 0,Xe().mark((function n(){return Xe().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return this.options.init(t),n.next=3,this.dateHelper.setup(this.options);case 3:this.templateCollection.init(),n.prev=4,nE(this.templateCollection,this.options.options),n.next=11;break;case 8:return n.prev=8,n.t0=n.catch(4),n.abrupt("return",Promise.reject(n.t0));case 11:return e&&this.pluginManager.add(mv(e)),this.calendarPainter.setup(),this.domainCollection=new lw(this.dateHelper),this.navigator.loadNewDomains(this.createDomainCollection(this.options.options.date.start,this.options.options.range)),n.abrupt("return",Promise.allSettled([this.calendarPainter.paint(),this.fill()]));case 16:case"end":return n.stop()}}),n,this,[[4,8]])})))}},{key:"addTemplates",value:function(t){this.templateCollection.add(t)}},{key:"next",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,e=this.navigator.loadNewDomains(this.createDomainCollection(this.domainCollection.max,t+1).slice(t),ym.SCROLL_FORWARD);return Promise.allSettled([this.calendarPainter.paint(e),this.fill()])}},{key:"previous",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,e=this.navigator.loadNewDomains(this.createDomainCollection(this.domainCollection.min,-t),ym.SCROLL_BACKWARD);return Promise.allSettled([this.calendarPainter.paint(e),this.fill()])}},{key:"jumpTo",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return Promise.allSettled([this.calendarPainter.paint(this.navigator.jumpTo(t,e)),this.fill()])}},{key:"fill",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.options.data.source,n=this.options.options,r=this.templateCollection,i=this.dateHelper.intervals(n.domain.type,this.domainCollection.max,2)[1],o=this.dataFetcher.getDatas(e,this.domainCollection.min,i);return new Promise((function(e,i){o.then((function(i){t.domainCollection.fill(i,n.data,r.get(n.subDomain.type).extractUnit),t.populator.populate(),e(null)}),(function(t){i(t)}))}))}},{key:"on",value:function(t,e){this.eventEmitter.on(t,e)}},{key:"dimensions",value:function(){return this.calendarPainter.dimensions}},{key:"destroy",value:function(){return this.calendarPainter.destroy()}},{key:"extendDayjs",value:function(t){return this.dateHelper.extend(t)}}]),t}();aE.VERSION="4.2.3";export{aE as default};//# sourceMappingURL=cal-heatmap.min.esm.js.map diff --git a/static/javascripts/cal-heatmap/cal-heatmap.min.esm.js.map b/static/javascripts/cal-heatmap/cal-heatmap.min.esm.js.map new file mode 100644 index 000000000..4e4bea43c --- /dev/null +++ b/static/javascripts/cal-heatmap/cal-heatmap.min.esm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cal-heatmap.min.esm.js","sources":["../node_modules/core-js/internals/global.js","../node_modules/core-js/internals/define-global-property.js","../node_modules/core-js/internals/shared-store.js","../node_modules/core-js/internals/shared.js","../node_modules/core-js/internals/engine-v8-version.js","../node_modules/core-js/internals/fails.js","../node_modules/core-js/internals/function-bind-native.js","../node_modules/core-js/internals/function-uncurry-this.js","../node_modules/core-js/internals/is-null-or-undefined.js","../node_modules/core-js/internals/require-object-coercible.js","../node_modules/core-js/internals/to-object.js","../node_modules/core-js/internals/has-own-property.js","../node_modules/core-js/internals/uid.js","../node_modules/core-js/internals/engine-user-agent.js","../node_modules/core-js/internals/symbol-constructor-detection.js","../node_modules/core-js/internals/use-symbol-as-uid.js","../node_modules/core-js/internals/well-known-symbol.js","../node_modules/core-js/internals/to-string-tag-support.js","../node_modules/core-js/internals/document-all.js","../node_modules/core-js/internals/is-callable.js","../node_modules/core-js/internals/descriptors.js","../node_modules/core-js/internals/is-object.js","../node_modules/core-js/internals/document-create-element.js","../node_modules/core-js/internals/ie8-dom-define.js","../node_modules/core-js/internals/v8-prototype-define-bug.js","../node_modules/core-js/internals/an-object.js","../node_modules/core-js/internals/function-call.js","../node_modules/core-js/internals/get-built-in.js","../node_modules/core-js/internals/object-is-prototype-of.js","../node_modules/core-js/internals/is-symbol.js","../node_modules/core-js/internals/try-to-string.js","../node_modules/core-js/internals/a-callable.js","../node_modules/core-js/internals/get-method.js","../node_modules/core-js/internals/ordinary-to-primitive.js","../node_modules/core-js/internals/to-primitive.js","../node_modules/core-js/internals/to-property-key.js","../node_modules/core-js/internals/object-define-property.js","../node_modules/core-js/internals/function-name.js","../node_modules/core-js/internals/inspect-source.js","../node_modules/core-js/internals/internal-state.js","../node_modules/core-js/internals/weak-map-basic-detection.js","../node_modules/core-js/internals/create-property-descriptor.js","../node_modules/core-js/internals/create-non-enumerable-property.js","../node_modules/core-js/internals/shared-key.js","../node_modules/core-js/internals/hidden-keys.js","../node_modules/core-js/internals/make-built-in.js","../node_modules/core-js/internals/define-built-in.js","../node_modules/core-js/internals/classof-raw.js","../node_modules/core-js/internals/classof.js","../node_modules/core-js/internals/object-to-string.js","../node_modules/core-js/modules/es.object.to-string.js","../node_modules/core-js/internals/object-property-is-enumerable.js","../node_modules/core-js/internals/indexed-object.js","../node_modules/core-js/internals/to-indexed-object.js","../node_modules/core-js/internals/object-get-own-property-descriptor.js","../node_modules/core-js/internals/math-trunc.js","../node_modules/core-js/internals/to-integer-or-infinity.js","../node_modules/core-js/internals/to-absolute-index.js","../node_modules/core-js/internals/to-length.js","../node_modules/core-js/internals/length-of-array-like.js","../node_modules/core-js/internals/array-includes.js","../node_modules/core-js/internals/object-keys-internal.js","../node_modules/core-js/internals/enum-bug-keys.js","../node_modules/core-js/internals/object-get-own-property-names.js","../node_modules/core-js/internals/object-get-own-property-symbols.js","../node_modules/core-js/internals/own-keys.js","../node_modules/core-js/internals/copy-constructor-properties.js","../node_modules/core-js/internals/is-forced.js","../node_modules/core-js/internals/export.js","../node_modules/core-js/internals/engine-is-node.js","../node_modules/core-js/internals/function-uncurry-this-accessor.js","../node_modules/core-js/internals/a-possible-prototype.js","../node_modules/core-js/internals/object-set-prototype-of.js","../node_modules/core-js/internals/set-to-string-tag.js","../node_modules/core-js/internals/define-built-in-accessor.js","../node_modules/core-js/internals/set-species.js","../node_modules/core-js/internals/an-instance.js","../node_modules/core-js/internals/is-constructor.js","../node_modules/core-js/internals/task.js","../node_modules/core-js/internals/a-constructor.js","../node_modules/core-js/internals/species-constructor.js","../node_modules/core-js/internals/function-apply.js","../node_modules/core-js/internals/function-uncurry-this-clause.js","../node_modules/core-js/internals/function-bind-context.js","../node_modules/core-js/internals/html.js","../node_modules/core-js/internals/array-slice.js","../node_modules/core-js/internals/validate-arguments-length.js","../node_modules/core-js/internals/engine-is-ios.js","../node_modules/core-js/internals/queue.js","../node_modules/core-js/internals/microtask.js","../node_modules/core-js/internals/engine-is-ios-pebble.js","../node_modules/core-js/internals/engine-is-webos-webkit.js","../node_modules/core-js/internals/perform.js","../node_modules/core-js/internals/promise-native-constructor.js","../node_modules/core-js/internals/engine-is-deno.js","../node_modules/core-js/internals/engine-is-browser.js","../node_modules/core-js/internals/promise-constructor-detection.js","../node_modules/core-js/internals/new-promise-capability.js","../node_modules/core-js/modules/es.promise.constructor.js","../node_modules/core-js/internals/host-report-errors.js","../node_modules/core-js/internals/iterators.js","../node_modules/core-js/internals/is-array-iterator-method.js","../node_modules/core-js/internals/get-iterator-method.js","../node_modules/core-js/internals/get-iterator.js","../node_modules/core-js/internals/iterator-close.js","../node_modules/core-js/internals/iterate.js","../node_modules/core-js/internals/check-correctness-of-iteration.js","../node_modules/core-js/internals/promise-statics-incorrect-iteration.js","../node_modules/core-js/modules/es.promise.all.js","../node_modules/core-js/modules/es.promise.catch.js","../node_modules/core-js/modules/es.promise.race.js","../node_modules/core-js/modules/es.promise.reject.js","../node_modules/core-js/internals/promise-resolve.js","../node_modules/core-js/modules/es.promise.resolve.js","../node_modules/core-js/internals/object-keys.js","../node_modules/core-js/internals/object-define-properties.js","../node_modules/core-js/internals/object-create.js","../node_modules/core-js/internals/add-to-unscopables.js","../node_modules/core-js/internals/iterators-core.js","../node_modules/core-js/internals/correct-prototype-getter.js","../node_modules/core-js/internals/object-get-prototype-of.js","../node_modules/core-js/internals/iterator-create-constructor.js","../node_modules/core-js/internals/iterator-define.js","../node_modules/core-js/internals/create-iter-result-object.js","../node_modules/core-js/modules/es.array.iterator.js","../node_modules/core-js/modules/es.promise.all-settled.js","../node_modules/core-js/internals/to-string.js","../node_modules/core-js/internals/string-multibyte.js","../node_modules/core-js/modules/es.string.iterator.js","../node_modules/core-js/internals/dom-iterables.js","../node_modules/core-js/internals/dom-token-list-prototype.js","../node_modules/core-js/modules/web.dom-collections.iterator.js","../node_modules/core-js/internals/array-fill.js","../node_modules/core-js/modules/es.array.fill.js","../node_modules/core-js/internals/is-array.js","../node_modules/core-js/internals/create-property.js","../node_modules/core-js/internals/array-method-has-species-support.js","../node_modules/core-js/modules/es.array.slice.js","../node_modules/tslib/tslib.es6.js","../node_modules/eventemitter3/index.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/castArray.js","../node_modules/core-js/internals/array-species-constructor.js","../node_modules/core-js/internals/array-species-create.js","../node_modules/core-js/internals/array-iteration.js","../node_modules/core-js/modules/es.array.map.js","../node_modules/core-js/internals/object-assign.js","../node_modules/core-js/modules/es.object.assign.js","../node_modules/core-js/internals/array-slice-simple.js","../node_modules/core-js/internals/object-get-own-property-names-external.js","../node_modules/core-js/internals/array-buffer-non-extensible.js","../node_modules/core-js/internals/object-is-extensible.js","../node_modules/core-js/internals/freezing.js","../node_modules/core-js/internals/internal-metadata.js","../node_modules/core-js/internals/inherit-if-required.js","../node_modules/core-js/internals/collection.js","../node_modules/core-js/internals/define-built-ins.js","../node_modules/core-js/internals/collection-weak.js","../../src/constant.ts","../node_modules/core-js/modules/es.weak-set.constructor.js","../../src/calendar/Navigator.ts","../node_modules/core-js/internals/does-not-exceed-safe-integer.js","../node_modules/core-js/modules/es.array.concat.js","../node_modules/core-js/internals/array-method-is-strict.js","../node_modules/core-js/modules/es.array.join.js","../node_modules/core-js/internals/collection-strong.js","../node_modules/core-js/modules/es.map.constructor.js","../node_modules/core-js/internals/delete-property-or-throw.js","../node_modules/core-js/internals/array-sort.js","../node_modules/core-js/internals/engine-ff-version.js","../node_modules/core-js/internals/engine-is-ie-or-edge.js","../node_modules/core-js/internals/engine-webkit-version.js","../node_modules/core-js/modules/es.array.sort.js","../node_modules/core-js/internals/array-for-each.js","../node_modules/core-js/modules/web.dom-collections.for-each.js","../../src/helpers/PositionHelper.ts","../../src/domain/DomainCoordinates.ts","../../src/domain/DomainPainter.ts","../node_modules/core-js/modules/es.array.includes.js","../node_modules/core-js/modules/es.array.filter.js","../node_modules/core-js/internals/array-reduce.js","../node_modules/core-js/modules/es.array.reduce.js","../node_modules/core-js/internals/call-with-safe-iteration-closing.js","../node_modules/core-js/internals/array-from.js","../node_modules/core-js/modules/es.array.from.js","../node_modules/core-js/internals/whitespaces.js","../node_modules/core-js/internals/string-trim.js","../node_modules/core-js/internals/number-parse-int.js","../node_modules/core-js/modules/es.parse-int.js","../../src/calendar/DomainCollection.ts","../../src/domain/DomainLabelPainter.ts","../node_modules/core-js/internals/string-trim-forced.js","../node_modules/core-js/modules/es.string.trim.js","../../src/subDomain/SubDomainPainter.ts","../../src/domain/DomainsContainerPainter.ts","../../src/plugins/PluginPainter.ts","../../src/calendar/CalendarPainter.ts","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/core-js/modules/es.object.keys.js","../node_modules/core-js/internals/is-regexp.js","../node_modules/core-js/modules/es.string.starts-with.js","../node_modules/core-js/internals/not-a-regexp.js","../node_modules/core-js/internals/correct-is-regexp-logic.js","../node_modules/core-js/internals/object-to-array.js","../node_modules/core-js/modules/es.object.entries.js","../node_modules/@observablehq/plot/src/defined.js","../node_modules/isoformat/src/parse.js","../node_modules/@observablehq/plot/src/time.js","../node_modules/@observablehq/plot/src/options.js","../node_modules/@observablehq/plot/src/scales/index.js","../node_modules/@observablehq/plot/src/symbol.js","../node_modules/@observablehq/plot/src/warnings.js","../node_modules/@observablehq/plot/src/scales/schemes.js","../node_modules/@observablehq/plot/src/scales/quantitative.js","../node_modules/@observablehq/plot/src/scales/diverging.js","../node_modules/@observablehq/plot/src/scales/temporal.js","../node_modules/@observablehq/plot/src/scales/ordinal.js","../node_modules/@observablehq/plot/src/scales.js","../../src/scale.ts","../../src/calendar/Populator.ts","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignMergeValue.js","../node_modules/lodash-es/_baseFor.js","../node_modules/lodash-es/_createBaseFor.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_safeGet.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/toPlainObject.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_baseMergeDeep.js","../node_modules/lodash-es/isArrayLikeObject.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/_baseMerge.js","../node_modules/lodash-es/identity.js","../node_modules/lodash-es/_overRest.js","../node_modules/lodash-es/_baseSetToString.js","../node_modules/lodash-es/constant.js","../node_modules/lodash-es/_shortOut.js","../node_modules/lodash-es/_setToString.js","../node_modules/lodash-es/_baseRest.js","../node_modules/lodash-es/_apply.js","../node_modules/lodash-es/mergeWith.js","../node_modules/lodash-es/_createAssigner.js","../node_modules/lodash-es/_isIterateeCall.js","../node_modules/lodash-es/_SetCache.js","../node_modules/lodash-es/_arraySome.js","../node_modules/lodash-es/_setCacheAdd.js","../node_modules/lodash-es/_setCacheHas.js","../node_modules/lodash-es/_equalArrays.js","../node_modules/lodash-es/_cacheHas.js","../node_modules/lodash-es/_mapToArray.js","../node_modules/lodash-es/_setToArray.js","../node_modules/lodash-es/_equalByTag.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/_equalObjects.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_baseIsEqualDeep.js","../node_modules/lodash-es/_baseIsEqual.js","../node_modules/lodash-es/isEqual.js","../node_modules/lodash-es/_baseHas.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/_isKey.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/_castPath.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/has.js","../node_modules/lodash-es/_hasPath.js","../node_modules/lodash-es/get.js","../node_modules/lodash-es/_baseGet.js","../node_modules/lodash-es/set.js","../node_modules/lodash-es/_baseSet.js","../../src/options/OptionsPreProcessors.ts","../node_modules/core-js/internals/regexp-exec.js","../node_modules/lodash-es/isString.js","../../src/options/Options.ts","../node_modules/core-js/internals/regexp-flags.js","../node_modules/core-js/internals/regexp-sticky-helpers.js","../node_modules/core-js/internals/regexp-unsupported-dot-all.js","../node_modules/core-js/internals/regexp-unsupported-ncg.js","../node_modules/core-js/modules/es.regexp.exec.js","../node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","../node_modules/core-js/internals/advance-string-index.js","../node_modules/core-js/internals/get-substitution.js","../node_modules/core-js/internals/regexp-exec-abstract.js","../node_modules/core-js/modules/es.string.replace.js","../../src/DataFetcher.ts","../node_modules/core-js/modules/es.function.name.js","../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/weekOfYear.js","../node_modules/dayjs/plugin/dayOfYear.js","../node_modules/dayjs/plugin/weekday.js","../node_modules/dayjs/plugin/minMax.js","../node_modules/dayjs/plugin/isoWeeksInYear.js","../node_modules/dayjs/plugin/isoWeek.js","../node_modules/dayjs/plugin/isLeapYear.js","../node_modules/dayjs/plugin/advancedFormat.js","../node_modules/dayjs/plugin/utc.js","../node_modules/dayjs/plugin/timezone.js","../node_modules/dayjs/plugin/localeData.js","../node_modules/dayjs/plugin/localizedFormat.js","../node_modules/dayjs/plugin/updateLocale.js","../../src/helpers/DateHelper.ts","../node_modules/core-js/modules/es.string.includes.js","../../src/options/OptionsValidator.ts","../node_modules/core-js/modules/es.set.constructor.js","../../src/plugins/PluginManager.ts","../../src/templates/index.ts","../../src/templates/minute.ts","../../src/templates/hour.ts","../../src/templates/day.ts","../../src/templates/xDay.ts","../../src/templates/ghDay.ts","../../src/templates/week.ts","../../src/templates/month.ts","../../src/templates/year.ts","../../src/TemplateCollection.ts","../../src/CalHeatmap.ts","../../src/version.ts"],"sourcesContent":["var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.30.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var classof = require('../internals/classof-raw');\n\nmodule.exports = typeof process != 'undefined' && classof(process) == 'process';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","module.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","module.exports = {};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = lengthOfArrayLike(O);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport default {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __createBinding,\r\n __exportStar,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n __classPrivateFieldIn,\r\n};\r\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import isArray from './isArray.js';\n\n/**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\nfunction castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n}\n\nexport default castArray;\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (state) {\n return state.frozen || (state.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) splice(this.entries, index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n defineBuiltIns(Prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && hasOwn(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && hasOwn(data, state.id);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return Constructor;\n }\n};\n","export enum ScrollDirection {\n SCROLL_NONE,\n SCROLL_BACKWARD,\n SCROLL_FORWARD,\n}\n\nexport enum Position {\n TOP,\n RIGHT,\n BOTTOM,\n LEFT,\n}\n\nexport const OPTIONS_DEFAULT_DOMAIN_TYPE = 'hour';\n\nexport const OPTIONS_DEFAULT_SUBDOMAIN_TYPE = 'minute';\nexport const OPTIONS_DEFAULT_SUBDOMAIN_WIDTH = 10;\nexport const OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT = 10;\nexport const OPTIONS_DEFAULT_SUBDOMAIN_GUTTER = 2;\nexport const OPTIONS_DEFAULT_SUBDOMAIN_RADIUS = 0;\nexport const OPTIONS_DEFAULT_ANIMATION_DURATION = 200;\nexport const OPTIONS_DEFAULT_RANGE = 12;\nexport const OPTIONS_DEFAULT_ITEM_SELECTOR = '#cal-heatmap';\nexport const OPTIONS_DEFAULT_THEME = 'light';\nexport const OPTIONS_DEFAULT_LOCALE = 'en';\n\nexport const SCALE_BASE_OPACITY_COLOR = 'red';\nexport const SCALE_BASE_COLOR_SCHEME = 'YlOrBr';\nexport const SCALE_BASE_COLOR_TYPE = 'quantize';\nexport const SCALE_BASE_COLOR_DOMAIN = [0, 100];\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.es/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","import { ScrollDirection } from '../constant';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport type DomainCollection from './DomainCollection';\nimport type { Timestamp } from '../index';\n\nexport default class Navigator {\n calendar: CalHeatmap;\n\n minDomainReached: boolean;\n\n maxDomainReached: boolean;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n this.maxDomainReached = false;\n this.minDomainReached = false;\n }\n\n loadNewDomains(\n newDomainCollection: DomainCollection,\n direction: ScrollDirection = ScrollDirection.SCROLL_NONE,\n ): ScrollDirection {\n const { options } = this.calendar.options;\n const templatesClt = this.calendar.templateCollection;\n const minDate = options.date.min ?\n templatesClt.get(options.domain.type)!.extractUnit(+options.date.min) :\n undefined;\n const maxDate = options.date.max ?\n templatesClt.get(options.domain.type)!.extractUnit(+options.date.max) :\n undefined;\n const { domainCollection } = this.calendar;\n\n if (\n this.#isDomainBoundaryReached(\n newDomainCollection,\n minDate,\n maxDate,\n direction,\n )\n ) {\n return ScrollDirection.SCROLL_NONE;\n }\n\n if (direction !== ScrollDirection.SCROLL_NONE) {\n newDomainCollection\n .clamp(minDate, maxDate)\n .slice(options.range, direction === ScrollDirection.SCROLL_FORWARD);\n }\n\n domainCollection.merge(\n newDomainCollection,\n options.range,\n (domainKey: Timestamp, index: number) => {\n let subDomainEndDate = null;\n if (newDomainCollection.at(index + 1)) {\n subDomainEndDate = newDomainCollection.at(index + 1);\n } else {\n subDomainEndDate = this.calendar.dateHelper\n .intervals(options.domain.type, domainKey, 2)\n .pop();\n }\n return templatesClt\n .get(options.subDomain.type)!\n .mapping(domainKey, subDomainEndDate!)\n .map((d) => ({ ...d, v: options.data.defaultValue }));\n },\n );\n\n this.#setDomainsBoundaryReached(\n domainCollection.min,\n domainCollection.max,\n minDate,\n maxDate,\n );\n\n if (direction === ScrollDirection.SCROLL_BACKWARD) {\n this.calendar.eventEmitter.emit('domainsLoaded', [domainCollection.min]);\n } else if (direction === ScrollDirection.SCROLL_FORWARD) {\n this.calendar.eventEmitter.emit('domainsLoaded', [domainCollection.max]);\n }\n\n return direction;\n }\n\n jumpTo(date: Date, reset: boolean): ScrollDirection {\n const { domainCollection, options } = this.calendar;\n const minDate = new Date(domainCollection.min!);\n const maxDate = new Date(domainCollection.max!);\n\n if (date < minDate) {\n return this.loadNewDomains(\n this.calendar.createDomainCollection(date, minDate, false),\n ScrollDirection.SCROLL_BACKWARD,\n );\n }\n if (reset) {\n return this.loadNewDomains(\n this.calendar.createDomainCollection(date, options.options.range),\n minDate < date ?\n ScrollDirection.SCROLL_FORWARD :\n ScrollDirection.SCROLL_BACKWARD,\n );\n }\n\n if (date > maxDate) {\n return this.loadNewDomains(\n this.calendar.createDomainCollection(maxDate, date, false),\n ScrollDirection.SCROLL_FORWARD,\n );\n }\n\n return ScrollDirection.SCROLL_NONE;\n }\n\n #isDomainBoundaryReached(\n newDomainCollection: DomainCollection,\n minDate?: Timestamp,\n maxDate?: Timestamp,\n direction?: ScrollDirection,\n ): boolean {\n if (\n maxDate &&\n newDomainCollection.max! >= maxDate &&\n this.maxDomainReached &&\n direction === ScrollDirection.SCROLL_FORWARD\n ) {\n return true;\n }\n\n if (\n minDate &&\n newDomainCollection.min! <= minDate &&\n this.minDomainReached &&\n direction === ScrollDirection.SCROLL_BACKWARD\n ) {\n return true;\n }\n\n return false;\n }\n\n #setDomainsBoundaryReached(\n lowerBound: Timestamp,\n upperBound: Timestamp,\n min?: Timestamp,\n max?: Timestamp,\n ): void {\n if (min) {\n const reached = lowerBound <= min;\n this.calendar.eventEmitter.emit(\n reached ? 'minDateReached' : 'minDateNotReached',\n );\n this.minDomainReached = reached;\n }\n if (max) {\n const reached = upperBound >= max;\n this.calendar.eventEmitter.emit(\n reached ? 'maxDateReached' : 'maxDateNotReached',\n );\n this.maxDomainReached = reached;\n }\n }\n}\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: FORCED }, {\n join: function join(separator) {\n return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind == 'keys') return createIterResultObject(entry.key, false);\n if (kind == 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = lengthOfArrayLike(items);\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","import { Position } from '../constant';\nimport type { Padding } from '../options/Options';\n\nexport function isHorizontal(position: string): boolean {\n return position === 'left' || position === 'right';\n}\n\nexport function isVertical(position: string): boolean {\n return position === 'top' || position === 'bottom';\n}\n\nexport function horizontalPadding(padding: Padding): number {\n return padding[Position.LEFT] + padding[Position.RIGHT];\n}\n\nexport function verticalPadding(padding: Padding): number {\n return padding[Position.TOP] + padding[Position.BOTTOM];\n}\n","import { ScrollDirection } from '../constant';\nimport { horizontalPadding, verticalPadding } from '../helpers/PositionHelper';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport type DomainPainter from './DomainPainter';\nimport type DomainCollection from '../calendar/DomainCollection';\nimport type { SubDomain, Dimensions, Timestamp } from '../index';\n\ntype SubDomainWithCoordinates = Required<SubDomain> & {\n pre_x: number;\n pre_y: number;\n width: number;\n height: number;\n inner_width: number;\n inner_height: number;\n};\n\nexport default class DomainCoordinates {\n calendar: CalHeatmap;\n\n domainPainter: DomainPainter;\n\n collection: Map<Timestamp, SubDomainWithCoordinates>;\n\n scrollDirection: ScrollDirection;\n\n constructor(calendar: CalHeatmap, domainPainter: DomainPainter) {\n this.calendar = calendar;\n this.domainPainter = domainPainter;\n this.collection = new Map();\n this.scrollDirection = ScrollDirection.SCROLL_FORWARD;\n }\n\n get(domainKey: Timestamp): SubDomainWithCoordinates | undefined {\n return this.collection.get(domainKey);\n }\n\n update(collection: DomainCollection, scrollDirection: ScrollDirection) {\n const { verticalOrientation, domain } = this.calendar.options.options;\n\n this.scrollDirection = scrollDirection;\n const dimensions: Dimensions = {\n width: 0,\n height: 0,\n };\n let exitingTotal = 0;\n let scrollFactor =\n scrollDirection === ScrollDirection.SCROLL_FORWARD ? -1 : 1;\n const { keys } = collection;\n if (this.calendar.options.options.domain.sort === 'desc') {\n keys.reverse();\n scrollFactor *= -1;\n }\n\n collection.yankedDomains.forEach((domainKey: Timestamp) => {\n exitingTotal +=\n this.collection.get(domainKey)![\n verticalOrientation ? 'height' : 'width'\n ];\n });\n collection.yankedDomains.forEach((domainKey: Timestamp) => {\n const coor = this.collection.get(domainKey)!;\n this.collection.set(domainKey, {\n ...coor,\n x: verticalOrientation ? coor.x : coor.x + exitingTotal * scrollFactor,\n y: verticalOrientation ? coor.y + exitingTotal * scrollFactor : coor.y,\n });\n });\n\n keys.forEach((domainKey: Timestamp) => {\n const w = this.#getWidth(domainKey);\n const h = this.#getHeight(domainKey);\n if (verticalOrientation) {\n dimensions.height += h;\n dimensions.width = Math.max(w, dimensions.width);\n } else {\n dimensions.width += w;\n dimensions.height = Math.max(h, dimensions.height);\n }\n\n const x = dimensions.width - w;\n const y = dimensions.height - h;\n\n this.collection.set(domainKey, {\n ...this.collection.get(domainKey)!,\n x: verticalOrientation ? 0 : x,\n y: verticalOrientation ? y : 0,\n pre_x: verticalOrientation ? x : x - exitingTotal * scrollFactor,\n pre_y: verticalOrientation ? y - exitingTotal * scrollFactor : y,\n width: w,\n height: h,\n inner_width: w - (verticalOrientation ? 0 : domain.gutter),\n inner_height: h - (!verticalOrientation ? 0 : domain.gutter),\n });\n });\n\n return dimensions;\n }\n\n /**\n * Return the full width of the domain block\n * @param {number} d Domain start timestamp\n * @return {number} The full width of the domain,\n * including all padding and gutter\n * Used to compute the x position of the domains on the x axis\n */\n #getWidth(d: Timestamp): number {\n const {\n domain, subDomain, x, verticalOrientation,\n } =\n this.calendar.options.options;\n const columnsCount = this.calendar.templateCollection\n .get(subDomain.type)!\n .columnsCount(d);\n\n const subDomainWidth =\n (subDomain.width + subDomain.gutter) * columnsCount - subDomain.gutter;\n\n return (\n horizontalPadding(domain.padding) +\n x.domainHorizontalLabelWidth +\n (verticalOrientation ? 0 : domain.gutter) +\n subDomainWidth\n );\n }\n\n /**\n * Return the full height of the domain block\n * @param {number} d Domain start timestamp\n * @return {number} The full height of the domain,\n * including all paddings and gutter.\n * Used to compute the y position of the domains on the y axis\n */\n #getHeight(d: Timestamp): number {\n const {\n domain, subDomain, x, verticalOrientation,\n } =\n this.calendar.options.options;\n const rowsCount = this.calendar.templateCollection\n .get(subDomain.type)!\n .rowsCount(d);\n\n const subDomainHeight =\n (subDomain.height + subDomain.gutter) * rowsCount - subDomain.gutter;\n\n return (\n verticalPadding(domain.padding) +\n subDomainHeight +\n (verticalOrientation ? domain.gutter : 0) +\n x.domainVerticalLabelHeight\n );\n }\n}\n","import DomainCoordinates from './DomainCoordinates';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport type { ScrollDirection } from '../constant';\nimport type { Dimensions, Timestamp } from '../index';\n\nconst DEFAULT_SELECTOR = '.ch-domain';\n\nexport default class DomainPainter {\n calendar: CalHeatmap;\n\n coordinates: DomainCoordinates;\n\n root: any;\n\n dimensions: Dimensions;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n this.coordinates = new DomainCoordinates(calendar, this);\n this.root = null;\n\n // Dimensions of the internal area containing all the domains\n // Excluding all surrounding margins\n this.dimensions = {\n width: 0,\n height: 0,\n };\n }\n\n paint(scrollDirection: ScrollDirection, rootNode: any): Promise<unknown>[] {\n const { animationDuration } = this.calendar.options.options;\n const t = rootNode.transition().duration(animationDuration);\n const coor = this.coordinates;\n\n this.dimensions = coor.update(\n this.calendar.domainCollection,\n scrollDirection,\n );\n\n const promises: Promise<unknown>[] = [];\n\n this.root = rootNode\n .selectAll(DEFAULT_SELECTOR)\n .data(this.calendar.domainCollection.keys, (d: Timestamp) => d)\n .join(\n (enter: any) => enter\n .append('svg')\n .attr('x', (d: Timestamp) => coor.get(d)!.pre_x)\n .attr('y', (d: Timestamp) => coor.get(d)!.pre_y)\n .attr('width', (d: Timestamp) => coor.get(d)!.inner_width)\n .attr('height', (d: Timestamp) => coor.get(d)!.inner_height)\n .attr('class', (d: Timestamp) => this.#getClassName(d))\n .call((enterSelection: any) => enterSelection\n .append('rect')\n .attr('width', (d: Timestamp) => coor.get(d)!.inner_width)\n .attr('height', (d: Timestamp) => coor.get(d)!.inner_height)\n .attr('class', `${DEFAULT_SELECTOR.slice(1)}-bg`))\n .call((enterSelection: any) => promises.push(\n enterSelection\n .transition(t)\n .attr('x', (d: Timestamp) => coor.get(d)!.x)\n .attr('y', (d: Timestamp) => coor.get(d)!.y)\n .end(),\n )),\n (update: any) => update\n .call((updateSelection: any) => promises.push(\n updateSelection\n .transition(t)\n .attr('x', (d: Timestamp) => coor.get(d)!.x)\n .attr('y', (d: Timestamp) => coor.get(d)!.y)\n .attr('width', (d: Timestamp) => coor.get(d)!.inner_width)\n .attr('height', (d: Timestamp) => coor.get(d)!.inner_height)\n .end(),\n ))\n .call((updateSelection: any) => promises.push(\n updateSelection\n .selectAll(`${DEFAULT_SELECTOR}-bg`)\n .transition(t)\n .attr('width', (d: Timestamp) => coor.get(d)!.inner_width)\n .attr('height', (d: Timestamp) => coor.get(d)!.inner_height)\n .end(),\n )),\n (exit: any) => exit.call((exitSelection: any) => promises.push(\n exitSelection\n .transition(t)\n .attr('x', (d: Timestamp) => coor.get(d)!.x)\n .attr('y', (d: Timestamp) => coor.get(d)!.y)\n .remove()\n .end(),\n )),\n );\n\n return promises;\n }\n\n #getClassName(d: Timestamp): string {\n let classname = DEFAULT_SELECTOR.slice(1);\n const helper = this.calendar.dateHelper.date(d);\n\n switch (this.calendar.options.options.domain.type) {\n case 'hour':\n classname += ` h_${helper.hour()}`;\n break;\n case 'day':\n classname += ` d_${helper.date()} dy_${helper.format('d') + 1}`;\n break;\n case 'week':\n classname += ` w_${helper.week()}`;\n break;\n case 'month':\n classname += ` m_${helper.month() + 1}`;\n break;\n case 'year':\n classname += ` y_${helper.year()}`;\n break;\n default:\n }\n return classname;\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw $TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","var $ = require('../internals/export');\nvar $parseInt = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != $parseInt }, {\n parseInt: $parseInt\n});\n","import castArray from 'lodash-es/castArray';\n\nimport type { SubDomain } from '../index';\nimport type {\n DataOptions,\n DataGroupType,\n DataRecord,\n} from '../options/Options';\nimport { DomainType, Timestamp } from '../index';\nimport type DateHelper from '../helpers/DateHelper';\n\nexport const DOMAIN_FORMAT: Record<DomainType, string> = {\n year: 'YYYY',\n month: 'MMMM',\n week: 'wo [week] YYYY',\n xDay: 'Do MMM',\n ghDay: 'Do MMM',\n day: 'Do MMM',\n hour: 'HH:00',\n minute: 'HH:mm',\n};\n\ntype GroupedRecords = Map<Timestamp, { [key: Timestamp]: DataRecord[] }>;\ntype ValueType = string | number | null;\n\nexport default class DomainCollection {\n collection: Map<Timestamp, SubDomain[]>;\n\n dateHelper: DateHelper;\n\n min: Timestamp;\n\n max: Timestamp;\n\n keys: Timestamp[];\n\n yankedDomains: Timestamp[];\n\n constructor(\n dateHelper: DateHelper,\n interval?: DomainType,\n start?: Date | Timestamp,\n range?: Date | Timestamp,\n excludeEnd: boolean = false,\n ) {\n this.collection = new Map();\n this.dateHelper = dateHelper;\n\n if (interval && start && range) {\n const ts = this.dateHelper\n .intervals(interval, start, range, excludeEnd)\n .map((d: Timestamp) => castArray(d));\n\n // @ts-ignore\n this.collection = new Map(ts);\n }\n\n this.min = 0;\n this.max = 0;\n this.keys = [];\n this.yankedDomains = [];\n\n if (this.collection.size > 0) {\n this.#refreshKeys();\n }\n }\n\n has(key: Timestamp): boolean {\n return this.collection.has(key);\n }\n\n get(key: Timestamp) {\n return this.collection.get(key);\n }\n\n forEach(callback: any) {\n return this.collection.forEach(callback);\n }\n\n at(index: number): Timestamp {\n return this.keys[index];\n }\n\n clamp(minDate?: Timestamp, maxDate?: Timestamp): DomainCollection {\n if (minDate && this.min! < minDate) {\n this.keys\n .filter((key) => key < minDate)\n .forEach((d) => this.collection.delete(d));\n }\n\n if (maxDate && this.max! > maxDate) {\n this.keys\n .filter((key) => key > maxDate)\n .forEach((d) => this.collection.delete(d));\n }\n\n this.#refreshKeys();\n\n return this;\n }\n\n merge(\n newCollection: DomainCollection,\n limit: number,\n createValueCallback: Function,\n ): void {\n this.yankedDomains = [];\n\n newCollection.keys.forEach((domainKey, index) => {\n if (this.has(domainKey)) {\n return;\n }\n\n if (this.collection.size >= limit) {\n let keyToRemove = this.max;\n\n if (domainKey > this.max!) {\n keyToRemove = this.min;\n }\n\n if (keyToRemove && this.collection.delete(keyToRemove)) {\n this.yankedDomains.push(keyToRemove);\n }\n }\n this.collection.set(domainKey, createValueCallback(domainKey, index));\n this.#refreshKeys();\n });\n this.yankedDomains = this.yankedDomains.sort((a, b) => a - b);\n }\n\n slice(limit: number = 0, fromBeginning: boolean = true): DomainCollection {\n if (this.keys.length > limit) {\n const keysToDelete = fromBeginning ?\n this.keys.slice(0, -limit) :\n this.keys.slice(limit);\n\n keysToDelete.forEach((key) => {\n this.collection.delete(key);\n });\n\n this.#refreshKeys();\n }\n\n return this;\n }\n\n fill(\n data: DataRecord[],\n {\n x,\n y,\n groupY,\n defaultValue,\n }: {\n x: DataOptions['x'];\n y: DataOptions['y'];\n groupY: DataOptions['groupY'];\n defaultValue: DataOptions['defaultValue'];\n },\n subDomainKeyExtractor: Function,\n ): void {\n const groupedRecords: GroupedRecords = this.groupRecords(\n data,\n x,\n subDomainKeyExtractor,\n );\n\n this.keys.forEach((domainKey) => {\n const records = groupedRecords.get(domainKey) || {};\n this.#setSubDomainValues(domainKey, records, y, groupY, defaultValue);\n });\n }\n\n #setSubDomainValues(\n domainKey: Timestamp,\n records: { [key: string]: DataRecord[] },\n y: DataOptions['y'],\n groupY: DataOptions['groupY'],\n defaultValue: DataOptions['defaultValue'],\n ): void {\n this.get(domainKey)!.forEach((subDomain: SubDomain, index: number) => {\n let value: ValueType = defaultValue;\n if (records.hasOwnProperty(subDomain.t)) {\n value = this.groupValues(\n this.#extractValues(records[subDomain.t], y),\n groupY,\n );\n }\n\n this.get(domainKey)![index].v = value;\n });\n }\n\n groupRecords(\n data: DataRecord[],\n x: DataOptions['x'],\n subDomainKeyExtractor: Function,\n ): GroupedRecords {\n const results: GroupedRecords = new Map();\n const validSubDomainTimestamp: Map<Timestamp, Timestamp> = new Map();\n this.keys.forEach((domainKey) => {\n this.get(domainKey)!.forEach((subDomain: SubDomain) => {\n validSubDomainTimestamp.set(subDomain.t, domainKey);\n });\n });\n\n data.forEach((d) => {\n const timestamp = this.extractTimestamp(d, x, subDomainKeyExtractor);\n\n if (validSubDomainTimestamp.has(timestamp)) {\n const domainKey = validSubDomainTimestamp.get(timestamp)!;\n const records = results.get(domainKey) || {};\n records[timestamp] ||= [];\n records[timestamp].push(d);\n\n results.set(domainKey, records);\n }\n });\n\n return results;\n }\n\n // eslint-disable-next-line class-methods-use-this\n #extractValues(data: DataRecord[], y: string | Function): ValueType[] {\n return data.map((d): ValueType => (typeof y === 'function' ? y(d) : d[y]));\n }\n\n // eslint-disable-next-line class-methods-use-this\n groupValues(\n values: ValueType[],\n groupFn: DataGroupType | ((values: ValueType[]) => ValueType),\n ): ValueType {\n const cleanedValues = values.filter((n) => n !== null);\n\n if (typeof groupFn === 'string') {\n if (cleanedValues.every((n) => typeof n === 'number')) {\n switch (groupFn) {\n case 'sum':\n return (cleanedValues as number[]).reduce((a, b) => a + b, 0);\n case 'count':\n return cleanedValues.length;\n case 'min':\n return Math.min(...(cleanedValues as number[])) || null;\n case 'max':\n return Math.max(...(cleanedValues as number[])) || null;\n case 'average':\n return cleanedValues.length > 0 ?\n (cleanedValues as number[]).reduce((a, b) => a + b, 0) /\n cleanedValues.length :\n null;\n default:\n return null;\n }\n }\n\n switch (groupFn) {\n case 'count':\n return cleanedValues.length;\n default:\n return null;\n }\n } else if (typeof groupFn === 'function') {\n return groupFn(cleanedValues);\n }\n\n return null;\n }\n\n // eslint-disable-next-line class-methods-use-this\n extractTimestamp(\n datum: DataRecord,\n x: string | Function,\n extractorFn: Function,\n ): Timestamp {\n let timestamp: string | Timestamp =\n typeof x === 'function' ? x(datum) : datum[x];\n\n if (typeof timestamp === 'string') {\n timestamp = +new Date(timestamp);\n }\n\n return extractorFn(timestamp);\n }\n\n #refreshKeys(): Timestamp[] {\n this.keys = Array.from(this.collection.keys())\n .map((d: any) => parseInt(d, 10))\n .sort((a, b) => a - b);\n\n const { keys } = this;\n // eslint-disable-next-line prefer-destructuring\n this.min = keys[0];\n this.max = keys[keys.length - 1];\n\n return this.keys;\n }\n}\n","import { Position } from '../constant';\nimport {\n isVertical,\n verticalPadding,\n horizontalPadding,\n} from '../helpers/PositionHelper';\nimport { DOMAIN_FORMAT } from '../calendar/DomainCollection';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport type { Timestamp } from '../index';\n\nconst DEFAULT_SELECTOR = '.ch-domain-text';\n\nexport default class DomainLabelPainter {\n calendar: CalHeatmap;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n }\n\n paint(root: any): void {\n const { label, type } = this.calendar.options.options.domain;\n const { dateHelper } = this.calendar;\n let format = label.text;\n if (format === null || format === '') {\n return;\n }\n\n if (typeof format === 'undefined') {\n format = DOMAIN_FORMAT[type];\n }\n\n root\n .selectAll(DEFAULT_SELECTOR)\n .data(\n (d: Timestamp) => [d],\n (d: Timestamp) => d,\n )\n .join(\n (enter: any) => enter\n .append('text')\n .attr('class', DEFAULT_SELECTOR.slice(1))\n .attr('x', (d: Timestamp) => this.#getX(d))\n .attr('y', (d: Timestamp) => this.#getY(d))\n .attr('text-anchor', label.textAlign)\n .attr('dominant-baseline', () => this.#textVerticalAlign())\n .text((d: Timestamp, i: number, nodes: any[]) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n dateHelper.format(d, format!, nodes[i]))\n .call((selection: any) => this.#domainRotate(selection)),\n (update: any) => {\n update\n .attr('x', (d: Timestamp) => this.#getX(d))\n .attr('y', (d: Timestamp) => this.#getY(d))\n .attr('text-anchor', label.textAlign)\n .attr('dominant-baseline', () => this.#textVerticalAlign())\n .text((d: Timestamp, i: number, nodes: any[]) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n dateHelper.format(d, format!, nodes[i]))\n .call((selection: any) => this.#domainRotate(selection));\n },\n );\n }\n\n #textVerticalAlign(): string {\n const { position, rotate } = this.calendar.options.options.domain.label;\n\n if (isVertical(position)) {\n return 'middle';\n }\n\n if (\n (rotate === 'left' && position === 'left') ||\n (rotate === 'right' && position === 'right')\n ) {\n return 'bottom';\n }\n\n return 'hanging';\n }\n\n #getX(d: Timestamp): number {\n const {\n padding,\n label: { position, textAlign, offset },\n } = this.calendar.options.options.domain;\n const { domainHorizontalLabelWidth } = this.calendar.options.options.x;\n\n let x = padding[Position.LEFT];\n\n if (position === 'right') {\n x += this.#getDomainInsideWidth(d);\n }\n\n if (textAlign === 'middle') {\n if (['top', 'bottom'].includes(position)) {\n x += this.#getDomainInsideWidth(d) / 2;\n } else {\n x += domainHorizontalLabelWidth / 2;\n }\n }\n\n if (textAlign === 'end') {\n if (isVertical(position)) {\n x += this.#getDomainInsideWidth(d);\n } else {\n x += domainHorizontalLabelWidth;\n }\n }\n\n return x + offset.x;\n }\n\n #getY(d: Timestamp): number {\n const {\n domain: {\n label: { position, offset },\n padding,\n },\n x,\n } = this.calendar.options.options;\n\n let y = padding[Position.TOP] + x.domainVerticalLabelHeight / 2;\n\n if (position === 'bottom') {\n y += this.#getDomainInsideHeight(d);\n }\n\n return y + offset.y;\n }\n\n #getDomainInsideWidth(d: Timestamp): number {\n const {\n domain: { padding },\n x: { domainHorizontalLabelWidth },\n } = this.calendar.options.options;\n const { coordinates } =\n this.calendar.calendarPainter.domainsContainerPainter.domainPainter;\n\n return (\n coordinates.get(d)!.inner_width -\n domainHorizontalLabelWidth -\n horizontalPadding(padding)\n );\n }\n\n #getDomainInsideHeight(d: Timestamp): number {\n const {\n x: { domainVerticalLabelHeight },\n domain: { padding },\n } = this.calendar.options.options;\n const { coordinates } =\n this.calendar.calendarPainter.domainsContainerPainter.domainPainter;\n\n return (\n coordinates.get(d)!.inner_height -\n domainVerticalLabelHeight -\n verticalPadding(padding)\n );\n }\n\n #domainRotate(selection: any) {\n const {\n domain: {\n label: { rotate, textAlign, position },\n },\n x,\n } = this.calendar.options.options;\n const labelWidth = x.domainHorizontalLabelWidth;\n\n switch (rotate) {\n // Rotating the text clockwise\n case 'right':\n selection.attr('transform', (d: Timestamp) => {\n const domainWidth = this.#getDomainInsideWidth(d);\n const domainHeight = this.#getDomainInsideHeight(d);\n const s = [\n `rotate(90, ${position === 'right' ? domainWidth : labelWidth}, 0)`,\n ];\n\n switch (position) {\n case 'right':\n if (textAlign === 'middle') {\n s.push(`translate(${domainHeight / 2 - labelWidth / 2})`);\n } else if (textAlign === 'end') {\n s.push(`translate(${domainHeight - labelWidth})`);\n }\n break;\n case 'left':\n if (textAlign === 'start') {\n s.push(`translate(${labelWidth})`);\n } else if (textAlign === 'middle') {\n s.push(`translate(${labelWidth / 2 + domainHeight / 2})`);\n } else if (textAlign === 'end') {\n s.push(`translate(${domainHeight})`);\n }\n break;\n default:\n }\n\n return s.join(',');\n });\n break;\n // Rotating the text anticlockwise\n case 'left':\n selection.attr('transform', (d: Timestamp) => {\n const domainWidth = this.#getDomainInsideWidth(d);\n const domainHeight = this.#getDomainInsideHeight(d);\n const s = [\n `rotate(270, ${\n position === 'right' ? domainWidth : labelWidth\n }, 0)`,\n ];\n\n switch (position) {\n case 'right':\n if (textAlign === 'start') {\n s.push(`translate(-${domainHeight})`);\n } else if (textAlign === 'middle') {\n s.push(`translate(-${domainHeight / 2 + labelWidth / 2})`);\n } else if (textAlign === 'end') {\n s.push(`translate(-${labelWidth})`);\n }\n break;\n case 'left':\n if (textAlign === 'start') {\n s.push(`translate(${labelWidth - domainHeight})`);\n } else if (textAlign === 'middle') {\n s.push(`translate(${labelWidth / 2 - domainHeight / 2})`);\n }\n break;\n default:\n }\n\n return s.join(',');\n });\n break;\n default:\n }\n }\n}\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","import { Position } from '../constant';\nimport type CalHeatmap from '../CalHeatmap';\nimport type { Timestamp, SubDomain } from '../index';\n\nexport const DEFAULT_SELECTOR = '.ch-subdomain';\nconst HIGHLIGHT_CLASSNAME = 'highlight';\n\nexport default class SubDomainPainter {\n calendar: CalHeatmap;\n\n root: any;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n this.root = null;\n }\n\n paint(root: any): void {\n this.root = root || this.root;\n const containerClassname = `${DEFAULT_SELECTOR}-container`;\n\n const subDomainSvgGroup = this.root\n .selectAll(containerClassname)\n .data(\n (d: Timestamp) => [d],\n (d: Timestamp) => d,\n )\n .join(\n (enter: any) => enter\n .append('svg')\n .call((selection: any) => this.#setPositions(selection))\n .attr('class', containerClassname.slice(1)),\n\n (update: any) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n update.call((selection: any) => this.#setPositions(selection)),\n );\n\n const {\n subDomain: {\n radius, width, height, sort,\n },\n } = this.calendar.options.options;\n const evt = this.calendar.eventEmitter;\n\n subDomainSvgGroup\n .selectAll('g')\n .data((d: Timestamp) => {\n const subDomainsCollection: SubDomain[] =\n this.calendar.domainCollection.get(d)!;\n if (sort === 'desc') {\n const max = Math.max(\n ...subDomainsCollection.map((s: SubDomain) => s.x),\n );\n subDomainsCollection.forEach((s: SubDomain, i: number) => {\n subDomainsCollection[i].x = Math.abs(s.x - max);\n });\n }\n\n return subDomainsCollection;\n })\n .join(\n (enter: any) => enter\n .append('g')\n .call((selection: any) => selection\n .insert('rect')\n .attr('class', (d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.#classname(d.t, `${DEFAULT_SELECTOR.slice(1)}-bg`))\n .attr('width', width)\n .attr('height', height)\n .attr('x', (d: SubDomain) => this.#getX(d))\n .attr('y', (d: SubDomain) => this.#getY(d))\n .on('click', (ev: PointerEvent, d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n evt.emit('click', ev, d.t, d.v))\n .on('mouseover', (ev: PointerEvent, d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n evt.emit('mouseover', ev, d.t, d.v))\n .on('mouseout', (ev: PointerEvent, d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n evt.emit('mouseout', ev, d.t, d.v))\n .attr('rx', radius > 0 ? radius : null)\n .attr('ry', radius > 0 ? radius : null))\n .call((selection: any) => this.#appendText(selection)),\n (update: any) => update\n .selectAll('rect')\n .attr('class', (d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.#classname(d.t, `${DEFAULT_SELECTOR.slice(1)}-bg`))\n .attr('width', width)\n .attr('height', height)\n .attr('x', (d: SubDomain) => this.#getX(d))\n .attr('y', (d: SubDomain) => this.#getY(d))\n .attr('rx', radius)\n .attr('ry', radius),\n );\n }\n\n /**\n * Set the subDomain group X and Y position\n * @param {d3-selection} selection A d3-selection object\n */\n #setPositions(selection: any): void {\n const { options } = this.calendar.options;\n const {\n padding,\n label: { position },\n } = options.domain;\n\n selection\n .attr('x', () => {\n let pos = padding[Position.LEFT];\n if (position === 'left') {\n pos += options.x.domainHorizontalLabelWidth;\n }\n return pos;\n })\n .attr('y', () => {\n let pos = padding[Position.TOP];\n if (position === 'top') {\n pos += options.x.domainVerticalLabelHeight;\n }\n return pos;\n });\n }\n\n /**\n * Return a classname if the specified date should be highlighted\n *\n * @param {number} timestamp Unix timestamp of the current subDomain\n * @return {String} the highlight class\n */\n #classname(timestamp: Timestamp, ...otherClasses: string[]): string {\n const {\n date: { highlight },\n subDomain: { type },\n } = this.calendar.options.options;\n let classname = '';\n\n if (highlight.length > 0) {\n highlight.forEach((d) => {\n const unitFn = this.calendar.templateCollection.get(type).extractUnit;\n\n if (unitFn(+d) === unitFn(timestamp)) {\n classname = HIGHLIGHT_CLASSNAME;\n }\n });\n }\n\n return [classname, ...otherClasses].join(' ').trim();\n }\n\n #appendText(elem: any) {\n const { width, height, label } = this.calendar.options.options.subDomain;\n\n if (!label) {\n return null;\n }\n\n return elem\n .append('text')\n .attr('class', (d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.#classname(d.t, `${DEFAULT_SELECTOR.slice(1)}-text`))\n .attr('x', (d: SubDomain) => this.#getX(d) + width / 2)\n .attr('y', (d: SubDomain) => this.#getY(d) + height / 2)\n .attr('text-anchor', 'middle')\n .attr('dominant-baseline', 'central')\n .text((d: SubDomain, i: number, nodes: any[]) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.calendar.dateHelper.format(d.t, label, d.v, nodes[i]));\n }\n\n #getCoordinates(axis: 'x' | 'y', d: SubDomain): number {\n const { subDomain } = this.calendar.options.options;\n return (\n d[axis] *\n (subDomain[axis === 'x' ? 'width' : 'height'] + subDomain.gutter)\n );\n }\n\n #getX(d: SubDomain): number {\n return this.#getCoordinates('x', d);\n }\n\n #getY(d: SubDomain): number {\n return this.#getCoordinates('y', d);\n }\n}\n","import { select } from 'd3-selection';\nimport DomainPainter from './DomainPainter';\nimport DomainLabelPainter from './DomainLabelPainter';\nimport SubDomainPainter from '../subDomain/SubDomainPainter';\nimport { ScrollDirection } from '../constant';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport type { Dimensions } from '../index';\n\nconst BASE_SELECTOR = '.ch-domain-container';\nconst TRANSITION_CLASSNAME = 'in-transition';\n\nclass DomainsContainerPainter {\n calendar: CalHeatmap;\n\n domainPainter: DomainPainter;\n\n domainLabelPainter: DomainLabelPainter;\n\n subDomainPainter: SubDomainPainter;\n\n dimensions: Dimensions;\n\n root: any;\n\n transitionsQueueCount: number;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n\n this.domainPainter = new DomainPainter(calendar);\n this.subDomainPainter = new SubDomainPainter(calendar);\n this.domainLabelPainter = new DomainLabelPainter(calendar);\n this.dimensions = {\n width: 0,\n height: 0,\n };\n this.transitionsQueueCount = 0;\n }\n\n setup() {\n this.root = this.calendar.calendarPainter.root\n .attr('x', 0)\n .attr('y', 0)\n .append('svg')\n .attr('class', BASE_SELECTOR.slice(1))\n .append('svg')\n .attr('class', `${BASE_SELECTOR.slice(1)}-animation-wrapper`);\n }\n\n paint(scrollDirection: ScrollDirection): Promise<unknown>[] {\n this.#startAnimation();\n\n const result = this.domainPainter.paint(scrollDirection, this.root);\n this.subDomainPainter.paint(this.domainPainter.root);\n this.domainLabelPainter.paint(this.domainPainter.root);\n\n this.#recomputeDimensions();\n\n Promise.allSettled(result).then(() => {\n this.#endAnimation();\n });\n\n return result;\n }\n\n updatePosition() {\n if (!this.root?.node()) {\n return Promise.resolve();\n }\n\n const { animationDuration } = this.calendar.options.options;\n const topHeight = this.calendar.pluginManager.getHeightFromPosition('top');\n const leftWidth = this.calendar.pluginManager.getWidthFromPosition('left');\n\n return [\n select(this.root.node().parentNode)\n .transition()\n .duration(animationDuration)\n .call((selection: any) => {\n selection.attr('x', leftWidth).attr('y', topHeight);\n })\n .end(),\n ];\n }\n\n width(): Dimensions['width'] {\n return this.dimensions.width;\n }\n\n height(): Dimensions['height'] {\n return this.dimensions.height;\n }\n\n destroy(): Promise<unknown> {\n this.#startAnimation();\n\n return Promise.resolve();\n }\n\n #startAnimation() {\n if (this.root?.node()) {\n this.transitionsQueueCount += 1;\n select(this.root.node().parentNode).classed(TRANSITION_CLASSNAME, true);\n }\n }\n\n #endAnimation() {\n if (this.root?.node()) {\n this.transitionsQueueCount -= 1;\n\n if (this.transitionsQueueCount === 0) {\n select(this.root.node().parentNode).classed(\n TRANSITION_CLASSNAME,\n false,\n );\n }\n }\n }\n\n #recomputeDimensions(): void {\n const {\n animationDuration,\n verticalOrientation,\n domain: { gutter },\n } = this.calendar.options.options;\n const { dimensions: domainsDimensions } = this.domainPainter;\n\n this.dimensions = {\n width: domainsDimensions.width - (verticalOrientation ? 0 : gutter),\n height: domainsDimensions.height - (!verticalOrientation ? 0 : gutter),\n };\n\n this.root\n .transition()\n .duration(animationDuration)\n .attr('width', this.dimensions.width)\n .attr('height', this.dimensions.height);\n }\n}\n\nexport default DomainsContainerPainter;\n","import type CalHeatmap from '../CalHeatmap';\n\nclass PluginPainter {\n calendar: CalHeatmap;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n }\n\n paint(): Promise<unknown>[] {\n let promises: Promise<unknown>[] = [];\n\n promises = promises.concat(this.calendar.pluginManager.paintAll());\n promises = promises.concat(this.setPluginsPosition());\n\n return promises;\n }\n\n setPluginsPosition(): Promise<unknown>[] {\n const { pluginManager } = this.calendar;\n const { animationDuration } = this.calendar.options.options;\n const { domainsContainerPainter } = this.calendar.calendarPainter;\n\n const top = pluginManager.getFromPosition('top');\n const right = pluginManager.getFromPosition('right');\n const bottom = pluginManager.getFromPosition('bottom');\n const left = pluginManager.getFromPosition('left');\n\n const topHeight = pluginManager.getHeightFromPosition('top');\n const leftWidth = pluginManager.getWidthFromPosition('left');\n\n const promises: Promise<unknown>[] = [];\n\n let topOffset = 0;\n top.forEach((plugin) => {\n promises.push(\n plugin.root\n .transition()\n .duration(animationDuration)\n .attr('y', topOffset)\n .attr('x', leftWidth)\n .end(),\n );\n topOffset += plugin.options.dimensions!.height;\n });\n\n let leftOffset = 0;\n left.forEach((plugin) => {\n promises.push(\n plugin.root\n .transition()\n .duration(animationDuration)\n .attr('x', leftOffset)\n .attr('y', topHeight)\n .end(),\n );\n leftOffset += plugin.options.dimensions!.width;\n });\n\n bottom.forEach((plugin) => {\n promises.push(\n plugin.root\n .transition()\n .duration(animationDuration)\n .attr('x', leftWidth)\n .attr('y', topHeight + domainsContainerPainter.height())\n .end(),\n );\n });\n\n leftOffset += domainsContainerPainter.width();\n\n right.forEach((plugin) => {\n promises.push(\n plugin.root\n .transition()\n .duration(animationDuration)\n .attr('x', leftOffset)\n .attr('y', topHeight)\n .end(),\n );\n leftOffset += plugin.options.dimensions!.width;\n });\n\n return promises;\n }\n\n insideWidth() {\n return (\n this.calendar.pluginManager.getWidthFromPosition('left') +\n this.calendar.pluginManager.getWidthFromPosition('right')\n );\n }\n\n insideHeight() {\n return (\n this.calendar.pluginManager.getHeightFromPosition('top') +\n this.calendar.pluginManager.getHeightFromPosition('bottom')\n );\n }\n}\n\nexport default PluginPainter;\n","import { select } from 'd3-selection';\n\nimport DomainsContainerPainter from '../domain/DomainsContainerPainter';\nimport PluginPainter from '../plugins/PluginPainter';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport { ScrollDirection } from '../constant';\nimport type { Dimensions } from '../index';\n\nexport const DEFAULT_SELECTOR = '.ch-container';\n\nexport default class CalendarPainter {\n calendar: CalHeatmap;\n\n dimensions: Dimensions;\n\n root: any;\n\n domainsContainerPainter: DomainsContainerPainter;\n\n pluginPainter: PluginPainter;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n this.dimensions = {\n width: 0,\n height: 0,\n };\n this.root = null;\n this.domainsContainerPainter = new DomainsContainerPainter(calendar);\n this.pluginPainter = new PluginPainter(calendar);\n }\n\n setup(): boolean {\n const { itemSelector, theme } = this.calendar.options.options;\n\n if (!this.root) {\n this.root = select(itemSelector)\n .append('svg')\n .attr('data-theme', theme)\n .attr('class', DEFAULT_SELECTOR.slice(1));\n this.domainsContainerPainter.setup();\n }\n\n this.calendar.pluginManager.setupAll();\n\n return true;\n }\n\n paint(navigationDir: ScrollDirection = ScrollDirection.SCROLL_NONE) {\n const transitions = this.domainsContainerPainter\n .paint(navigationDir)\n .concat(this.pluginPainter.paint())\n .concat(this.domainsContainerPainter.updatePosition());\n\n this.#resize();\n\n return Promise.allSettled(transitions);\n }\n\n #getHeight(): Dimensions['height'] {\n return (\n this.domainsContainerPainter.height() + this.pluginPainter.insideHeight()\n );\n }\n\n #getWidth(): Dimensions['width'] {\n return (\n this.domainsContainerPainter.width() + this.pluginPainter.insideWidth()\n );\n }\n\n #resize(): void {\n const { options } = this.calendar.options;\n\n const newWidth = this.#getWidth();\n const newHeight = this.#getHeight();\n\n this.root\n .transition()\n .duration(options.animationDuration)\n .attr('width', newWidth)\n .attr('height', newHeight);\n\n if (\n newWidth !== this.dimensions.width ||\n newHeight !== this.dimensions.height\n ) {\n this.calendar.eventEmitter.emit(\n 'resize',\n newWidth,\n newHeight,\n this.dimensions.width,\n this.dimensions.height,\n );\n }\n\n this.dimensions = {\n width: newWidth,\n height: newHeight,\n };\n }\n\n destroy(): Promise<unknown> {\n const result: Promise<unknown>[] = this.calendar.pluginManager\n .destroyAll()\n .concat(this.domainsContainerPainter.destroy());\n\n if (!this.root) {\n return Promise.allSettled(result);\n }\n\n result.push(\n this.root\n .transition()\n .duration(this.calendar.options.options.animationDuration)\n .attr('width', 0)\n .attr('height', 0)\n .remove()\n .end(),\n );\n\n return Promise.allSettled(result);\n }\n}\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar nativeStartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return nativeStartsWith\n ? nativeStartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","var isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","import {ascending, descending} from \"d3\";\n\nexport function defined(x) {\n return x != null && !Number.isNaN(x);\n}\n\nexport function ascendingDefined(a, b) {\n return +defined(b) - +defined(a) || ascending(a, b);\n}\n\nexport function descendingDefined(a, b) {\n return +defined(b) - +defined(a) || descending(a, b);\n}\n\nexport function nonempty(x) {\n return x != null && `${x}` !== \"\";\n}\n\nexport function finite(x) {\n return isFinite(x) ? x : NaN;\n}\n\nexport function positive(x) {\n return x > 0 && isFinite(x) ? x : NaN;\n}\n\nexport function negative(x) {\n return x < 0 && isFinite(x) ? x : NaN;\n}\n","const re = /^(?:[-+]\\d{2})?\\d{4}(?:-\\d{2}(?:-\\d{2})?)?(?:T\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{3})?)?(?:Z|[-+]\\d{2}:?\\d{2})?)?$/;\n\nexport default function parse(string, fallback) {\n if (!re.test(string += \"\")) return typeof fallback === \"function\" ? fallback(string) : fallback;\n return new Date(string);\n}\n","import {utcSecond, utcMinute, utcHour, utcDay, utcWeek, utcMonth, utcYear} from \"d3\";\nimport {utcMonday, utcTuesday, utcWednesday, utcThursday, utcFriday, utcSaturday, utcSunday} from \"d3\";\nimport {timeSecond, timeMinute, timeHour, timeDay, timeWeek, timeMonth, timeYear} from \"d3\";\nimport {timeMonday, timeTuesday, timeWednesday, timeThursday, timeFriday, timeSaturday, timeSunday} from \"d3\";\n\nconst timeIntervals = new Map([\n [\"second\", timeSecond],\n [\"minute\", timeMinute],\n [\"hour\", timeHour],\n [\"day\", timeDay],\n [\"week\", timeWeek],\n [\"month\", timeMonth],\n [\"quarter\", timeMonth.every(3)],\n [\"half\", timeMonth.every(6)],\n [\"year\", timeYear],\n [\"monday\", timeMonday],\n [\"tuesday\", timeTuesday],\n [\"wednesday\", timeWednesday],\n [\"thursday\", timeThursday],\n [\"friday\", timeFriday],\n [\"saturday\", timeSaturday],\n [\"sunday\", timeSunday]\n]);\n\nconst utcIntervals = new Map([\n [\"second\", utcSecond],\n [\"minute\", utcMinute],\n [\"hour\", utcHour],\n [\"day\", utcDay],\n [\"week\", utcWeek],\n [\"month\", utcMonth],\n [\"quarter\", utcMonth.every(3)],\n [\"half\", utcMonth.every(6)],\n [\"year\", utcYear],\n [\"monday\", utcMonday],\n [\"tuesday\", utcTuesday],\n [\"wednesday\", utcWednesday],\n [\"thursday\", utcThursday],\n [\"friday\", utcFriday],\n [\"saturday\", utcSaturday],\n [\"sunday\", utcSunday]\n]);\n\nexport function maybeTimeInterval(interval) {\n const i = timeIntervals.get(`${interval}`.toLowerCase());\n if (!i) throw new Error(`unknown interval: ${interval}`);\n return i;\n}\n\nexport function maybeUtcInterval(interval) {\n const i = utcIntervals.get(`${interval}`.toLowerCase());\n if (!i) throw new Error(`unknown interval: ${interval}`);\n return i;\n}\n","import {parse as isoParse} from \"isoformat\";\nimport {color, descending, range as rangei, quantile} from \"d3\";\nimport {maybeTimeInterval, maybeUtcInterval} from \"./time.js\";\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray\nexport const TypedArray = Object.getPrototypeOf(Uint8Array);\nconst objectToString = Object.prototype.toString;\n\nexport function valueof(data, value, type) {\n const valueType = typeof value;\n return valueType === \"string\"\n ? maybeTypedMap(data, field(value), type)\n : valueType === \"function\"\n ? maybeTypedMap(data, value, type)\n : valueType === \"number\" || value instanceof Date || valueType === \"boolean\"\n ? map(data, constant(value), type)\n : typeof value?.transform === \"function\"\n ? maybeTypedArrayify(value.transform(data), type)\n : maybeTypedArrayify(value, type);\n}\n\nfunction maybeTypedMap(data, f, type) {\n return map(data, type?.prototype instanceof TypedArray ? floater(f) : f, type);\n}\n\nfunction maybeTypedArrayify(data, type) {\n return type === undefined\n ? arrayify(data) // preserve undefined type\n : data instanceof type\n ? data\n : type.prototype instanceof TypedArray && !(data instanceof TypedArray)\n ? type.from(data, coerceNumber)\n : type.from(data);\n}\n\nfunction floater(f) {\n return (d, i) => coerceNumber(f(d, i));\n}\n\nexport const field = (name) => (d) => d[name];\nexport const indexOf = {transform: range};\nexport const identity = {transform: (d) => d};\nexport const zero = () => 0;\nexport const one = () => 1;\nexport const yes = () => true;\nexport const string = (x) => (x == null ? x : `${x}`);\nexport const number = (x) => (x == null ? x : +x);\nexport const boolean = (x) => (x == null ? x : !!x);\nexport const first = (x) => (x ? x[0] : undefined);\nexport const second = (x) => (x ? x[1] : undefined);\nexport const third = (x) => (x ? x[2] : undefined);\nexport const constant = (x) => () => x;\n\n// Converts a string like “p25†into a function that takes an index I and an\n// accessor function f, returning the corresponding percentile value.\nexport function percentile(reduce) {\n const p = +`${reduce}`.slice(1) / 100;\n return (I, f) => quantile(I, p, f);\n}\n\n// If the values are specified as a typed array, no coercion is required.\nexport function coerceNumbers(values) {\n return values instanceof TypedArray ? values : map(values, coerceNumber, Float64Array);\n}\n\n// Unlike Mark’s number, here we want to convert null and undefined to NaN since\n// the result will be stored in a Float64Array and we don’t want null to be\n// coerced to zero. We use Number instead of unary + to allow BigInt coercion.\nfunction coerceNumber(x) {\n return x == null ? NaN : Number(x);\n}\n\nexport function coerceDates(values) {\n return map(values, coerceDate);\n}\n\n// When coercing strings to dates, we only want to allow the ISO 8601 format\n// since the built-in string parsing of the Date constructor varies across\n// browsers. (In the future, this could be made more liberal if desired, though\n// it is still generally preferable to do date parsing yourself explicitly,\n// rather than rely on Plot.) Any non-string values are coerced to number first\n// and treated as milliseconds since UNIX epoch.\nexport function coerceDate(x) {\n return x instanceof Date && !isNaN(x)\n ? x\n : typeof x === \"string\"\n ? isoParse(x)\n : x == null || isNaN((x = +x))\n ? undefined\n : new Date(x);\n}\n\n// Some channels may allow a string constant to be specified; to differentiate\n// string constants (e.g., \"red\") from named fields (e.g., \"date\"), this\n// function tests whether the given value is a CSS color string and returns a\n// tuple [channel, constant] where one of the two is undefined, and the other is\n// the given value. If you wish to reference a named field that is also a valid\n// CSS color, use an accessor (d => d.red) instead.\nexport function maybeColorChannel(value, defaultValue) {\n if (value === undefined) value = defaultValue;\n return value === null ? [undefined, \"none\"] : isColor(value) ? [undefined, value] : [value, undefined];\n}\n\n// Similar to maybeColorChannel, this tests whether the given value is a number\n// indicating a constant, and otherwise assumes that it’s a channel value.\nexport function maybeNumberChannel(value, defaultValue) {\n if (value === undefined) value = defaultValue;\n return value === null || typeof value === \"number\" ? [undefined, value] : [value, undefined];\n}\n\n// Validates the specified optional string against the allowed list of keywords.\nexport function maybeKeyword(input, name, allowed) {\n if (input != null) return keyword(input, name, allowed);\n}\n\n// Validates the specified required string against the allowed list of keywords.\nexport function keyword(input, name, allowed) {\n const i = `${input}`.toLowerCase();\n if (!allowed.includes(i)) throw new Error(`invalid ${name}: ${input}`);\n return i;\n}\n\n// Promotes the specified data to an array as needed.\nexport function arrayify(data) {\n return data == null || data instanceof Array || data instanceof TypedArray ? data : Array.from(data);\n}\n\n// An optimization of type.from(values, f): if the given values are already an\n// instanceof the desired array type, the faster values.map method is used.\nexport function map(values, f, type = Array) {\n return values == null ? values : values instanceof type ? values.map(f) : type.from(values, f);\n}\n\n// An optimization of type.from(values): if the given values are already an\n// instanceof the desired array type, the faster values.slice method is used.\nexport function slice(values, type = Array) {\n return values instanceof type ? values.slice() : type.from(values);\n}\n\n// Disambiguates an options object (e.g., {y: \"x2\"}) from a primitive value.\nexport function isObject(option) {\n return option?.toString === objectToString;\n}\n\n// Disambiguates a scale options object (e.g., {color: {type: \"linear\"}}) from\n// some other option (e.g., {color: \"red\"}). When creating standalone legends,\n// this is used to test whether a scale is defined; this should be consistent\n// with inferScaleType when there are no channels associated with the scale, and\n// if this returns true, then normalizeScale must return non-null.\nexport function isScaleOptions(option) {\n return isObject(option) && (option.type !== undefined || option.domain !== undefined);\n}\n\n// Disambiguates an options object (e.g., {y: \"x2\"}) from a channel value\n// definition expressed as a channel transform (e.g., {transform: …}).\nexport function isOptions(option) {\n return isObject(option) && typeof option.transform !== \"function\";\n}\n\n// Disambiguates a sort transform (e.g., {sort: \"date\"}) from a channel domain\n// sort definition (e.g., {sort: {y: \"x\"}}).\nexport function isDomainSort(sort) {\n return isOptions(sort) && sort.value === undefined && sort.channel === undefined;\n}\n\n// For marks specified either as [0, x] or [x1, x2], such as areas and bars.\nexport function maybeZero(x, x1, x2, x3 = identity) {\n if (x1 === undefined && x2 === undefined) {\n // {x} or {}\n (x1 = 0), (x2 = x === undefined ? x3 : x);\n } else if (x1 === undefined) {\n // {x, x2} or {x2}\n x1 = x === undefined ? 0 : x;\n } else if (x2 === undefined) {\n // {x, x1} or {x1}\n x2 = x === undefined ? 0 : x;\n }\n return [x1, x2];\n}\n\n// For marks that have x and y channels (e.g., cell, dot, line, text).\nexport function maybeTuple(x, y) {\n return x === undefined && y === undefined ? [first, second] : [x, y];\n}\n\n// A helper for extracting the z channel, if it is variable. Used by transforms\n// that require series, such as moving average and normalize.\nexport function maybeZ({z, fill, stroke} = {}) {\n if (z === undefined) [z] = maybeColorChannel(fill);\n if (z === undefined) [z] = maybeColorChannel(stroke);\n return z;\n}\n\n// Returns a Uint32Array with elements [0, 1, 2, … data.length - 1].\nexport function range(data) {\n const n = data.length;\n const r = new Uint32Array(n);\n for (let i = 0; i < n; ++i) r[i] = i;\n return r;\n}\n\n// Returns a filtered range of data given the test function.\nexport function where(data, test) {\n return range(data).filter((i) => test(data[i], i, data));\n}\n\n// Returns an array [values[index[0]], values[index[1]], …].\nexport function take(values, index) {\n return map(index, (i) => values[i]);\n}\n\n// Based on InternMap (d3.group).\nexport function keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n\nexport function maybeInput(key, options) {\n if (options[key] !== undefined) return options[key];\n switch (key) {\n case \"x1\":\n case \"x2\":\n key = \"x\";\n break;\n case \"y1\":\n case \"y2\":\n key = \"y\";\n break;\n }\n return options[key];\n}\n\nexport function column(source) {\n // Defines a column whose values are lazily populated by calling the returned\n // setter. If the given source is labeled, the label is propagated to the\n // returned column definition.\n let value;\n return [\n {\n transform: () => value,\n label: labelof(source)\n },\n (v) => (value = v)\n ];\n}\n\n// Like column, but allows the source to be null.\nexport function maybeColumn(source) {\n return source == null ? [source] : column(source);\n}\n\nexport function labelof(value, defaultValue) {\n return typeof value === \"string\" ? value : value && value.label !== undefined ? value.label : defaultValue;\n}\n\n// Assuming that both x1 and x2 and lazy columns (per above), this derives a new\n// a column that’s the average of the two, and which inherits the column label\n// (if any). Both input columns are assumed to be quantitative. If either column\n// is temporal, the returned column is also temporal.\nexport function mid(x1, x2) {\n return {\n transform(data) {\n const X1 = x1.transform(data);\n const X2 = x2.transform(data);\n return isTemporal(X1) || isTemporal(X2)\n ? map(X1, (_, i) => new Date((+X1[i] + +X2[i]) / 2))\n : map(X1, (_, i) => (+X1[i] + +X2[i]) / 2, Float64Array);\n },\n label: x1.label\n };\n}\n\n// If interval is not nullish, converts interval shorthand such as a number (for\n// multiples) or a time interval name (such as “dayâ€) to a {floor, offset,\n// range} object similar to a D3 time interval.\nexport function maybeInterval(interval, type) {\n if (interval == null) return;\n if (typeof interval === \"number\") {\n if (0 < interval && interval < 1 && Number.isInteger(1 / interval)) interval = -1 / interval;\n const n = Math.abs(interval);\n return interval < 0\n ? {\n floor: (d) => Math.floor(d * n) / n,\n offset: (d) => (d * n + 1) / n, // note: no optional step for simplicity\n range: (lo, hi) => rangei(Math.ceil(lo * n), hi * n).map((x) => x / n)\n }\n : {\n floor: (d) => Math.floor(d / n) * n,\n offset: (d) => d + n, // note: no optional step for simplicity\n range: (lo, hi) => rangei(Math.ceil(lo / n), hi / n).map((x) => x * n)\n };\n }\n if (typeof interval === \"string\") return (type === \"time\" ? maybeTimeInterval : maybeUtcInterval)(interval);\n if (typeof interval.floor !== \"function\") throw new Error(\"invalid interval; missing floor method\");\n if (typeof interval.offset !== \"function\") throw new Error(\"invalid interval; missing offset method\");\n return interval;\n}\n\n// Like maybeInterval, but requires a range method too.\nexport function maybeRangeInterval(interval, type) {\n interval = maybeInterval(interval, type);\n if (interval && typeof interval.range !== \"function\") throw new Error(\"invalid interval: missing range method\");\n return interval;\n}\n\n// Like maybeRangeInterval, but requires a ceil method too.\nexport function maybeNiceInterval(interval, type) {\n interval = maybeRangeInterval(interval, type);\n if (interval && typeof interval.ceil !== \"function\") throw new Error(\"invalid interval: missing ceil method\");\n return interval;\n}\n\n// This distinguishes between per-dimension options and a standalone value.\nexport function maybeValue(value) {\n return value === undefined || isOptions(value) ? value : {value};\n}\n\n// Coerces the given channel values (if any) to numbers. This is useful when\n// values will be interpolated into other code, such as an SVG transform, and\n// where we don’t wish to allow unexpected behavior for weird input.\nexport function numberChannel(source) {\n return source == null\n ? null\n : {\n transform: (data) => valueof(data, source, Float64Array),\n label: labelof(source)\n };\n}\n\nexport function isTuples(data) {\n if (!isIterable(data)) return false;\n for (const d of data) {\n if (d == null) continue;\n return typeof d === \"object\" && \"0\" in d && \"1\" in d;\n }\n}\n\nexport function isIterable(value) {\n return value && typeof value[Symbol.iterator] === \"function\";\n}\n\nexport function isTextual(values) {\n for (const value of values) {\n if (value == null) continue;\n return typeof value !== \"object\" || value instanceof Date;\n }\n}\n\nexport function isOrdinal(values) {\n for (const value of values) {\n if (value == null) continue;\n const type = typeof value;\n return type === \"string\" || type === \"boolean\";\n }\n}\n\nexport function isTemporal(values) {\n for (const value of values) {\n if (value == null) continue;\n return value instanceof Date;\n }\n}\n\n// Are these strings that might represent dates? This is stricter than ISO 8601\n// because we want to ignore false positives on numbers; for example, the string\n// \"1192\" is more likely to represent a number than a date even though it is\n// valid ISO 8601 representing 1192-01-01.\nexport function isTemporalString(values) {\n for (const value of values) {\n if (value == null) continue;\n return typeof value === \"string\" && isNaN(value) && isoParse(value);\n }\n}\n\n// Are these strings that might represent numbers? This is stricter than\n// coercion because we want to ignore false positives on e.g. empty strings.\nexport function isNumericString(values) {\n for (const value of values) {\n if (value == null) continue;\n if (typeof value !== \"string\") return false;\n if (!value.trim()) continue;\n return !isNaN(value);\n }\n}\n\nexport function isNumeric(values) {\n for (const value of values) {\n if (value == null) continue;\n return typeof value === \"number\";\n }\n}\n\n// Returns true if every non-null value in the specified iterable of values\n// passes the specified predicate, and there is at least one non-null value;\n// returns false if at least one non-null value does not pass the specified\n// predicate; otherwise returns undefined (as if all values are null).\nexport function isEvery(values, is) {\n let every;\n for (const value of values) {\n if (value == null) continue;\n if (!is(value)) return false;\n every = true;\n }\n return every;\n}\n\n// Mostly relies on d3-color, with a few extra color keywords. Currently this\n// strictly requires that the value be a string; we might want to apply string\n// coercion here, though note that d3-color instances would need to support\n// valueOf to work correctly with InternMap.\n// https://www.w3.org/TR/SVG11/painting.html#SpecifyingPaint\nexport function isColor(value) {\n if (typeof value !== \"string\") return false;\n value = value.toLowerCase().trim();\n return (\n value === \"none\" ||\n value === \"currentcolor\" ||\n (value.startsWith(\"url(\") && value.endsWith(\")\")) || // <funciri>, e.g. pattern or gradient\n (value.startsWith(\"var(\") && value.endsWith(\")\")) || // CSS variable\n color(value) !== null\n );\n}\n\nexport function isOpacity(value) {\n return typeof value === \"number\" && ((0 <= value && value <= 1) || isNaN(value));\n}\n\nexport function isNoneish(value) {\n return value == null || isNone(value);\n}\n\nexport function isNone(value) {\n return /^\\s*none\\s*$/i.test(value);\n}\n\nexport function isRound(value) {\n return /^\\s*round\\s*$/i.test(value);\n}\n\nexport function maybeFrameAnchor(value = \"middle\") {\n return keyword(value, \"frameAnchor\", [\n \"middle\",\n \"top-left\",\n \"top\",\n \"top-right\",\n \"right\",\n \"bottom-right\",\n \"bottom\",\n \"bottom-left\",\n \"left\"\n ]);\n}\n\n// Like a sort comparator, returns a positive value if the given array of values\n// is in ascending order, a negative value if the values are in descending\n// order. Assumes monotonicity; only tests the first and last values.\nexport function orderof(values) {\n if (values == null) return;\n const first = values[0];\n const last = values[values.length - 1];\n return descending(first, last);\n}\n\n// Unlike {...defaults, ...options}, this ensures that any undefined (but\n// present) properties in options inherit the given default value.\nexport function inherit(options = {}, ...rest) {\n let o = options;\n for (const defaults of rest) {\n for (const key in defaults) {\n if (o[key] === undefined) {\n const value = defaults[key];\n if (o === options) o = {...o, [key]: value};\n else o[key] = value;\n }\n }\n }\n return o;\n}\n\n// Given an iterable of named things (objects with a name property), returns a\n// corresponding object with properties associated with the given name.\nexport function named(things) {\n console.warn(\"named iterables are deprecated; please use an object instead\");\n const names = new Set();\n return Object.fromEntries(\n Array.from(things, (thing) => {\n const {name} = thing;\n if (name == null) throw new Error(\"missing name\");\n const key = `${name}`;\n if (key === \"__proto__\") throw new Error(`illegal name: ${key}`);\n if (names.has(key)) throw new Error(`duplicate name: ${key}`);\n names.add(key);\n return [name, thing];\n })\n );\n}\n\nexport function maybeNamed(things) {\n return isIterable(things) ? named(things) : things;\n}\n","// Positional scales have associated axes, and for ordinal data, a point or band\n// scale is used instead of an ordinal scale.\nexport const position = Symbol(\"position\");\n\n// Color scales default to the turbo interpolator for quantitative data, and to\n// the Tableau10 scheme for ordinal data. Color scales may also have an\n// associated legend.\nexport const color = Symbol(\"color\");\n\n// Radius scales default to the sqrt type, have a default range of [0, 3], and a\n// default domain from 0 to the median first quartile of associated channels.\nexport const radius = Symbol(\"radius\");\n\n// Length scales default to the linear type, have a default range of [0, 12],\n// and a default domain from 0 to the median median of associated channels.\nexport const length = Symbol(\"length\");\n\n// Opacity scales have a default range of [0, 1], and a default domain from 0 to\n// the maximum value of associated channels.\nexport const opacity = Symbol(\"opacity\");\n\n// Symbol scales have a default range of categorical symbols.\nexport const symbol = Symbol(\"symbol\");\n\n// TODO Rather than hard-coding the list of known scale names, collect the names\n// and categories for each plot specification, so that custom marks can register\n// custom scales.\nexport const registry = new Map([\n [\"x\", position],\n [\"y\", position],\n [\"fx\", position],\n [\"fy\", position],\n [\"r\", radius],\n [\"color\", color],\n [\"opacity\", opacity],\n [\"symbol\", symbol],\n [\"length\", length]\n]);\n","import {symbolAsterisk, symbolDiamond2, symbolPlus, symbolSquare2, symbolTriangle2, symbolTimes} from \"d3\";\nimport {symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye} from \"d3\";\n\nexport const sqrt3 = Math.sqrt(3);\nexport const sqrt4_3 = 2 / sqrt3;\n\nconst symbolHexagon = {\n draw(context, size) {\n const rx = Math.sqrt(size / Math.PI),\n ry = rx * sqrt4_3,\n hy = ry / 2;\n context.moveTo(0, ry);\n context.lineTo(rx, hy);\n context.lineTo(rx, -hy);\n context.lineTo(0, -ry);\n context.lineTo(-rx, -hy);\n context.lineTo(-rx, hy);\n context.closePath();\n }\n};\n\nconst symbols = new Map([\n [\"asterisk\", symbolAsterisk],\n [\"circle\", symbolCircle],\n [\"cross\", symbolCross],\n [\"diamond\", symbolDiamond],\n [\"diamond2\", symbolDiamond2],\n [\"hexagon\", symbolHexagon],\n [\"plus\", symbolPlus],\n [\"square\", symbolSquare],\n [\"square2\", symbolSquare2],\n [\"star\", symbolStar],\n [\"times\", symbolTimes],\n [\"triangle\", symbolTriangle],\n [\"triangle2\", symbolTriangle2],\n [\"wye\", symbolWye]\n]);\n\nfunction isSymbolObject(value) {\n return value && typeof value.draw === \"function\";\n}\n\nexport function isSymbol(value) {\n if (isSymbolObject(value)) return true;\n if (typeof value !== \"string\") return false;\n return symbols.has(value.toLowerCase());\n}\n\nexport function maybeSymbol(symbol) {\n if (symbol == null || isSymbolObject(symbol)) return symbol;\n const value = symbols.get(`${symbol}`.toLowerCase());\n if (value) return value;\n throw new Error(`invalid symbol: ${symbol}`);\n}\n\nexport function maybeSymbolChannel(symbol) {\n if (symbol == null || isSymbolObject(symbol)) return [undefined, symbol];\n if (typeof symbol === \"string\") {\n const value = symbols.get(`${symbol}`.toLowerCase());\n if (value) return [undefined, value];\n }\n return [symbol, undefined];\n}\n","let warnings = 0;\n\nexport function consumeWarnings() {\n const w = warnings;\n warnings = 0;\n return w;\n}\n\nexport function warn(message) {\n console.warn(message);\n ++warnings;\n}\n","import {\n interpolateBlues,\n interpolateBrBG,\n interpolateBuGn,\n interpolateBuPu,\n interpolateGnBu,\n interpolateGreens,\n interpolateGreys,\n interpolateOranges,\n interpolateOrRd,\n interpolatePiYG,\n interpolatePRGn,\n interpolatePuBu,\n interpolatePuBuGn,\n interpolatePuOr,\n interpolatePuRd,\n interpolatePurples,\n interpolateRdBu,\n interpolateRdGy,\n interpolateRdPu,\n interpolateRdYlBu,\n interpolateRdYlGn,\n interpolateReds,\n interpolateSpectral,\n interpolateYlGn,\n interpolateYlGnBu,\n interpolateYlOrBr,\n interpolateYlOrRd,\n interpolateTurbo,\n interpolateViridis,\n interpolateMagma,\n interpolateInferno,\n interpolatePlasma,\n interpolateCividis,\n interpolateCubehelixDefault,\n interpolateWarm,\n interpolateCool,\n interpolateRainbow,\n interpolateSinebow,\n quantize,\n schemeAccent,\n schemeBlues,\n schemeBrBG,\n schemeBuGn,\n schemeBuPu,\n schemeCategory10,\n schemeDark2,\n schemeGnBu,\n schemeGreens,\n schemeGreys,\n schemeOranges,\n schemeOrRd,\n schemePaired,\n schemePastel1,\n schemePastel2,\n schemePiYG,\n schemePRGn,\n schemePuBu,\n schemePuBuGn,\n schemePuOr,\n schemePuRd,\n schemePurples,\n schemeRdBu,\n schemeRdGy,\n schemeRdPu,\n schemeRdYlBu,\n schemeRdYlGn,\n schemeReds,\n schemeSet1,\n schemeSet2,\n schemeSet3,\n schemeSpectral,\n schemeTableau10,\n schemeYlGn,\n schemeYlGnBu,\n schemeYlOrBr,\n schemeYlOrRd\n} from \"d3\";\n\nconst ordinalSchemes = new Map([\n // categorical\n [\"accent\", schemeAccent],\n [\"category10\", schemeCategory10],\n [\"dark2\", schemeDark2],\n [\"paired\", schemePaired],\n [\"pastel1\", schemePastel1],\n [\"pastel2\", schemePastel2],\n [\"set1\", schemeSet1],\n [\"set2\", schemeSet2],\n [\"set3\", schemeSet3],\n [\"tableau10\", schemeTableau10],\n\n // diverging\n [\"brbg\", scheme11(schemeBrBG, interpolateBrBG)],\n [\"prgn\", scheme11(schemePRGn, interpolatePRGn)],\n [\"piyg\", scheme11(schemePiYG, interpolatePiYG)],\n [\"puor\", scheme11(schemePuOr, interpolatePuOr)],\n [\"rdbu\", scheme11(schemeRdBu, interpolateRdBu)],\n [\"rdgy\", scheme11(schemeRdGy, interpolateRdGy)],\n [\"rdylbu\", scheme11(schemeRdYlBu, interpolateRdYlBu)],\n [\"rdylgn\", scheme11(schemeRdYlGn, interpolateRdYlGn)],\n [\"spectral\", scheme11(schemeSpectral, interpolateSpectral)],\n\n // reversed diverging (for temperature data)\n [\"burd\", scheme11r(schemeRdBu, interpolateRdBu)],\n [\"buylrd\", scheme11r(schemeRdYlBu, interpolateRdYlBu)],\n\n // sequential (single-hue)\n [\"blues\", scheme9(schemeBlues, interpolateBlues)],\n [\"greens\", scheme9(schemeGreens, interpolateGreens)],\n [\"greys\", scheme9(schemeGreys, interpolateGreys)],\n [\"oranges\", scheme9(schemeOranges, interpolateOranges)],\n [\"purples\", scheme9(schemePurples, interpolatePurples)],\n [\"reds\", scheme9(schemeReds, interpolateReds)],\n\n // sequential (multi-hue)\n [\"turbo\", schemei(interpolateTurbo)],\n [\"viridis\", schemei(interpolateViridis)],\n [\"magma\", schemei(interpolateMagma)],\n [\"inferno\", schemei(interpolateInferno)],\n [\"plasma\", schemei(interpolatePlasma)],\n [\"cividis\", schemei(interpolateCividis)],\n [\"cubehelix\", schemei(interpolateCubehelixDefault)],\n [\"warm\", schemei(interpolateWarm)],\n [\"cool\", schemei(interpolateCool)],\n [\"bugn\", scheme9(schemeBuGn, interpolateBuGn)],\n [\"bupu\", scheme9(schemeBuPu, interpolateBuPu)],\n [\"gnbu\", scheme9(schemeGnBu, interpolateGnBu)],\n [\"orrd\", scheme9(schemeOrRd, interpolateOrRd)],\n [\"pubu\", scheme9(schemePuBu, interpolatePuBu)],\n [\"pubugn\", scheme9(schemePuBuGn, interpolatePuBuGn)],\n [\"purd\", scheme9(schemePuRd, interpolatePuRd)],\n [\"rdpu\", scheme9(schemeRdPu, interpolateRdPu)],\n [\"ylgn\", scheme9(schemeYlGn, interpolateYlGn)],\n [\"ylgnbu\", scheme9(schemeYlGnBu, interpolateYlGnBu)],\n [\"ylorbr\", scheme9(schemeYlOrBr, interpolateYlOrBr)],\n [\"ylorrd\", scheme9(schemeYlOrRd, interpolateYlOrRd)],\n\n // cyclical\n [\"rainbow\", schemeicyclical(interpolateRainbow)],\n [\"sinebow\", schemeicyclical(interpolateSinebow)]\n]);\n\nfunction scheme9(scheme, interpolate) {\n return ({length: n}) => {\n if (n === 1) return [scheme[3][1]]; // favor midpoint\n if (n === 2) return [scheme[3][1], scheme[3][2]]; // favor darker\n n = Math.max(3, Math.floor(n));\n return n > 9 ? quantize(interpolate, n) : scheme[n];\n };\n}\n\nfunction scheme11(scheme, interpolate) {\n return ({length: n}) => {\n if (n === 2) return [scheme[3][0], scheme[3][2]]; // favor diverging extrema\n n = Math.max(3, Math.floor(n));\n return n > 11 ? quantize(interpolate, n) : scheme[n];\n };\n}\n\nfunction scheme11r(scheme, interpolate) {\n return ({length: n}) => {\n if (n === 2) return [scheme[3][2], scheme[3][0]]; // favor diverging extrema\n n = Math.max(3, Math.floor(n));\n return n > 11 ? quantize((t) => interpolate(1 - t), n) : scheme[n].slice().reverse();\n };\n}\n\nfunction schemei(interpolate) {\n return ({length: n}) => quantize(interpolate, Math.max(2, Math.floor(n)));\n}\n\nfunction schemeicyclical(interpolate) {\n return ({length: n}) => quantize(interpolate, Math.floor(n) + 1).slice(0, -1);\n}\n\nexport function ordinalScheme(scheme) {\n const s = `${scheme}`.toLowerCase();\n if (!ordinalSchemes.has(s)) throw new Error(`unknown ordinal scheme: ${s}`);\n return ordinalSchemes.get(s);\n}\n\nexport function ordinalRange(scheme, length) {\n const s = ordinalScheme(scheme);\n const r = typeof s === \"function\" ? s({length}) : s;\n return r.length !== length ? r.slice(0, length) : r;\n}\n\n// If the specified domain contains only booleans (ignoring null and undefined),\n// returns a corresponding range where false is mapped to the low color and true\n// is mapped to the high color of the specified scheme.\nexport function maybeBooleanRange(domain, scheme = \"greys\") {\n const range = new Set();\n const [f, t] = ordinalRange(scheme, 2);\n for (const value of domain) {\n if (value == null) continue;\n if (value === true) range.add(t);\n else if (value === false) range.add(f);\n else return;\n }\n return [...range];\n}\n\nconst quantitativeSchemes = new Map([\n // diverging\n [\"brbg\", interpolateBrBG],\n [\"prgn\", interpolatePRGn],\n [\"piyg\", interpolatePiYG],\n [\"puor\", interpolatePuOr],\n [\"rdbu\", interpolateRdBu],\n [\"rdgy\", interpolateRdGy],\n [\"rdylbu\", interpolateRdYlBu],\n [\"rdylgn\", interpolateRdYlGn],\n [\"spectral\", interpolateSpectral],\n\n // reversed diverging (for temperature data)\n [\"burd\", (t) => interpolateRdBu(1 - t)],\n [\"buylrd\", (t) => interpolateRdYlBu(1 - t)],\n\n // sequential (single-hue)\n [\"blues\", interpolateBlues],\n [\"greens\", interpolateGreens],\n [\"greys\", interpolateGreys],\n [\"purples\", interpolatePurples],\n [\"reds\", interpolateReds],\n [\"oranges\", interpolateOranges],\n\n // sequential (multi-hue)\n [\"turbo\", interpolateTurbo],\n [\"viridis\", interpolateViridis],\n [\"magma\", interpolateMagma],\n [\"inferno\", interpolateInferno],\n [\"plasma\", interpolatePlasma],\n [\"cividis\", interpolateCividis],\n [\"cubehelix\", interpolateCubehelixDefault],\n [\"warm\", interpolateWarm],\n [\"cool\", interpolateCool],\n [\"bugn\", interpolateBuGn],\n [\"bupu\", interpolateBuPu],\n [\"gnbu\", interpolateGnBu],\n [\"orrd\", interpolateOrRd],\n [\"pubugn\", interpolatePuBuGn],\n [\"pubu\", interpolatePuBu],\n [\"purd\", interpolatePuRd],\n [\"rdpu\", interpolateRdPu],\n [\"ylgnbu\", interpolateYlGnBu],\n [\"ylgn\", interpolateYlGn],\n [\"ylorbr\", interpolateYlOrBr],\n [\"ylorrd\", interpolateYlOrRd],\n\n // cyclical\n [\"rainbow\", interpolateRainbow],\n [\"sinebow\", interpolateSinebow]\n]);\n\nexport function quantitativeScheme(scheme) {\n const s = `${scheme}`.toLowerCase();\n if (!quantitativeSchemes.has(s)) throw new Error(`unknown quantitative scheme: ${s}`);\n return quantitativeSchemes.get(s);\n}\n\nconst divergingSchemes = new Set([\n \"brbg\",\n \"prgn\",\n \"piyg\",\n \"puor\",\n \"rdbu\",\n \"rdgy\",\n \"rdylbu\",\n \"rdylgn\",\n \"spectral\",\n \"burd\",\n \"buylrd\"\n]);\n\nexport function isDivergingScheme(scheme) {\n return scheme != null && divergingSchemes.has(`${scheme}`.toLowerCase());\n}\n","import {\n descending,\n extent,\n interpolateHcl,\n interpolateHsl,\n interpolateLab,\n interpolateNumber,\n interpolateRgb,\n interpolateRound,\n min,\n max,\n median,\n quantile,\n quantize,\n reverse as reverseof,\n scaleLinear,\n scaleLog,\n scalePow,\n scaleQuantile,\n scaleSymlog,\n scaleThreshold,\n scaleIdentity,\n ticks\n} from \"d3\";\nimport {positive, negative, finite} from \"../defined.js\";\nimport {arrayify, constant, orderof, slice, maybeNiceInterval, maybeRangeInterval} from \"../options.js\";\nimport {ordinalRange, quantitativeScheme} from \"./schemes.js\";\nimport {registry, radius, opacity, color, length} from \"./index.js\";\n\nexport const flip = (i) => (t) => i(1 - t);\nconst unit = [0, 1];\n\nconst interpolators = new Map([\n // numbers\n [\"number\", interpolateNumber],\n\n // color spaces\n [\"rgb\", interpolateRgb],\n [\"hsl\", interpolateHsl],\n [\"hcl\", interpolateHcl],\n [\"lab\", interpolateLab]\n]);\n\nexport function maybeInterpolator(interpolate) {\n const i = `${interpolate}`.toLowerCase();\n if (!interpolators.has(i)) throw new Error(`unknown interpolator: ${i}`);\n return interpolators.get(i);\n}\n\nexport function createScaleQ(\n key,\n scale,\n channels,\n {\n type,\n nice,\n clamp,\n zero,\n domain = inferAutoDomain(key, channels),\n unknown,\n round,\n scheme,\n interval,\n range = registry.get(key) === radius\n ? inferRadialRange(channels, domain)\n : registry.get(key) === length\n ? inferLengthRange(channels, domain)\n : registry.get(key) === opacity\n ? unit\n : undefined,\n interpolate = registry.get(key) === color\n ? scheme == null && range !== undefined\n ? interpolateRgb\n : quantitativeScheme(scheme !== undefined ? scheme : type === \"cyclical\" ? \"rainbow\" : \"turbo\")\n : round\n ? interpolateRound\n : interpolateNumber,\n reverse\n }\n) {\n interval = maybeRangeInterval(interval, type);\n if (type === \"cyclical\" || type === \"sequential\") type = \"linear\"; // shorthand for color schemes\n reverse = !!reverse;\n\n // Sometimes interpolate is a named interpolator, such as \"lab\" for Lab color\n // space. Other times interpolate is a function that takes two arguments and\n // is used in conjunction with the range. And other times the interpolate\n // function is a “fixed†interpolator on the [0, 1] interval, as when a\n // color scheme such as interpolateRdBu is used.\n if (typeof interpolate !== \"function\") {\n interpolate = maybeInterpolator(interpolate);\n }\n if (interpolate.length === 1) {\n if (reverse) {\n interpolate = flip(interpolate);\n reverse = false;\n }\n if (range === undefined) {\n range = Float64Array.from(domain, (_, i) => i / (domain.length - 1));\n if (range.length === 2) range = unit; // optimize common case of [0, 1]\n }\n scale.interpolate((range === unit ? constant : interpolatePiecewise)(interpolate));\n } else {\n scale.interpolate(interpolate);\n }\n\n // If a zero option is specified, we assume that the domain is numeric, and we\n // want to ensure that the domain crosses zero. However, note that the domain\n // may be reversed (descending) so we shouldn’t assume that the first value is\n // smaller than the last; and also it’s possible that the domain has more than\n // two values for a “poly†scale. And lastly be careful not to mutate input!\n if (zero) {\n const [min, max] = extent(domain);\n if (min > 0 || max < 0) {\n domain = slice(domain);\n if (orderof(domain) !== Math.sign(min)) domain[domain.length - 1] = 0;\n // [2, 1] or [-2, -1]\n else domain[0] = 0; // [1, 2] or [-1, -2]\n }\n }\n\n if (reverse) domain = reverseof(domain);\n scale.domain(domain).unknown(unknown);\n if (nice) scale.nice(maybeNice(nice, type)), (domain = scale.domain());\n if (range !== undefined) scale.range(range);\n if (clamp) scale.clamp(clamp);\n return {type, domain, range, scale, interpolate, interval};\n}\n\nfunction maybeNice(nice, type) {\n return nice === true ? undefined : typeof nice === \"number\" ? nice : maybeNiceInterval(nice, type);\n}\n\nexport function createScaleLinear(key, channels, options) {\n return createScaleQ(key, scaleLinear(), channels, options);\n}\n\nexport function createScaleSqrt(key, channels, options) {\n return createScalePow(key, channels, {...options, exponent: 0.5});\n}\n\nexport function createScalePow(key, channels, {exponent = 1, ...options}) {\n return createScaleQ(key, scalePow().exponent(exponent), channels, {...options, type: \"pow\"});\n}\n\nexport function createScaleLog(key, channels, {base = 10, domain = inferLogDomain(channels), ...options}) {\n return createScaleQ(key, scaleLog().base(base), channels, {...options, domain});\n}\n\nexport function createScaleSymlog(key, channels, {constant = 1, ...options}) {\n return createScaleQ(key, scaleSymlog().constant(constant), channels, options);\n}\n\nexport function createScaleQuantile(\n key,\n channels,\n {\n range,\n quantiles = range === undefined ? 5 : (range = [...range]).length, // deprecated; use n instead\n n = quantiles,\n scheme = \"rdylbu\",\n domain = inferQuantileDomain(channels),\n unknown,\n interpolate,\n reverse\n }\n) {\n if (range === undefined) {\n range =\n interpolate !== undefined\n ? quantize(interpolate, n)\n : registry.get(key) === color\n ? ordinalRange(scheme, n)\n : undefined;\n }\n if (domain.length > 0) {\n domain = scaleQuantile(domain, range === undefined ? {length: n} : range).quantiles();\n }\n return createScaleThreshold(key, channels, {domain, range, reverse, unknown});\n}\n\nexport function createScaleQuantize(\n key,\n channels,\n {\n range,\n n = range === undefined ? 5 : (range = [...range]).length,\n scheme = \"rdylbu\",\n domain = inferAutoDomain(key, channels),\n unknown,\n interpolate,\n reverse\n }\n) {\n const [min, max] = extent(domain);\n let thresholds;\n if (range === undefined) {\n thresholds = ticks(min, max, n); // approximate number of nice, round thresholds\n if (thresholds[0] <= min) thresholds.splice(0, 1); // drop exact lower bound\n if (thresholds[thresholds.length - 1] >= max) thresholds.pop(); // drop exact upper bound\n n = thresholds.length + 1;\n range =\n interpolate !== undefined\n ? quantize(interpolate, n)\n : registry.get(key) === color\n ? ordinalRange(scheme, n)\n : undefined;\n } else {\n thresholds = quantize(interpolateNumber(min, max), n + 1).slice(1, -1); // exactly n - 1 thresholds to match range\n if (min instanceof Date) thresholds = thresholds.map((x) => new Date(x)); // preserve date types\n }\n if (orderof(arrayify(domain)) < 0) thresholds.reverse(); // preserve descending domain\n return createScaleThreshold(key, channels, {domain: thresholds, range, reverse, unknown});\n}\n\nexport function createScaleThreshold(\n key,\n channels,\n {\n domain = [0], // explicit thresholds in ascending order\n unknown,\n scheme = \"rdylbu\",\n interpolate,\n range = interpolate !== undefined\n ? quantize(interpolate, domain.length + 1)\n : registry.get(key) === color\n ? ordinalRange(scheme, domain.length + 1)\n : undefined,\n reverse\n }\n) {\n domain = arrayify(domain);\n const sign = orderof(domain); // preserve descending domain\n if (!isNaN(sign) && !isOrdered(domain, sign)) throw new Error(`the ${key} scale has a non-monotonic domain`);\n if (reverse) range = reverseof(range); // domain ascending, so reverse range\n return {\n type: \"threshold\",\n scale: scaleThreshold(sign < 0 ? reverseof(domain) : domain, range === undefined ? [] : range).unknown(unknown),\n domain,\n range\n };\n}\n\nfunction isOrdered(domain, sign) {\n for (let i = 1, n = domain.length, d = domain[0]; i < n; ++i) {\n const s = descending(d, (d = domain[i]));\n if (s !== 0 && s !== sign) return false;\n }\n return true;\n}\n\nexport function createScaleIdentity() {\n return {type: \"identity\", scale: scaleIdentity()};\n}\n\nexport function inferDomain(channels, f = finite) {\n return channels.length\n ? [\n min(channels, ({value}) => (value === undefined ? value : min(value, f))),\n max(channels, ({value}) => (value === undefined ? value : max(value, f)))\n ]\n : [0, 1];\n}\n\nfunction inferAutoDomain(key, channels) {\n const type = registry.get(key);\n return (type === radius || type === opacity || type === length ? inferZeroDomain : inferDomain)(channels);\n}\n\nfunction inferZeroDomain(channels) {\n return [0, channels.length ? max(channels, ({value}) => (value === undefined ? value : max(value, finite))) : 1];\n}\n\n// We don’t want the upper bound of the radial domain to be zero, as this would\n// be degenerate, so we ignore nonpositive values. We also don’t want the\n// maximum default radius to exceed 30px.\nfunction inferRadialRange(channels, domain) {\n const hint = channels.find(({radius}) => radius !== undefined);\n if (hint !== undefined) return [0, hint.radius]; // a natural maximum radius, e.g. hexbins\n const h25 = quantile(channels, 0.5, ({value}) => (value === undefined ? NaN : quantile(value, 0.25, positive)));\n const range = domain.map((d) => 3 * Math.sqrt(d / h25));\n const k = 30 / max(range);\n return k < 1 ? range.map((r) => r * k) : range;\n}\n\n// We want a length scale’s domain to go from zero to a positive value, and to\n// treat negative lengths if any as inverted vectors of equivalent magnitude. We\n// also don’t want the maximum default length to exceed 60px.\nfunction inferLengthRange(channels, domain) {\n const h50 = median(channels, ({value}) => (value === undefined ? NaN : median(value, Math.abs)));\n const range = domain.map((d) => (12 * d) / h50);\n const k = 60 / max(range);\n return k < 1 ? range.map((r) => r * k) : range;\n}\n\nfunction inferLogDomain(channels) {\n for (const {value} of channels) {\n if (value !== undefined) {\n for (let v of value) {\n if (v > 0) return inferDomain(channels, positive);\n if (v < 0) return inferDomain(channels, negative);\n }\n }\n }\n return [1, 10];\n}\n\nfunction inferQuantileDomain(channels) {\n const domain = [];\n for (const {value} of channels) {\n if (value === undefined) continue;\n for (const v of value) domain.push(v);\n }\n return domain;\n}\n\nexport function interpolatePiecewise(interpolate) {\n return (i, j) => (t) => interpolate(i + t * (j - i));\n}\n","import {\n descending,\n interpolateNumber,\n interpolateRgb,\n piecewise,\n scaleDiverging,\n scaleDivergingLog,\n scaleDivergingPow,\n scaleDivergingSymlog\n} from \"d3\";\nimport {positive, negative} from \"../defined.js\";\nimport {quantitativeScheme} from \"./schemes.js\";\nimport {registry, color} from \"./index.js\";\nimport {inferDomain, maybeInterpolator, flip, interpolatePiecewise} from \"./quantitative.js\";\n\nfunction createScaleD(\n key,\n scale,\n transform,\n channels,\n {\n type,\n nice,\n clamp,\n domain = inferDomain(channels),\n unknown,\n pivot = 0,\n scheme,\n range,\n symmetric = true,\n interpolate = registry.get(key) === color\n ? scheme == null && range !== undefined\n ? interpolateRgb\n : quantitativeScheme(scheme !== undefined ? scheme : \"rdbu\")\n : interpolateNumber,\n reverse\n }\n) {\n pivot = +pivot;\n let [min, max] = domain;\n if (descending(min, max) < 0) ([min, max] = [max, min]), (reverse = !reverse);\n min = Math.min(min, pivot);\n max = Math.max(max, pivot);\n\n // Sometimes interpolate is a named interpolator, such as \"lab\" for Lab color\n // space. Other times interpolate is a function that takes two arguments and\n // is used in conjunction with the range. And other times the interpolate\n // function is a “fixed†interpolator on the [0, 1] interval, as when a\n // color scheme such as interpolateRdBu is used.\n if (typeof interpolate !== \"function\") {\n interpolate = maybeInterpolator(interpolate);\n }\n\n // If an explicit range is specified, promote it to a piecewise interpolator.\n if (range !== undefined) {\n interpolate =\n interpolate.length === 1 ? interpolatePiecewise(interpolate)(...range) : piecewise(interpolate, range);\n }\n\n // Reverse before normalization.\n if (reverse) interpolate = flip(interpolate);\n\n // Normalize the interpolator for symmetric difference around the pivot.\n if (symmetric) {\n const mid = transform.apply(pivot);\n const mindelta = mid - transform.apply(min);\n const maxdelta = transform.apply(max) - mid;\n if (mindelta < maxdelta) min = transform.invert(mid - maxdelta);\n else if (mindelta > maxdelta) max = transform.invert(mid + mindelta);\n }\n\n scale.domain([min, pivot, max]).unknown(unknown).interpolator(interpolate);\n if (clamp) scale.clamp(clamp);\n if (nice) scale.nice(nice);\n return {type, domain: [min, max], pivot, interpolate, scale};\n}\n\nexport function createScaleDiverging(key, channels, options) {\n return createScaleD(key, scaleDiverging(), transformIdentity, channels, options);\n}\n\nexport function createScaleDivergingSqrt(key, channels, options) {\n return createScaleDivergingPow(key, channels, {...options, exponent: 0.5});\n}\n\nexport function createScaleDivergingPow(key, channels, {exponent = 1, ...options}) {\n return createScaleD(key, scaleDivergingPow().exponent((exponent = +exponent)), transformPow(exponent), channels, {\n ...options,\n type: \"diverging-pow\"\n });\n}\n\nexport function createScaleDivergingLog(\n key,\n channels,\n {base = 10, pivot = 1, domain = inferDomain(channels, pivot < 0 ? negative : positive), ...options}\n) {\n return createScaleD(key, scaleDivergingLog().base((base = +base)), transformLog, channels, {\n domain,\n pivot,\n ...options\n });\n}\n\nexport function createScaleDivergingSymlog(key, channels, {constant = 1, ...options}) {\n return createScaleD(\n key,\n scaleDivergingSymlog().constant((constant = +constant)),\n transformSymlog(constant),\n channels,\n options\n );\n}\n\nconst transformIdentity = {\n apply(x) {\n return x;\n },\n invert(x) {\n return x;\n }\n};\n\nconst transformLog = {\n apply: Math.log,\n invert: Math.exp\n};\n\nconst transformSqrt = {\n apply(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n },\n invert(x) {\n return Math.sign(x) * (x * x);\n }\n};\n\nfunction transformPow(exponent) {\n return exponent === 0.5\n ? transformSqrt\n : {\n apply(x) {\n return Math.sign(x) * Math.pow(Math.abs(x), exponent);\n },\n invert(x) {\n return Math.sign(x) * Math.pow(Math.abs(x), 1 / exponent);\n }\n };\n}\n\nfunction transformSymlog(constant) {\n return {\n apply(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / constant));\n },\n invert(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * constant;\n }\n };\n}\n","import {scaleTime, scaleUtc} from \"d3\";\nimport {createScaleQ} from \"./quantitative.js\";\n\nfunction createScaleT(key, scale, channels, options) {\n return createScaleQ(key, scale, channels, options);\n}\n\nexport function createScaleTime(key, channels, options) {\n return createScaleT(key, scaleTime(), channels, options);\n}\n\nexport function createScaleUtc(key, channels, options) {\n return createScaleT(key, scaleUtc(), channels, options);\n}\n","import {InternSet, extent, quantize, reverse as reverseof, sort, symbolsFill, symbolsStroke} from \"d3\";\nimport {scaleBand, scaleOrdinal, scalePoint, scaleImplicit} from \"d3\";\nimport {ascendingDefined} from \"../defined.js\";\nimport {isNoneish, map, maybeRangeInterval} from \"../options.js\";\nimport {maybeSymbol} from \"../symbol.js\";\nimport {registry, color, position, symbol} from \"./index.js\";\nimport {maybeBooleanRange, ordinalScheme, quantitativeScheme} from \"./schemes.js\";\n\n// This denotes an implicitly ordinal color scale: the scale type was not set,\n// but the associated values are strings or booleans. If the associated defined\n// values are entirely boolean, the range will default to greys. You can opt out\n// of this by setting the type explicitly.\nexport const ordinalImplicit = Symbol(\"ordinal\");\n\nfunction createScaleO(key, scale, channels, {type, interval, domain, range, reverse, hint}) {\n interval = maybeRangeInterval(interval, type);\n if (domain === undefined) domain = inferDomain(channels, interval, key);\n if (type === \"categorical\" || type === ordinalImplicit) type = \"ordinal\"; // shorthand for color schemes\n if (reverse) domain = reverseof(domain);\n scale.domain(domain);\n if (range !== undefined) {\n // If the range is specified as a function, pass it the domain.\n if (typeof range === \"function\") range = range(domain);\n scale.range(range);\n }\n return {type, domain, range, scale, hint, interval};\n}\n\nexport function createScaleOrdinal(key, channels, {type, interval, domain, range, scheme, unknown, ...options}) {\n interval = maybeRangeInterval(interval, type);\n if (domain === undefined) domain = inferDomain(channels, interval, key);\n let hint;\n if (registry.get(key) === symbol) {\n hint = inferSymbolHint(channels);\n range = range === undefined ? inferSymbolRange(hint) : map(range, maybeSymbol);\n } else if (registry.get(key) === color) {\n if (range === undefined && (type === \"ordinal\" || type === ordinalImplicit)) {\n range = maybeBooleanRange(domain, scheme);\n if (range !== undefined) scheme = undefined; // Don’t re-apply scheme.\n }\n if (scheme === undefined && range === undefined) {\n scheme = type === \"ordinal\" ? \"turbo\" : \"tableau10\";\n }\n if (scheme !== undefined) {\n if (range !== undefined) {\n const interpolate = quantitativeScheme(scheme);\n const t0 = range[0],\n d = range[1] - range[0];\n range = ({length: n}) => quantize((t) => interpolate(t0 + d * t), n);\n } else {\n range = ordinalScheme(scheme);\n }\n }\n }\n if (unknown === scaleImplicit) {\n throw new Error(`implicit unknown on ${key} scale is not supported`);\n }\n return createScaleO(key, scaleOrdinal().unknown(unknown), channels, {...options, type, domain, range, hint});\n}\n\nexport function createScalePoint(key, channels, {align = 0.5, padding = 0.5, ...options}) {\n return maybeRound(scalePoint().align(align).padding(padding), channels, options, key);\n}\n\nexport function createScaleBand(\n key,\n channels,\n {\n align = 0.5,\n padding = 0.1,\n paddingInner = padding,\n paddingOuter = key === \"fx\" || key === \"fy\" ? 0 : padding,\n ...options\n }\n) {\n return maybeRound(\n scaleBand().align(align).paddingInner(paddingInner).paddingOuter(paddingOuter),\n channels,\n options,\n key\n );\n}\n\nfunction maybeRound(scale, channels, options, key) {\n let {round} = options;\n if (round !== undefined) scale.round((round = !!round));\n scale = createScaleO(key, scale, channels, options);\n scale.round = round; // preserve for autoScaleRound\n return scale;\n}\n\nfunction inferDomain(channels, interval, key) {\n const values = new InternSet();\n for (const {value, domain} of channels) {\n if (domain !== undefined) return domain(); // see channelDomain\n if (value === undefined) continue;\n for (const v of value) values.add(v);\n }\n if (interval !== undefined) {\n const [min, max] = extent(values).map(interval.floor, interval);\n return interval.range(min, interval.offset(max));\n }\n if (values.size > 10e3 && registry.get(key) === position) {\n throw new Error(`implicit ordinal domain of ${key} scale has more than 10,000 values`);\n }\n return sort(values, ascendingDefined);\n}\n\n// If all channels provide a consistent hint, propagate it to the scale.\nfunction inferHint(channels, key) {\n let value;\n for (const {hint} of channels) {\n const candidate = hint?.[key];\n if (candidate === undefined) continue; // no hint here\n if (value === undefined) value = candidate;\n // first hint\n else if (value !== candidate) return; // inconsistent hint\n }\n return value;\n}\n\nfunction inferSymbolHint(channels) {\n return {\n fill: inferHint(channels, \"fill\"),\n stroke: inferHint(channels, \"stroke\")\n };\n}\n\nfunction inferSymbolRange(hint) {\n return isNoneish(hint.fill) ? symbolsStroke : symbolsFill;\n}\n","import {\n isOrdinal,\n isTemporal,\n isTemporalString,\n isNumericString,\n isScaleOptions,\n map,\n slice,\n coerceNumbers,\n coerceDates\n} from \"./options.js\";\nimport {registry, color, position, radius, opacity, symbol, length} from \"./scales/index.js\";\nimport {\n createScaleLinear,\n createScaleSqrt,\n createScalePow,\n createScaleLog,\n createScaleSymlog,\n createScaleQuantile,\n createScaleQuantize,\n createScaleThreshold,\n createScaleIdentity\n} from \"./scales/quantitative.js\";\nimport {\n createScaleDiverging,\n createScaleDivergingSqrt,\n createScaleDivergingPow,\n createScaleDivergingLog,\n createScaleDivergingSymlog\n} from \"./scales/diverging.js\";\nimport {isDivergingScheme} from \"./scales/schemes.js\";\nimport {createScaleTime, createScaleUtc} from \"./scales/temporal.js\";\nimport {createScaleOrdinal, createScalePoint, createScaleBand, ordinalImplicit} from \"./scales/ordinal.js\";\nimport {maybeSymbol} from \"./symbol.js\";\nimport {warn} from \"./warnings.js\";\n\nexport function createScales(\n channelsByScale,\n {\n label: globalLabel,\n inset: globalInset = 0,\n insetTop: globalInsetTop = globalInset,\n insetRight: globalInsetRight = globalInset,\n insetBottom: globalInsetBottom = globalInset,\n insetLeft: globalInsetLeft = globalInset,\n round,\n nice,\n clamp,\n zero,\n align,\n padding,\n projection,\n facet: {label: facetLabel = globalLabel} = {},\n ...options\n } = {}\n) {\n const scales = {};\n for (const [key, channels] of channelsByScale) {\n const scaleOptions = options[key];\n const scale = createScale(key, channels, {\n round: registry.get(key) === position ? round : undefined, // only for position\n nice,\n clamp,\n zero,\n align,\n padding,\n projection,\n ...scaleOptions\n });\n if (scale) {\n // populate generic scale options (percent, transform, insets)\n let {\n label = key === \"fx\" || key === \"fy\" ? facetLabel : globalLabel,\n percent,\n transform,\n inset,\n insetTop = inset !== undefined ? inset : key === \"y\" ? globalInsetTop : 0, // not fy\n insetRight = inset !== undefined ? inset : key === \"x\" ? globalInsetRight : 0, // not fx\n insetBottom = inset !== undefined ? inset : key === \"y\" ? globalInsetBottom : 0, // not fy\n insetLeft = inset !== undefined ? inset : key === \"x\" ? globalInsetLeft : 0 // not fx\n } = scaleOptions || {};\n if (transform == null) transform = undefined;\n else if (typeof transform !== \"function\") throw new Error(\"invalid scale transform; not a function\");\n scale.percent = !!percent;\n scale.label = label === undefined ? inferScaleLabel(channels, scale) : label;\n scale.transform = transform;\n if (key === \"x\" || key === \"fx\") {\n scale.insetLeft = +insetLeft;\n scale.insetRight = +insetRight;\n } else if (key === \"y\" || key === \"fy\") {\n scale.insetTop = +insetTop;\n scale.insetBottom = +insetBottom;\n }\n scales[key] = scale;\n }\n }\n return scales;\n}\n\nexport function createScaleFunctions(scales) {\n return Object.fromEntries(\n Object.entries(scales)\n .filter(([, {scale}]) => scale) // drop identity scales\n .map(([name, {scale, type, interval, label}]) => {\n scale.type = type; // for axis\n if (interval != null) scale.interval = interval; // for axis\n if (label != null) scale.label = label; // for axis\n return [name, scale];\n })\n );\n}\n\n// Mutates scale.range!\nexport function autoScaleRange(scales, dimensions) {\n const {x, y, fx, fy} = scales;\n const superdimensions = fx || fy ? outerDimensions(dimensions) : dimensions;\n if (fx) autoScaleRangeX(fx, superdimensions);\n if (fy) autoScaleRangeY(fy, superdimensions);\n const subdimensions = fx || fy ? innerDimensions(scales, dimensions) : dimensions;\n if (x) autoScaleRangeX(x, subdimensions);\n if (y) autoScaleRangeY(y, subdimensions);\n}\n\n// Channels can have labels; if all the channels for a given scale are\n// consistently labeled (i.e., have the same value if not undefined), and the\n// corresponding scale doesn’t already have an explicit label, then the\n// channels’ label is promoted to the scale. This inferred label should have an\n// orientation-appropriate arrow added when used as an axis, but we don’t want\n// to add the arrow when the label is set explicitly as an option; so, the\n// inferred label is distinguished as an object with an “inferred†property.\nfunction inferScaleLabel(channels = [], scale) {\n let label;\n for (const {label: l} of channels) {\n if (l === undefined) continue;\n if (label === undefined) label = l;\n else if (label !== l) return;\n }\n if (label === undefined) return;\n // Ignore the implicit label for temporal scales if it’s simply “dateâ€.\n if (isTemporalScale(scale) && /^(date|time|year)$/i.test(label)) return;\n if (!isOrdinalScale(scale) && scale.percent) label = `${label} (%)`;\n return {inferred: true, toString: () => label};\n}\n\n// Returns the dimensions of the outer frame; this is subdivided into facets\n// with the margins of each facet collapsing into the outer margins.\nexport function outerDimensions(dimensions) {\n const {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n width,\n height,\n facet: {\n marginTop: facetMarginTop,\n marginRight: facetMarginRight,\n marginBottom: facetMarginBottom,\n marginLeft: facetMarginLeft\n }\n } = dimensions;\n return {\n marginTop: Math.max(marginTop, facetMarginTop),\n marginRight: Math.max(marginRight, facetMarginRight),\n marginBottom: Math.max(marginBottom, facetMarginBottom),\n marginLeft: Math.max(marginLeft, facetMarginLeft),\n width,\n height\n };\n}\n\n// Returns the dimensions of each facet.\nexport function innerDimensions({fx, fy}, dimensions) {\n const {marginTop, marginRight, marginBottom, marginLeft, width, height} = outerDimensions(dimensions);\n return {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n width: fx ? fx.scale.bandwidth() + marginLeft + marginRight : width,\n height: fy ? fy.scale.bandwidth() + marginTop + marginBottom : height\n };\n}\n\nfunction autoScaleRangeX(scale, dimensions) {\n if (scale.range === undefined) {\n const {insetLeft, insetRight} = scale;\n const {width, marginLeft = 0, marginRight = 0} = dimensions;\n const left = marginLeft + insetLeft;\n const right = width - marginRight - insetRight;\n scale.range = [left, Math.max(left, right)];\n if (!isOrdinalScale(scale)) scale.range = piecewiseRange(scale);\n scale.scale.range(scale.range);\n }\n autoScaleRound(scale);\n}\n\nfunction autoScaleRangeY(scale, dimensions) {\n if (scale.range === undefined) {\n const {insetTop, insetBottom} = scale;\n const {height, marginTop = 0, marginBottom = 0} = dimensions;\n const top = marginTop + insetTop;\n const bottom = height - marginBottom - insetBottom;\n scale.range = [Math.max(top, bottom), top];\n if (!isOrdinalScale(scale)) scale.range = piecewiseRange(scale);\n else scale.range.reverse();\n scale.scale.range(scale.range);\n }\n autoScaleRound(scale);\n}\n\nfunction autoScaleRound(scale) {\n if (scale.round === undefined && isBandScale(scale) && roundError(scale) <= 30) {\n scale.scale.round(true);\n }\n}\n\n// If we were to turn on rounding for this band or point scale, how much wasted\n// space would it introduce (on both ends of the range)? This must match\n// d3.scaleBand’s rounding behavior:\n// https://github.com/d3/d3-scale/blob/83555bd759c7314420bd4240642beda5e258db9e/src/band.js#L20-L32\nfunction roundError({scale}) {\n const n = scale.domain().length;\n const [start, stop] = scale.range();\n const paddingInner = scale.paddingInner ? scale.paddingInner() : 1;\n const paddingOuter = scale.paddingOuter ? scale.paddingOuter() : scale.padding();\n const m = n - paddingInner;\n const step = Math.abs(stop - start) / Math.max(1, m + paddingOuter * 2);\n return (step - Math.floor(step)) * m;\n}\n\nfunction piecewiseRange(scale) {\n const length = scale.scale.domain().length + isThresholdScale(scale);\n if (!(length > 2)) return scale.range;\n const [start, end] = scale.range;\n return Array.from({length}, (_, i) => start + (i / (length - 1)) * (end - start));\n}\n\nexport function normalizeScale(key, scale, hint) {\n return createScale(key, hint === undefined ? undefined : [{hint}], {...scale});\n}\n\nfunction createScale(key, channels = [], options = {}) {\n const type = inferScaleType(key, channels, options);\n\n // Warn for common misuses of implicit ordinal scales. We disable this test if\n // you specify a scale interval or if you set the domain or range explicitly,\n // since setting the domain or range (typically with a cardinality of more than\n // two) is another indication that you intended for the scale to be ordinal; we\n // also disable it for facet scales since these are always band scales.\n if (\n options.type === undefined &&\n options.domain === undefined &&\n options.range === undefined &&\n options.interval == null &&\n key !== \"fx\" &&\n key !== \"fy\" &&\n isOrdinalScale({type})\n ) {\n const values = channels.map(({value}) => value).filter((value) => value !== undefined);\n if (values.some(isTemporal))\n warn(\n `Warning: some data associated with the ${key} scale are dates. Dates are typically associated with a \"utc\" or \"time\" scale rather than a \"${formatScaleType(\n type\n )}\" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., d3.utcDay), or you can suppress this warning by setting the type of the ${key} scale to \"${formatScaleType(\n type\n )}\".`\n );\n else if (values.some(isTemporalString))\n warn(\n `Warning: some data associated with the ${key} scale are strings that appear to be dates (e.g., YYYY-MM-DD). If these strings represent dates, you should parse them to Date objects. Dates are typically associated with a \"utc\" or \"time\" scale rather than a \"${formatScaleType(\n type\n )}\" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can suppress this warning by setting the type of the ${key} scale to \"${formatScaleType(\n type\n )}\".`\n );\n else if (values.some(isNumericString))\n warn(\n `Warning: some data associated with the ${key} scale are strings that appear to be numbers. If these strings represent numbers, you should parse or coerce them to numbers. Numbers are typically associated with a \"linear\" scale rather than a \"${formatScaleType(\n type\n )}\" scale. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., 1 for integers), or you can suppress this warning by setting the type of the ${key} scale to \"${formatScaleType(\n type\n )}\".`\n );\n }\n\n options.type = type; // Mutates input!\n\n // Once the scale type is known, coerce the associated channel values and any\n // explicitly-specified domain to the expected type.\n switch (type) {\n case \"diverging\":\n case \"diverging-sqrt\":\n case \"diverging-pow\":\n case \"diverging-log\":\n case \"diverging-symlog\":\n case \"cyclical\":\n case \"sequential\":\n case \"linear\":\n case \"sqrt\":\n case \"threshold\":\n case \"quantile\":\n case \"pow\":\n case \"log\":\n case \"symlog\":\n options = coerceType(channels, options, coerceNumbers);\n break;\n case \"identity\":\n switch (registry.get(key)) {\n case position:\n options = coerceType(channels, options, coerceNumbers);\n break;\n case symbol:\n options = coerceType(channels, options, coerceSymbols);\n break;\n }\n break;\n case \"utc\":\n case \"time\":\n options = coerceType(channels, options, coerceDates);\n break;\n }\n\n switch (type) {\n case \"diverging\":\n return createScaleDiverging(key, channels, options);\n case \"diverging-sqrt\":\n return createScaleDivergingSqrt(key, channels, options);\n case \"diverging-pow\":\n return createScaleDivergingPow(key, channels, options);\n case \"diverging-log\":\n return createScaleDivergingLog(key, channels, options);\n case \"diverging-symlog\":\n return createScaleDivergingSymlog(key, channels, options);\n case \"categorical\":\n case \"ordinal\":\n case ordinalImplicit:\n return createScaleOrdinal(key, channels, options);\n case \"cyclical\":\n case \"sequential\":\n case \"linear\":\n return createScaleLinear(key, channels, options);\n case \"sqrt\":\n return createScaleSqrt(key, channels, options);\n case \"threshold\":\n return createScaleThreshold(key, channels, options);\n case \"quantile\":\n return createScaleQuantile(key, channels, options);\n case \"quantize\":\n return createScaleQuantize(key, channels, options);\n case \"pow\":\n return createScalePow(key, channels, options);\n case \"log\":\n return createScaleLog(key, channels, options);\n case \"symlog\":\n return createScaleSymlog(key, channels, options);\n case \"utc\":\n return createScaleUtc(key, channels, options);\n case \"time\":\n return createScaleTime(key, channels, options);\n case \"point\":\n return createScalePoint(key, channels, options);\n case \"band\":\n return createScaleBand(key, channels, options);\n case \"identity\":\n return registry.get(key) === position ? createScaleIdentity() : {type: \"identity\"};\n case undefined:\n return;\n default:\n throw new Error(`unknown scale type: ${type}`);\n }\n}\n\nfunction formatScaleType(type) {\n return typeof type === \"symbol\" ? type.description : type;\n}\n\n// A special type symbol when the x and y scales are replaced with a projection.\nconst typeProjection = {toString: () => \"projection\"};\n\nfunction inferScaleType(key, channels, {type, domain, range, scheme, pivot, projection}) {\n // The facet scales are always band scales; this cannot be changed.\n if (key === \"fx\" || key === \"fy\") return \"band\";\n\n // If a projection is specified, the x- and y-scales are disabled; these\n // channels will be projected rather than scaled. (But still check that none\n // of the associated channels are incompatible with a projection.)\n if ((key === \"x\" || key === \"y\") && projection != null) type = typeProjection;\n\n // If a channel dictates a scale type, make sure that it is consistent with\n // the user-specified scale type (if any) and all other channels. For example,\n // barY requires x to be a band scale and disallows any other scale type.\n for (const {type: t} of channels) {\n if (t === undefined) continue;\n else if (type === undefined) type = t;\n else if (type !== t) throw new Error(`scale incompatible with channel: ${type} !== ${t}`);\n }\n\n // If the scale, a channel, or user specified a (consistent) type, return it.\n if (type === typeProjection) return;\n if (type !== undefined) return type;\n\n // If there’s no data (and no type) associated with this scale, don’t create a scale.\n if (domain === undefined && !channels.some(({value}) => value !== undefined)) return;\n\n // Some scales have default types.\n const kind = registry.get(key);\n if (kind === radius) return \"sqrt\";\n if (kind === opacity || kind === length) return \"linear\";\n if (kind === symbol) return \"ordinal\";\n\n // If the domain or range has more than two values, assume it’s ordinal. You\n // can still use a “piecewise†(or “polylinearâ€) scale, but you must set the\n // type explicitly.\n if ((domain || range || []).length > 2) return asOrdinalType(kind);\n\n // Otherwise, infer the scale type from the data! Prefer the domain, if\n // present, over channels. (The domain and channels should be consistently\n // typed, and the domain is more explicit and typically much smaller.) We only\n // check the first defined value for expedience and simplicity; we expect\n // that the types are consistent.\n if (domain !== undefined) {\n if (isOrdinal(domain)) return asOrdinalType(kind);\n if (isTemporal(domain)) return \"utc\";\n if (kind === color && (pivot != null || isDivergingScheme(scheme))) return \"diverging\";\n return \"linear\";\n }\n\n // If any channel is ordinal or temporal, it takes priority.\n const values = channels.map(({value}) => value).filter((value) => value !== undefined);\n if (values.some(isOrdinal)) return asOrdinalType(kind);\n if (values.some(isTemporal)) return \"utc\";\n if (kind === color && (pivot != null || isDivergingScheme(scheme))) return \"diverging\";\n return \"linear\";\n}\n\n// Positional scales default to a point scale instead of an ordinal scale.\nfunction asOrdinalType(kind) {\n switch (kind) {\n case position:\n return \"point\";\n case color:\n return ordinalImplicit;\n default:\n return \"ordinal\";\n }\n}\n\nexport function isTemporalScale({type}) {\n return type === \"time\" || type === \"utc\";\n}\n\nexport function isOrdinalScale({type}) {\n return type === \"ordinal\" || type === \"point\" || type === \"band\" || type === ordinalImplicit;\n}\n\nexport function isThresholdScale({type}) {\n return type === \"threshold\";\n}\n\nfunction isBandScale({type}) {\n return type === \"point\" || type === \"band\";\n}\n\nexport function isDivergingScale({type}) {\n return /^diverging($|-)/.test(type);\n}\n\n// Certain marks have special behavior if a scale is collapsed, i.e. if the\n// domain is degenerate and represents only a single value such as [3, 3]; for\n// example, a rect will span the full extent of the chart along a collapsed\n// dimension (whereas a dot will simply be drawn in the center).\nexport function isCollapsed(scale) {\n if (scale === undefined) return true; // treat missing scale as collapsed\n const domain = scale.domain();\n const value = scale(domain[0]);\n for (let i = 1, n = domain.length; i < n; ++i) {\n if (scale(domain[i]) - value) {\n return false;\n }\n }\n return true;\n}\n\n// Mutates channel.value!\nfunction coerceType(channels, {domain, ...options}, coerceValues) {\n for (const c of channels) {\n if (c.value !== undefined) {\n c.value = coerceValues(c.value);\n }\n }\n return {\n domain: domain === undefined ? domain : coerceValues(domain),\n ...options\n };\n}\n\nfunction coerceSymbols(values) {\n return map(values, maybeSymbol);\n}\n\nexport function scale(options = {}) {\n let scale;\n for (const key in options) {\n if (!registry.has(key)) continue; // ignore unknown properties\n if (!isScaleOptions(options[key])) continue; // e.g., ignore {color: \"red\"}\n if (scale !== undefined) throw new Error(\"ambiguous scale definition; multiple scales found\");\n scale = exposeScale(normalizeScale(key, options[key]));\n }\n if (scale === undefined) throw new Error(\"invalid scale definition; no scale found\");\n return scale;\n}\n\nexport function exposeScales(scaleDescriptors) {\n return (key) => {\n if (!registry.has((key = `${key}`))) throw new Error(`unknown scale: ${key}`);\n return key in scaleDescriptors ? exposeScale(scaleDescriptors[key]) : undefined;\n };\n}\n\n// Note: axis- and legend-related properties (such as label, ticks and\n// tickFormat) are not included here as they do not affect the scale’s behavior.\nfunction exposeScale({scale, type, domain, range, interpolate, interval, transform, percent, pivot}) {\n if (type === \"identity\") return {type: \"identity\", apply: (d) => d, invert: (d) => d};\n const unknown = scale.unknown ? scale.unknown() : undefined;\n return {\n type,\n domain: slice(domain), // defensive copy\n ...(range !== undefined && {range: slice(range)}), // defensive copy\n ...(transform !== undefined && {transform}),\n ...(percent && {percent}), // only exposed if truthy\n ...(unknown !== undefined && {unknown}),\n ...(interval !== undefined && {interval}),\n\n // quantitative\n ...(interpolate !== undefined && {interpolate}),\n ...(scale.clamp && {clamp: scale.clamp()}),\n\n // diverging (always asymmetric; we never want to apply the symmetric transform twice)\n ...(pivot !== undefined && {pivot, symmetric: false}),\n\n // log, diverging-log\n ...(scale.base && {base: scale.base()}),\n\n // pow, diverging-pow\n ...(scale.exponent && {exponent: scale.exponent()}),\n\n // symlog, diverging-symlog\n ...(scale.constant && {constant: scale.constant()}),\n\n // band, point\n ...(scale.align && {align: scale.align(), round: scale.round()}),\n ...(scale.padding &&\n (scale.paddingInner\n ? {paddingInner: scale.paddingInner(), paddingOuter: scale.paddingOuter()}\n : {padding: scale.padding()})),\n ...(scale.bandwidth && {bandwidth: scale.bandwidth(), step: scale.step()}),\n\n // utilities\n apply: (t) => scale(t),\n ...(scale.invert && {invert: (t) => scale.invert(t)})\n };\n}\n","// @ts-ignore\nimport { scale } from '@observablehq/plot';\nimport { OptionsType } from './options/Options';\nimport { SCALE_BASE_OPACITY_COLOR } from './constant';\n\nimport type { SubDomain } from './index';\n\ntype ValueType = string | number | undefined;\n\nexport function normalizedScale(scaleOptions: OptionsType['scale']): any {\n try {\n const scaleType = Object.keys(scaleOptions!)[0];\n\n return scale({\n [scaleType]: {\n ...scaleOptions![scaleType as 'color' | 'opacity'],\n clamp: true,\n },\n });\n } catch (error) {\n return null;\n }\n}\n\nfunction scaleStyle(_scale: any, scaleOptions: OptionsType['scale']) {\n const styles: { fill?: Function; 'fill-opacity'?: Function } = {};\n\n if (scaleOptions!.hasOwnProperty('opacity')) {\n styles.fill = () =>\n // eslint-disable-next-line implicit-arrow-linebreak\n scaleOptions!.opacity!.baseColor || SCALE_BASE_OPACITY_COLOR;\n styles['fill-opacity'] = (d: ValueType) => _scale?.apply(d);\n } else {\n styles.fill = (d: ValueType) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n (typeof d === 'string' && d?.startsWith('#') ? d : _scale?.apply(d));\n }\n\n return styles;\n}\n\nexport function applyScaleStyle(\n elem: any,\n _scale: any,\n scaleOptions: OptionsType['scale'],\n keyname?: string,\n) {\n Object.entries(scaleStyle(_scale, scaleOptions)).forEach(([prop, val]) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n elem.style(prop, (d: SubDomain | string) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n val(keyname ? (d as SubDomain)[keyname as keyof SubDomain] : d)));\n}\n","import isFunction from 'lodash-es/isFunction';\nimport { hcl } from 'd3-color';\nimport { normalizedScale, applyScaleStyle } from '../scale';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport type { SubDomain, Timestamp } from '../index';\n\nexport default class Populator {\n calendar: CalHeatmap;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n }\n\n populate(): void {\n const { calendar } = this;\n const { scale, subDomain } = calendar.options.options;\n const colorScale = normalizedScale(scale);\n\n calendar.calendarPainter\n .root!.selectAll('.ch-domain')\n .selectAll('svg')\n .selectAll('g')\n .data((d: Timestamp) => calendar.domainCollection.get(d) || [])\n .call((element: any) => {\n applyScaleStyle(element.select('rect'), colorScale, scale!, 'v');\n })\n .call((element: any) => {\n element\n .select('text')\n .attr('style', (d: SubDomain) => {\n const defaultColor =\n hcl(colorScale?.apply(d.v)).l > 60 ? '#000' : '#fff';\n let color = subDomain.color || (d.v ? defaultColor : null);\n\n if (isFunction(color)) {\n color = color(d.t, d.v, colorScale?.apply(d.v));\n }\n\n if (!color) {\n return null;\n }\n\n return `fill: ${color};`;\n })\n .text((d: SubDomain, i: number, nodes: any[]) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n calendar.dateHelper.format(d.t, subDomain.label, d.v, nodes[i]));\n })\n .call(() => {\n calendar.eventEmitter.emit('fill');\n });\n }\n}\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nexport default mergeWith;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nexport default isEqual;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nexport default baseHas;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import baseHas from './_baseHas.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nexport default has;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseSet from './_baseSet.js';\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nexport default set;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","import castArray from 'lodash-es/castArray';\nimport isFunction from 'lodash-es/isFunction';\nimport isString from 'lodash-es/isString';\nimport type { SubDomainOptions } from './Options';\n\nexport default {\n range: (value: number): number => Math.max(+value, 1),\n 'date.highlight': (args: Date[] | Date): Date[] => castArray(args),\n 'subDomain.label': (\n value: SubDomainOptions['label'],\n ): string | Function | null =>\n // eslint-disable-next-line\n ((isString(value) && value !== '') || isFunction(value) ? value : null),\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","import baseGetTag from './_baseGetTag.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nexport default isString;\n","import mergeWith from 'lodash-es/mergeWith';\nimport isEqual from 'lodash-es/isEqual';\nimport has from 'lodash-es/has';\nimport get from 'lodash-es/get';\nimport set from 'lodash-es/set';\nimport type { Ls } from 'dayjs';\nimport type { DomainType, Timestamp } from '../index';\nimport {\n OPTIONS_DEFAULT_DOMAIN_TYPE,\n OPTIONS_DEFAULT_SUBDOMAIN_TYPE,\n OPTIONS_DEFAULT_SUBDOMAIN_WIDTH,\n OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT,\n OPTIONS_DEFAULT_SUBDOMAIN_GUTTER,\n OPTIONS_DEFAULT_SUBDOMAIN_RADIUS,\n OPTIONS_DEFAULT_THEME,\n OPTIONS_DEFAULT_ANIMATION_DURATION,\n OPTIONS_DEFAULT_ITEM_SELECTOR,\n OPTIONS_DEFAULT_RANGE,\n SCALE_BASE_COLOR_SCHEME,\n SCALE_BASE_COLOR_TYPE,\n SCALE_BASE_COLOR_DOMAIN,\n OPTIONS_DEFAULT_LOCALE,\n} from '../constant';\n\nimport OptionsPreProcessors from './OptionsPreProcessors';\n\ntype SortOrder = 'asc' | 'desc';\nexport type TextAlign = 'start' | 'middle' | 'end';\nexport type Padding = [number, number, number, number];\n\nexport type DomainOptions = {\n type: DomainType;\n gutter: number;\n padding: Padding;\n dynamicDimension: boolean;\n label: LabelOptions;\n sort: SortOrder;\n};\n\ntype LabelOptions = {\n text?:\n | string\n | null\n | ((timestamp: Timestamp, element: SVGElement) => string);\n position: 'top' | 'right' | 'bottom' | 'left';\n textAlign: TextAlign;\n offset: {\n x: number;\n y: number;\n };\n rotate: null | 'left' | 'right';\n width: number;\n height: number;\n};\n\nexport type SubDomainOptions = {\n type: string;\n width: number;\n height: number;\n gutter: number;\n radius: number;\n label:\n | string\n | null\n | ((timestamp: Timestamp, value: number, element: SVGElement) => string);\n color?:\n | string\n | ((\n timestamp: Timestamp,\n value: number | string | null | undefined,\n backgroundColor: string,\n ) => string);\n sort: SortOrder;\n};\n\nexport type DataGroupType = 'sum' | 'count' | 'min' | 'max' | 'average';\n\ntype DateOptions = {\n start: Date;\n min?: Date;\n max?: Date;\n highlight: Date[];\n locale: string | Partial<(typeof Ls)[0]>;\n timezone?: string;\n};\n\nexport type DataRecord = Record<string, string | number>;\nexport type DataOptions = {\n source: string | DataRecord[];\n type: 'json' | 'csv' | 'tsv' | 'txt';\n requestInit: object;\n x: string | ((datum: DataRecord) => number);\n y: string | ((datum: DataRecord) => number);\n groupY:\n | DataGroupType\n | ((values: (string | number | null)[]) => string | number | null);\n defaultValue: null | number | string;\n};\n\ntype ScaleOptions = {\n opacity?: {\n domain: number[];\n type?: string;\n baseColor: string;\n };\n color?: {\n domain: number[];\n scheme?: string;\n range?: string[];\n interpolate?: any;\n type?: string;\n };\n};\n\nexport type OptionsType = {\n itemSelector: string;\n range: number;\n domain: DomainOptions;\n subDomain: SubDomainOptions;\n date: DateOptions;\n data: DataOptions;\n scale?: ScaleOptions;\n animationDuration: number;\n verticalOrientation: boolean;\n theme: 'light' | 'dark';\n};\n\ntype InternalOptionsType = {\n x: {\n domainHorizontalLabelWidth: number;\n domainVerticalLabelHeight: number;\n };\n};\n\nexport default class Options {\n options: OptionsType & InternalOptionsType;\n\n preProcessors: {\n [key: string]: (value: any) => any;\n };\n\n constructor(processors = OptionsPreProcessors) {\n this.preProcessors = processors;\n\n this.options = {\n // selector string of the container to append the graph to\n // Accept any string value accepted by document.querySelector or CSS3\n // or an Element object\n itemSelector: OPTIONS_DEFAULT_ITEM_SELECTOR,\n\n // Number of domain to display on the graph\n range: OPTIONS_DEFAULT_RANGE,\n\n domain: {\n type: OPTIONS_DEFAULT_DOMAIN_TYPE,\n\n // Space between each domain, in pixel\n gutter: 4,\n\n padding: [0, 0, 0, 0],\n\n // Whether to enable dynamic domain size\n // The width/height on a domain depends on the number of\n // subDomains items count\n dynamicDimension: true,\n\n // Whether to show most recent date first\n sort: 'asc',\n\n label: {\n // Formatting of the domain label\n // @default: undefined, will use the formatting\n // according to domain type\n // Accept any string accepted by dayjs.format()\n // or a function\n //\n // Refer to https://day.js.org/docs/en/display/format\n // for list of accepted string tokens used by dayjs.format()\n text: undefined,\n\n // valid: top, right, bottom, left\n position: 'bottom',\n\n // Valid are the direct svg values: start, middle, end\n textAlign: 'middle',\n\n // By default, there is no margin/padding around the label\n offset: {\n x: 0,\n y: 0,\n },\n\n rotate: null,\n\n // Used only on vertical orientation\n width: 100,\n\n // Used only on horizontal orientation\n height: 25,\n },\n },\n\n subDomain: {\n type: OPTIONS_DEFAULT_SUBDOMAIN_TYPE,\n\n // Width of each subDomain cell, in pixel\n width: OPTIONS_DEFAULT_SUBDOMAIN_WIDTH,\n\n // Height of each subDomain cell, in pixel\n height: OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT,\n\n // Space between each subDomain cell, in pixel\n gutter: OPTIONS_DEFAULT_SUBDOMAIN_GUTTER,\n\n // Radius of each subDomain cell, in pixel\n radius: OPTIONS_DEFAULT_SUBDOMAIN_RADIUS,\n\n // Formatting of the text inside each subDomain cell\n // @default: null, no text\n // Accept any string accepted by dayjs.format()\n // or a function\n //\n // Refer to https://day.js.org/docs/en/display/format\n // for list of accepted string tokens used by dayjs.format()\n label: null,\n\n color: undefined,\n\n sort: 'asc',\n },\n\n date: {\n // Start date of the graph\n // @default now\n start: new Date(),\n\n min: undefined,\n\n max: undefined,\n\n // List of dates to highlight\n // Valid values:\n // - []: don't highlight anything\n // - an array of Date objects: highlight the specified dates\n highlight: [],\n\n locale: OPTIONS_DEFAULT_LOCALE,\n\n timezone: undefined,\n },\n\n // Calendar orientation\n // false: display domains side by side\n // true : display domains one under the other\n verticalOrientation: false,\n\n data: {\n // Data source\n // URL, where to fetch the original datas\n source: '',\n\n // Data type\n // Default: json\n type: 'json',\n\n requestInit: {},\n\n // keyname of the time property\n x: '',\n\n // keyname of the value property\n y: '',\n\n // Grouping function of the values\n groupY: 'sum',\n\n defaultValue: null,\n },\n\n scale: undefined,\n\n // Animation duration, in ms\n animationDuration: OPTIONS_DEFAULT_ANIMATION_DURATION,\n\n // Theme mode: dark/light\n theme: OPTIONS_DEFAULT_THEME,\n\n // Internally used options, do not edit not set\n x: {\n domainHorizontalLabelWidth: 0,\n domainVerticalLabelHeight: 0,\n },\n };\n }\n\n /**\n * Set a new value for an option, only if unchanged\n * @param {string} key Name of the option\n * @param {any} value Value of the option\n * @return {boolean} Whether the option have been changed\n */\n set(key: string, value: any): boolean {\n if (!has(this.options, key) || isEqual(get(this.options, key), value)) {\n return false;\n }\n\n set(\n this.options,\n key,\n has(this.preProcessors, key) ?\n get(this.preProcessors, key)(value) :\n value,\n );\n\n return true;\n }\n\n init(opts?: CalHeatmap.DeepPartial<OptionsType>): void {\n this.options = {\n // eslint-disable-next-line arrow-body-style\n ...mergeWith(this.options, opts, (_, srcValue) => {\n return Array.isArray(srcValue) ? srcValue : undefined;\n }),\n };\n\n const { options } = this;\n\n Object.keys(this.preProcessors).forEach((key) => {\n set(options, key, get(this.preProcessors, key)(get(options, key)));\n });\n\n if (typeof options.scale === 'undefined') {\n this.initScale();\n }\n\n options.x.domainVerticalLabelHeight = options.domain.label.height;\n\n // When the label is affecting the height\n if (\n options.domain.label.position === 'top' ||\n options.domain.label.position === 'bottom'\n ) {\n options.x.domainHorizontalLabelWidth = 0;\n } else {\n options.x.domainVerticalLabelHeight = 0;\n options.x.domainHorizontalLabelWidth = options.domain.label.width;\n }\n\n if (\n options.domain.label.text === null ||\n options.domain.label.text === ''\n ) {\n options.x.domainVerticalLabelHeight = 0;\n options.x.domainHorizontalLabelWidth = 0;\n }\n }\n\n initScale() {\n this.options.scale = {\n color: {\n scheme: SCALE_BASE_COLOR_SCHEME,\n type: SCALE_BASE_COLOR_TYPE,\n domain: SCALE_BASE_COLOR_DOMAIN,\n },\n };\n }\n}\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","import {\n json, csv, dsv, text,\n} from 'd3-fetch';\n\nimport type { DataOptions, DataRecord } from './options/Options';\nimport type { Timestamp } from './index';\nimport type CalHeatmap from './CalHeatmap';\n\nexport default class DataFetcher {\n calendar: CalHeatmap;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n }\n\n /**\n * Fetch and interpret data from the datasource\n *\n * @param {string|object} source\n * @param {number} startTimestamp\n * @param {number} endTimestamp\n *\n * @return {Promize} A promise, that will return the final data when resolved\n */\n async getDatas(\n source: DataOptions['source'],\n startTimestamp: Timestamp,\n endTimestamp: Timestamp,\n ): Promise<unknown> {\n if (typeof source === 'string' && source.length > 0) {\n return this.#fetch(source, startTimestamp, endTimestamp);\n }\n\n let d: DataRecord[] = [];\n if (Array.isArray(source)) {\n d = source;\n }\n\n return new Promise((resolve) => {\n resolve(d);\n });\n }\n\n parseURI(\n str: string,\n startTimestamp: Timestamp,\n endTimestamp: Timestamp,\n ): string {\n let newUri = str.replace(/\\{\\{start=(.*)\\}\\}/g, (_, format) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.calendar.dateHelper.date(startTimestamp).format(format));\n newUri = newUri.replace(/\\{\\{end=(.*)\\}\\}/g, (_, format) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.calendar.dateHelper.date(endTimestamp).format(format));\n\n return newUri;\n }\n\n #fetch(\n source: DataOptions['source'],\n startTimestamp: Timestamp,\n endTimestamp: Timestamp,\n ): Promise<unknown> {\n const { type, requestInit } = this.calendar.options.options.data;\n\n const url = this.parseURI(source as string, startTimestamp, endTimestamp);\n\n switch (type) {\n case 'json':\n return json(url, requestInit);\n case 'csv':\n return csv(url, requestInit);\n case 'tsv':\n return dsv('\\t', url, requestInit);\n case 'txt':\n return text(url, requestInit);\n default:\n return new Promise((resolve) => {\n resolve([]);\n });\n }\n }\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineBuiltInAccessor(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",f=\"month\",h=\"quarter\",c=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,f),s=n-i<0,u=e.clone().add(r+(s?-1:1),f);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:f,y:c,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:h}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=function(t){return t instanceof _},S=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=v;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<w(t)},m.$g=function(t,e,n){return O.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!O.u(e)||e,h=O.p(t),l=function(t,e){var i=O.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return O.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(h){case c:return r?l(1,0):l(31,11);case f:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=O.p(t),h=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=h+\"Date\",n[d]=h+\"Date\",n[f]=h+\"Month\",n[c]=h+\"FullYear\",n[u]=h+\"Hours\",n[s]=h+\"Minutes\",n[i]=h+\"Seconds\",n[r]=h+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===f||o===c){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[O.p(t)]()},m.add=function(r,h){var d,l=this;r=Number(r);var $=O.p(h),y=function(t){var e=w(l);return O.w(e.date(e.date()+Math.round(t*r)),l)};if($===f)return this.set(f,this.$M+r);if($===c)return this.set(c,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return O.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=O.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,f=n.months,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},c=function(t){return O.s(s%12||12,t,\"0\")},d=n.meridiem||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r},$={YY:String(this.$y).slice(-2),YYYY:this.$y,M:a+1,MM:O.s(a+1,2,\"0\"),MMM:h(n.monthsShort,a,f,3),MMMM:h(f,a),D:this.$D,DD:O.s(this.$D,2,\"0\"),d:String(this.$W),dd:h(n.weekdaysMin,this.$W,o,2),ddd:h(n.weekdaysShort,this.$W,o,3),dddd:o[this.$W],H:String(s),HH:O.s(s,2,\"0\"),h:c(1),hh:c(2),a:d(s,u,!0),A:d(s,u,!1),m:String(u),mm:O.s(u,2,\"0\"),s:String(this.$s),ss:O.s(this.$s,2,\"0\"),SSS:O.s(this.$ms,3,\"0\"),Z:i};return r.replace(y,(function(t,e){return e||$[t]||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=O.p(d),M=w(r),m=(M.utcOffset()-this.utcOffset())*e,v=this-M,g=O.m(this,M);return g=($={},$[c]=g/12,$[f]=g,$[h]=g/3,$[o]=(v-m)/6048e5,$[a]=(v-m)/864e5,$[u]=v/n,$[s]=v/e,$[i]=v/t,$)[y]||v,l?g:O.a(g)},m.daysInMonth=function(){return this.endOf(f).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=S(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return O.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),T=_.prototype;return w.prototype=T,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",f],[\"$y\",c],[\"$D\",d]].forEach((function(t){T[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),w.extend=function(t,e){return t.$i||(t(e,_,w),t.$i=!0),w},w.locale=S,w.isDayjs=p,w.unix=function(t){return w(1e3*t)},w.en=D[g],w.Ls=D,w.p={},w}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_dayOfYear=t()}(this,(function(){\"use strict\";return function(e,t,n){t.prototype.dayOfYear=function(e){var t=Math.round((n(this).startOf(\"day\")-n(this).startOf(\"year\"))/864e5)+1;return null==e?t:this.add(e-t,\"day\")}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekday=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekday=function(e){var t=this.$locale().weekStart||0,i=this.$W,n=(i<t?i+7:i)-t;return this.$utils().u(e)?n:this.subtract(n,\"day\").add(e,\"day\")}}}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_minMax=n()}(this,(function(){\"use strict\";return function(e,n,t){var i=function(e,n){if(!n||!n.length||!n[0]||1===n.length&&!n[0].length)return null;var t;1===n.length&&n[0].length>0&&(n=n[0]);t=n[0];for(var i=1;i<n.length;i+=1)n[i].isValid()&&!n[i][e](t)||(t=n[i]);return t};t.max=function(){var e=[].slice.call(arguments,0);return i(\"isAfter\",e)},t.min=function(){var e=[].slice.call(arguments,0);return i(\"isBefore\",e)}}}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeeksInYear=n()}(this,(function(){\"use strict\";return function(e,n){n.prototype.isoWeeksInYear=function(){var e=this.isLeapYear(),n=this.endOf(\"y\").day();return 4===n||e&&5===n?53:52}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeek=t()}(this,(function(){\"use strict\";var e=\"day\";return function(t,i,s){var a=function(t){return t.add(4-t.isoWeekday(),e)},d=i.prototype;d.isoWeekYear=function(){return a(this).year()},d.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var i,d,n,o,r=a(this),u=(i=this.isoWeekYear(),d=this.$u,n=(d?s.utc:s)().year(i).startOf(\"year\"),o=4-n.isoWeekday(),n.isoWeekday()>4&&(o+=7),n.add(o,e));return r.diff(u,\"week\")+1},d.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var n=d.startOf;d.startOf=function(e,t){var i=this.$utils(),s=!!i.u(t)||t;return\"isoweek\"===i.p(e)?s?this.date(this.date()-(this.isoWeekday()-1)).startOf(\"day\"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf(\"day\"):n.bind(this)(e,t)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isLeapYear=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.isLeapYear=function(){return this.$y%4==0&&this.$y%100!=0||this.$y%400==0}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){\"use strict\";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||\"YYYY-MM-DDTHH:mm:ssZ\").replace(/\\[([^\\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case\"Q\":return Math.ceil((t.$M+1)/3);case\"Do\":return r.ordinal(t.$D);case\"gggg\":return t.weekYear();case\"GGGG\":return t.isoWeekYear();case\"wo\":return r.ordinal(t.week(),\"W\");case\"w\":case\"ww\":return s.s(t.week(),\"w\"===e?1:2,\"0\");case\"W\":case\"WW\":return s.s(t.isoWeek(),\"W\"===e?1:2,\"0\");case\"k\":case\"kk\":return s.s(String(0===t.$H?24:t.$H),\"k\"===e?1:2,\"0\");case\"X\":return Math.floor(t.$d.getTime()/1e3);case\"x\":return t.$d.getTime();case\"z\":return\"[\"+t.offsetName()+\"]\";case\"zzz\":return\"[\"+t.offsetName(\"long\")+\"]\";default:return e}}));return n.bind(this)(a)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_timezone=e()}(this,(function(){\"use strict\";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||\"short\",o=t+\"|\"+i,r=e[o];return r||(r=new Intl.DateTimeFormat(\"en-US\",{hour12:!1,timeZone:t,year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(r[c]=parseInt(m,10))}var d=r[3],l=24===d?0:d,v=r[0]+\"-\"+r[1]+\"-\"+r[2]+\" \"+l+\":\"+r[4]+\":\"+r[5]+\":000\",h=+e;return(o.utc(v).valueOf()-(h-=h%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n=this.utcOffset(),i=this.toDate(),a=i.toLocaleString(\"en-US\",{timeZone:t}),u=Math.round((i-new Date(a))/1e3/60),f=o(a).$set(\"millisecond\",this.$ms).utcOffset(15*-Math.round(i.getTimezoneOffset()/15)-u,!0);if(e){var s=f.utcOffset();f=f.add(n-s,\"minute\")}return f.$x.$timezone=t,f},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return\"timezonename\"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"));return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if(\"string\"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return[i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t}}}));","!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_localizedFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"};return function(t,o,n){var r=o.prototype,i=r.format;n.en.formats=e,r.format=function(t){void 0===t&&(t=\"YYYY-MM-DDTHH:mm:ssZ\");var o=this.$locale().formats,n=function(t,o){return t.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var i=r&&r.toUpperCase();return n||o[r]||e[r]||o[i].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,o){return t||o.slice(1)}))}))}(t,void 0===o?{}:o);return i.call(this,n)}}}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_updateLocale=n()}(this,(function(){\"use strict\";return function(e,n,t){t.updateLocale=function(e,n){var o=t.Ls[e];if(o)return(n?Object.keys(n):[]).forEach((function(e){o[e]=n[e]})),o}}}));","import dayjs from 'dayjs';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport dayOfYear from 'dayjs/plugin/dayOfYear';\nimport weekday from 'dayjs/plugin/weekday';\nimport minMax from 'dayjs/plugin/minMax';\nimport isoWeeksInYear from 'dayjs/plugin/isoWeeksInYear';\nimport isoWeek from 'dayjs/plugin/isoWeek';\nimport isLeapYear from 'dayjs/plugin/isLeapYear';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone';\nimport localeData from 'dayjs/plugin/localeData';\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\nimport updateLocale from 'dayjs/plugin/updateLocale';\n\nimport type { ManipulateType, PluginFunc, Ls } from 'dayjs';\nimport type { OptionsType } from '../options/Options';\nimport type { Timestamp, DomainType } from '../index';\n\ndayjs.extend(weekOfYear);\ndayjs.extend(isoWeeksInYear);\ndayjs.extend(isoWeek);\ndayjs.extend(isLeapYear);\ndayjs.extend(dayOfYear);\ndayjs.extend(weekday);\ndayjs.extend(minMax);\ndayjs.extend(advancedFormat);\ndayjs.extend(utc);\ndayjs.extend(timezone);\ndayjs.extend(localeData);\ndayjs.extend(localizedFormat);\ndayjs.extend(updateLocale);\n\nconst DEFAULT_LOCALE = 'en';\n\nexport default class DateHelper {\n locale: OptionsType['date']['locale'];\n\n timezone: string;\n\n constructor() {\n this.locale = DEFAULT_LOCALE;\n this.timezone = dayjs.tz.guess();\n if (typeof window === 'object') {\n (window as any).dayjs ||= dayjs;\n }\n }\n\n async setup({ options }: { options: OptionsType }) {\n this.timezone = options.date.timezone || dayjs.tz.guess();\n const userLocale = options.date.locale;\n\n if (typeof userLocale === 'string' && userLocale !== DEFAULT_LOCALE) {\n let locale;\n if (typeof window === 'object') {\n locale =\n (window as any)[`dayjs_locale_${userLocale}`] ||\n (await this.loadBrowserLocale(userLocale));\n } else {\n locale = await this.loadNodeLocale(userLocale);\n }\n dayjs.locale(userLocale);\n this.locale = locale;\n }\n\n if (typeof userLocale === 'object') {\n if (userLocale.hasOwnProperty('name')) {\n dayjs.locale(userLocale.name, userLocale);\n this.locale = userLocale;\n } else {\n this.locale = dayjs.updateLocale(DEFAULT_LOCALE, userLocale);\n }\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n extend(dayjsPlugin: PluginFunc): dayjs.Dayjs {\n return dayjs.extend(dayjsPlugin);\n }\n\n /**\n * Return the week number, relative to its month\n *\n * @param {number|Date} d Date or timestamp in milliseconds\n * @returns {number} The week number, relative to the month [0-5]\n */\n getMonthWeekNumber(d: Timestamp | dayjs.Dayjs): number {\n const dayjsDate = this.date(d);\n const date = dayjsDate.startOf('day');\n const endOfWeek = dayjsDate.startOf('month').endOf('week');\n\n if (date <= endOfWeek) {\n return 1;\n }\n return Math.ceil(date.diff(endOfWeek, 'weeks', true)) + 1;\n }\n\n /**\n * Return the number of weeks in the given month\n *\n * As there is no fixed standard to specify which month a partial week should\n * belongs to, the ISO week date standard is used, where:\n * - the first week of the month should have at least 4 days\n *\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Timestamp | dayjs.Dayjs} d Datejs object or timestamp\n * @return {number} The number of weeks\n */\n getWeeksCountInMonth(d: Timestamp | dayjs.Dayjs): number {\n const pivotDate = this.date(d);\n\n return (\n this.getLastWeekOfMonth(pivotDate).diff(\n this.getFirstWeekOfMonth(pivotDate),\n 'week',\n ) + 1\n );\n }\n\n /**\n * Return the start of the first week of the month\n *\n * @see getWeeksCountInMonth() about standard warning\n * @return {dayjs.Dayjs} A dayjs object representing the start of the\n * first week\n */\n getFirstWeekOfMonth(d: Timestamp | dayjs.Dayjs): dayjs.Dayjs {\n const startOfMonth = this.date(d).startOf('month');\n let startOfFirstWeek = startOfMonth.startOf('week');\n if (startOfMonth.weekday() > 4) {\n startOfFirstWeek = startOfFirstWeek.add(1, 'week');\n }\n\n return startOfFirstWeek;\n }\n\n /**\n * Return the end of the last week of the month\n *\n * @see getWeeksCountInMonth() about standard warning\n * @return {dayjs.Dayjs} A dayjs object representing the end of the last week\n */\n getLastWeekOfMonth(d: Timestamp | dayjs.Dayjs): dayjs.Dayjs {\n const endOfMonth = this.date(d).endOf('month');\n let endOfLastWeek = endOfMonth.endOf('week');\n if (endOfMonth.weekday() < 4) {\n endOfLastWeek = endOfLastWeek.subtract(1, 'week');\n }\n\n return endOfLastWeek;\n }\n\n date(d: Timestamp | Date | dayjs.Dayjs | string = new Date()): dayjs.Dayjs {\n if (dayjs.isDayjs(d)) {\n return d;\n }\n\n return dayjs(d)\n .tz(this.timezone)\n .utcOffset(0)\n .locale(this.locale as (typeof Ls)[0] | string);\n }\n\n format(\n timestamp: Timestamp,\n formatter: null | string | Function,\n ...args: any\n ): string | null {\n if (typeof formatter === 'function') {\n return formatter(timestamp, ...args);\n }\n\n if (typeof formatter === 'string') {\n return this.date(timestamp).format(formatter);\n }\n\n return null;\n }\n\n /**\n * Return an array of time interval\n *\n * @param {number|Date} date A random date included in the wanted interval\n * @param {number|Date} range Length of the wanted interval, or a stop date.\n * @param {boolean} range Whether the end date should be excluded\n * from the result\n * @returns {Array<number>} Array of unix timestamp, in milliseconds\n */\n intervals(\n interval: DomainType,\n date: Timestamp | Date | dayjs.Dayjs,\n range: number | Date | dayjs.Dayjs,\n excludeEnd: boolean = true,\n ): Timestamp[] {\n let start = this.date(date);\n let end: dayjs.Dayjs;\n if (typeof range === 'number') {\n end = start.add(range, interval as ManipulateType);\n } else if (dayjs.isDayjs(range)) {\n end = range;\n } else {\n end = this.date(range);\n }\n\n start = start.startOf(interval as ManipulateType);\n\n end = end.startOf(interval as ManipulateType);\n let pivot = dayjs.min(start, end);\n end = dayjs.max(start, end);\n const result: Timestamp[] = [];\n\n if (!excludeEnd) {\n end = end.add(1, 'second');\n }\n\n do {\n result.push(+pivot);\n pivot = pivot.add(1, interval as ManipulateType);\n } while (pivot < end);\n\n return result;\n }\n\n // this function will work cross-browser for loading scripts asynchronously\n // eslint-disable-next-line class-methods-use-this\n loadBrowserLocale(userLocale: string): Promise<any> {\n return new Promise((resolve, reject) => {\n const s = document.createElement('script');\n s.type = 'text/javascript';\n s.async = true;\n s.src = `https://cdn.jsdelivr.net/npm/dayjs@1/locale/${userLocale}.js`;\n s.onerror = (err) => {\n reject(err);\n };\n s.onload = () => {\n resolve((window as any)[`dayjs_locale_${userLocale}`]);\n };\n document.head.appendChild(s);\n });\n }\n\n // eslint-disable-next-line class-methods-use-this\n loadNodeLocale(userLocale: string): Promise<any> {\n return import(`dayjs/locale/${userLocale}.js`);\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","import type TemplateCollection from '../TemplateCollection';\nimport type { DomainOptions, SubDomainOptions, DataOptions } from './Options';\nimport type { DomainType } from '../index';\n\nconst ALLOWED_DATA_TYPES = ['json', 'csv', 'tsv', 'txt'];\n\n/**\n * Ensure that critical options are valid\n *\n * @throw {Error} on critical invalid options\n * @return {boolean} Returns true when there is not critical errors\n */\nexport default function validate(\n templateCollection: TemplateCollection,\n {\n domain,\n subDomain,\n data,\n }: {\n domain: Partial<DomainOptions>;\n subDomain: Partial<SubDomainOptions>;\n data: Partial<DataOptions>;\n },\n): boolean {\n const domainType = domain.type as DomainType;\n const subDomainType = subDomain.type as string;\n\n if (!templateCollection.has(domainType)) {\n throw new Error(`'${domainType}' is not a valid domain type'`);\n }\n\n if (!templateCollection.has(subDomainType)) {\n throw new Error(`'${subDomainType}' is not a valid subDomain type'`);\n }\n\n if (data.type && !ALLOWED_DATA_TYPES.includes(data.type)) {\n throw new Error(`The data type '${data.type}' is not valid data type`);\n }\n\n if (\n !(templateCollection.get(subDomainType).allowedDomainType || []).includes(\n domainType,\n )\n ) {\n throw new Error(\n `The subDomain.type '${subDomainType}' can not be used together ` +\n `with the domain type ${domainType}`,\n );\n }\n\n return true;\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","import isEqual from 'lodash-es/isEqual';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport {\n PluginDefinition,\n PluginOptions,\n IPluginContructor,\n IPlugin,\n} from '../index';\n\ntype PluginSetting = {\n options?: PluginOptions;\n dirty: boolean;\n};\n\nfunction createPlugin(\n Creator: IPluginContructor,\n calendar: CalHeatmap,\n): IPlugin {\n return new Creator(calendar);\n}\n\nfunction extractPluginName(\n PluginClass: IPluginContructor,\n options?: PluginOptions,\n): string {\n return `${new PluginClass().name}${options?.key || ''}`;\n}\n\nexport default class PluginManager {\n calendar: CalHeatmap;\n\n settings: Map<IPlugin['name'], PluginSetting>;\n\n plugins: Map<IPlugin['name'], IPlugin>;\n\n pendingPaint: Set<IPlugin>;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n this.settings = new Map();\n this.plugins = new Map();\n this.pendingPaint = new Set();\n }\n\n add(plugins: PluginDefinition[]): void {\n plugins.forEach(([PluginClass, pluginOptions]) => {\n const name = extractPluginName(PluginClass, pluginOptions);\n\n const existingPlugin = this.plugins.get(name);\n\n if (\n existingPlugin &&\n this.settings.get(name) &&\n isEqual(this.settings.get(name)!.options, pluginOptions)\n ) {\n return;\n }\n\n this.settings.set(name, {\n options: pluginOptions,\n dirty: true,\n });\n\n if (!this.plugins.has(name)) {\n this.plugins.set(name, createPlugin(PluginClass, this.calendar));\n }\n\n this.pendingPaint.add(this.plugins.get(name)!);\n });\n }\n\n setupAll(): void {\n this.plugins.forEach((pluginInstance, name) => {\n const settings = this.settings.get(name);\n\n if (typeof settings !== 'undefined') {\n if (settings.dirty) {\n pluginInstance.setup(settings.options);\n settings.dirty = false;\n\n this.settings.set(name, settings);\n }\n }\n });\n }\n\n paintAll(): Promise<unknown>[] {\n return Array.from(this.pendingPaint.values()).map((p) => p.paint());\n }\n\n destroyAll(): Promise<unknown>[] {\n return this.allPlugins().map((p) => p.destroy());\n }\n\n getFromPosition(position: PluginOptions['position']): IPlugin[] {\n return this.allPlugins().filter(\n (plugin) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n plugin.options?.position === position,\n );\n }\n\n getHeightFromPosition(position: PluginOptions['position']): number {\n return this.getFromPosition(position)\n .map((d) => d.options.dimensions!.height)\n .reduce((a, b) => a + b, 0);\n }\n\n getWidthFromPosition(position: PluginOptions['position']): number {\n return this.getFromPosition(position)\n .map((d) => d.options.dimensions!.width)\n .reduce((a, b) => a + b, 0);\n }\n\n allPlugins(): IPlugin[] {\n return Array.from(this.plugins.values());\n }\n}\n","import minuteTemplate from './minute';\nimport hourTemplate from './hour';\nimport dayTemplate from './day';\nimport xDayTemplate from './xDay';\nimport ghDayTemplate from './ghDay';\nimport weekTemplate from './week';\nimport monthTemplate from './month';\nimport yearTemplate from './year';\n\nexport default [\n minuteTemplate,\n hourTemplate,\n dayTemplate,\n xDayTemplate,\n ghDayTemplate,\n weekTemplate,\n monthTemplate,\n yearTemplate,\n];\n","import type { Template, DomainType } from '../index';\n\nconst minuteTemplate: Template = (DateHelper) => {\n const COLUMNS_COUNT = 10;\n const ROWS_COUNT = 6;\n const ALLOWED_DOMAIN_TYPE: DomainType[] = ['day', 'hour'];\n\n return {\n name: 'minute',\n allowedDomainType: ALLOWED_DOMAIN_TYPE,\n rowsCount: () => COLUMNS_COUNT,\n columnsCount: () => ROWS_COUNT,\n mapping: (startTimestamp, endTimestamp) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n DateHelper.intervals(\n 'minute',\n startTimestamp,\n DateHelper.date(endTimestamp),\n ).map((ts, index: number) => ({\n t: ts,\n x: Math.floor(index / COLUMNS_COUNT),\n y: index % COLUMNS_COUNT,\n })),\n extractUnit: (ts) => DateHelper.date(ts).startOf('minute').valueOf(),\n };\n};\n\nexport default minuteTemplate;\n","import type { DomainOptions } from '../options/Options';\nimport type { Template, DomainType } from '../index';\n\nconst hourTemplate: Template = (\n DateHelper,\n { domain }: { domain: DomainOptions },\n) => {\n const TOTAL_ITEMS = 24;\n const ROWS_COUNT = 6;\n const ALLOWED_DOMAIN_TYPE: DomainType[] = ['month', 'week', 'day'];\n\n return {\n name: 'hour',\n allowedDomainType: ALLOWED_DOMAIN_TYPE,\n rowsCount: () => ROWS_COUNT,\n columnsCount: (ts) => {\n switch (domain.type) {\n case 'week':\n return (TOTAL_ITEMS / ROWS_COUNT) * 7;\n case 'month':\n return (\n (TOTAL_ITEMS / ROWS_COUNT) *\n (domain.dynamicDimension ? DateHelper.date(ts).daysInMonth() : 31)\n );\n case 'day':\n default:\n return TOTAL_ITEMS / ROWS_COUNT;\n }\n },\n mapping: (startTimestamp, endTimestamp) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n DateHelper.intervals(\n 'hour',\n startTimestamp,\n DateHelper.date(endTimestamp),\n ).map((ts) => {\n const date = DateHelper.date(ts);\n const hour = date.hour();\n const monthDate = date.date();\n let baseX = Math.floor(hour / ROWS_COUNT);\n const columnOffset = TOTAL_ITEMS / ROWS_COUNT;\n\n if (domain.type === 'month') {\n baseX += (monthDate - 1) * columnOffset;\n }\n if (domain.type === 'week') {\n baseX += +date.format('d') * columnOffset;\n }\n\n return {\n t: ts,\n x: baseX,\n y: Math.floor(hour % ROWS_COUNT),\n };\n }),\n extractUnit: (ts) => DateHelper.date(ts).startOf('hour').valueOf(),\n };\n};\n\nexport default hourTemplate;\n","import type { OptionsType, DomainOptions } from '../options/Options';\nimport type { Template, DomainType } from '../index';\n\nconst dayTemplate: Template = (\n DateHelper,\n {\n domain,\n verticalOrientation,\n }: {\n domain: DomainOptions;\n verticalOrientation: OptionsType['verticalOrientation'];\n },\n) => {\n const ROWS_COUNT = 7;\n const ALLOWED_DOMAIN_TYPE: DomainType[] = ['year', 'month', 'week'];\n\n return {\n name: 'day',\n allowedDomainType: ALLOWED_DOMAIN_TYPE,\n rowsCount: () => (domain.type === 'week' ? 1 : ROWS_COUNT),\n columnsCount: (ts) => {\n switch (domain.type) {\n case 'month':\n return Math.ceil(\n domain.dynamicDimension && !verticalOrientation ?\n DateHelper.getMonthWeekNumber(\n DateHelper.date(ts).endOf('month'),\n ) :\n 6, // In rare case, when the first week contains less than 3 days\n );\n case 'year':\n return Math.ceil(\n domain.dynamicDimension ?\n DateHelper.date(ts).endOf('year').dayOfYear() / ROWS_COUNT :\n 54,\n );\n case 'week':\n default:\n return ROWS_COUNT;\n }\n },\n mapping: (startTimestamp, endTimestamp) => {\n let weekNumber = 0;\n let x = -1;\n\n return DateHelper.intervals(\n 'day',\n startTimestamp,\n DateHelper.date(endTimestamp),\n ).map((ts) => {\n const date = DateHelper.date(ts);\n\n switch (domain.type) {\n case 'month':\n x = DateHelper.getMonthWeekNumber(ts) - 1;\n break;\n case 'year':\n if (weekNumber !== date.week()) {\n weekNumber = date.week();\n x += 1;\n }\n break;\n case 'week':\n x = date.weekday();\n break;\n default:\n }\n\n return {\n t: ts,\n x,\n y: domain.type === 'week' ? 0 : date.weekday(),\n };\n });\n },\n extractUnit: (ts) => DateHelper.date(ts).startOf('day').valueOf(),\n };\n};\n\nexport default dayTemplate;\n","import type { OptionsType, DomainOptions } from '../options/Options';\nimport type { Template, DomainType } from '../index';\n\nconst dayTemplate: Template = (\n DateHelper,\n {\n domain,\n verticalOrientation,\n }: {\n domain: DomainOptions;\n verticalOrientation: OptionsType['verticalOrientation'];\n },\n) => {\n const COLUMNS_COUNT = 7;\n const ALLOWED_DOMAIN_TYPE: DomainType[] = ['year', 'month', 'week'];\n\n return {\n name: 'xDay',\n allowedDomainType: ALLOWED_DOMAIN_TYPE,\n rowsCount: (ts) => {\n switch (domain.type) {\n case 'month':\n return Math.ceil(\n domain.dynamicDimension && !verticalOrientation ?\n DateHelper.getMonthWeekNumber(\n DateHelper.date(ts).endOf('month'),\n ) :\n 6, // In rare case, when the first week contains less than 3 days\n );\n case 'year':\n return Math.ceil(\n domain.dynamicDimension ?\n DateHelper.date(ts).endOf('year').dayOfYear() / COLUMNS_COUNT :\n 54,\n );\n case 'week':\n default:\n return COLUMNS_COUNT;\n }\n },\n columnsCount: () => {\n if (domain.type === 'week') {\n return 1;\n }\n return COLUMNS_COUNT;\n },\n mapping: (startTimestamp, endTimestamp) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n DateHelper.intervals(\n 'day',\n startTimestamp,\n DateHelper.date(endTimestamp),\n ).map((ts) => {\n const date = DateHelper.date(ts);\n const endWeekNumber = date.endOf('year').week();\n let x = 0;\n\n switch (domain.type) {\n case 'month':\n x = DateHelper.getMonthWeekNumber(ts) - 1;\n break;\n case 'year':\n if (endWeekNumber === 1 && date.week() === endWeekNumber) {\n x = date.subtract(1, 'week').week() + 1;\n }\n\n x = date.week() - 1;\n break;\n case 'week':\n x = date.weekday();\n break;\n default:\n }\n\n return {\n t: ts,\n y: x,\n x: domain.type === 'week' ? 0 : date.weekday(),\n };\n }),\n extractUnit: (ts) => DateHelper.date(ts).startOf('day').valueOf(),\n };\n};\n\nexport default dayTemplate;\n","import type { Template, DomainType } from '../index';\n\nconst dayTemplate: Template = (DateHelper) => {\n const ROWS_COUNT = 7;\n const ALLOWED_DOMAIN_TYPE: DomainType[] = ['month'];\n\n return {\n name: 'ghDay',\n allowedDomainType: ALLOWED_DOMAIN_TYPE,\n rowsCount: () => ROWS_COUNT,\n columnsCount: (ts) => DateHelper.getWeeksCountInMonth(ts),\n mapping: (startTimestamp, endTimestamp) => {\n const clampStart = DateHelper.getFirstWeekOfMonth(startTimestamp);\n const clampEnd = DateHelper.getFirstWeekOfMonth(endTimestamp);\n\n let x = -1;\n const pivotDay = clampStart.weekday();\n\n return DateHelper.intervals('day', clampStart, clampEnd).map((ts) => {\n const weekday = DateHelper.date(ts).weekday();\n if (weekday === pivotDay) {\n x += 1;\n }\n\n return {\n t: ts,\n x,\n y: weekday,\n };\n });\n },\n extractUnit: (ts) => DateHelper.date(ts).startOf('day').valueOf(),\n };\n};\n\nexport default dayTemplate;\n","import type { DomainOptions } from '../options/Options';\nimport type { Template, DomainType } from '../index';\n\nconst weekTemplate: Template = (\n DateHelper,\n { domain }: { domain: DomainOptions },\n) => {\n const ALLOWED_DOMAIN_TYPE: DomainType[] = ['year', 'month'];\n\n return {\n name: 'week',\n allowedDomainType: ALLOWED_DOMAIN_TYPE,\n rowsCount: () => 1,\n columnsCount: (ts) => {\n switch (domain.type) {\n case 'year':\n return domain.dynamicDimension ?\n DateHelper.date(ts).endOf('year').isoWeeksInYear() :\n 53;\n case 'month':\n return domain.dynamicDimension ?\n DateHelper.getWeeksCountInMonth(ts) :\n 5;\n default:\n return 1;\n }\n },\n mapping: (startTimestamp, endTimestamp) => {\n const clampStart = DateHelper.getFirstWeekOfMonth(startTimestamp);\n const clampEnd = DateHelper.getFirstWeekOfMonth(endTimestamp);\n\n return DateHelper.intervals('week', clampStart, clampEnd).map(\n (ts, i) => ({\n t: ts,\n x: i,\n y: 0,\n }),\n );\n },\n extractUnit: (ts) => DateHelper.date(ts).startOf('week').valueOf(),\n };\n};\n\nexport default weekTemplate;\n","import type { Template, DomainType } from '../index';\n\nconst monthTemplate: Template = (DateHelper) => {\n const ALLOWED_DOMAIN_TYPE: DomainType[] = ['year'];\n\n return {\n name: 'month',\n allowedDomainType: ALLOWED_DOMAIN_TYPE,\n rowsCount: () => 1,\n columnsCount: () => 12,\n mapping: (startTimestamp, endTimestamp) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n DateHelper.intervals(\n 'month',\n startTimestamp,\n DateHelper.date(endTimestamp),\n ).map((ts) => ({\n t: ts,\n x: DateHelper.date(ts).month(),\n y: 0,\n })),\n extractUnit: (ts) => DateHelper.date(ts).startOf('month').valueOf(),\n };\n};\n\nexport default monthTemplate;\n","import type { Template, DomainType } from '../index';\n\nconst yearTemplate: Template = (DateHelper) => {\n const ALLOWED_DOMAIN_TYPE: DomainType[] = [];\n\n return {\n name: 'year',\n allowedDomainType: ALLOWED_DOMAIN_TYPE,\n rowsCount: () => 1,\n columnsCount: () => 1,\n mapping: (startTimestamp, endTimestamp) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n DateHelper.intervals(\n 'year',\n startTimestamp,\n DateHelper.date(endTimestamp),\n ).map((ts, index) => ({\n t: ts,\n x: index,\n y: 0,\n })),\n extractUnit: (ts) => DateHelper.date(ts).startOf('year').valueOf(),\n };\n};\n\nexport default yearTemplate;\n","import castArray from 'lodash-es/castArray';\n\nimport DefaultTemplates from './templates/index';\nimport type Options from './options/Options';\nimport type { Template, TemplateResult } from './index';\nimport type DateHelper from './helpers/DateHelper';\n\nexport default class TemplateCollection {\n dateHelper: DateHelper;\n\n options: Options;\n\n settings: Map<string, TemplateResult>;\n\n // Whether the default templates has been initiated\n initiated: boolean;\n\n constructor(dateHelper: DateHelper, options: Options) {\n this.settings = new Map();\n this.dateHelper = dateHelper;\n this.options = options;\n this.initiated = false;\n }\n\n get(subDomainType: string): TemplateResult {\n return this.settings.get(subDomainType)!;\n }\n\n has(subDomainType: string): boolean {\n return this.settings.has(subDomainType);\n }\n\n init() {\n if (!this.initiated) {\n this.initiated = true;\n this.add(DefaultTemplates);\n }\n }\n\n add(templates: Template | Template[]) {\n this.init();\n\n const tplWithParent: string[] = [];\n castArray(templates).forEach((f) => {\n const template = f(this.dateHelper, this.options.options);\n this.settings.set(template.name, template);\n\n if (template.hasOwnProperty('parent')) {\n tplWithParent.push(template.name);\n }\n });\n\n tplWithParent.forEach((name) => {\n const parentTemplate = this.settings.get(\n this.settings.get(name)!.parent!,\n );\n\n if (!parentTemplate) {\n return;\n }\n\n this.settings.set(name, {\n ...parentTemplate,\n ...this.settings.get(name),\n });\n });\n }\n}\n","import EventEmmiter from 'eventemitter3';\nimport castArray from 'lodash-es/castArray';\nimport type { PluginFunc } from 'dayjs';\nimport type dayjs from 'dayjs';\n\nimport Navigator from './calendar/Navigator';\nimport CalendarPainter from './calendar/CalendarPainter';\nimport Populator from './calendar/Populator';\nimport Options from './options/Options';\nimport DataFetcher from './DataFetcher';\nimport DomainCollection from './calendar/DomainCollection';\nimport DateHelper from './helpers/DateHelper';\nimport validate from './options/OptionsValidator';\nimport PluginManager from './plugins/PluginManager';\nimport VERSION from './version';\n\nimport './cal-heatmap.scss';\n\nimport TemplateCollection from './TemplateCollection';\n\nimport type { OptionsType } from './options/Options';\nimport type {\n Template,\n Dimensions,\n PluginDefinition,\n Timestamp,\n} from './index';\n\nimport { ScrollDirection } from './constant';\n\nexport default class CalHeatmap {\n static VERSION = VERSION;\n\n options: Options;\n\n calendarPainter: CalendarPainter;\n\n populator: Populator;\n\n navigator: Navigator;\n\n eventEmitter: EventEmmiter;\n\n dataFetcher: DataFetcher;\n\n domainCollection!: DomainCollection;\n\n templateCollection: TemplateCollection;\n\n dateHelper: DateHelper;\n\n pluginManager: PluginManager;\n\n constructor() {\n // Default options\n this.options = new Options();\n\n // Init the helpers with the default options\n this.dateHelper = new DateHelper();\n this.templateCollection = new TemplateCollection(\n this.dateHelper,\n this.options,\n );\n this.dataFetcher = new DataFetcher(this);\n this.navigator = new Navigator(this);\n this.populator = new Populator(this);\n\n this.calendarPainter = new CalendarPainter(this);\n this.eventEmitter = new EventEmmiter();\n this.pluginManager = new PluginManager(this);\n }\n\n createDomainCollection(\n startDate: Timestamp | Date,\n range: number | Date,\n excludeEnd: boolean = true,\n ): DomainCollection {\n return new DomainCollection(\n this.dateHelper,\n this.options.options.domain.type,\n startDate,\n range,\n excludeEnd,\n );\n }\n\n // =========================================================================\n // PUBLIC API\n // =========================================================================\n\n /**\n * Setup and paint the calendar with the given options\n *\n * @param {Object} options The Options object\n * @return A Promise, which will fulfill once all the underlying asynchronous\n * tasks settle, whether resolved or rejected.\n */\n async paint(\n options?: CalHeatmap.DeepPartial<OptionsType>,\n plugins?: PluginDefinition[] | PluginDefinition,\n ): Promise<unknown> {\n this.options.init(options);\n await this.dateHelper.setup(this.options);\n\n this.templateCollection.init();\n\n try {\n validate(this.templateCollection, this.options.options);\n } catch (error) {\n return Promise.reject(error);\n }\n\n if (plugins) {\n this.pluginManager.add(castArray(plugins as any) as PluginDefinition[]);\n }\n\n this.calendarPainter.setup();\n\n // Record all the valid domains\n // Each domain value is a timestamp in milliseconds\n this.domainCollection = new DomainCollection(this.dateHelper);\n this.navigator.loadNewDomains(\n this.createDomainCollection(\n this.options.options.date.start,\n this.options.options.range,\n ),\n );\n\n return Promise.allSettled([this.calendarPainter.paint(), this.fill()]);\n }\n\n /**\n * Add a new subDomainTemplate\n *\n * @since 4.0.0\n * @param {SubDomainTemplate[] | SubDomainTemplate} templates\n * A single, or an array of SubDomainTemplate object\n * @return void\n */\n addTemplates(templates: Template | Template[]): void {\n this.templateCollection.add(templates);\n }\n\n /**\n * Shift the calendar by n domains forward\n *\n * @param {number} n Number of domain intervals to shift forward\n * @return A Promise, which will fulfill once all the underlying asynchronous\n * tasks settle, whether resolved or rejected.\n */\n next(n: number = 1): Promise<unknown> {\n const loadDirection = this.navigator.loadNewDomains(\n this.createDomainCollection(this.domainCollection.max, n + 1).slice(n),\n ScrollDirection.SCROLL_FORWARD,\n );\n\n return Promise.allSettled([\n this.calendarPainter.paint(loadDirection),\n this.fill(),\n ]);\n }\n\n /**\n * Shift the calendar by n domains backward\n *\n * @param {number} n Number of domain intervals to shift backward\n * @return A Promise, which will fulfill once all the underlying asynchronous\n * tasks settle, whether resolved or rejected.\n */\n previous(n: number = 1): Promise<unknown> {\n const loadDirection = this.navigator.loadNewDomains(\n this.createDomainCollection(this.domainCollection.min, -n),\n ScrollDirection.SCROLL_BACKWARD,\n );\n\n return Promise.allSettled([\n this.calendarPainter.paint(loadDirection),\n this.fill(),\n ]);\n }\n\n /**\n * Jump directly to a specific date\n *\n * JumpTo will scroll the calendar until the wanted domain with the specified\n * date is visible. Unless you set reset to true, the wanted domain\n * will not necessarily be the first domain of the calendar.\n *\n * @param {Date} date Jump to the domain containing that date\n * @param {boolean} reset Whether the wanted domain\n * should be the first domain of the calendar\n * @return A Promise, which will fulfill once all the underlying asynchronous\n * tasks settle, whether resolved or rejected.\n */\n jumpTo(date: Date, reset: boolean = false): Promise<unknown> {\n return Promise.allSettled([\n this.calendarPainter.paint(this.navigator.jumpTo(date, reset)),\n this.fill(),\n ]);\n }\n\n /**\n * Fill the calendar with the given data\n *\n * @param {Object|string} dataSource The calendar's datasource,\n * same type as `options.data.source`\n * @return A Promise, which will fulfill once all the underlying asynchronous\n * tasks settle, whether resolved or rejected.\n */\n fill(dataSource = this.options.options.data.source): Promise<unknown> {\n const { options } = this.options;\n const template = this.templateCollection;\n const endDate = this.dateHelper.intervals(\n options.domain.type,\n this.domainCollection.max,\n 2,\n )[1];\n\n const dataPromise = this.dataFetcher.getDatas(\n dataSource,\n this.domainCollection.min,\n endDate,\n );\n\n return new Promise((resolve, reject) => {\n dataPromise.then(\n (data: any) => {\n this.domainCollection.fill(\n data,\n options.data,\n template.get(options.subDomain.type)!.extractUnit,\n );\n this.populator.populate();\n resolve(null);\n },\n (error) => {\n reject(error);\n },\n );\n });\n }\n\n /**\n * Listener for all events\n *\n * @since 4.0.0\n * @param {string} eventName Name of the event to listen to\n * @param {function} Callback function to execute on event trigger\n * @return void\n */\n on(name: string, fn: () => any): void {\n this.eventEmitter.on(name, fn);\n }\n\n dimensions(): Dimensions {\n return this.calendarPainter.dimensions;\n }\n\n /**\n * Destroy the calendar\n *\n * @since 3.3.6\n * @return A Promise, which will fulfill once all the underlying asynchronous\n * tasks settle, whether resolved or rejected.\n */\n destroy(): Promise<unknown> {\n return this.calendarPainter.destroy();\n }\n\n extendDayjs(plugin: PluginFunc): dayjs.Dayjs {\n return this.dateHelper.extend(plugin);\n }\n}\n","const VERSION = '4.2.3';\nexport default VERSION;\n"],"names":["check","it","Math","global","globalThis","window","self","this","Function","require$$0","defineProperty","Object","defineGlobalProperty","key","value","configurable","writable","error","require$$1","SHARED","sharedStore","store","sharedModule","undefined","push","version","mode","copyright","license","source","match","fails","exec","functionBindNative","test","bind","hasOwnProperty","NATIVE_BIND","FunctionPrototype","prototype","call","uncurryThisWithBind","functionUncurryThis","fn","apply","arguments","isNullOrUndefined","$TypeError","TypeError","requireObjectCoercible","$Object","toObject","argument","hasOwnProperty_1","hasOwn","uncurryThis","id","postfix","random","toString","uid","engineUserAgent","navigator","String","userAgent","process","Deno","versions","v8","split","engineV8Version","V8_VERSION","$String","require$$2","symbolConstructorDetection","getOwnPropertySymbols","symbol","Symbol","sham","useSymbolAsUid","iterator","shared","require$$3","NATIVE_SYMBOL","require$$4","USE_SYMBOL_AS_UID","require$$5","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","wellKnownSymbol","name","toStringTagSupport","documentAll","document","all","documentAll_1","IS_HTMLDDA","isCallable","objectDefineProperty","descriptors","get","isObject","EXISTS","createElement","documentCreateElement","ie8DomDefine","a","v8PrototypeDefineBug","anObject","functionCall","getBuiltIn","namespace","method","length","objectIsPrototypeOf","isPrototypeOf","isSymbol","$Symbol","tryToString","aCallable","getMethod","V","P","func","ordinaryToPrimitive","input","pref","val","valueOf","TO_PRIMITIVE","toPrimitive","result","exoticToPrim","toPropertyKey","DESCRIPTORS","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","ENUMERABLE","CONFIGURABLE","WRITABLE","f","O","Attributes","current","enumerable","makeBuiltIn$3","exports","getDescriptor","functionName","PROPER","functionToString","inspectSource","set","has","WeakMap","weakMapBasicDetection","createPropertyDescriptor","bitmap","definePropertyModule","createNonEnumerableProperty","object","keys","sharedKey","hiddenKeys","NATIVE_WEAK_MAP","require$$6","require$$7","OBJECT_ALREADY_INITIALIZED","state","metadata","facade","STATE","internalState","enforce","getterFor","TYPE","type","CONFIGURABLE_FUNCTION_NAME","enforceInternalState","getInternalState","stringSlice","slice","replace","join","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","makeBuiltInModule","options","getter","setter","arity","constructor","defineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","classofRaw","TO_STRING_TAG_SUPPORT","TO_STRING_TAG","CORRECT_ARGUMENTS","classof","tag","tryGet","callee","objectGetOwnPropertyDescriptor","objectPropertyIsEnumerable","$propertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","descriptor","indexedObject","IndexedObject","toIndexedObject","propertyIsEnumerableModule","objectGetOwnPropertyNames","ceil","floor","trunc","x","n","toIntegerOrInfinity","number","max","min","toAbsoluteIndex","index","integer","toLength","lengthOfArrayLike","obj","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","includes","indexOf","objectKeysInternal","names","i","enumBugKeys","internalObjectKeys","concat","getOwnPropertyNames","objectGetOwnPropertySymbols","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","isForced_1","copyConstructorProperties","target","exceptions","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","engineIsNode","uncurryThisAccessor","aPossiblePrototype","objectSetPrototypeOf","setPrototypeOf","CORRECT_SETTER","Array","proto","__proto__","setToStringTag","TAG","defineBuiltInAccessor","SPECIES","setSpecies","CONSTRUCTOR_NAME","Constructor","anInstance","Prototype","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","$location","defer","channel","port","isConstructor","called","aConstructor","functionApply","Reflect","functionUncurryThisClause","functionBindContext","that","html","arraySlice","engineIsIos","require$$8","validateArgumentsLength","passed","required","IS_IOS","require$$10","IS_NODE","require$$11","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","location","run","runner","eventListener","event","globalPostMessageDefer","postMessage","protocol","host","handler","args","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","appendChild","removeChild","setTimeout","task","Queue","head","tail","add","item","entry","next","notify","toggle","node","promise","then","engineIsIosPebble","Pebble","engineIsWebosWebkit","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","Promise","queueMicrotaskDescriptor","microtask","flush","parent","domain","exit","enter","resolve","createTextNode","observe","characterData","microtask_1","perform","promiseNativeConstructor","engineIsDeno","engineIsBrowser","NativePromiseConstructor","IS_BROWSER","IS_DENO","require$$9","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","promiseConstructorDetection","CONSTRUCTOR","REJECTION_EVENT","newPromiseCapability$2","PromiseCapability","C","reject","$$resolve","$$reject","newPromiseCapability","Internal","OwnPromiseCapability","nativeThen","$","require$$12","speciesConstructor","defaultConstructor","S","require$$14","require$$15","hostReportErrors","b","console","require$$17","require$$18","InternalStateModule","require$$19","require$$20","newPromiseCapabilityModule","require$$22","PROMISE","require$$21","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","setInternalState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","ok","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","isUnhandled","emit","unwrap","internalReject","done","internalResolve","wrapper","executor","onFulfilled","onRejected","PromiseWrapper","wrap","iterators","Iterators","ITERATOR","ArrayPrototype","isArrayIteratorMethod","getIteratorMethod","getIterator","usingIterator","iteratorMethod","iteratorClose","kind","innerResult","innerError","Result","stopped","ResultPrototype","iterate","iterable","unboundFunction","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","SAFE_CLOSING","iteratorWithReturn","return","from","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","promiseStaticsIncorrectIteration","capability","$promiseResolve","values","remaining","alreadyCalled","real","catch","race","r","promiseResolve","promiseCapability","objectDefineProperties","objectKeys","defineProperties","Properties","props","activeXDocument","definePropertiesModule","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","style","display","src","contentWindow","open","F","objectCreate","create","UNSCOPABLES","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","addToUnscopables","correctPrototypeGetter","getPrototypeOf","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","objectGetPrototypeOf","BUGGY_SAFARI_ITERATORS","NEW_ITERATOR_PROTOTYPE","iteratorsCore","returnThis","createIteratorConstructor","IteratorConstructor","NAME","ENUMERABLE_NEXT","PROPER_FUNCTION_NAME","require$$13","KEYS","VALUES","ENTRIES","iteratorDefine","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","createIterResultObject","defineIterator","ARRAY_ITERATOR","es_array_iterator","iterated","Arguments","allSettled","status","charAt","charCodeAt","CONVERT_TO_STRING","pos","first","second","position","size","stringMultibyte","codeAt","STRING_ITERATOR","point","domIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","classList","DOMTokenListPrototype","domTokenListPrototype","DOMIterables","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","METHOD_NAME","fill","argumentsLength","end","endPos","isArray","createProperty","propertyKey","arrayMethodHasSpeciesSupport","array","foo","Boolean","nativeSlice","HAS_SPECIES_SUPPORT","$Array","__awaiter","thisArg","_arguments","generator","fulfilled","e","rejected","__classPrivateFieldGet","receiver","start","k","fin","prefix","Events","EE","context","once","addListener","emitter","listener","evt","_events","_eventsCount","clearEvent","EventEmitter","eventNames","events","listeners","handlers","l","ee","listenerCount","a1","a2","a3","a4","a5","len","removeListener","j","on","removeAllListeners","off","prefixed","module","isArray$3","castArray","arraySpeciesConstructor","originalArray","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","boundFunction","arrayIteration","forEach","map","filter","some","every","find","findIndex","filterReject","$map","$assign","assign","objectAssign","A","B","alphabet","chr","T","internalMetadata","objectGetOwnPropertyNamesExternal","arraySliceSimple","$getOwnPropertyNames","windowNames","getWindowNames","arrayBufferNonExtensible","ArrayBuffer","buffer","isExtensible","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","objectIsExtensible","freezing","preventExtensions","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","meta","internalMetadataModule","enable","splice","fastKey","getWeakData","onFreeze","InternalMetadataModule","inheritIfRequired","dummy","Wrapper","NewTarget","NewTargetPrototype","collection","common","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","getConstructor","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setStrong","defineBuiltIns","internalStateGetterFor","uncaughtFrozenStore","frozen","UncaughtFrozenStore","findUncaughtFrozen","delete","ScrollDirection","Position","collectionWeak","define","init","SCALE_BASE_OPACITY_COLOR","SCALE_BASE_COLOR_DOMAIN","Navigator","calendar","_classCallCheck","maxDomainReached","minDomainReached","_createClass","newDomainCollection","_this","direction","SCROLL_NONE","templatesClt","templateCollection","minDate","date","extractUnit","maxDate","domainCollection","_Navigator_instances","_Navigator_isDomainBoundaryReached","clamp","range","SCROLL_FORWARD","merge","domainKey","subDomainEndDate","at","dateHelper","intervals","pop","subDomain","mapping","d","v","defaultValue","_Navigator_setDomainsBoundaryReached","SCROLL_BACKWARD","eventEmitter","reset","_this$calendar","Date","loadNewDomains","createDomainCollection","WeakSet","lowerBound","upperBound","reached","doesNotExceedSafeInteger","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","isConcatSpreadable","spreadable","arg","E","arrayMethodIsStrict","nativeJoin","separator","collectionStrong","last","previous","getEntry","removed","prev","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","mergeSort","comparefn","middle","insertionSort","element","left","right","llength","rlength","lindex","rindex","arraySort","firefox","engineFfVersion","engineIsIeOrEdge","webkit","engineWebkitVersion","deletePropertyOrThrow","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","nativeSort","sort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","STABLE_SORT","code","fromCharCode","itemsLength","items","arrayLength","y","getSortCompare","$forEach","isVertical","horizontalPadding","padding","LEFT","RIGHT","verticalPadding","TOP","BOTTOM","DomainCoordinates","domainPainter","Map","scrollDirection","_this$calendar$option","verticalOrientation","dimensions","width","height","exitingTotal","scrollFactor","reverse","yankedDomains","coor","w","_DomainCoordinates_instances","_DomainCoordinates_getWidth","h","_DomainCoordinates_getHeight","pre_x","pre_y","inner_width","gutter","inner_height","_this$calendar$option2","columnsCount","subDomainWidth","domainHorizontalLabelWidth","_this$calendar$option3","rowsCount","subDomainHeight","domainVerticalLabelHeight","DEFAULT_SELECTOR","DomainPainter","coordinates","root","rootNode","animationDuration","t","transition","duration","update","promises","selectAll","append","attr","enterSelection","updateSelection","exitSelection","remove","classname","helper","hour","format","week","month","year","$includes","$filter","IS_RIGHT","memo","$reduce","reduce","callWithSafeIterationClosing","arrayLike","IS_CONSTRUCTOR","mapfn","whitespaces","ltrim","RegExp","rtrim","stringTrim","trim","$parseInt","parseInt","hex","numberParseInt","radix","DOMAIN_FORMAT","xDay","ghDay","day","minute","DomainCollection","interval","excludeEnd","ts","_DomainCollection_instances","_DomainCollection_refreshKeys","callback","newCollection","limit","createValueCallback","_this2","keyToRemove","_this3","fromBeginning","_ref","subDomainKeyExtractor","_this4","groupY","groupedRecords","groupRecords","records","_DomainCollection_setSubDomainValues","_this5","results","validSubDomainTimestamp","timestamp","extractTimestamp","groupFn","cleanedValues","_toConsumableArray","datum","extractorFn","_this6","groupValues","_DomainCollection_extractValues","DomainLabelPainter","label","text","textAlign","_DomainLabelPainter_instances","_DomainLabelPainter_textVerticalAlign","nodes","selection","_DomainLabelPainter_domainRotate","rotate","_this$calendar$option4","offset","_DomainLabelPainter_getDomainInsideWidth","_this$calendar$option5","_this$calendar$option6","_this$calendar$option7","_DomainLabelPainter_getDomainInsideHeight","_this$calendar$option8","calendarPainter","domainsContainerPainter","_this$calendar$option9","_this$calendar$option10","_this$calendar$option11","labelWidth","domainWidth","domainHeight","s","$trim","forcedStringTrimMethod","SubDomainPainter","containerClassname","subDomainSvgGroup","_SubDomainPainter_instances","_SubDomainPainter_setPositions","radius","subDomainsCollection","abs","insert","_SubDomainPainter_classname","ev","_SubDomainPainter_appendText","_options$domain","highlight","unitFn","_len","otherClasses","_key","elem","_SubDomainPainter_getCoordinates","axis","BASE_SELECTOR","TRANSITION_CLASSNAME","DomainsContainerPainter","subDomainPainter","domainLabelPainter","transitionsQueueCount","_DomainsContainerPainter_instances","_DomainsContainerPainter_startAnimation","paint","_DomainsContainerPainter_recomputeDimensions","_DomainsContainerPainter_endAnimation","_a","topHeight","pluginManager","getHeightFromPosition","leftWidth","getWidthFromPosition","select","parentNode","classed","domainsDimensions","PluginPainter","paintAll","setPluginsPosition","top","getFromPosition","bottom","topOffset","plugin","leftOffset","CalendarPainter","pluginPainter","itemSelector","theme","setup","setupAll","navigationDir","transitions","updatePosition","_CalendarPainter_instances","_CalendarPainter_resize","destroyAll","destroy","insideHeight","_CalendarPainter_getWidth","insideWidth","newWidth","newHeight","freeGlobal$1","freeSelf","root$1","freeGlobal","Symbol$2","objectProto","nativeObjectToString","symToStringTag","toStringTag","nullTag","undefinedTag","baseGetTag","isOwn","unmasked","getRawTag","objectToString","asyncTag","funcTag","genTag","proxyTag","isFunction","nativeKeys","MATCH","isRegExp","notARegexp","correctIsRegexpLogic","regexp","error1","error2","notARegExp","correctIsRegExpLogic","nativeStartsWith","startsWith","CORRECT_IS_REGEXP_LOGIC","searchString","search","TO_ENTRIES","$entries","defined","Number","isNaN","ascendingDefined","ascending","finite","isFinite","NaN","positive","negative","re","parse","fallback","timeIntervals","timeSecond","timeMinute","timeHour","timeDay","timeWeek","timeMonth","timeYear","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","timeSunday","utcIntervals","utcSecond","utcMinute","utcHour","utcDay","utcWeek","utcMonth","utcYear","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcSunday","maybeTimeInterval","Error","maybeUtcInterval","TypedArray","Uint8Array","constant","coerceNumbers","coerceNumber","Float64Array","coerceDates","coerceDate","isoParse","arrayify","isScaleOptions","option","maybeInterval","isInteger","lo","hi","rangei","maybeRangeInterval","isOrdinal","isTemporal","isTemporalString","isNumericString","orderof","descending","color","opacity","registry","sqrt4_3","sqrt","symbols","symbolAsterisk","symbolCircle","symbolCross","symbolDiamond","symbolDiamond2","draw","rx","PI","ry","hy","moveTo","lineTo","closePath","symbolPlus","symbolSquare","symbolSquare2","symbolStar","symbolTimes","symbolTriangle","symbolTriangle2","symbolWye","maybeSymbol","isSymbolObject","warn","message","ordinalSchemes","schemeAccent","schemeCategory10","schemeDark2","schemePaired","schemePastel1","schemePastel2","schemeSet1","schemeSet2","schemeSet3","schemeTableau10","scheme11","schemeBrBG","interpolateBrBG","schemePRGn","interpolatePRGn","schemePiYG","interpolatePiYG","schemePuOr","interpolatePuOr","schemeRdBu","interpolateRdBu","schemeRdGy","interpolateRdGy","schemeRdYlBu","interpolateRdYlBu","schemeRdYlGn","interpolateRdYlGn","schemeSpectral","interpolateSpectral","scheme11r","scheme9","schemeBlues","interpolateBlues","schemeGreens","interpolateGreens","schemeGreys","interpolateGreys","schemeOranges","interpolateOranges","schemePurples","interpolatePurples","schemeReds","interpolateReds","schemei","interpolateTurbo","interpolateViridis","interpolateMagma","interpolateInferno","interpolatePlasma","interpolateCividis","interpolateCubehelixDefault","interpolateWarm","interpolateCool","schemeBuGn","interpolateBuGn","schemeBuPu","interpolateBuPu","schemeGnBu","interpolateGnBu","schemeOrRd","interpolateOrRd","schemePuBu","interpolatePuBu","schemePuBuGn","interpolatePuBuGn","schemePuRd","interpolatePuRd","schemeRdPu","interpolateRdPu","schemeYlGn","interpolateYlGn","schemeYlGnBu","interpolateYlGnBu","schemeYlOrBr","interpolateYlOrBr","schemeYlOrRd","interpolateYlOrRd","schemeicyclical","interpolateRainbow","interpolateSinebow","scheme","interpolate","quantize","ordinalScheme","ordinalRange","quantitativeSchemes","quantitativeScheme","divergingSchemes","Set","isDivergingScheme","flip","unit","interpolators","interpolateNumber","interpolateRgb","interpolateHsl","interpolateHcl","interpolateLab","maybeInterpolator","createScaleQ","scale","channels","nice","zero","inferAutoDomain","unknown","round","inferRadialRange","inferLengthRange","interpolateRound","_","interpolatePiecewise","extent","sign","reverseof","maybeNiceInterval","maybeNice","createScalePow","exponent","scalePow","createScaleThreshold","isOrdered","scaleThreshold","inferDomain","inferZeroDomain","hint","h25","quantile","h50","median","inferLogDomain","inferQuantileDomain","createScaleD","transform","pivot","symmetric","piecewise","mid","mindelta","maxdelta","invert","interpolator","createScaleDivergingPow","scaleDivergingPow","transformSqrt","pow","transformPow","createScaleDivergingSymlog","scaleDivergingSymlog","log1p","expm1","transformSymlog","transformIdentity","transformLog","log","exp","createScaleT","ordinalImplicit","createScaleO","createScaleOrdinal","inferHint","stroke","inferSymbolHint","isNone","symbolsStroke","symbolsFill","inferSymbolRange","maybeBooleanRange","t0","scaleImplicit","scaleOrdinal","maybeRound","InternSet","candidate","normalizeScale","projection","typeProjection","asOrdinalType","inferScaleType","isOrdinalScale","formatScaleType","coerceType","coerceSymbols","scaleDiverging","createScaleDiverging","createScaleDivergingSqrt","base","scaleDivergingLog","createScaleDivergingLog","scaleLinear","createScaleLinear","createScaleSqrt","quantiles","scaleQuantile","createScaleQuantile","thresholds","ticks","createScaleQuantize","scaleLog","createScaleLog","scaleSymlog","createScaleSymlog","scaleUtc","createScaleUtc","scaleTime","createScaleTime","align","scalePoint","createScalePoint","paddingInner","paddingOuter","scaleBand","createScaleBand","scaleIdentity","createScale","description","coerceValues","c","exposeScale","percent","bandwidth","normalizedScale","scaleOptions","scaleType","applyScaleStyle","_scale","keyname","styles","baseColor","scaleStyle","_ref2","_slicedToArray","prop","Populator","_calendar$options$opt","colorScale","defaultColor","hcl","eq","other","assocIndexOf","ListCache","__data__","coreJsData$1","maskSrcKey","coreJsData","funcToString","toSource","reIsHostCtor","funcProto","reIsNative","baseIsNative","getNative","getValue","Map$2","nativeCreate$1","Hash","getMapData","MapCache","nativeCreate","hash","Stack","pairs","LARGE_ARRAY_SIZE","defineProperty$1","baseAssignValue","assignMergeValue","fromRight","baseFor","iteratee","keysFunc","baseFor$1","freeExports","nodeType","freeModule","Buffer","allocUnsafe","Uint8Array$2","cloneTypedArray","typedArray","isDeep","arrayBuffer","byteLength","byteOffset","baseCreate$1","overArg","getPrototype$1","isPrototype","Ctor","isObjectLike","baseIsArguments","isArguments$1","MAX_SAFE_INTEGER","isLength","isArrayLike","isBuffer$1","isBuffer","objectTag","objectCtorString","typedArrayTags","freeProcess","nodeUtil","types","require","binding","nodeIsTypedArray","isTypedArray","isTypedArray$1","safeGet","assignValue","objValue","reIsUint","isIndex","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","baseTimes","baseKeysIn","nativeKeysIn","isProto","keysIn","toPlainObject","customizer","isNew","newValue","copyObject","baseMergeDeep","srcIndex","mergeFunc","stack","srcValue","stacked","isCommon","isTyped","copyArray","copy","cloneBuffer","getPrototype","isPlainObject","baseCreate","initCloneObject","baseMerge","identity","nativeMax","baseSetToString","baseSetToString$1","nativeNow","setToString","count","lastCalled","stamp","shortOut","setToString$1","baseRest","otherArgs","overRest","assigner","mergeWith","sources","guard","isIterateeCall","mergeWith$1","SetCache","arraySome","predicate","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","equalArrays","bitmask","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","mapToArray","setToArray","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","stringTag","symbolTag","arrayBufferTag","dataViewTag","symbolProto","symbolValueOf","nativeGetSymbols","getSymbols","resIndex","arrayFilter","getSymbols$1","nativeKeys$1","baseKeys","getAllKeys","symbolsFunc","arrayPush","baseGetAllKeys","DataView$1","Promise$2","Set$2","WeakMap$1","promiseTag","weakMapTag","dataViewCtorString","DataView","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","getTag$1","argsTag","arrayTag","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","convert","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","equalObjects","baseIsEqual","isEqual","baseHas","reIsDeepProp","reIsPlainProp","FUNC_ERROR_TEXT","memoize","resolver","memoized","cache","Cache","rePropName","reEscapeChar","stringToPath","memoizeCapped","quote","subString","stringToPath$1","INFINITY","symbolToString","baseToString","arrayMap","castPath","isKey","toKey","path","hasFunc","hasPath","baseGet","lastIndex","nested","baseSet","re1","re2","OptionsPreProcessors","isString","Options","processors","preProcessors","dynamicDimension","locale","timezone","requestInit","opts","initScale","$RegExp","UNSUPPORTED_Y","MISSED_STICKY","sticky","BROKEN_CARET","regexpStickyHelpers","regexpUnsupportedDotAll","dotAll","flags","regexpUnsupportedNcg","groups","regexpFlags","hasIndices","ignoreCase","multiline","unicode","unicodeSets","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","group","str","raw","charsAdded","strCopy","regexpExec","RegExpPrototype","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","fixRegExpWellKnownSymbolLogic","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","uncurriedNativeRegExpMethod","nativeMethod","arg2","forceStringMethod","$exec","advanceStringIndex","getSubstitution","matched","captures","namedCaptures","tailPos","m","ch","capture","regExpExec","R","REPLACE","require$$16","stringIndexOf","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_SUPPORTS_NAMED_GROUPS","maybeCallNative","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","res","functionalReplace","fullUnicode","accumulatedResult","nextSourcePosition","replacerArgs","DataFetcher","startTimestamp","endTimestamp","_context","abrupt","_DataFetcher_instances","_DataFetcher_fetch","_callee","newUri","url","parseURI","json","csv","dsv","FUNCTION_NAME_EXISTS","nameRE","dayjs_min","u","o","M","weekdays","months","ordinal","z","utcOffset","clone","p","D","ms","Q","g","$L","utc","$u","$x","$offset","$d","substring","UTC","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","unix","getTime","toDate","$locale","weekStart","$set","daysInMonth","subtract","invalidDate","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","H","HH","hh","mm","ss","SSS","Z","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","extend","$i","isDayjs","en","Ls","yearStart","weeks","dayOfYear","weekday","isoWeeksInYear","isLeapYear","isoWeekday","isoWeekYear","isoWeek","weekYear","offsetName","local","getUTCFullYear","getUTCMonth","getUTCDate","getUTCDay","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","$localOffset","isUTC","timeZoneName","Intl","DateTimeFormat","hour12","timeZone","formatToParts","tz","toLocaleString","$timezone","guess","resolvedOptions","setDefault","formats","toUpperCase","firstDayOfWeek","longDateFormat","localeData","LTS","L","LL","LLL","LLLL","updateLocale","dayjs","weekOfYear","minMax","advancedFormat","localizedFormat","DEFAULT_LOCALE","DateHelper","_typeof","userLocale","loadBrowserLocale","sent","loadNodeLocale","dayjsPlugin","dayjsDate","endOfWeek","pivotDate","getLastWeekOfMonth","getFirstWeekOfMonth","startOfMonth","startOfFirstWeek","endOfMonth","endOfLastWeek","formatter","async","onerror","err","onload","import","ALLOWED_DATA_TYPES","validate","domainType","subDomainType","allowedDomainType","PluginManager","settings","plugins","pendingPaint","Creator","PluginClass","pluginOptions","extractPluginName","dirty","pluginInstance","allPlugins","TOTAL_ITEMS","monthDate","baseX","getMonthWeekNumber","weekNumber","endWeekNumber","getWeeksCountInMonth","clampStart","clampEnd","pivotDay","TemplateCollection","initiated","DefaultTemplates","templates","tplWithParent","template","parentTemplate","CalHeatmap","dataFetcher","populator","EventEmmiter","startDate","loadDirection","jumpTo","dataSource","endDate","dataPromise","getDatas","populate","VERSION"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,161,162,163,164,165,166,167,168,169,170,171,172,173,174,178,179,180,181,182,183,184,185,186,187,188,191,192,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,359,360,362,363,364,365,366,367,368,369,370,371,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,389,391]} \ No newline at end of file diff --git a/static/javascripts/cal-heatmap/cal-heatmap.min.js b/static/javascripts/cal-heatmap/cal-heatmap.min.js new file mode 100644 index 000000000..dee0921c1 --- /dev/null +++ b/static/javascripts/cal-heatmap/cal-heatmap.min.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("d3-selection"),require("d3-color"),require("d3"),require("d3-fetch")):"function"==typeof define&&define.amd?define(["d3-selection","d3-color","d3","d3-fetch"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).CalHeatmap=e(t.d3,t.d3,t.d3,t.d3)}(this,(function(t,e,n,r){"use strict";function i(){i=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,r=Object.defineProperty||function(t,e,n){t[e]=n.value},o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",u=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch(t){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var o=e&&e.prototype instanceof d?e:d,a=Object.create(o.prototype),u=new _(i||[]);return r(a,"_invoke",{value:O(t,n,u)}),a}function f(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var h={};function d(){}function p(){}function v(){}var y={};c(y,a,(function(){return this}));var m=Object.getPrototypeOf,g=m&&m(m(M([])));g&&g!==e&&n.call(g,a)&&(y=g);var b=v.prototype=d.prototype=Object.create(y);function w(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function x(t,e){function i(r,o,a,u){var s=f(t[r],t,o);if("throw"!==s.type){var c=s.arg,l=c.value;return l&&"object"==typeof l&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){i("next",t,a,u)}),(function(t){i("throw",t,a,u)})):e.resolve(l).then((function(t){c.value=t,a(c)}),(function(t){return i("throw",t,a,u)}))}u(s.arg)}var o;r(this,"_invoke",{value:function(t,n){function r(){return new e((function(e,r){i(t,n,e,r)}))}return o=o?o.then(r,r):r()}})}function O(t,e,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return D()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var u=k(a,n);if(u){if(u===h)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var s=f(t,e,n);if("normal"===s.type){if(r=n.done?"completed":"suspendedYield",s.arg===h)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(r="completed",n.method="throw",n.arg=s.arg)}}}function k(t,e){var n=e.method,r=t.iterator[n];if(void 0===r)return e.delegate=null,"throw"===n&&t.iterator.return&&(e.method="return",e.arg=void 0,k(t,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),h;var i=f(r,t.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,h;var o=i.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,h):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,h)}function S(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function j(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function _(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(S,this),this.reset(!0)}function M(t){if(t){var e=t[a];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:D}}function D(){return{value:void 0,done:!0}}return p.prototype=v,r(b,"constructor",{value:v,configurable:!0}),r(v,"constructor",{value:p,configurable:!0}),p.displayName=c(v,s,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===p||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,v):(t.__proto__=v,c(t,s,"GeneratorFunction")),t.prototype=Object.create(b),t},t.awrap=function(t){return{__await:t}},w(x.prototype),c(x.prototype,u,(function(){return this})),t.AsyncIterator=x,t.async=function(e,n,r,i,o){void 0===o&&(o=Promise);var a=new x(l(e,n,r,i),o);return t.isGeneratorFunction(n)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},w(b),c(b,s,"Generator"),c(b,a,(function(){return this})),c(b,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=Object(t),n=[];for(var r in e)n.push(r);return n.reverse(),function t(){for(;n.length;){var r=n.pop();if(r in e)return t.value=r,t.done=!1,t}return t.done=!0,t}},t.values=M,_.prototype={constructor:_,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(j),!t)for(var e in this)"t"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type="throw",a.arg=t,e.next=n,r&&(e.method="next",e.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),s=n.call(o,"finallyLoc");if(u&&s){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(u){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=t,a.arg=e,o?(this.method="next",this.next=o.finallyLoc,h):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),h},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),j(n),h}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;j(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:M(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),h}},t}function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function u(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,d(r.key),r)}}function s(t,e,n){return e&&u(t.prototype,e),n&&u(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function c(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,u=[],s=!0,c=!1;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=o.call(n)).done)&&(u.push(r.value),u.length!==e);s=!0);}catch(t){c=!0,i=t}finally{try{if(!s&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return u}}(t,e)||f(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(t){return function(t){if(Array.isArray(t))return h(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||f(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(t,e){if(t){if("string"==typeof t)return h(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?h(t,e):void 0}}function h(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function d(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}var p="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function v(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var y=function(t){return t&&t.Math==Math&&t},m=y("object"==typeof globalThis&&globalThis)||y("object"==typeof window&&window)||y("object"==typeof self&&self)||y("object"==typeof p&&p)||function(){return this}()||p||Function("return this")(),g={exports:{}},b=m,w=Object.defineProperty,x=function(t,e){try{w(b,t,{value:e,configurable:!0,writable:!0})}catch(n){b[t]=e}return e},O=x,k="__core-js_shared__",S=m[k]||O(k,{}),j=S;(g.exports=function(t,e){return j[t]||(j[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.30.2",mode:"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE",source:"https://github.com/zloirock/core-js"});var _,M,D=g.exports,P=function(t){try{return!!t()}catch(t){return!0}},E=!P((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})),$=E,L=Function.prototype,T=L.call,C=$&&L.bind.bind(T,T),A=$?C:function(t){return function(){return T.apply(t,arguments)}},R=function(t){return null==t},I=R,N=TypeError,W=function(t){if(I(t))throw N("Can't call method on "+t);return t},Y=W,z=Object,F=function(t){return z(Y(t))},H=F,B=A({}.hasOwnProperty),G=Object.hasOwn||function(t,e){return B(H(t),e)},U=A,q=0,V=Math.random(),K=U(1..toString),Z=function(t){return"Symbol("+(void 0===t?"":t)+")_"+K(++q+V,36)},Q="undefined"!=typeof navigator&&String(navigator.userAgent)||"",J=m,X=Q,tt=J.process,et=J.Deno,nt=tt&&tt.versions||et&&et.version,rt=nt&&nt.v8;rt&&(M=(_=rt.split("."))[0]>0&&_[0]<4?1:+(_[0]+_[1])),!M&&X&&(!(_=X.match(/Edge\/(\d+)/))||_[1]>=74)&&(_=X.match(/Chrome\/(\d+)/))&&(M=+_[1]);var it=M,ot=it,at=P,ut=m.String,st=!!Object.getOwnPropertySymbols&&!at((function(){var t=Symbol();return!ut(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&ot&&ot<41})),ct=st&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,lt=D,ft=G,ht=Z,dt=st,pt=ct,vt=m.Symbol,yt=lt("wks"),mt=pt?vt.for||vt:vt&&vt.withoutSetter||ht,gt=function(t){return ft(yt,t)||(yt[t]=dt&&ft(vt,t)?vt[t]:mt("Symbol."+t)),yt[t]},bt={};bt[gt("toStringTag")]="z";var wt="[object z]"===String(bt),xt="object"==typeof document&&document.all,Ot={all:xt,IS_HTMLDDA:void 0===xt&&void 0!==xt},kt=Ot.all,St=Ot.IS_HTMLDDA?function(t){return"function"==typeof t||t===kt}:function(t){return"function"==typeof t},jt={},_t=!P((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),Mt=St,Dt=Ot.all,Pt=Ot.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:Mt(t)||t===Dt}:function(t){return"object"==typeof t?null!==t:Mt(t)},Et=Pt,$t=m.document,Lt=Et($t)&&Et($t.createElement),Tt=function(t){return Lt?$t.createElement(t):{}},Ct=Tt,At=!_t&&!P((function(){return 7!=Object.defineProperty(Ct("div"),"a",{get:function(){return 7}}).a})),Rt=_t&&P((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),It=Pt,Nt=String,Wt=TypeError,Yt=function(t){if(It(t))return t;throw Wt(Nt(t)+" is not an object")},zt=E,Ft=Function.prototype.call,Ht=zt?Ft.bind(Ft):function(){return Ft.apply(Ft,arguments)},Bt=m,Gt=St,Ut=function(t,e){return arguments.length<2?(n=Bt[t],Gt(n)?n:void 0):Bt[t]&&Bt[t][e];var n},qt=A({}.isPrototypeOf),Vt=Ut,Kt=St,Zt=qt,Qt=Object,Jt=ct?function(t){return"symbol"==typeof t}:function(t){var e=Vt("Symbol");return Kt(e)&&Zt(e.prototype,Qt(t))},Xt=String,te=function(t){try{return Xt(t)}catch(t){return"Object"}},ee=St,ne=te,re=TypeError,ie=function(t){if(ee(t))return t;throw re(ne(t)+" is not a function")},oe=ie,ae=R,ue=function(t,e){var n=t[e];return ae(n)?void 0:oe(n)},se=Ht,ce=St,le=Pt,fe=TypeError,he=Ht,de=Pt,pe=Jt,ve=ue,ye=function(t,e){var n,r;if("string"===e&&ce(n=t.toString)&&!le(r=se(n,t)))return r;if(ce(n=t.valueOf)&&!le(r=se(n,t)))return r;if("string"!==e&&ce(n=t.toString)&&!le(r=se(n,t)))return r;throw fe("Can't convert object to primitive value")},me=TypeError,ge=gt("toPrimitive"),be=function(t,e){if(!de(t)||pe(t))return t;var n,r=ve(t,ge);if(r){if(void 0===e&&(e="default"),n=he(r,t,e),!de(n)||pe(n))return n;throw me("Can't convert object to primitive value")}return void 0===e&&(e="number"),ye(t,e)},we=Jt,xe=function(t){var e=be(t,"string");return we(e)?e:e+""},Oe=_t,ke=At,Se=Rt,je=Yt,_e=xe,Me=TypeError,De=Object.defineProperty,Pe=Object.getOwnPropertyDescriptor,Ee="enumerable",$e="configurable",Le="writable";jt.f=Oe?Se?function(t,e,n){if(je(t),e=_e(e),je(n),"function"==typeof t&&"prototype"===e&&"value"in n&&Le in n&&!n[Le]){var r=Pe(t,e);r&&r[Le]&&(t[e]=n.value,n={configurable:$e in n?n[$e]:r[$e],enumerable:Ee in n?n[Ee]:r[Ee],writable:!1})}return De(t,e,n)}:De:function(t,e,n){if(je(t),e=_e(e),je(n),ke)try{return De(t,e,n)}catch(t){}if("get"in n||"set"in n)throw Me("Accessors not supported");return"value"in n&&(t[e]=n.value),t};var Te={exports:{}},Ce=_t,Ae=G,Re=Function.prototype,Ie=Ce&&Object.getOwnPropertyDescriptor,Ne=Ae(Re,"name"),We={EXISTS:Ne,PROPER:Ne&&"something"===function(){}.name,CONFIGURABLE:Ne&&(!Ce||Ce&&Ie(Re,"name").configurable)},Ye=St,ze=S,Fe=A(Function.toString);Ye(ze.inspectSource)||(ze.inspectSource=function(t){return Fe(t)});var He,Be,Ge,Ue=ze.inspectSource,qe=St,Ve=m.WeakMap,Ke=qe(Ve)&&/native code/.test(String(Ve)),Ze=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},Qe=jt,Je=Ze,Xe=_t?function(t,e,n){return Qe.f(t,e,Je(1,n))}:function(t,e,n){return t[e]=n,t},tn=Z,en=D("keys"),nn=function(t){return en[t]||(en[t]=tn(t))},rn={},on=Ke,an=m,un=Pt,sn=Xe,cn=G,ln=S,fn=nn,hn=rn,dn="Object already initialized",pn=an.TypeError,vn=an.WeakMap;if(on||ln.state){var yn=ln.state||(ln.state=new vn);yn.get=yn.get,yn.has=yn.has,yn.set=yn.set,He=function(t,e){if(yn.has(t))throw pn(dn);return e.facade=t,yn.set(t,e),e},Be=function(t){return yn.get(t)||{}},Ge=function(t){return yn.has(t)}}else{var mn=fn("state");hn[mn]=!0,He=function(t,e){if(cn(t,mn))throw pn(dn);return e.facade=t,sn(t,mn,e),e},Be=function(t){return cn(t,mn)?t[mn]:{}},Ge=function(t){return cn(t,mn)}}var gn={set:He,get:Be,has:Ge,enforce:function(t){return Ge(t)?Be(t):He(t,{})},getterFor:function(t){return function(e){var n;if(!un(e)||(n=Be(e)).type!==t)throw pn("Incompatible receiver, "+t+" required");return n}}},bn=A,wn=P,xn=St,On=G,kn=_t,Sn=We.CONFIGURABLE,jn=Ue,_n=gn.enforce,Mn=gn.get,Dn=String,Pn=Object.defineProperty,En=bn("".slice),$n=bn("".replace),Ln=bn([].join),Tn=kn&&!wn((function(){return 8!==Pn((function(){}),"length",{value:8}).length})),Cn=String(String).split("String"),An=Te.exports=function(t,e,n){"Symbol("===En(Dn(e),0,7)&&(e="["+$n(Dn(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!On(t,"name")||Sn&&t.name!==e)&&(kn?Pn(t,"name",{value:e,configurable:!0}):t.name=e),Tn&&n&&On(n,"arity")&&t.length!==n.arity&&Pn(t,"length",{value:n.arity});try{n&&On(n,"constructor")&&n.constructor?kn&&Pn(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=_n(t);return On(r,"source")||(r.source=Ln(Cn,"string"==typeof e?e:"")),t};Function.prototype.toString=An((function(){return xn(this)&&Mn(this).source||jn(this)}),"toString");var Rn=Te.exports,In=St,Nn=jt,Wn=Rn,Yn=x,zn=function(t,e,n,r){r||(r={});var i=r.enumerable,o=void 0!==r.name?r.name:e;if(In(n)&&Wn(n,o,r),r.global)i?t[e]=n:Yn(e,n);else{try{r.unsafe?t[e]&&(i=!0):delete t[e]}catch(t){}i?t[e]=n:Nn.f(t,e,{value:n,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return t},Fn=A,Hn=Fn({}.toString),Bn=Fn("".slice),Gn=function(t){return Bn(Hn(t),8,-1)},Un=wt,qn=St,Vn=Gn,Kn=gt("toStringTag"),Zn=Object,Qn="Arguments"==Vn(function(){return arguments}()),Jn=Un?Vn:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Zn(t),Kn))?n:Qn?Vn(e):"Object"==(r=Vn(e))&&qn(e.callee)?"Arguments":r},Xn=Jn,tr=wt?{}.toString:function(){return"[object "+Xn(this)+"]"};wt||zn(Object.prototype,"toString",tr,{unsafe:!0});var er={},nr={},rr={}.propertyIsEnumerable,ir=Object.getOwnPropertyDescriptor,or=ir&&!rr.call({1:2},1);nr.f=or?function(t){var e=ir(this,t);return!!e&&e.enumerable}:rr;var ar=P,ur=Gn,sr=Object,cr=A("".split),lr=ar((function(){return!sr("z").propertyIsEnumerable(0)}))?function(t){return"String"==ur(t)?cr(t,""):sr(t)}:sr,fr=lr,hr=W,dr=function(t){return fr(hr(t))},pr=_t,vr=Ht,yr=nr,mr=Ze,gr=dr,br=xe,wr=G,xr=At,Or=Object.getOwnPropertyDescriptor;er.f=pr?Or:function(t,e){if(t=gr(t),e=br(e),xr)try{return Or(t,e)}catch(t){}if(wr(t,e))return mr(!vr(yr.f,t,e),t[e])};var kr={},Sr=Math.ceil,jr=Math.floor,_r=Math.trunc||function(t){var e=+t;return(e>0?jr:Sr)(e)},Mr=function(t){var e=+t;return e!=e||0===e?0:_r(e)},Dr=Mr,Pr=Math.max,Er=Math.min,$r=function(t,e){var n=Dr(t);return n<0?Pr(n+e,0):Er(n,e)},Lr=Mr,Tr=Math.min,Cr=function(t){return t>0?Tr(Lr(t),9007199254740991):0},Ar=Cr,Rr=function(t){return Ar(t.length)},Ir=dr,Nr=$r,Wr=Rr,Yr=function(t){return function(e,n,r){var i,o=Ir(e),a=Wr(o),u=Nr(r,a);if(t&&n!=n){for(;a>u;)if((i=o[u++])!=i)return!0}else for(;a>u;u++)if((t||u in o)&&o[u]===n)return t||u||0;return!t&&-1}},zr={includes:Yr(!0),indexOf:Yr(!1)},Fr=G,Hr=dr,Br=zr.indexOf,Gr=rn,Ur=A([].push),qr=function(t,e){var n,r=Hr(t),i=0,o=[];for(n in r)!Fr(Gr,n)&&Fr(r,n)&&Ur(o,n);for(;e.length>i;)Fr(r,n=e[i++])&&(~Br(o,n)||Ur(o,n));return o},Vr=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Kr=qr,Zr=Vr.concat("length","prototype");kr.f=Object.getOwnPropertyNames||function(t){return Kr(t,Zr)};var Qr={};Qr.f=Object.getOwnPropertySymbols;var Jr=Ut,Xr=kr,ti=Qr,ei=Yt,ni=A([].concat),ri=Jr("Reflect","ownKeys")||function(t){var e=Xr.f(ei(t)),n=ti.f;return n?ni(e,n(t)):e},ii=G,oi=ri,ai=er,ui=jt,si=P,ci=St,li=/#|\.prototype\./,fi=function(t,e){var n=di[hi(t)];return n==vi||n!=pi&&(ci(e)?si(e):!!e)},hi=fi.normalize=function(t){return String(t).replace(li,".").toLowerCase()},di=fi.data={},pi=fi.NATIVE="N",vi=fi.POLYFILL="P",yi=fi,mi=m,gi=er.f,bi=Xe,wi=zn,xi=x,Oi=function(t,e,n){for(var r=oi(e),i=ui.f,o=ai.f,a=0;a<r.length;a++){var u=r[a];ii(t,u)||n&&ii(n,u)||i(t,u,o(e,u))}},ki=yi,Si=function(t,e){var n,r,i,o,a,u=t.target,s=t.global,c=t.stat;if(n=s?mi:c?mi[u]||xi(u,{}):(mi[u]||{}).prototype)for(r in e){if(o=e[r],i=t.dontCallGetSet?(a=gi(n,r))&&a.value:n[r],!ki(s?r:u+(c?".":"#")+r,t.forced)&&void 0!==i){if(typeof o==typeof i)continue;Oi(o,i)}(t.sham||i&&i.sham)&&bi(o,"sham",!0),wi(n,r,o,t)}},ji="undefined"!=typeof process&&"process"==Gn(process),_i=A,Mi=ie,Di=St,Pi=String,Ei=TypeError,$i=function(t,e,n){try{return _i(Mi(Object.getOwnPropertyDescriptor(t,e)[n]))}catch(t){}},Li=Yt,Ti=function(t){if("object"==typeof t||Di(t))return t;throw Ei("Can't set "+Pi(t)+" as a prototype")},Ci=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=$i(Object.prototype,"__proto__","set"))(n,[]),e=n instanceof Array}catch(t){}return function(n,r){return Li(n),Ti(r),e?t(n,r):n.__proto__=r,n}}():void 0),Ai=jt.f,Ri=G,Ii=gt("toStringTag"),Ni=function(t,e,n){t&&!n&&(t=t.prototype),t&&!Ri(t,Ii)&&Ai(t,Ii,{configurable:!0,value:e})},Wi=Rn,Yi=jt,zi=function(t,e,n){return n.get&&Wi(n.get,e,{getter:!0}),n.set&&Wi(n.set,e,{setter:!0}),Yi.f(t,e,n)},Fi=Ut,Hi=zi,Bi=_t,Gi=gt("species"),Ui=function(t){var e=Fi(t);Bi&&e&&!e[Gi]&&Hi(e,Gi,{configurable:!0,get:function(){return this}})},qi=qt,Vi=TypeError,Ki=function(t,e){if(qi(e,t))return t;throw Vi("Incorrect invocation")},Zi=A,Qi=P,Ji=St,Xi=Jn,to=Ue,eo=function(){},no=[],ro=Ut("Reflect","construct"),io=/^\s*(?:class|function)\b/,oo=Zi(io.exec),ao=!io.exec(eo),uo=function(t){if(!Ji(t))return!1;try{return ro(eo,no,t),!0}catch(t){return!1}},so=function(t){if(!Ji(t))return!1;switch(Xi(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return ao||!!oo(io,to(t))}catch(t){return!0}};so.sham=!0;var co,lo,fo,ho,po=!ro||Qi((function(){var t;return uo(uo.call)||!uo(Object)||!uo((function(){t=!0}))||t}))?so:uo,vo=po,yo=te,mo=TypeError,go=Yt,bo=function(t){if(vo(t))return t;throw mo(yo(t)+" is not a constructor")},wo=R,xo=gt("species"),Oo=E,ko=Function.prototype,So=ko.apply,jo=ko.call,_o="object"==typeof Reflect&&Reflect.apply||(Oo?jo.bind(So):function(){return jo.apply(So,arguments)}),Mo=Gn,Do=A,Po=function(t){if("Function"===Mo(t))return Do(t)},Eo=ie,$o=E,Lo=Po(Po.bind),To=function(t,e){return Eo(t),void 0===e?t:$o?Lo(t,e):function(){return t.apply(e,arguments)}},Co=Ut("document","documentElement"),Ao=A([].slice),Ro=TypeError,Io=/(?:ipad|iphone|ipod).*applewebkit/i.test(Q),No=m,Wo=_o,Yo=To,zo=St,Fo=G,Ho=P,Bo=Co,Go=Ao,Uo=Tt,qo=function(t,e){if(t<e)throw Ro("Not enough arguments");return t},Vo=Io,Ko=ji,Zo=No.setImmediate,Qo=No.clearImmediate,Jo=No.process,Xo=No.Dispatch,ta=No.Function,ea=No.MessageChannel,na=No.String,ra=0,ia={},oa="onreadystatechange";Ho((function(){co=No.location}));var aa=function(t){if(Fo(ia,t)){var e=ia[t];delete ia[t],e()}},ua=function(t){return function(){aa(t)}},sa=function(t){aa(t.data)},ca=function(t){No.postMessage(na(t),co.protocol+"//"+co.host)};Zo&&Qo||(Zo=function(t){qo(arguments.length,1);var e=zo(t)?t:ta(t),n=Go(arguments,1);return ia[++ra]=function(){Wo(e,void 0,n)},lo(ra),ra},Qo=function(t){delete ia[t]},Ko?lo=function(t){Jo.nextTick(ua(t))}:Xo&&Xo.now?lo=function(t){Xo.now(ua(t))}:ea&&!Vo?(ho=(fo=new ea).port2,fo.port1.onmessage=sa,lo=Yo(ho.postMessage,ho)):No.addEventListener&&zo(No.postMessage)&&!No.importScripts&&co&&"file:"!==co.protocol&&!Ho(ca)?(lo=ca,No.addEventListener("message",sa,!1)):lo=oa in Uo("script")?function(t){Bo.appendChild(Uo("script"))[oa]=function(){Bo.removeChild(this),aa(t)}}:function(t){setTimeout(ua(t),0)});var la={set:Zo,clear:Qo},fa=function(){this.head=null,this.tail=null};fa.prototype={add:function(t){var e={item:t,next:null},n=this.tail;n?n.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}};var ha,da,pa,va,ya,ma=fa,ga=/ipad|iphone|ipod/i.test(Q)&&"undefined"!=typeof Pebble,ba=/web0s(?!.*chrome)/i.test(Q),wa=m,xa=To,Oa=er.f,ka=la.set,Sa=ma,ja=Io,_a=ga,Ma=ba,Da=ji,Pa=wa.MutationObserver||wa.WebKitMutationObserver,Ea=wa.document,$a=wa.process,La=wa.Promise,Ta=Oa(wa,"queueMicrotask"),Ca=Ta&&Ta.value;if(!Ca){var Aa=new Sa,Ra=function(){var t,e;for(Da&&(t=$a.domain)&&t.exit();e=Aa.get();)try{e()}catch(t){throw Aa.head&&ha(),t}t&&t.enter()};ja||Da||Ma||!Pa||!Ea?!_a&&La&&La.resolve?((va=La.resolve(void 0)).constructor=La,ya=xa(va.then,va),ha=function(){ya(Ra)}):Da?ha=function(){$a.nextTick(Ra)}:(ka=xa(ka,wa),ha=function(){ka(Ra)}):(da=!0,pa=Ea.createTextNode(""),new Pa(Ra).observe(pa,{characterData:!0}),ha=function(){pa.data=da=!da}),Ca=function(t){Aa.head||ha(),Aa.add(t)}}var Ia=Ca,Na=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},Wa=m.Promise,Ya="object"==typeof Deno&&Deno&&"object"==typeof Deno.version,za=!Ya&&!ji&&"object"==typeof window&&"object"==typeof document,Fa=m,Ha=Wa,Ba=St,Ga=yi,Ua=Ue,qa=gt,Va=za,Ka=Ya,Za=it;Ha&&Ha.prototype;var Qa=qa("species"),Ja=!1,Xa=Ba(Fa.PromiseRejectionEvent),tu=Ga("Promise",(function(){var t=Ua(Ha),e=t!==String(Ha);if(!e&&66===Za)return!0;if(!Za||Za<51||!/native code/.test(t)){var n=new Ha((function(t){t(1)})),r=function(t){t((function(){}),(function(){}))};if((n.constructor={})[Qa]=r,!(Ja=n.then((function(){}))instanceof r))return!0}return!e&&(Va||Ka)&&!Xa})),eu={CONSTRUCTOR:tu,REJECTION_EVENT:Xa,SUBCLASSING:Ja},nu={},ru=ie,iu=TypeError,ou=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw iu("Bad Promise constructor");e=t,n=r})),this.resolve=ru(e),this.reject=ru(n)};nu.f=function(t){return new ou(t)};var au,uu,su,cu=Si,lu=ji,fu=m,hu=Ht,du=zn,pu=Ci,vu=Ni,yu=Ui,mu=ie,gu=St,bu=Pt,wu=Ki,xu=function(t,e){var n,r=go(t).constructor;return void 0===r||wo(n=go(r)[xo])?e:bo(n)},Ou=la.set,ku=Ia,Su=function(t,e){try{1==arguments.length?console.error(t):console.error(t,e)}catch(t){}},ju=Na,_u=ma,Mu=gn,Du=Wa,Pu=nu,Eu="Promise",$u=eu.CONSTRUCTOR,Lu=eu.REJECTION_EVENT,Tu=eu.SUBCLASSING,Cu=Mu.getterFor(Eu),Au=Mu.set,Ru=Du&&Du.prototype,Iu=Du,Nu=Ru,Wu=fu.TypeError,Yu=fu.document,zu=fu.process,Fu=Pu.f,Hu=Fu,Bu=!!(Yu&&Yu.createEvent&&fu.dispatchEvent),Gu="unhandledrejection",Uu=function(t){var e;return!(!bu(t)||!gu(e=t.then))&&e},qu=function(t,e){var n,r,i,o=e.value,a=1==e.state,u=a?t.ok:t.fail,s=t.resolve,c=t.reject,l=t.domain;try{u?(a||(2===e.rejection&&Ju(e),e.rejection=1),!0===u?n=o:(l&&l.enter(),n=u(o),l&&(l.exit(),i=!0)),n===t.promise?c(Wu("Promise-chain cycle")):(r=Uu(n))?hu(r,n,s,c):s(n)):c(o)}catch(t){l&&!i&&l.exit(),c(t)}},Vu=function(t,e){t.notified||(t.notified=!0,ku((function(){for(var n,r=t.reactions;n=r.get();)qu(n,t);t.notified=!1,e&&!t.rejection&&Zu(t)})))},Ku=function(t,e,n){var r,i;Bu?((r=Yu.createEvent("Event")).promise=e,r.reason=n,r.initEvent(t,!1,!0),fu.dispatchEvent(r)):r={promise:e,reason:n},!Lu&&(i=fu["on"+t])?i(r):t===Gu&&Su("Unhandled promise rejection",n)},Zu=function(t){hu(Ou,fu,(function(){var e,n=t.facade,r=t.value;if(Qu(t)&&(e=ju((function(){lu?zu.emit("unhandledRejection",r,n):Ku(Gu,n,r)})),t.rejection=lu||Qu(t)?2:1,e.error))throw e.value}))},Qu=function(t){return 1!==t.rejection&&!t.parent},Ju=function(t){hu(Ou,fu,(function(){var e=t.facade;lu?zu.emit("rejectionHandled",e):Ku("rejectionhandled",e,t.value)}))},Xu=function(t,e,n){return function(r){t(e,r,n)}},ts=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=2,Vu(t,!0))},es=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw Wu("Promise can't be resolved itself");var r=Uu(e);r?ku((function(){var n={done:!1};try{hu(r,e,Xu(es,n,t),Xu(ts,n,t))}catch(e){ts(n,e,t)}})):(t.value=e,t.state=1,Vu(t,!1))}catch(e){ts({done:!1},e,t)}}};if($u&&(Nu=(Iu=function(t){wu(this,Nu),mu(t),hu(au,this);var e=Cu(this);try{t(Xu(es,e),Xu(ts,e))}catch(t){ts(e,t)}}).prototype,(au=function(t){Au(this,{type:Eu,done:!1,notified:!1,parent:!1,reactions:new _u,rejection:!1,state:0,value:void 0})}).prototype=du(Nu,"then",(function(t,e){var n=Cu(this),r=Fu(xu(this,Iu));return n.parent=!0,r.ok=!gu(t)||t,r.fail=gu(e)&&e,r.domain=lu?zu.domain:void 0,0==n.state?n.reactions.add(r):ku((function(){qu(r,n)})),r.promise})),uu=function(){var t=new au,e=Cu(t);this.promise=t,this.resolve=Xu(es,e),this.reject=Xu(ts,e)},Pu.f=Fu=function(t){return t===Iu||undefined===t?new uu(t):Hu(t)},gu(Du)&&Ru!==Object.prototype)){su=Ru.then,Tu||du(Ru,"then",(function(t,e){var n=this;return new Iu((function(t,e){hu(su,n,t,e)})).then(t,e)}),{unsafe:!0});try{delete Ru.constructor}catch(t){}pu&&pu(Ru,Nu)}cu({global:!0,constructor:!0,wrap:!0,forced:$u},{Promise:Iu}),vu(Iu,Eu,!1),yu(Eu);var ns={},rs=ns,is=gt("iterator"),os=Array.prototype,as=function(t){return void 0!==t&&(rs.Array===t||os[is]===t)},us=Jn,ss=ue,cs=R,ls=ns,fs=gt("iterator"),hs=function(t){if(!cs(t))return ss(t,fs)||ss(t,"@@iterator")||ls[us(t)]},ds=Ht,ps=ie,vs=Yt,ys=te,ms=hs,gs=TypeError,bs=function(t,e){var n=arguments.length<2?ms(t):e;if(ps(n))return vs(ds(n,t));throw gs(ys(t)+" is not iterable")},ws=Ht,xs=Yt,Os=ue,ks=function(t,e,n){var r,i;xs(t);try{if(!(r=Os(t,"return"))){if("throw"===e)throw n;return n}r=ws(r,t)}catch(t){i=!0,r=t}if("throw"===e)throw n;if(i)throw r;return xs(r),n},Ss=To,js=Ht,_s=Yt,Ms=te,Ds=as,Ps=Rr,Es=qt,$s=bs,Ls=hs,Ts=ks,Cs=TypeError,As=function(t,e){this.stopped=t,this.result=e},Rs=As.prototype,Is=function(t,e,n){var r,i,o,a,u,s,c,l=n&&n.that,f=!(!n||!n.AS_ENTRIES),h=!(!n||!n.IS_RECORD),d=!(!n||!n.IS_ITERATOR),p=!(!n||!n.INTERRUPTED),v=Ss(e,l),y=function(t){return r&&Ts(r,"normal",t),new As(!0,t)},m=function(t){return f?(_s(t),p?v(t[0],t[1],y):v(t[0],t[1])):p?v(t,y):v(t)};if(h)r=t.iterator;else if(d)r=t;else{if(!(i=Ls(t)))throw Cs(Ms(t)+" is not iterable");if(Ds(i)){for(o=0,a=Ps(t);a>o;o++)if((u=m(t[o]))&&Es(Rs,u))return u;return new As(!1)}r=$s(t,i)}for(s=h?t.next:r.next;!(c=js(s,r)).done;){try{u=m(c.value)}catch(t){Ts(r,"throw",t)}if("object"==typeof u&&u&&Es(Rs,u))return u}return new As(!1)},Ns=gt("iterator"),Ws=!1;try{var Ys=0,zs={next:function(){return{done:!!Ys++}},return:function(){Ws=!0}};zs[Ns]=function(){return this},Array.from(zs,(function(){throw 2}))}catch(t){}var Fs=function(t,e){if(!e&&!Ws)return!1;var n=!1;try{var r={};r[Ns]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(t){}return n},Hs=Wa,Bs=eu.CONSTRUCTOR||!Fs((function(t){Hs.all(t).then(void 0,(function(){}))})),Gs=Ht,Us=ie,qs=nu,Vs=Na,Ks=Is;Si({target:"Promise",stat:!0,forced:Bs},{all:function(t){var e=this,n=qs.f(e),r=n.resolve,i=n.reject,o=Vs((function(){var n=Us(e.resolve),o=[],a=0,u=1;Ks(t,(function(t){var s=a++,c=!1;u++,Gs(n,e,t).then((function(t){c||(c=!0,o[s]=t,--u||r(o))}),i)})),--u||r(o)}));return o.error&&i(o.value),n.promise}});var Zs=Si,Qs=eu.CONSTRUCTOR,Js=Wa,Xs=Ut,tc=St,ec=zn,nc=Js&&Js.prototype;if(Zs({target:"Promise",proto:!0,forced:Qs,real:!0},{catch:function(t){return this.then(void 0,t)}}),tc(Js)){var rc=Xs("Promise").prototype.catch;nc.catch!==rc&&ec(nc,"catch",rc,{unsafe:!0})}var ic=Ht,oc=ie,ac=nu,uc=Na,sc=Is;Si({target:"Promise",stat:!0,forced:Bs},{race:function(t){var e=this,n=ac.f(e),r=n.reject,i=uc((function(){var i=oc(e.resolve);sc(t,(function(t){ic(i,e,t).then(n.resolve,r)}))}));return i.error&&r(i.value),n.promise}});var cc=Ht,lc=nu;Si({target:"Promise",stat:!0,forced:eu.CONSTRUCTOR},{reject:function(t){var e=lc.f(this);return cc(e.reject,void 0,t),e.promise}});var fc=Yt,hc=Pt,dc=nu,pc=Si,vc=eu.CONSTRUCTOR,yc=function(t,e){if(fc(t),hc(e)&&e.constructor===t)return e;var n=dc.f(t);return(0,n.resolve)(e),n.promise};Ut("Promise"),pc({target:"Promise",stat:!0,forced:vc},{resolve:function(t){return yc(this,t)}});var mc={},gc=qr,bc=Vr,wc=Object.keys||function(t){return gc(t,bc)},xc=_t,Oc=Rt,kc=jt,Sc=Yt,jc=dr,_c=wc;mc.f=xc&&!Oc?Object.defineProperties:function(t,e){Sc(t);for(var n,r=jc(e),i=_c(e),o=i.length,a=0;o>a;)kc.f(t,n=i[a++],r[n]);return t};var Mc,Dc=Yt,Pc=mc,Ec=Vr,$c=rn,Lc=Co,Tc=Tt,Cc="prototype",Ac="script",Rc=nn("IE_PROTO"),Ic=function(){},Nc=function(t){return"<"+Ac+">"+t+"</"+Ac+">"},Wc=function(t){t.write(Nc("")),t.close();var e=t.parentWindow.Object;return t=null,e},Yc=function(){try{Mc=new ActiveXObject("htmlfile")}catch(t){}var t,e,n;Yc="undefined"!=typeof document?document.domain&&Mc?Wc(Mc):(e=Tc("iframe"),n="java"+Ac+":",e.style.display="none",Lc.appendChild(e),e.src=String(n),(t=e.contentWindow.document).open(),t.write(Nc("document.F=Object")),t.close(),t.F):Wc(Mc);for(var r=Ec.length;r--;)delete Yc[Cc][Ec[r]];return Yc()};$c[Rc]=!0;var zc=Object.create||function(t,e){var n;return null!==t?(Ic[Cc]=Dc(t),n=new Ic,Ic[Cc]=null,n[Rc]=t):n=Yc(),void 0===e?n:Pc.f(n,e)},Fc=gt,Hc=zc,Bc=jt.f,Gc=Fc("unscopables"),Uc=Array.prototype;null==Uc[Gc]&&Bc(Uc,Gc,{configurable:!0,value:Hc(null)});var qc,Vc,Kc,Zc=function(t){Uc[Gc][t]=!0},Qc=!P((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})),Jc=G,Xc=St,tl=F,el=Qc,nl=nn("IE_PROTO"),rl=Object,il=rl.prototype,ol=el?rl.getPrototypeOf:function(t){var e=tl(t);if(Jc(e,nl))return e[nl];var n=e.constructor;return Xc(n)&&e instanceof n?n.prototype:e instanceof rl?il:null},al=P,ul=St,sl=Pt,cl=ol,ll=zn,fl=gt("iterator"),hl=!1;[].keys&&("next"in(Kc=[].keys())?(Vc=cl(cl(Kc)))!==Object.prototype&&(qc=Vc):hl=!0);var dl=!sl(qc)||al((function(){var t={};return qc[fl].call(t)!==t}));dl&&(qc={}),ul(qc[fl])||ll(qc,fl,(function(){return this}));var pl={IteratorPrototype:qc,BUGGY_SAFARI_ITERATORS:hl},vl=pl.IteratorPrototype,yl=zc,ml=Ze,gl=Ni,bl=ns,wl=function(){return this},xl=Si,Ol=Ht,kl=St,Sl=function(t,e,n,r){var i=e+" Iterator";return t.prototype=yl(vl,{next:ml(+!r,n)}),gl(t,i,!1),bl[i]=wl,t},jl=ol,_l=Ci,Ml=Ni,Dl=Xe,Pl=zn,El=ns,$l=We.PROPER,Ll=We.CONFIGURABLE,Tl=pl.IteratorPrototype,Cl=pl.BUGGY_SAFARI_ITERATORS,Al=gt("iterator"),Rl="keys",Il="values",Nl="entries",Wl=function(){return this},Yl=function(t,e,n,r,i,o,a){Sl(n,e,r);var u,s,c,l=function(t){if(t===i&&v)return v;if(!Cl&&t in d)return d[t];switch(t){case Rl:case Il:case Nl:return function(){return new n(this,t)}}return function(){return new n(this)}},f=e+" Iterator",h=!1,d=t.prototype,p=d[Al]||d["@@iterator"]||i&&d[i],v=!Cl&&p||l(i),y="Array"==e&&d.entries||p;if(y&&(u=jl(y.call(new t)))!==Object.prototype&&u.next&&(jl(u)!==Tl&&(_l?_l(u,Tl):kl(u[Al])||Pl(u,Al,Wl)),Ml(u,f,!0)),$l&&i==Il&&p&&p.name!==Il&&(Ll?Dl(d,"name",Il):(h=!0,v=function(){return Ol(p,this)})),i)if(s={values:l(Il),keys:o?v:l(Rl),entries:l(Nl)},a)for(c in s)(Cl||h||!(c in d))&&Pl(d,c,s[c]);else xl({target:e,proto:!0,forced:Cl||h},s);return d[Al]!==v&&Pl(d,Al,v,{name:i}),El[e]=v,s},zl=function(t,e){return{value:t,done:e}},Fl=dr,Hl=Zc,Bl=ns,Gl=gn,Ul=jt.f,ql=Yl,Vl=zl,Kl=_t,Zl="Array Iterator",Ql=Gl.set,Jl=Gl.getterFor(Zl),Xl=ql(Array,"Array",(function(t,e){Ql(this,{type:Zl,target:Fl(t),index:0,kind:e})}),(function(){var t=Jl(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,Vl(void 0,!0)):Vl("keys"==n?r:"values"==n?e[r]:[r,e[r]],!1)}),"values"),tf=Bl.Arguments=Bl.Array;if(Hl("keys"),Hl("values"),Hl("entries"),Kl&&"values"!==tf.name)try{Ul(tf,"name",{value:"values"})}catch(t){}var ef=Ht,nf=ie,rf=nu,of=Na,af=Is;Si({target:"Promise",stat:!0,forced:Bs},{allSettled:function(t){var e=this,n=rf.f(e),r=n.resolve,i=n.reject,o=of((function(){var n=nf(e.resolve),i=[],o=0,a=1;af(t,(function(t){var u=o++,s=!1;a++,ef(n,e,t).then((function(t){s||(s=!0,i[u]={status:"fulfilled",value:t},--a||r(i))}),(function(t){s||(s=!0,i[u]={status:"rejected",reason:t},--a||r(i))}))})),--a||r(i)}));return o.error&&i(o.value),n.promise}});var uf=Jn,sf=String,cf=function(t){if("Symbol"===uf(t))throw TypeError("Cannot convert a Symbol value to a string");return sf(t)},lf=A,ff=Mr,hf=cf,df=W,pf=lf("".charAt),vf=lf("".charCodeAt),yf=lf("".slice),mf=function(t){return function(e,n){var r,i,o=hf(df(e)),a=ff(n),u=o.length;return a<0||a>=u?t?"":void 0:(r=vf(o,a))<55296||r>56319||a+1===u||(i=vf(o,a+1))<56320||i>57343?t?pf(o,a):r:t?yf(o,a,a+2):i-56320+(r-55296<<10)+65536}},gf={codeAt:mf(!1),charAt:mf(!0)},bf=gf.charAt,wf=cf,xf=gn,Of=Yl,kf=zl,Sf="String Iterator",jf=xf.set,_f=xf.getterFor(Sf);Of(String,"String",(function(t){jf(this,{type:Sf,string:wf(t),index:0})}),(function(){var t,e=_f(this),n=e.string,r=e.index;return r>=n.length?kf(void 0,!0):(t=bf(n,r),e.index+=t.length,kf(t,!1))}));var Mf={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Df=Tt("span").classList,Pf=Df&&Df.constructor&&Df.constructor.prototype,Ef=Pf===Object.prototype?void 0:Pf,$f=m,Lf=Mf,Tf=Ef,Cf=Xl,Af=Xe,Rf=gt,If=Rf("iterator"),Nf=Rf("toStringTag"),Wf=Cf.values,Yf=function(t,e){if(t){if(t[If]!==Wf)try{Af(t,If,Wf)}catch(e){t[If]=Wf}if(t[Nf]||Af(t,Nf,e),Lf[e])for(var n in Cf)if(t[n]!==Cf[n])try{Af(t,n,Cf[n])}catch(e){t[n]=Cf[n]}}};for(var zf in Lf)Yf($f[zf]&&$f[zf].prototype,zf);Yf(Tf,"DOMTokenList");var Ff=F,Hf=$r,Bf=Rr,Gf=function(t){for(var e=Ff(this),n=Bf(e),r=arguments.length,i=Hf(r>1?arguments[1]:void 0,n),o=r>2?arguments[2]:void 0,a=void 0===o?n:Hf(o,n);a>i;)e[i++]=t;return e},Uf=Zc;Si({target:"Array",proto:!0},{fill:Gf}),Uf("fill");var qf=Gn,Vf=Array.isArray||function(t){return"Array"==qf(t)},Kf=xe,Zf=jt,Qf=Ze,Jf=function(t,e,n){var r=Kf(e);r in t?Zf.f(t,r,Qf(0,n)):t[r]=n},Xf=P,th=it,eh=gt("species"),nh=function(t){return th>=51||!Xf((function(){var e=[];return(e.constructor={})[eh]=function(){return{foo:1}},1!==e[t](Boolean).foo}))},rh=Si,ih=Vf,oh=po,ah=Pt,uh=$r,sh=Rr,ch=dr,lh=Jf,fh=gt,hh=Ao,dh=nh("slice"),ph=fh("species"),vh=Array,yh=Math.max;function mh(t,e,n,r){return new(n||(n=Promise))((function(i,o){function a(t){try{s(r.next(t))}catch(t){o(t)}}function u(t){try{s(r.throw(t))}catch(t){o(t)}}function s(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,u)}s((r=r.apply(t,e||[])).next())}))}function gh(t,e,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(t):r?r.value:e.get(t)}rh({target:"Array",proto:!0,forced:!dh},{slice:function(t,e){var n,r,i,o=ch(this),a=sh(o),u=uh(t,a),s=uh(void 0===e?a:e,a);if(ih(o)&&(n=o.constructor,(oh(n)&&(n===vh||ih(n.prototype))||ah(n)&&null===(n=n[ph]))&&(n=void 0),n===vh||void 0===n))return hh(o,u,s);for(r=new(void 0===n?vh:n)(yh(s-u,0)),i=0;u<s;u++,i++)u in o&&lh(r,i,o[u]);return r.length=i,r}});var bh={exports:{}};!function(t){var e=Object.prototype.hasOwnProperty,n="~";function r(){}function i(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function o(t,e,r,o,a){if("function"!=typeof r)throw new TypeError("The listener must be a function");var u=new i(r,o||t,a),s=n?n+e:e;return t._events[s]?t._events[s].fn?t._events[s]=[t._events[s],u]:t._events[s].push(u):(t._events[s]=u,t._eventsCount++),t}function a(t,e){0==--t._eventsCount?t._events=new r:delete t._events[e]}function u(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),u.prototype.eventNames=function(){var t,r,i=[];if(0===this._eventsCount)return i;for(r in t=this._events)e.call(t,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(t)):i},u.prototype.listeners=function(t){var e=n?n+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,o=r.length,a=new Array(o);i<o;i++)a[i]=r[i].fn;return a},u.prototype.listenerCount=function(t){var e=n?n+t:t,r=this._events[e];return r?r.fn?1:r.length:0},u.prototype.emit=function(t,e,r,i,o,a){var u=n?n+t:t;if(!this._events[u])return!1;var s,c,l=this._events[u],f=arguments.length;if(l.fn){switch(l.once&&this.removeListener(t,l.fn,void 0,!0),f){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,e),!0;case 3:return l.fn.call(l.context,e,r),!0;case 4:return l.fn.call(l.context,e,r,i),!0;case 5:return l.fn.call(l.context,e,r,i,o),!0;case 6:return l.fn.call(l.context,e,r,i,o,a),!0}for(c=1,s=new Array(f-1);c<f;c++)s[c-1]=arguments[c];l.fn.apply(l.context,s)}else{var h,d=l.length;for(c=0;c<d;c++)switch(l[c].once&&this.removeListener(t,l[c].fn,void 0,!0),f){case 1:l[c].fn.call(l[c].context);break;case 2:l[c].fn.call(l[c].context,e);break;case 3:l[c].fn.call(l[c].context,e,r);break;case 4:l[c].fn.call(l[c].context,e,r,i);break;default:if(!s)for(h=1,s=new Array(f-1);h<f;h++)s[h-1]=arguments[h];l[c].fn.apply(l[c].context,s)}}return!0},u.prototype.on=function(t,e,n){return o(this,t,e,n,!1)},u.prototype.once=function(t,e,n){return o(this,t,e,n,!0)},u.prototype.removeListener=function(t,e,r,i){var o=n?n+t:t;if(!this._events[o])return this;if(!e)return a(this,o),this;var u=this._events[o];if(u.fn)u.fn!==e||i&&!u.once||r&&u.context!==r||a(this,o);else{for(var s=0,c=[],l=u.length;s<l;s++)(u[s].fn!==e||i&&!u[s].once||r&&u[s].context!==r)&&c.push(u[s]);c.length?this._events[o]=1===c.length?c[0]:c:a(this,o)}return this},u.prototype.removeAllListeners=function(t){var e;return t?(e=n?n+t:t,this._events[e]&&a(this,e)):(this._events=new r,this._eventsCount=0),this},u.prototype.off=u.prototype.removeListener,u.prototype.addListener=u.prototype.on,u.prefixed=n,u.EventEmitter=u,t.exports=u}(bh);var wh=v(bh.exports),xh=Array.isArray;function Oh(){if(!arguments.length)return[];var t=arguments[0];return xh(t)?t:[t]}var kh=Vf,Sh=po,jh=Pt,_h=gt("species"),Mh=Array,Dh=function(t){var e;return kh(t)&&(e=t.constructor,(Sh(e)&&(e===Mh||kh(e.prototype))||jh(e)&&null===(e=e[_h]))&&(e=void 0)),void 0===e?Mh:e},Ph=function(t,e){return new(Dh(t))(0===e?0:e)},Eh=To,$h=lr,Lh=F,Th=Rr,Ch=Ph,Ah=A([].push),Rh=function(t){var e=1==t,n=2==t,r=3==t,i=4==t,o=6==t,a=7==t,u=5==t||o;return function(s,c,l,f){for(var h,d,p=Lh(s),v=$h(p),y=Eh(c,l),m=Th(v),g=0,b=f||Ch,w=e?b(s,m):n||a?b(s,0):void 0;m>g;g++)if((u||g in v)&&(d=y(h=v[g],g,p),t))if(e)w[g]=d;else if(d)switch(t){case 3:return!0;case 5:return h;case 6:return g;case 2:Ah(w,h)}else switch(t){case 4:return!1;case 7:Ah(w,h)}return o?-1:r||i?i:w}},Ih={forEach:Rh(0),map:Rh(1),filter:Rh(2),some:Rh(3),every:Rh(4),find:Rh(5),findIndex:Rh(6),filterReject:Rh(7)},Nh=Ih.map;Si({target:"Array",proto:!0,forced:!nh("map")},{map:function(t){return Nh(this,t,arguments.length>1?arguments[1]:void 0)}});var Wh=_t,Yh=A,zh=Ht,Fh=P,Hh=wc,Bh=Qr,Gh=nr,Uh=F,qh=lr,Vh=Object.assign,Kh=Object.defineProperty,Zh=Yh([].concat),Qh=!Vh||Fh((function(){if(Wh&&1!==Vh({b:1},Vh(Kh({},"a",{enumerable:!0,get:function(){Kh(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach((function(t){e[t]=t})),7!=Vh({},t)[n]||Hh(Vh({},e)).join("")!=r}))?function(t,e){for(var n=Uh(t),r=arguments.length,i=1,o=Bh.f,a=Gh.f;r>i;)for(var u,s=qh(arguments[i++]),c=o?Zh(Hh(s),o(s)):Hh(s),l=c.length,f=0;l>f;)u=c[f++],Wh&&!zh(a,s,u)||(n[u]=s[u]);return n}:Vh,Jh=Qh;Si({target:"Object",stat:!0,arity:2,forced:Object.assign!==Jh},{assign:Jh});var Xh={exports:{}},td={},ed=$r,nd=Rr,rd=Jf,id=Array,od=Math.max,ad=function(t,e,n){for(var r=nd(t),i=ed(e,r),o=ed(void 0===n?r:n,r),a=id(od(o-i,0)),u=0;i<o;i++,u++)rd(a,u,t[i]);return a.length=u,a},ud=Gn,sd=dr,cd=kr.f,ld=ad,fd="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];td.f=function(t){return fd&&"Window"==ud(t)?function(t){try{return cd(t)}catch(t){return ld(fd)}}(t):cd(sd(t))};var hd=P((function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}})),dd=P,pd=Pt,vd=Gn,yd=hd,md=Object.isExtensible,gd=dd((function(){md(1)}))||yd?function(t){return!!pd(t)&&((!yd||"ArrayBuffer"!=vd(t))&&(!md||md(t)))}:md,bd=!P((function(){return Object.isExtensible(Object.preventExtensions({}))})),wd=Si,xd=A,Od=rn,kd=Pt,Sd=G,jd=jt.f,_d=kr,Md=td,Dd=gd,Pd=bd,Ed=!1,$d=Z("meta"),Ld=0,Td=function(t){jd(t,$d,{value:{objectID:"O"+Ld++,weakData:{}}})},Cd=Xh.exports={enable:function(){Cd.enable=function(){},Ed=!0;var t=_d.f,e=xd([].splice),n={};n[$d]=1,t(n).length&&(_d.f=function(n){for(var r=t(n),i=0,o=r.length;i<o;i++)if(r[i]===$d){e(r,i,1);break}return r},wd({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:Md.f}))},fastKey:function(t,e){if(!kd(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!Sd(t,$d)){if(!Dd(t))return"F";if(!e)return"E";Td(t)}return t[$d].objectID},getWeakData:function(t,e){if(!Sd(t,$d)){if(!Dd(t))return!0;if(!e)return!1;Td(t)}return t[$d].weakData},onFreeze:function(t){return Pd&&Ed&&Dd(t)&&!Sd(t,$d)&&Td(t),t}};Od[$d]=!0;var Ad=Xh.exports,Rd=St,Id=Pt,Nd=Ci,Wd=Si,Yd=m,zd=A,Fd=yi,Hd=zn,Bd=Ad,Gd=Is,Ud=Ki,qd=St,Vd=R,Kd=Pt,Zd=P,Qd=Fs,Jd=Ni,Xd=function(t,e,n){var r,i;return Nd&&Rd(r=e.constructor)&&r!==n&&Id(i=r.prototype)&&i!==n.prototype&&Nd(t,i),t},tp=function(t,e,n){var r=-1!==t.indexOf("Map"),i=-1!==t.indexOf("Weak"),o=r?"set":"add",a=Yd[t],u=a&&a.prototype,s=a,c={},l=function(t){var e=zd(u[t]);Hd(u,t,"add"==t?function(t){return e(this,0===t?0:t),this}:"delete"==t?function(t){return!(i&&!Kd(t))&&e(this,0===t?0:t)}:"get"==t?function(t){return i&&!Kd(t)?void 0:e(this,0===t?0:t)}:"has"==t?function(t){return!(i&&!Kd(t))&&e(this,0===t?0:t)}:function(t,n){return e(this,0===t?0:t,n),this})};if(Fd(t,!qd(a)||!(i||u.forEach&&!Zd((function(){(new a).entries().next()})))))s=n.getConstructor(e,t,r,o),Bd.enable();else if(Fd(t,!0)){var f=new s,h=f[o](i?{}:-0,1)!=f,d=Zd((function(){f.has(1)})),p=Qd((function(t){new a(t)})),v=!i&&Zd((function(){for(var t=new a,e=5;e--;)t[o](e,e);return!t.has(-0)}));p||((s=e((function(t,e){Ud(t,u);var n=Xd(new a,t,s);return Vd(e)||Gd(e,n[o],{that:n,AS_ENTRIES:r}),n}))).prototype=u,u.constructor=s),(d||v)&&(l("delete"),l("has"),r&&l("get")),(v||h)&&l(o),i&&u.clear&&delete u.clear}return c[t]=s,Wd({global:!0,constructor:!0,forced:s!=a},c),Jd(s,t),i||n.setStrong(s,t,r),s},ep=zn,np=function(t,e,n){for(var r in e)ep(t,r,e[r],n);return t},rp=A,ip=np,op=Ad.getWeakData,ap=Ki,up=Yt,sp=R,cp=Pt,lp=Is,fp=G,hp=gn.set,dp=gn.getterFor,pp=Ih.find,vp=Ih.findIndex,yp=rp([].splice),mp=0,gp=function(t){return t.frozen||(t.frozen=new bp)},bp=function(){this.entries=[]},wp=function(t,e){return pp(t.entries,(function(t){return t[0]===e}))};bp.prototype={get:function(t){var e=wp(this,t);if(e)return e[1]},has:function(t){return!!wp(this,t)},set:function(t,e){var n=wp(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=vp(this.entries,(function(e){return e[0]===t}));return~e&&yp(this.entries,e,1),!!~e}};var xp,Op,kp={getConstructor:function(t,e,n,r){var i=t((function(t,i){ap(t,o),hp(t,{type:e,id:mp++,frozen:void 0}),sp(i)||lp(i,t[r],{that:t,AS_ENTRIES:n})})),o=i.prototype,a=dp(e),u=function(t,e,n){var r=a(t),i=op(up(e),!0);return!0===i?gp(r).set(e,n):i[r.id]=n,t};return ip(o,{delete:function(t){var e=a(this);if(!cp(t))return!1;var n=op(t);return!0===n?gp(e).delete(t):n&&fp(n,e.id)&&delete n[e.id]},has:function(t){var e=a(this);if(!cp(t))return!1;var n=op(t);return!0===n?gp(e).has(t):n&&fp(n,e.id)}}),ip(o,n?{get:function(t){var e=a(this);if(cp(t)){var n=op(t);return!0===n?gp(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return u(this,t,e)}}:{add:function(t){return u(this,t,!0)}}),i}};tp("WeakSet",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),kp),function(t){t[t.SCROLL_NONE=0]="SCROLL_NONE",t[t.SCROLL_BACKWARD=1]="SCROLL_BACKWARD",t[t.SCROLL_FORWARD=2]="SCROLL_FORWARD"}(xp||(xp={})),function(t){t[t.TOP=0]="TOP",t[t.RIGHT=1]="RIGHT",t[t.BOTTOM=2]="BOTTOM",t[t.LEFT=3]="LEFT"}(Op||(Op={}));var Sp,jp,_p,Mp="red",Dp=[0,100],Pp=function(){function t(e){a(this,t),Sp.add(this),this.calendar=e,this.maxDomainReached=!1,this.minDomainReached=!1}return s(t,[{key:"loadNewDomains",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:xp.SCROLL_NONE,r=this.calendar.options.options,i=this.calendar.templateCollection,o=r.date.min?i.get(r.domain.type).extractUnit(+r.date.min):void 0,a=r.date.max?i.get(r.domain.type).extractUnit(+r.date.max):void 0,u=this.calendar.domainCollection;return gh(this,Sp,"m",jp).call(this,t,o,a,n)?xp.SCROLL_NONE:(n!==xp.SCROLL_NONE&&t.clamp(o,a).slice(r.range,n===xp.SCROLL_FORWARD),u.merge(t,r.range,(function(n,o){var a=null;return a=t.at(o+1)?t.at(o+1):e.calendar.dateHelper.intervals(r.domain.type,n,2).pop(),i.get(r.subDomain.type).mapping(n,a).map((function(t){return Object.assign(Object.assign({},t),{v:r.data.defaultValue})}))})),gh(this,Sp,"m",_p).call(this,u.min,u.max,o,a),n===xp.SCROLL_BACKWARD?this.calendar.eventEmitter.emit("domainsLoaded",[u.min]):n===xp.SCROLL_FORWARD&&this.calendar.eventEmitter.emit("domainsLoaded",[u.max]),n)}},{key:"jumpTo",value:function(t,e){var n=this.calendar,r=n.domainCollection,i=n.options,o=new Date(r.min),a=new Date(r.max);return t<o?this.loadNewDomains(this.calendar.createDomainCollection(t,o,!1),xp.SCROLL_BACKWARD):e?this.loadNewDomains(this.calendar.createDomainCollection(t,i.options.range),o<t?xp.SCROLL_FORWARD:xp.SCROLL_BACKWARD):t>a?this.loadNewDomains(this.calendar.createDomainCollection(a,t,!1),xp.SCROLL_FORWARD):xp.SCROLL_NONE}}]),t}();Sp=new WeakSet,jp=function(t,e,n,r){return!!(n&&t.max>=n&&this.maxDomainReached&&r===xp.SCROLL_FORWARD)||!!(e&&t.min<=e&&this.minDomainReached&&r===xp.SCROLL_BACKWARD)},_p=function(t,e,n,r){if(n){var i=t<=n;this.calendar.eventEmitter.emit(i?"minDateReached":"minDateNotReached"),this.minDomainReached=i}if(r){var o=e>=r;this.calendar.eventEmitter.emit(o?"maxDateReached":"maxDateNotReached"),this.maxDomainReached=o}};var Ep=TypeError,$p=Si,Lp=P,Tp=Vf,Cp=Pt,Ap=F,Rp=Rr,Ip=function(t){if(t>9007199254740991)throw Ep("Maximum allowed index exceeded");return t},Np=Jf,Wp=Ph,Yp=nh,zp=it,Fp=gt("isConcatSpreadable"),Hp=zp>=51||!Lp((function(){var t=[];return t[Fp]=!1,t.concat()[0]!==t})),Bp=function(t){if(!Cp(t))return!1;var e=t[Fp];return void 0!==e?!!e:Tp(t)};$p({target:"Array",proto:!0,arity:1,forced:!Hp||!Yp("concat")},{concat:function(t){var e,n,r,i,o,a=Ap(this),u=Wp(a,0),s=0;for(e=-1,r=arguments.length;e<r;e++)if(Bp(o=-1===e?a:arguments[e]))for(i=Rp(o),Ip(s+i),n=0;n<i;n++,s++)n in o&&Np(u,s,o[n]);else Ip(s+1),Np(u,s++,o);return u.length=s,u}});var Gp=P,Up=function(t,e){var n=[][t];return!!n&&Gp((function(){n.call(null,e||function(){return 1},1)}))},qp=Si,Vp=lr,Kp=dr,Zp=Up,Qp=A([].join);qp({target:"Array",proto:!0,forced:Vp!=Object||!Zp("join",",")},{join:function(t){return Qp(Kp(this),void 0===t?",":t)}});var Jp=zc,Xp=zi,tv=np,ev=To,nv=Ki,rv=R,iv=Is,ov=Yl,av=zl,uv=Ui,sv=_t,cv=Ad.fastKey,lv=gn.set,fv=gn.getterFor,hv={getConstructor:function(t,e,n,r){var i=t((function(t,i){nv(t,o),lv(t,{type:e,index:Jp(null),first:void 0,last:void 0,size:0}),sv||(t.size=0),rv(i)||iv(i,t[r],{that:t,AS_ENTRIES:n})})),o=i.prototype,a=fv(e),u=function(t,e,n){var r,i,o=a(t),u=s(t,e);return u?u.value=n:(o.last=u={index:i=cv(e,!0),key:e,value:n,previous:r=o.last,next:void 0,removed:!1},o.first||(o.first=u),r&&(r.next=u),sv?o.size++:t.size++,"F"!==i&&(o.index[i]=u)),t},s=function(t,e){var n,r=a(t),i=cv(e);if("F"!==i)return r.index[i];for(n=r.first;n;n=n.next)if(n.key==e)return n};return tv(o,{clear:function(){for(var t=a(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,sv?t.size=0:this.size=0},delete:function(t){var e=this,n=a(e),r=s(e,t);if(r){var i=r.next,o=r.previous;delete n.index[r.index],r.removed=!0,o&&(o.next=i),i&&(i.previous=o),n.first==r&&(n.first=i),n.last==r&&(n.last=o),sv?n.size--:e.size--}return!!r},forEach:function(t){for(var e,n=a(this),r=ev(t,arguments.length>1?arguments[1]:void 0);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!s(this,t)}}),tv(o,n?{get:function(t){var e=s(this,t);return e&&e.value},set:function(t,e){return u(this,0===t?0:t,e)}}:{add:function(t){return u(this,t=0===t?0:t,t)}}),sv&&Xp(o,"size",{configurable:!0,get:function(){return a(this).size}}),i},setStrong:function(t,e,n){var r=e+" Iterator",i=fv(e),o=fv(r);ov(t,e,(function(t,e){lv(this,{type:r,target:t,state:i(t),kind:e,last:void 0})}),(function(){for(var t=o(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?av("keys"==e?n.key:"values"==e?n.value:[n.key,n.value],!1):(t.target=void 0,av(void 0,!0))}),n?"entries":"values",!n,!0),uv(e)}};tp("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),hv);var dv=te,pv=TypeError,vv=ad,yv=Math.floor,mv=function(t,e){var n=t.length,r=yv(n/2);return n<8?gv(t,e):bv(t,mv(vv(t,0,r),e),mv(vv(t,r),e),e)},gv=function(t,e){for(var n,r,i=t.length,o=1;o<i;){for(r=o,n=t[o];r&&e(t[r-1],n)>0;)t[r]=t[--r];r!==o++&&(t[r]=n)}return t},bv=function(t,e,n,r){for(var i=e.length,o=n.length,a=0,u=0;a<i||u<o;)t[a+u]=a<i&&u<o?r(e[a],n[u])<=0?e[a++]:n[u++]:a<i?e[a++]:n[u++];return t},wv=mv,xv=Q.match(/firefox\/(\d+)/i),Ov=!!xv&&+xv[1],kv=/MSIE|Trident/.test(Q),Sv=Q.match(/AppleWebKit\/(\d+)\./),jv=!!Sv&&+Sv[1],_v=Si,Mv=A,Dv=ie,Pv=F,Ev=Rr,$v=function(t,e){if(!delete t[e])throw pv("Cannot delete property "+dv(e)+" of "+dv(t))},Lv=cf,Tv=P,Cv=wv,Av=Up,Rv=Ov,Iv=kv,Nv=it,Wv=jv,Yv=[],zv=Mv(Yv.sort),Fv=Mv(Yv.push),Hv=Tv((function(){Yv.sort(void 0)})),Bv=Tv((function(){Yv.sort(null)})),Gv=Av("sort"),Uv=!Tv((function(){if(Nv)return Nv<70;if(!(Rv&&Rv>3)){if(Iv)return!0;if(Wv)return Wv<603;var t,e,n,r,i="";for(t=65;t<76;t++){switch(e=String.fromCharCode(t),t){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(r=0;r<47;r++)Yv.push({k:e+r,v:n})}for(Yv.sort((function(t,e){return e.v-t.v})),r=0;r<Yv.length;r++)e=Yv[r].k.charAt(0),i.charAt(i.length-1)!==e&&(i+=e);return"DGBEFHACIJK"!==i}}));_v({target:"Array",proto:!0,forced:Hv||!Bv||!Gv||!Uv},{sort:function(t){void 0!==t&&Dv(t);var e=Pv(this);if(Uv)return void 0===t?zv(e):zv(e,t);var n,r,i=[],o=Ev(e);for(r=0;r<o;r++)r in e&&Fv(i,e[r]);for(Cv(i,function(t){return function(e,n){return void 0===n?-1:void 0===e?1:void 0!==t?+t(e,n)||0:Lv(e)>Lv(n)?1:-1}}(t)),n=Ev(i),r=0;r<n;)e[r]=i[r++];for(;r<o;)$v(e,r++);return e}});var qv,Vv,Kv,Zv=Ih.forEach,Qv=Up("forEach")?[].forEach:function(t){return Zv(this,t,arguments.length>1?arguments[1]:void 0)},Jv=m,Xv=Mf,ty=Ef,ey=Qv,ny=Xe,ry=function(t){if(t&&t.forEach!==ey)try{ny(t,"forEach",ey)}catch(e){t.forEach=ey}};for(var iy in Xv)Xv[iy]&&ry(Jv[iy]&&Jv[iy].prototype);function oy(t){return"top"===t||"bottom"===t}function ay(t){return t[Op.LEFT]+t[Op.RIGHT]}function uy(t){return t[Op.TOP]+t[Op.BOTTOM]}ry(ty);var sy,cy,ly=function(){function t(e,n){a(this,t),qv.add(this),this.calendar=e,this.domainPainter=n,this.collection=new Map,this.scrollDirection=xp.SCROLL_FORWARD}return s(t,[{key:"get",value:function(t){return this.collection.get(t)}},{key:"update",value:function(t,e){var n=this,r=this.calendar.options.options,i=r.verticalOrientation,o=r.domain;this.scrollDirection=e;var a={width:0,height:0},u=0,s=e===xp.SCROLL_FORWARD?-1:1,c=t.keys;return"desc"===this.calendar.options.options.domain.sort&&(c.reverse(),s*=-1),t.yankedDomains.forEach((function(t){u+=n.collection.get(t)[i?"height":"width"]})),t.yankedDomains.forEach((function(t){var e=n.collection.get(t);n.collection.set(t,Object.assign(Object.assign({},e),{x:i?e.x:e.x+u*s,y:i?e.y+u*s:e.y}))})),c.forEach((function(t){var e=gh(n,qv,"m",Vv).call(n,t),r=gh(n,qv,"m",Kv).call(n,t);i?(a.height+=r,a.width=Math.max(e,a.width)):(a.width+=e,a.height=Math.max(r,a.height));var c=a.width-e,l=a.height-r;n.collection.set(t,Object.assign(Object.assign({},n.collection.get(t)),{x:i?0:c,y:i?l:0,pre_x:i?c:c-u*s,pre_y:i?l-u*s:l,width:e,height:r,inner_width:e-(i?0:o.gutter),inner_height:r-(i?o.gutter:0)}))})),a}}]),t}();qv=new WeakSet,Vv=function(t){var e=this.calendar.options.options,n=e.domain,r=e.subDomain,i=e.x,o=e.verticalOrientation,a=this.calendar.templateCollection.get(r.type).columnsCount(t),u=(r.width+r.gutter)*a-r.gutter;return ay(n.padding)+i.domainHorizontalLabelWidth+(o?0:n.gutter)+u},Kv=function(t){var e=this.calendar.options.options,n=e.domain,r=e.subDomain,i=e.x,o=e.verticalOrientation,a=this.calendar.templateCollection.get(r.type).rowsCount(t),u=(r.height+r.gutter)*a-r.gutter;return uy(n.padding)+u+(o?n.gutter:0)+i.domainVerticalLabelHeight};var fy=".ch-domain",hy=function(){function t(e){a(this,t),sy.add(this),this.calendar=e,this.coordinates=new ly(e,this),this.root=null,this.dimensions={width:0,height:0}}return s(t,[{key:"paint",value:function(t,e){var n=this,r=this.calendar.options.options.animationDuration,i=e.transition().duration(r),o=this.coordinates;this.dimensions=o.update(this.calendar.domainCollection,t);var a=[];return this.root=e.selectAll(fy).data(this.calendar.domainCollection.keys,(function(t){return t})).join((function(t){return t.append("svg").attr("x",(function(t){return o.get(t).pre_x})).attr("y",(function(t){return o.get(t).pre_y})).attr("width",(function(t){return o.get(t).inner_width})).attr("height",(function(t){return o.get(t).inner_height})).attr("class",(function(t){return gh(n,sy,"m",cy).call(n,t)})).call((function(t){return t.append("rect").attr("width",(function(t){return o.get(t).inner_width})).attr("height",(function(t){return o.get(t).inner_height})).attr("class","".concat(fy.slice(1),"-bg"))})).call((function(t){return a.push(t.transition(i).attr("x",(function(t){return o.get(t).x})).attr("y",(function(t){return o.get(t).y})).end())}))}),(function(t){return t.call((function(t){return a.push(t.transition(i).attr("x",(function(t){return o.get(t).x})).attr("y",(function(t){return o.get(t).y})).attr("width",(function(t){return o.get(t).inner_width})).attr("height",(function(t){return o.get(t).inner_height})).end())})).call((function(t){return a.push(t.selectAll("".concat(fy,"-bg")).transition(i).attr("width",(function(t){return o.get(t).inner_width})).attr("height",(function(t){return o.get(t).inner_height})).end())}))}),(function(t){return t.call((function(t){return a.push(t.transition(i).attr("x",(function(t){return o.get(t).x})).attr("y",(function(t){return o.get(t).y})).remove().end())}))})),a}}]),t}();sy=new WeakSet,cy=function(t){var e=fy.slice(1),n=this.calendar.dateHelper.date(t);switch(this.calendar.options.options.domain.type){case"hour":e+=" h_".concat(n.hour());break;case"day":e+=" d_".concat(n.date()," dy_").concat(n.format("d")+1);break;case"week":e+=" w_".concat(n.week());break;case"month":e+=" m_".concat(n.month()+1);break;case"year":e+=" y_".concat(n.year())}return e};var dy=zr.includes,py=Zc;Si({target:"Array",proto:!0,forced:P((function(){return!Array(1).includes()}))},{includes:function(t){return dy(this,t,arguments.length>1?arguments[1]:void 0)}}),py("includes");var vy=Ih.filter;Si({target:"Array",proto:!0,forced:!nh("filter")},{filter:function(t){return vy(this,t,arguments.length>1?arguments[1]:void 0)}});var yy=ie,my=F,gy=lr,by=Rr,wy=TypeError,xy=function(t){return function(e,n,r,i){yy(n);var o=my(e),a=gy(o),u=by(o),s=t?u-1:0,c=t?-1:1;if(r<2)for(;;){if(s in a){i=a[s],s+=c;break}if(s+=c,t?s<0:u<=s)throw wy("Reduce of empty array with no initial value")}for(;t?s>=0:u>s;s+=c)s in a&&(i=n(i,a[s],s,o));return i}},Oy={left:xy(!1),right:xy(!0)}.left;Si({target:"Array",proto:!0,forced:!ji&&it>79&&it<83||!Up("reduce")},{reduce:function(t){var e=arguments.length;return Oy(this,t,e,e>1?arguments[1]:void 0)}});var ky=Yt,Sy=ks,jy=To,_y=Ht,My=F,Dy=function(t,e,n,r){try{return r?e(ky(n)[0],n[1]):e(n)}catch(e){Sy(t,"throw",e)}},Py=as,Ey=po,$y=Rr,Ly=Jf,Ty=bs,Cy=hs,Ay=Array,Ry=function(t){var e=My(t),n=Ey(this),r=arguments.length,i=r>1?arguments[1]:void 0,o=void 0!==i;o&&(i=jy(i,r>2?arguments[2]:void 0));var a,u,s,c,l,f,h=Cy(e),d=0;if(!h||this===Ay&&Py(h))for(a=$y(e),u=n?new this(a):Ay(a);a>d;d++)f=o?i(e[d],d):e[d],Ly(u,d,f);else for(l=(c=Ty(e,h)).next,u=n?new this:[];!(s=_y(l,c)).done;d++)f=o?Dy(c,i,[s.value,d],!0):s.value,Ly(u,d,f);return u.length=d,u};Si({target:"Array",stat:!0,forced:!Fs((function(t){Array.from(t)}))},{from:Ry});var Iy,Ny,Wy,Yy,zy="\t\n\v\f\r    â€â€‚         âŸã€€\u2028\u2029\ufeff",Fy=W,Hy=cf,By=zy,Gy=A("".replace),Uy=RegExp("^["+By+"]+"),qy=RegExp("(^|[^"+By+"])["+By+"]+$"),Vy=function(t){return function(e){var n=Hy(Fy(e));return 1&t&&(n=Gy(n,Uy,"")),2&t&&(n=Gy(n,qy,"$1")),n}},Ky={start:Vy(1),end:Vy(2),trim:Vy(3)},Zy=m,Qy=P,Jy=A,Xy=cf,tm=Ky.trim,em=zy,nm=Zy.parseInt,rm=Zy.Symbol,im=rm&&rm.iterator,om=/^[+-]?0x/i,am=Jy(om.exec),um=8!==nm(em+"08")||22!==nm(em+"0x16")||im&&!Qy((function(){nm(Object(im))}))?function(t,e){var n=tm(Xy(t));return nm(n,e>>>0||(am(om,n)?16:10))}:nm;Si({global:!0,forced:parseInt!=um},{parseInt:um});var sm,cm,lm,fm,hm,dm,pm,vm={year:"YYYY",month:"MMMM",week:"wo [week] YYYY",xDay:"Do MMM",ghDay:"Do MMM",day:"Do MMM",hour:"HH:00",minute:"HH:mm"},ym=function(){function t(e,n,r,i){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(a(this,t),Iy.add(this),this.collection=new Map,this.dateHelper=e,n&&r&&i){var u=this.dateHelper.intervals(n,r,i,o).map((function(t){return Oh(t)}));this.collection=new Map(u)}this.min=0,this.max=0,this.keys=[],this.yankedDomains=[],this.collection.size>0&&gh(this,Iy,"m",Yy).call(this)}return s(t,[{key:"has",value:function(t){return this.collection.has(t)}},{key:"get",value:function(t){return this.collection.get(t)}},{key:"forEach",value:function(t){return this.collection.forEach(t)}},{key:"at",value:function(t){return this.keys[t]}},{key:"clamp",value:function(t,e){var n=this;return t&&this.min<t&&this.keys.filter((function(e){return e<t})).forEach((function(t){return n.collection.delete(t)})),e&&this.max>e&&this.keys.filter((function(t){return t>e})).forEach((function(t){return n.collection.delete(t)})),gh(this,Iy,"m",Yy).call(this),this}},{key:"merge",value:function(t,e,n){var r=this;this.yankedDomains=[],t.keys.forEach((function(t,i){if(!r.has(t)){if(r.collection.size>=e){var o=r.max;t>r.max&&(o=r.min),o&&r.collection.delete(o)&&r.yankedDomains.push(o)}r.collection.set(t,n(t,i)),gh(r,Iy,"m",Yy).call(r)}})),this.yankedDomains=this.yankedDomains.sort((function(t,e){return t-e}))}},{key:"slice",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.keys.length>e&&((n?this.keys.slice(0,-e):this.keys.slice(e)).forEach((function(e){t.collection.delete(e)})),gh(this,Iy,"m",Yy).call(this));return this}},{key:"fill",value:function(t,e,n){var r=this,i=e.x,o=e.y,a=e.groupY,u=e.defaultValue,s=this.groupRecords(t,i,n);this.keys.forEach((function(t){var e=s.get(t)||{};gh(r,Iy,"m",Ny).call(r,t,e,o,a,u)}))}},{key:"groupRecords",value:function(t,e,n){var r=this,i=new Map,o=new Map;return this.keys.forEach((function(t){r.get(t).forEach((function(e){o.set(e.t,t)}))})),t.forEach((function(t){var a=r.extractTimestamp(t,e,n);if(o.has(a)){var u=o.get(a),s=i.get(u)||{};s[a]||(s[a]=[]),s[a].push(t),i.set(u,s)}})),i}},{key:"groupValues",value:function(t,e){var n=t.filter((function(t){return null!==t}));if("string"==typeof e){if(n.every((function(t){return"number"==typeof t})))switch(e){case"sum":return n.reduce((function(t,e){return t+e}),0);case"count":return n.length;case"min":return Math.min.apply(Math,l(n))||null;case"max":return Math.max.apply(Math,l(n))||null;case"average":return n.length>0?n.reduce((function(t,e){return t+e}),0)/n.length:null;default:return null}return"count"===e?n.length:null}return"function"==typeof e?e(n):null}},{key:"extractTimestamp",value:function(t,e,n){var r="function"==typeof e?e(t):t[e];return"string"==typeof r&&(r=+new Date(r)),n(r)}}]),t}();Iy=new WeakSet,Ny=function(t,e,n,r,i){var o=this;this.get(t).forEach((function(a,u){var s=i;e.hasOwnProperty(a.t)&&(s=o.groupValues(gh(o,Iy,"m",Wy).call(o,e[a.t],n),r)),o.get(t)[u].v=s}))},Wy=function(t,e){return t.map((function(t){return"function"==typeof e?e(t):t[e]}))},Yy=function(){this.keys=Array.from(this.collection.keys()).map((function(t){return parseInt(t,10)})).sort((function(t,e){return t-e}));var t=this.keys;return this.min=t[0],this.max=t[t.length-1],this.keys};var mm=".ch-domain-text",gm=function(){function t(e){a(this,t),sm.add(this),this.calendar=e}return s(t,[{key:"paint",value:function(t){var e=this,n=this.calendar.options.options.domain,r=n.label,i=n.type,o=this.calendar.dateHelper,a=r.text;null!==a&&""!==a&&(void 0===a&&(a=vm[i]),t.selectAll(mm).data((function(t){return[t]}),(function(t){return t})).join((function(t){return t.append("text").attr("class",mm.slice(1)).attr("x",(function(t){return gh(e,sm,"m",lm).call(e,t)})).attr("y",(function(t){return gh(e,sm,"m",fm).call(e,t)})).attr("text-anchor",r.textAlign).attr("dominant-baseline",(function(){return gh(e,sm,"m",cm).call(e)})).text((function(t,e,n){return o.format(t,a,n[e])})).call((function(t){return gh(e,sm,"m",pm).call(e,t)}))}),(function(t){t.attr("x",(function(t){return gh(e,sm,"m",lm).call(e,t)})).attr("y",(function(t){return gh(e,sm,"m",fm).call(e,t)})).attr("text-anchor",r.textAlign).attr("dominant-baseline",(function(){return gh(e,sm,"m",cm).call(e)})).text((function(t,e,n){return o.format(t,a,n[e])})).call((function(t){return gh(e,sm,"m",pm).call(e,t)}))})))}}]),t}();sm=new WeakSet,cm=function(){var t=this.calendar.options.options.domain.label,e=t.position,n=t.rotate;return oy(e)?"middle":"left"===n&&"left"===e||"right"===n&&"right"===e?"bottom":"hanging"},lm=function(t){var e=this.calendar.options.options.domain,n=e.padding,r=e.label,i=r.position,o=r.textAlign,a=r.offset,u=this.calendar.options.options.x.domainHorizontalLabelWidth,s=n[Op.LEFT];return"right"===i&&(s+=gh(this,sm,"m",hm).call(this,t)),"middle"===o&&(["top","bottom"].includes(i)?s+=gh(this,sm,"m",hm).call(this,t)/2:s+=u/2),"end"===o&&(oy(i)?s+=gh(this,sm,"m",hm).call(this,t):s+=u),s+a.x},fm=function(t){var e=this.calendar.options.options,n=e.domain,r=n.label,i=r.position,o=r.offset,a=n.padding,u=e.x,s=a[Op.TOP]+u.domainVerticalLabelHeight/2;return"bottom"===i&&(s+=gh(this,sm,"m",dm).call(this,t)),s+o.y},hm=function(t){var e=this.calendar.options.options,n=e.domain.padding,r=e.x.domainHorizontalLabelWidth;return this.calendar.calendarPainter.domainsContainerPainter.domainPainter.coordinates.get(t).inner_width-r-ay(n)},dm=function(t){var e=this.calendar.options.options,n=e.x.domainVerticalLabelHeight,r=e.domain.padding;return this.calendar.calendarPainter.domainsContainerPainter.domainPainter.coordinates.get(t).inner_height-n-uy(r)},pm=function(t){var e=this,n=this.calendar.options.options,r=n.domain.label,i=r.rotate,o=r.textAlign,a=r.position,u=n.x.domainHorizontalLabelWidth;switch(i){case"right":t.attr("transform",(function(t){var n=gh(e,sm,"m",hm).call(e,t),r=gh(e,sm,"m",dm).call(e,t),i=["rotate(90, ".concat("right"===a?n:u,", 0)")];switch(a){case"right":"middle"===o?i.push("translate(".concat(r/2-u/2,")")):"end"===o&&i.push("translate(".concat(r-u,")"));break;case"left":"start"===o?i.push("translate(".concat(u,")")):"middle"===o?i.push("translate(".concat(u/2+r/2,")")):"end"===o&&i.push("translate(".concat(r,")"))}return i.join(",")}));break;case"left":t.attr("transform",(function(t){var n=gh(e,sm,"m",hm).call(e,t),r=gh(e,sm,"m",dm).call(e,t),i=["rotate(270, ".concat("right"===a?n:u,", 0)")];switch(a){case"right":"start"===o?i.push("translate(-".concat(r,")")):"middle"===o?i.push("translate(-".concat(r/2+u/2,")")):"end"===o&&i.push("translate(-".concat(u,")"));break;case"left":"start"===o?i.push("translate(".concat(u-r,")")):"middle"===o&&i.push("translate(".concat(u/2-r/2,")"))}return i.join(",")}))}};var bm,wm,xm,Om,km,Sm,jm,_m=We.PROPER,Mm=P,Dm=zy,Pm=Ky.trim;Si({target:"String",proto:!0,forced:function(t){return Mm((function(){return!!Dm[t]()||"â€‹Â…á Ž"!=="â€‹Â…á Ž"[t]()||_m&&Dm[t].name!==t}))}("trim")},{trim:function(){return Pm(this)}});var Em,$m,Lm,Tm,Cm=".ch-subdomain",Am=function(){function t(e){a(this,t),bm.add(this),this.calendar=e,this.root=null}return s(t,[{key:"paint",value:function(t){var e=this;this.root=t||this.root;var n="".concat(Cm,"-container"),r=this.root.selectAll(n).data((function(t){return[t]}),(function(t){return t})).join((function(t){return t.append("svg").call((function(t){return gh(e,bm,"m",wm).call(e,t)})).attr("class",n.slice(1))}),(function(t){return t.call((function(t){return gh(e,bm,"m",wm).call(e,t)}))})),i=this.calendar.options.options.subDomain,o=i.radius,a=i.width,u=i.height,s=i.sort,c=this.calendar.eventEmitter;r.selectAll("g").data((function(t){var n=e.calendar.domainCollection.get(t);if("desc"===s){var r=Math.max.apply(Math,l(n.map((function(t){return t.x}))));n.forEach((function(t,e){n[e].x=Math.abs(t.x-r)}))}return n})).join((function(t){return t.append("g").call((function(t){return t.insert("rect").attr("class",(function(t){return gh(e,bm,"m",xm).call(e,t.t,"".concat(Cm.slice(1),"-bg"))})).attr("width",a).attr("height",u).attr("x",(function(t){return gh(e,bm,"m",Sm).call(e,t)})).attr("y",(function(t){return gh(e,bm,"m",jm).call(e,t)})).on("click",(function(t,e){return c.emit("click",t,e.t,e.v)})).on("mouseover",(function(t,e){return c.emit("mouseover",t,e.t,e.v)})).on("mouseout",(function(t,e){return c.emit("mouseout",t,e.t,e.v)})).attr("rx",o>0?o:null).attr("ry",o>0?o:null)})).call((function(t){return gh(e,bm,"m",Om).call(e,t)}))}),(function(t){return t.selectAll("rect").attr("class",(function(t){return gh(e,bm,"m",xm).call(e,t.t,"".concat(Cm.slice(1),"-bg"))})).attr("width",a).attr("height",u).attr("x",(function(t){return gh(e,bm,"m",Sm).call(e,t)})).attr("y",(function(t){return gh(e,bm,"m",jm).call(e,t)})).attr("rx",o).attr("ry",o)}))}}]),t}();bm=new WeakSet,wm=function(t){var e=this.calendar.options.options,n=e.domain,r=n.padding,i=n.label.position;t.attr("x",(function(){var t=r[Op.LEFT];return"left"===i&&(t+=e.x.domainHorizontalLabelWidth),t})).attr("y",(function(){var t=r[Op.TOP];return"top"===i&&(t+=e.x.domainVerticalLabelHeight),t}))},xm=function(t){var e=this,n=this.calendar.options.options,r=n.date.highlight,i=n.subDomain.type,o="";r.length>0&&r.forEach((function(n){var r=e.calendar.templateCollection.get(i).extractUnit;r(+n)===r(t)&&(o="highlight")}));for(var a=arguments.length,u=new Array(a>1?a-1:0),s=1;s<a;s++)u[s-1]=arguments[s];return[o].concat(u).join(" ").trim()},Om=function(t){var e=this,n=this.calendar.options.options.subDomain,r=n.width,i=n.height,o=n.label;return o?t.append("text").attr("class",(function(t){return gh(e,bm,"m",xm).call(e,t.t,"".concat(Cm.slice(1),"-text"))})).attr("x",(function(t){return gh(e,bm,"m",Sm).call(e,t)+r/2})).attr("y",(function(t){return gh(e,bm,"m",jm).call(e,t)+i/2})).attr("text-anchor","middle").attr("dominant-baseline","central").text((function(t,n,r){return e.calendar.dateHelper.format(t.t,o,t.v,r[n])})):null},km=function(t,e){var n=this.calendar.options.options.subDomain;return e[t]*(n["x"===t?"width":"height"]+n.gutter)},Sm=function(t){return gh(this,bm,"m",km).call(this,"x",t)},jm=function(t){return gh(this,bm,"m",km).call(this,"y",t)};var Rm=".ch-domain-container",Im="in-transition",Nm=function(){function e(t){a(this,e),Em.add(this),this.calendar=t,this.domainPainter=new hy(t),this.subDomainPainter=new Am(t),this.domainLabelPainter=new gm(t),this.dimensions={width:0,height:0},this.transitionsQueueCount=0}return s(e,[{key:"setup",value:function(){this.root=this.calendar.calendarPainter.root.attr("x",0).attr("y",0).append("svg").attr("class",Rm.slice(1)).append("svg").attr("class","".concat(Rm.slice(1),"-animation-wrapper"))}},{key:"paint",value:function(t){var e=this;gh(this,Em,"m",$m).call(this);var n=this.domainPainter.paint(t,this.root);return this.subDomainPainter.paint(this.domainPainter.root),this.domainLabelPainter.paint(this.domainPainter.root),gh(this,Em,"m",Tm).call(this),Promise.allSettled(n).then((function(){gh(e,Em,"m",Lm).call(e)})),n}},{key:"updatePosition",value:function(){var e;if(!(null===(e=this.root)||void 0===e?void 0:e.node()))return Promise.resolve();var n=this.calendar.options.options.animationDuration,r=this.calendar.pluginManager.getHeightFromPosition("top"),i=this.calendar.pluginManager.getWidthFromPosition("left");return[t.select(this.root.node().parentNode).transition().duration(n).call((function(t){t.attr("x",i).attr("y",r)})).end()]}},{key:"width",value:function(){return this.dimensions.width}},{key:"height",value:function(){return this.dimensions.height}},{key:"destroy",value:function(){return gh(this,Em,"m",$m).call(this),Promise.resolve()}}]),e}();Em=new WeakSet,$m=function(){var e;(null===(e=this.root)||void 0===e?void 0:e.node())&&(this.transitionsQueueCount+=1,t.select(this.root.node().parentNode).classed(Im,!0))},Lm=function(){var e;(null===(e=this.root)||void 0===e?void 0:e.node())&&(this.transitionsQueueCount-=1,0===this.transitionsQueueCount&&t.select(this.root.node().parentNode).classed(Im,!1))},Tm=function(){var t=this.calendar.options.options,e=t.animationDuration,n=t.verticalOrientation,r=t.domain.gutter,i=this.domainPainter.dimensions;this.dimensions={width:i.width-(n?0:r),height:i.height-(n?r:0)},this.root.transition().duration(e).attr("width",this.dimensions.width).attr("height",this.dimensions.height)};var Wm,Ym,zm,Fm,Hm=function(){function t(e){a(this,t),this.calendar=e}return s(t,[{key:"paint",value:function(){var t=[];return t=(t=t.concat(this.calendar.pluginManager.paintAll())).concat(this.setPluginsPosition())}},{key:"setPluginsPosition",value:function(){var t=this.calendar.pluginManager,e=this.calendar.options.options.animationDuration,n=this.calendar.calendarPainter.domainsContainerPainter,r=t.getFromPosition("top"),i=t.getFromPosition("right"),o=t.getFromPosition("bottom"),a=t.getFromPosition("left"),u=t.getHeightFromPosition("top"),s=t.getWidthFromPosition("left"),c=[],l=0;r.forEach((function(t){c.push(t.root.transition().duration(e).attr("y",l).attr("x",s).end()),l+=t.options.dimensions.height}));var f=0;return a.forEach((function(t){c.push(t.root.transition().duration(e).attr("x",f).attr("y",u).end()),f+=t.options.dimensions.width})),o.forEach((function(t){c.push(t.root.transition().duration(e).attr("x",s).attr("y",u+n.height()).end())})),f+=n.width(),i.forEach((function(t){c.push(t.root.transition().duration(e).attr("x",f).attr("y",u).end()),f+=t.options.dimensions.width})),c}},{key:"insideWidth",value:function(){return this.calendar.pluginManager.getWidthFromPosition("left")+this.calendar.pluginManager.getWidthFromPosition("right")}},{key:"insideHeight",value:function(){return this.calendar.pluginManager.getHeightFromPosition("top")+this.calendar.pluginManager.getHeightFromPosition("bottom")}}]),t}(),Bm=function(){function e(t){a(this,e),Wm.add(this),this.calendar=t,this.dimensions={width:0,height:0},this.root=null,this.domainsContainerPainter=new Nm(t),this.pluginPainter=new Hm(t)}return s(e,[{key:"setup",value:function(){var e=this.calendar.options.options,n=e.itemSelector,r=e.theme;return this.root||(this.root=t.select(n).append("svg").attr("data-theme",r).attr("class",".ch-container".slice(1)),this.domainsContainerPainter.setup()),this.calendar.pluginManager.setupAll(),!0}},{key:"paint",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:xp.SCROLL_NONE,e=this.domainsContainerPainter.paint(t).concat(this.pluginPainter.paint()).concat(this.domainsContainerPainter.updatePosition());return gh(this,Wm,"m",Fm).call(this),Promise.allSettled(e)}},{key:"destroy",value:function(){var t=this.calendar.pluginManager.destroyAll().concat(this.domainsContainerPainter.destroy());return this.root?(t.push(this.root.transition().duration(this.calendar.options.options.animationDuration).attr("width",0).attr("height",0).remove().end()),Promise.allSettled(t)):Promise.allSettled(t)}}]),e}();Wm=new WeakSet,Ym=function(){return this.domainsContainerPainter.height()+this.pluginPainter.insideHeight()},zm=function(){return this.domainsContainerPainter.width()+this.pluginPainter.insideWidth()},Fm=function(){var t=this.calendar.options.options,e=gh(this,Wm,"m",zm).call(this),n=gh(this,Wm,"m",Ym).call(this);this.root.transition().duration(t.animationDuration).attr("width",e).attr("height",n),e===this.dimensions.width&&n===this.dimensions.height||this.calendar.eventEmitter.emit("resize",e,n,this.dimensions.width,this.dimensions.height),this.dimensions={width:e,height:n}};var Gm="object"==typeof global&&global&&global.Object===Object&&global,Um="object"==typeof self&&self&&self.Object===Object&&self,qm=Gm||Um||Function("return this")(),Vm=qm.Symbol,Km=Object.prototype,Zm=Km.hasOwnProperty,Qm=Km.toString,Jm=Vm?Vm.toStringTag:void 0;var Xm=Object.prototype.toString;var tg="[object Null]",eg="[object Undefined]",ng=Vm?Vm.toStringTag:void 0;function rg(t){return null==t?void 0===t?eg:tg:ng&&ng in Object(t)?function(t){var e=Zm.call(t,Jm),n=t[Jm];try{t[Jm]=void 0;var r=!0}catch(t){}var i=Qm.call(t);return r&&(e?t[Jm]=n:delete t[Jm]),i}(t):function(t){return Xm.call(t)}(t)}function ig(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}var og="[object AsyncFunction]",ag="[object Function]",ug="[object GeneratorFunction]",sg="[object Proxy]";function cg(t){if(!ig(t))return!1;var e=rg(t);return e==ag||e==ug||e==og||e==sg}var lg=F,fg=wc;Si({target:"Object",stat:!0,forced:P((function(){fg(1)}))},{keys:function(t){return fg(lg(t))}});var hg,dg=Pt,pg=Gn,vg=gt("match"),yg=function(t){var e;return dg(t)&&(void 0!==(e=t[vg])?!!e:"RegExp"==pg(t))},mg=TypeError,gg=function(t){if(yg(t))throw mg("The method doesn't accept regular expressions");return t},bg=gt("match"),wg=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[bg]=!1,"/./"[t](e)}catch(t){}}return!1},xg=Si,Og=Po,kg=er.f,Sg=Cr,jg=cf,_g=gg,Mg=W,Dg=wg,Pg=Og("".startsWith),Eg=Og("".slice),$g=Math.min,Lg=Dg("startsWith");xg({target:"String",proto:!0,forced:!!(Lg||(hg=kg(String.prototype,"startsWith"),!hg||hg.writable))&&!Lg},{startsWith:function(t){var e=jg(Mg(this));_g(t);var n=Sg($g(arguments.length>1?arguments[1]:void 0,e.length)),r=jg(t);return Pg?Pg(e,r,n):Eg(e,n,n+r.length)===r}});var Tg=_t,Cg=A,Ag=wc,Rg=dr,Ig=Cg(nr.f),Ng=Cg([].push),Wg=function(t){return function(e){for(var n,r=Rg(e),i=Ag(r),o=i.length,a=0,u=[];o>a;)n=i[a++],Tg&&!Ig(r,n)||Ng(u,t?[n,r[n]]:r[n]);return u}},Yg={entries:Wg(!0),values:Wg(!1)}.entries;function zg(t){return null!=t&&!Number.isNaN(t)}function Fg(t,e){return+zg(e)-+zg(t)||n.ascending(t,e)}function Hg(t){return isFinite(t)?t:NaN}function Bg(t){return t>0&&isFinite(t)?t:NaN}function Gg(t){return t<0&&isFinite(t)?t:NaN}Si({target:"Object",stat:!0},{entries:function(t){return Yg(t)}});const Ug=/^(?:[-+]\d{2})?\d{4}(?:-\d{2}(?:-\d{2})?)?(?:T\d{2}:\d{2}(?::\d{2}(?:\.\d{3})?)?(?:Z|[-+]\d{2}:?\d{2})?)?$/;function qg(t,e){return Ug.test(t+="")?new Date(t):"function"==typeof e?e(t):e}const Vg=new Map([["second",n.timeSecond],["minute",n.timeMinute],["hour",n.timeHour],["day",n.timeDay],["week",n.timeWeek],["month",n.timeMonth],["quarter",n.timeMonth.every(3)],["half",n.timeMonth.every(6)],["year",n.timeYear],["monday",n.timeMonday],["tuesday",n.timeTuesday],["wednesday",n.timeWednesday],["thursday",n.timeThursday],["friday",n.timeFriday],["saturday",n.timeSaturday],["sunday",n.timeSunday]]),Kg=new Map([["second",n.utcSecond],["minute",n.utcMinute],["hour",n.utcHour],["day",n.utcDay],["week",n.utcWeek],["month",n.utcMonth],["quarter",n.utcMonth.every(3)],["half",n.utcMonth.every(6)],["year",n.utcYear],["monday",n.utcMonday],["tuesday",n.utcTuesday],["wednesday",n.utcWednesday],["thursday",n.utcThursday],["friday",n.utcFriday],["saturday",n.utcSaturday],["sunday",n.utcSunday]]);function Zg(t){const e=Vg.get(`${t}`.toLowerCase());if(!e)throw new Error(`unknown interval: ${t}`);return e}function Qg(t){const e=Kg.get(`${t}`.toLowerCase());if(!e)throw new Error(`unknown interval: ${t}`);return e}const Jg=Object.getPrototypeOf(Uint8Array),Xg=Object.prototype.toString,tb=t=>()=>t;function eb(t){return t instanceof Jg?t:ab(t,nb,Float64Array)}function nb(t){return null==t?NaN:Number(t)}function rb(t){return ab(t,ib)}function ib(t){return t instanceof Date&&!isNaN(t)?t:"string"==typeof t?qg(t):null==t||isNaN(t=+t)?void 0:new Date(t)}function ob(t){return null==t||t instanceof Array||t instanceof Jg?t:Array.from(t)}function ab(t,e,n=Array){return null==t?t:t instanceof n?t.map(e):n.from(t,e)}function ub(t,e=Array){return t instanceof e?t.slice():e.from(t)}function sb(t){return function(t){return t?.toString===Xg}(t)&&(void 0!==t.type||void 0!==t.domain)}function cb(t,e){if(null!=t){if("number"==typeof t){0<t&&t<1&&Number.isInteger(1/t)&&(t=-1/t);const e=Math.abs(t);return t<0?{floor:t=>Math.floor(t*e)/e,offset:t=>(t*e+1)/e,range:(t,r)=>n.range(Math.ceil(t*e),r*e).map((t=>t/e))}:{floor:t=>Math.floor(t/e)*e,offset:t=>t+e,range:(t,r)=>n.range(Math.ceil(t/e),r/e).map((t=>t*e))}}if("string"==typeof t)return("time"===e?Zg:Qg)(t);if("function"!=typeof t.floor)throw new Error("invalid interval; missing floor method");if("function"!=typeof t.offset)throw new Error("invalid interval; missing offset method");return t}}function lb(t,e){if((t=cb(t,e))&&"function"!=typeof t.range)throw new Error("invalid interval: missing range method");return t}function fb(t){for(const e of t){if(null==e)continue;const t=typeof e;return"string"===t||"boolean"===t}}function hb(t){for(const e of t)if(null!=e)return e instanceof Date}function db(t){for(const e of t)if(null!=e)return"string"==typeof e&&isNaN(e)&&qg(e)}function pb(t){for(const e of t)if(null!=e){if("string"!=typeof e)return!1;if(e.trim())return!isNaN(e)}}function vb(t){if(null==t)return;const e=t[0],r=t[t.length-1];return n.descending(e,r)}const yb=Symbol("position"),mb=Symbol("color"),gb=Symbol("radius"),bb=Symbol("length"),wb=Symbol("opacity"),xb=Symbol("symbol"),Ob=new Map([["x",yb],["y",yb],["fx",yb],["fy",yb],["r",gb],["color",mb],["opacity",wb],["symbol",xb],["length",bb]]),kb=2/Math.sqrt(3),Sb={draw(t,e){const n=Math.sqrt(e/Math.PI),r=n*kb,i=r/2;t.moveTo(0,r),t.lineTo(n,i),t.lineTo(n,-i),t.lineTo(0,-r),t.lineTo(-n,-i),t.lineTo(-n,i),t.closePath()}},jb=new Map([["asterisk",n.symbolAsterisk],["circle",n.symbolCircle],["cross",n.symbolCross],["diamond",n.symbolDiamond],["diamond2",n.symbolDiamond2],["hexagon",Sb],["plus",n.symbolPlus],["square",n.symbolSquare],["square2",n.symbolSquare2],["star",n.symbolStar],["times",n.symbolTimes],["triangle",n.symbolTriangle],["triangle2",n.symbolTriangle2],["wye",n.symbolWye]]);function _b(t){if(null==t||function(t){return t&&"function"==typeof t.draw}(t))return t;const e=jb.get(`${t}`.toLowerCase());if(e)return e;throw new Error(`invalid symbol: ${t}`)}function Mb(t){console.warn(t)}const Db=new Map([["accent",n.schemeAccent],["category10",n.schemeCategory10],["dark2",n.schemeDark2],["paired",n.schemePaired],["pastel1",n.schemePastel1],["pastel2",n.schemePastel2],["set1",n.schemeSet1],["set2",n.schemeSet2],["set3",n.schemeSet3],["tableau10",n.schemeTableau10],["brbg",Eb(n.schemeBrBG,n.interpolateBrBG)],["prgn",Eb(n.schemePRGn,n.interpolatePRGn)],["piyg",Eb(n.schemePiYG,n.interpolatePiYG)],["puor",Eb(n.schemePuOr,n.interpolatePuOr)],["rdbu",Eb(n.schemeRdBu,n.interpolateRdBu)],["rdgy",Eb(n.schemeRdGy,n.interpolateRdGy)],["rdylbu",Eb(n.schemeRdYlBu,n.interpolateRdYlBu)],["rdylgn",Eb(n.schemeRdYlGn,n.interpolateRdYlGn)],["spectral",Eb(n.schemeSpectral,n.interpolateSpectral)],["burd",$b(n.schemeRdBu,n.interpolateRdBu)],["buylrd",$b(n.schemeRdYlBu,n.interpolateRdYlBu)],["blues",Pb(n.schemeBlues,n.interpolateBlues)],["greens",Pb(n.schemeGreens,n.interpolateGreens)],["greys",Pb(n.schemeGreys,n.interpolateGreys)],["oranges",Pb(n.schemeOranges,n.interpolateOranges)],["purples",Pb(n.schemePurples,n.interpolatePurples)],["reds",Pb(n.schemeReds,n.interpolateReds)],["turbo",Lb(n.interpolateTurbo)],["viridis",Lb(n.interpolateViridis)],["magma",Lb(n.interpolateMagma)],["inferno",Lb(n.interpolateInferno)],["plasma",Lb(n.interpolatePlasma)],["cividis",Lb(n.interpolateCividis)],["cubehelix",Lb(n.interpolateCubehelixDefault)],["warm",Lb(n.interpolateWarm)],["cool",Lb(n.interpolateCool)],["bugn",Pb(n.schemeBuGn,n.interpolateBuGn)],["bupu",Pb(n.schemeBuPu,n.interpolateBuPu)],["gnbu",Pb(n.schemeGnBu,n.interpolateGnBu)],["orrd",Pb(n.schemeOrRd,n.interpolateOrRd)],["pubu",Pb(n.schemePuBu,n.interpolatePuBu)],["pubugn",Pb(n.schemePuBuGn,n.interpolatePuBuGn)],["purd",Pb(n.schemePuRd,n.interpolatePuRd)],["rdpu",Pb(n.schemeRdPu,n.interpolateRdPu)],["ylgn",Pb(n.schemeYlGn,n.interpolateYlGn)],["ylgnbu",Pb(n.schemeYlGnBu,n.interpolateYlGnBu)],["ylorbr",Pb(n.schemeYlOrBr,n.interpolateYlOrBr)],["ylorrd",Pb(n.schemeYlOrRd,n.interpolateYlOrRd)],["rainbow",Tb(n.interpolateRainbow)],["sinebow",Tb(n.interpolateSinebow)]]);function Pb(t,e){return({length:r})=>1===r?[t[3][1]]:2===r?[t[3][1],t[3][2]]:(r=Math.max(3,Math.floor(r)))>9?n.quantize(e,r):t[r]}function Eb(t,e){return({length:r})=>2===r?[t[3][0],t[3][2]]:(r=Math.max(3,Math.floor(r)))>11?n.quantize(e,r):t[r]}function $b(t,e){return({length:r})=>2===r?[t[3][2],t[3][0]]:(r=Math.max(3,Math.floor(r)))>11?n.quantize((t=>e(1-t)),r):t[r].slice().reverse()}function Lb(t){return({length:e})=>n.quantize(t,Math.max(2,Math.floor(e)))}function Tb(t){return({length:e})=>n.quantize(t,Math.floor(e)+1).slice(0,-1)}function Cb(t){const e=`${t}`.toLowerCase();if(!Db.has(e))throw new Error(`unknown ordinal scheme: ${e}`);return Db.get(e)}function Ab(t,e){const n=Cb(t),r="function"==typeof n?n({length:e}):n;return r.length!==e?r.slice(0,e):r}const Rb=new Map([["brbg",n.interpolateBrBG],["prgn",n.interpolatePRGn],["piyg",n.interpolatePiYG],["puor",n.interpolatePuOr],["rdbu",n.interpolateRdBu],["rdgy",n.interpolateRdGy],["rdylbu",n.interpolateRdYlBu],["rdylgn",n.interpolateRdYlGn],["spectral",n.interpolateSpectral],["burd",t=>n.interpolateRdBu(1-t)],["buylrd",t=>n.interpolateRdYlBu(1-t)],["blues",n.interpolateBlues],["greens",n.interpolateGreens],["greys",n.interpolateGreys],["purples",n.interpolatePurples],["reds",n.interpolateReds],["oranges",n.interpolateOranges],["turbo",n.interpolateTurbo],["viridis",n.interpolateViridis],["magma",n.interpolateMagma],["inferno",n.interpolateInferno],["plasma",n.interpolatePlasma],["cividis",n.interpolateCividis],["cubehelix",n.interpolateCubehelixDefault],["warm",n.interpolateWarm],["cool",n.interpolateCool],["bugn",n.interpolateBuGn],["bupu",n.interpolateBuPu],["gnbu",n.interpolateGnBu],["orrd",n.interpolateOrRd],["pubugn",n.interpolatePuBuGn],["pubu",n.interpolatePuBu],["purd",n.interpolatePuRd],["rdpu",n.interpolateRdPu],["ylgnbu",n.interpolateYlGnBu],["ylgn",n.interpolateYlGn],["ylorbr",n.interpolateYlOrBr],["ylorrd",n.interpolateYlOrRd],["rainbow",n.interpolateRainbow],["sinebow",n.interpolateSinebow]]);function Ib(t){const e=`${t}`.toLowerCase();if(!Rb.has(e))throw new Error(`unknown quantitative scheme: ${e}`);return Rb.get(e)}const Nb=new Set(["brbg","prgn","piyg","puor","rdbu","rdgy","rdylbu","rdylgn","spectral","burd","buylrd"]);function Wb(t){return null!=t&&Nb.has(`${t}`.toLowerCase())}const Yb=t=>e=>t(1-e),zb=[0,1],Fb=new Map([["number",n.interpolateNumber],["rgb",n.interpolateRgb],["hsl",n.interpolateHsl],["hcl",n.interpolateHcl],["lab",n.interpolateLab]]);function Hb(t){const e=`${t}`.toLowerCase();if(!Fb.has(e))throw new Error(`unknown interpolator: ${e}`);return Fb.get(e)}function Bb(t,e,r,{type:i,nice:o,clamp:a,zero:u,domain:s=Vb(t,r),unknown:c,round:l,scheme:f,interval:h,range:d=(Ob.get(t)===gb?Zb(r,s):Ob.get(t)===bb?Qb(r,s):Ob.get(t)===wb?zb:void 0),interpolate:p=(Ob.get(t)===mb?null==f&&void 0!==d?n.interpolateRgb:Ib(void 0!==f?f:"cyclical"===i?"rainbow":"turbo"):l?n.interpolateRound:n.interpolateNumber),reverse:v}){if(h=lb(h,i),"cyclical"!==i&&"sequential"!==i||(i="linear"),v=!!v,"function"!=typeof p&&(p=Hb(p)),1===p.length?(v&&(p=Yb(p),v=!1),void 0===d&&2===(d=Float64Array.from(s,((t,e)=>e/(s.length-1)))).length&&(d=zb),e.interpolate((d===zb?tb:tw)(p))):e.interpolate(p),u){const[t,e]=n.extent(s);(t>0||e<0)&&(vb(s=ub(s))!==Math.sign(t)?s[s.length-1]=0:s[0]=0)}return v&&(s=n.reverse(s)),e.domain(s).unknown(c),o&&(e.nice(function(t,e){return!0===t?void 0:"number"==typeof t?t:function(t,e){if((t=lb(t,e))&&"function"!=typeof t.ceil)throw new Error("invalid interval: missing ceil method");return t}(t,e)}(o,i)),s=e.domain()),void 0!==d&&e.range(d),a&&e.clamp(a),{type:i,domain:s,range:d,scale:e,interpolate:p,interval:h}}function Gb(t,e,{exponent:r=1,...i}){return Bb(t,n.scalePow().exponent(r),e,{...i,type:"pow"})}function Ub(t,e,{domain:r=[0],unknown:i,scheme:o="rdylbu",interpolate:a,range:u=(void 0!==a?n.quantize(a,r.length+1):Ob.get(t)===mb?Ab(o,r.length+1):void 0),reverse:s}){const c=vb(r=ob(r));if(!isNaN(c)&&!function(t,e){for(let r=1,i=t.length,o=t[0];r<i;++r){const i=n.descending(o,o=t[r]);if(0!==i&&i!==e)return!1}return!0}(r,c))throw new Error(`the ${t} scale has a non-monotonic domain`);return s&&(u=n.reverse(u)),{type:"threshold",scale:n.scaleThreshold(c<0?n.reverse(r):r,void 0===u?[]:u).unknown(i),domain:r,range:u}}function qb(t,e=Hg){return t.length?[n.min(t,(({value:t})=>void 0===t?t:n.min(t,e))),n.max(t,(({value:t})=>void 0===t?t:n.max(t,e)))]:[0,1]}function Vb(t,e){const n=Ob.get(t);return(n===gb||n===wb||n===bb?Kb:qb)(e)}function Kb(t){return[0,t.length?n.max(t,(({value:t})=>void 0===t?t:n.max(t,Hg))):1]}function Zb(t,e){const r=t.find((({radius:t})=>void 0!==t));if(void 0!==r)return[0,r.radius];const i=n.quantile(t,.5,(({value:t})=>void 0===t?NaN:n.quantile(t,.25,Bg))),o=e.map((t=>3*Math.sqrt(t/i))),a=30/n.max(o);return a<1?o.map((t=>t*a)):o}function Qb(t,e){const r=n.median(t,(({value:t})=>void 0===t?NaN:n.median(t,Math.abs))),i=e.map((t=>12*t/r)),o=60/n.max(i);return o<1?i.map((t=>t*o)):i}function Jb(t){for(const{value:e}of t)if(void 0!==e)for(let n of e){if(n>0)return qb(t,Bg);if(n<0)return qb(t,Gg)}return[1,10]}function Xb(t){const e=[];for(const{value:n}of t)if(void 0!==n)for(const t of n)e.push(t);return e}function tw(t){return(e,n)=>r=>t(e+r*(n-e))}function ew(t,e,r,i,{type:o,nice:a,clamp:u,domain:s=qb(i),unknown:c,pivot:l=0,scheme:f,range:h,symmetric:d=!0,interpolate:p=(Ob.get(t)===mb?null==f&&void 0!==h?n.interpolateRgb:Ib(void 0!==f?f:"rdbu"):n.interpolateNumber),reverse:v}){l=+l;let[y,m]=s;if(n.descending(y,m)<0&&([y,m]=[m,y],v=!v),y=Math.min(y,l),m=Math.max(m,l),"function"!=typeof p&&(p=Hb(p)),void 0!==h&&(p=1===p.length?tw(p)(...h):n.piecewise(p,h)),v&&(p=Yb(p)),d){const t=r.apply(l),e=t-r.apply(y),n=r.apply(m)-t;e<n?y=r.invert(t-n):e>n&&(m=r.invert(t+e))}return e.domain([y,l,m]).unknown(c).interpolator(p),u&&e.clamp(u),a&&e.nice(a),{type:o,domain:[y,m],pivot:l,interpolate:p,scale:e}}function nw(t,e,{exponent:r=1,...i}){return ew(t,n.scaleDivergingPow().exponent(r=+r),function(t){return.5===t?aw:{apply:e=>Math.sign(e)*Math.pow(Math.abs(e),t),invert:e=>Math.sign(e)*Math.pow(Math.abs(e),1/t)}}(r),e,{...i,type:"diverging-pow"})}function rw(t,e,{constant:r=1,...i}){return ew(t,n.scaleDivergingSymlog().constant(r=+r),function(t){return{apply:e=>Math.sign(e)*Math.log1p(Math.abs(e/t)),invert:e=>Math.sign(e)*Math.expm1(Math.abs(e))*t}}(r),e,i)}const iw={apply:t=>t,invert:t=>t},ow={apply:Math.log,invert:Math.exp},aw={apply:t=>Math.sign(t)*Math.sqrt(Math.abs(t)),invert:t=>Math.sign(t)*(t*t)};function uw(t,e,n,r){return Bb(t,e,n,r)}const sw=Symbol("ordinal");function cw(t,e,r,{type:i,interval:o,domain:a,range:u,reverse:s,hint:c}){return o=lb(o,i),void 0===a&&(a=hw(r,o,t)),"categorical"!==i&&i!==sw||(i="ordinal"),s&&(a=n.reverse(a)),e.domain(a),void 0!==u&&("function"==typeof u&&(u=u(a)),e.range(u)),{type:i,domain:a,range:u,scale:e,hint:c,interval:o}}function lw(t,e,{type:r,interval:i,domain:o,range:a,scheme:u,unknown:s,...c}){let l;if(i=lb(i,r),void 0===o&&(o=hw(e,i,t)),Ob.get(t)===xb)l=function(t){return{fill:dw(t,"fill"),stroke:dw(t,"stroke")}}(e),a=void 0===a?function(t){return e=t.fill,null==e||function(t){return/^\s*none\s*$/i.test(t)}(e)?n.symbolsStroke:n.symbolsFill;var e}(l):ab(a,_b);else if(Ob.get(t)===mb&&(void 0!==a||"ordinal"!==r&&r!==sw||(a=function(t,e="greys"){const n=new Set,[r,i]=Ab(e,2);for(const e of t)if(null!=e)if(!0===e)n.add(i);else{if(!1!==e)return;n.add(r)}return[...n]}(o,u),void 0!==a&&(u=void 0)),void 0===u&&void 0===a&&(u="ordinal"===r?"turbo":"tableau10"),void 0!==u))if(void 0!==a){const t=Ib(u),e=a[0],r=a[1]-a[0];a=({length:i})=>n.quantize((n=>t(e+r*n)),i)}else a=Cb(u);if(s===n.scaleImplicit)throw new Error(`implicit unknown on ${t} scale is not supported`);return cw(t,n.scaleOrdinal().unknown(s),e,{...c,type:r,domain:o,range:a,hint:l})}function fw(t,e,n,r){let{round:i}=n;return void 0!==i&&t.round(i=!!i),(t=cw(r,t,e,n)).round=i,t}function hw(t,e,r){const i=new n.InternSet;for(const{value:e,domain:n}of t){if(void 0!==n)return n();if(void 0!==e)for(const t of e)i.add(t)}if(void 0!==e){const[t,r]=n.extent(i).map(e.floor,e);return e.range(t,e.offset(r))}if(i.size>1e4&&Ob.get(r)===yb)throw new Error(`implicit ordinal domain of ${r} scale has more than 10,000 values`);return n.sort(i,Fg)}function dw(t,e){let n;for(const{hint:r}of t){const t=r?.[e];if(void 0!==t)if(void 0===n)n=t;else if(n!==t)return}return n}function pw(t,e,r){return function(t,e=[],r={}){const i=function(t,e,{type:n,domain:r,range:i,scheme:o,pivot:a,projection:u}){if("fx"===t||"fy"===t)return"band";"x"!==t&&"y"!==t||null==u||(n=yw);for(const{type:t}of e)if(void 0!==t)if(void 0===n)n=t;else if(n!==t)throw new Error(`scale incompatible with channel: ${n} !== ${t}`);if(n===yw)return;if(void 0!==n)return n;if(void 0===r&&!e.some((({value:t})=>void 0!==t)))return;const s=Ob.get(t);if(s===gb)return"sqrt";if(s===wb||s===bb)return"linear";if(s===xb)return"ordinal";if((r||i||[]).length>2)return mw(s);if(void 0!==r)return fb(r)?mw(s):hb(r)?"utc":s!==mb||null==a&&!Wb(o)?"linear":"diverging";const c=e.map((({value:t})=>t)).filter((t=>void 0!==t));return c.some(fb)?mw(s):c.some(hb)?"utc":s!==mb||null==a&&!Wb(o)?"linear":"diverging"}(t,e,r);if(void 0===r.type&&void 0===r.domain&&void 0===r.range&&null==r.interval&&"fx"!==t&&"fy"!==t&&function({type:t}){return"ordinal"===t||"point"===t||"band"===t||t===sw}({type:i})){const n=e.map((({value:t})=>t)).filter((t=>void 0!==t));n.some(hb)?Mb(`Warning: some data associated with the ${t} scale are dates. Dates are typically associated with a "utc" or "time" scale rather than a "${vw(i)}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can specify the interval of the ${t} scale (e.g., d3.utcDay), or you can suppress this warning by setting the type of the ${t} scale to "${vw(i)}".`):n.some(db)?Mb(`Warning: some data associated with the ${t} scale are strings that appear to be dates (e.g., YYYY-MM-DD). If these strings represent dates, you should parse them to Date objects. Dates are typically associated with a "utc" or "time" scale rather than a "${vw(i)}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can suppress this warning by setting the type of the ${t} scale to "${vw(i)}".`):n.some(pb)&&Mb(`Warning: some data associated with the ${t} scale are strings that appear to be numbers. If these strings represent numbers, you should parse or coerce them to numbers. Numbers are typically associated with a "linear" scale rather than a "${vw(i)}" scale. If you want to treat this data as ordinal, you can specify the interval of the ${t} scale (e.g., 1 for integers), or you can suppress this warning by setting the type of the ${t} scale to "${vw(i)}".`)}switch(r.type=i,i){case"diverging":case"diverging-sqrt":case"diverging-pow":case"diverging-log":case"diverging-symlog":case"cyclical":case"sequential":case"linear":case"sqrt":case"threshold":case"quantile":case"pow":case"log":case"symlog":r=gw(e,r,eb);break;case"identity":switch(Ob.get(t)){case yb:r=gw(e,r,eb);break;case xb:r=gw(e,r,bw)}break;case"utc":case"time":r=gw(e,r,rb)}switch(i){case"diverging":return function(t,e,r){return ew(t,n.scaleDiverging(),iw,e,r)}(t,e,r);case"diverging-sqrt":return function(t,e,n){return nw(t,e,{...n,exponent:.5})}(t,e,r);case"diverging-pow":return nw(t,e,r);case"diverging-log":return function(t,e,{base:r=10,pivot:i=1,domain:o=qb(e,i<0?Gg:Bg),...a}){return ew(t,n.scaleDivergingLog().base(r=+r),ow,e,{domain:o,pivot:i,...a})}(t,e,r);case"diverging-symlog":return rw(t,e,r);case"categorical":case"ordinal":case sw:return lw(t,e,r);case"cyclical":case"sequential":case"linear":return function(t,e,r){return Bb(t,n.scaleLinear(),e,r)}(t,e,r);case"sqrt":return function(t,e,n){return Gb(t,e,{...n,exponent:.5})}(t,e,r);case"threshold":return Ub(t,0,r);case"quantile":return function(t,e,{range:r,quantiles:i=(void 0===r?5:(r=[...r]).length),n:o=i,scheme:a="rdylbu",domain:u=Xb(e),unknown:s,interpolate:c,reverse:l}){return void 0===r&&(r=void 0!==c?n.quantize(c,o):Ob.get(t)===mb?Ab(a,o):void 0),u.length>0&&(u=n.scaleQuantile(u,void 0===r?{length:o}:r).quantiles()),Ub(t,0,{domain:u,range:r,reverse:l,unknown:s})}(t,e,r);case"quantize":return function(t,e,{range:r,n:i=(void 0===r?5:(r=[...r]).length),scheme:o="rdylbu",domain:a=Vb(t,e),unknown:u,interpolate:s,reverse:c}){const[l,f]=n.extent(a);let h;return void 0===r?(h=n.ticks(l,f,i),h[0]<=l&&h.splice(0,1),h[h.length-1]>=f&&h.pop(),i=h.length+1,r=void 0!==s?n.quantize(s,i):Ob.get(t)===mb?Ab(o,i):void 0):(h=n.quantize(n.interpolateNumber(l,f),i+1).slice(1,-1),l instanceof Date&&(h=h.map((t=>new Date(t))))),vb(ob(a))<0&&h.reverse(),Ub(t,0,{domain:h,range:r,reverse:c,unknown:u})}(t,e,r);case"pow":return Gb(t,e,r);case"log":return function(t,e,{base:r=10,domain:i=Jb(e),...o}){return Bb(t,n.scaleLog().base(r),e,{...o,domain:i})}(t,e,r);case"symlog":return function(t,e,{constant:r=1,...i}){return Bb(t,n.scaleSymlog().constant(r),e,i)}(t,e,r);case"utc":return function(t,e,r){return uw(t,n.scaleUtc(),e,r)}(t,e,r);case"time":return function(t,e,r){return uw(t,n.scaleTime(),e,r)}(t,e,r);case"point":return function(t,e,{align:r=.5,padding:i=.5,...o}){return fw(n.scalePoint().align(r).padding(i),e,o,t)}(t,e,r);case"band":return function(t,e,{align:r=.5,padding:i=.1,paddingInner:o=i,paddingOuter:a=("fx"===t||"fy"===t?0:i),...u}){return fw(n.scaleBand().align(r).paddingInner(o).paddingOuter(a),e,u,t)}(t,e,r);case"identity":return Ob.get(t)===yb?{type:"identity",scale:n.scaleIdentity()}:{type:"identity"};case void 0:return;default:throw new Error(`unknown scale type: ${i}`)}}(t,void 0===r?void 0:[{hint:r}],{...e})}function vw(t){return"symbol"==typeof t?t.description:t}const yw={toString:()=>"projection"};function mw(t){switch(t){case yb:return"point";case mb:return sw;default:return"ordinal"}}function gw(t,{domain:e,...n},r){for(const e of t)void 0!==e.value&&(e.value=r(e.value));return{domain:void 0===e?e:r(e),...n}}function bw(t){return ab(t,_b)}function ww({scale:t,type:e,domain:n,range:r,interpolate:i,interval:o,transform:a,percent:u,pivot:s}){if("identity"===e)return{type:"identity",apply:t=>t,invert:t=>t};const c=t.unknown?t.unknown():void 0;return{type:e,domain:ub(n),...void 0!==r&&{range:ub(r)},...void 0!==a&&{transform:a},...u&&{percent:u},...void 0!==c&&{unknown:c},...void 0!==o&&{interval:o},...void 0!==i&&{interpolate:i},...t.clamp&&{clamp:t.clamp()},...void 0!==s&&{pivot:s,symmetric:!1},...t.base&&{base:t.base()},...t.exponent&&{exponent:t.exponent()},...t.constant&&{constant:t.constant()},...t.align&&{align:t.align(),round:t.round()},...t.padding&&(t.paddingInner?{paddingInner:t.paddingInner(),paddingOuter:t.paddingOuter()}:{padding:t.padding()}),...t.bandwidth&&{bandwidth:t.bandwidth(),step:t.step()},apply:e=>t(e),...t.invert&&{invert:e=>t.invert(e)}}}function xw(t){try{var e=Object.keys(t)[0];return function(t={}){let e;for(const n in t)if(Ob.has(n)&&sb(t[n])){if(void 0!==e)throw new Error("ambiguous scale definition; multiple scales found");e=ww(pw(n,t[n]))}if(void 0===e)throw new Error("invalid scale definition; no scale found");return e}((n={},r=e,i=Object.assign(Object.assign({},t[e]),{clamp:!0}),(r=d(r))in n?Object.defineProperty(n,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[r]=i,n))}catch(t){return null}var n,r,i}function Ow(t,e,n,r){Object.entries(function(t,e){var n={};return e.hasOwnProperty("opacity")?(n.fill=function(){return e.opacity.baseColor||Mp},n["fill-opacity"]=function(e){return null==t?void 0:t.apply(e)}):n.fill=function(e){return"string"==typeof e&&(null==e?void 0:e.startsWith("#"))?e:null==t?void 0:t.apply(e)},n}(e,n)).forEach((function(e){var n=c(e,2),i=n[0],o=n[1];return t.style(i,(function(t){return o(r?t[r]:t)}))}))}var kw=function(){function t(e){a(this,t),this.calendar=e}return s(t,[{key:"populate",value:function(){var t=this.calendar,n=t.options.options,r=n.scale,i=n.subDomain,o=xw(r);t.calendarPainter.root.selectAll(".ch-domain").selectAll("svg").selectAll("g").data((function(e){return t.domainCollection.get(e)||[]})).call((function(t){Ow(t.select("rect"),o,r,"v")})).call((function(n){n.select("text").attr("style",(function(t){var n=e.hcl(null==o?void 0:o.apply(t.v)).l>60?"#000":"#fff",r=i.color||(t.v?n:null);return cg(r)&&(r=r(t.t,t.v,null==o?void 0:o.apply(t.v))),r?"fill: ".concat(r,";"):null})).text((function(e,n,r){return t.dateHelper.format(e.t,i.label,e.v,r[n])}))})).call((function(){t.eventEmitter.emit("fill")}))}}]),t}();function Sw(t,e){return t===e||t!=t&&e!=e}function jw(t,e){for(var n=t.length;n--;)if(Sw(t[n][0],e))return n;return-1}var _w=Array.prototype.splice;function Mw(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}Mw.prototype.clear=function(){this.__data__=[],this.size=0},Mw.prototype.delete=function(t){var e=this.__data__,n=jw(e,t);return!(n<0)&&(n==e.length-1?e.pop():_w.call(e,n,1),--this.size,!0)},Mw.prototype.get=function(t){var e=this.__data__,n=jw(e,t);return n<0?void 0:e[n][1]},Mw.prototype.has=function(t){return jw(this.__data__,t)>-1},Mw.prototype.set=function(t,e){var n=this.__data__,r=jw(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this};var Dw=qm["__core-js_shared__"],Pw=function(){var t=/[^.]+$/.exec(Dw&&Dw.keys&&Dw.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();var Ew=Function.prototype.toString;function $w(t){if(null!=t){try{return Ew.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var Lw=/^\[object .+?Constructor\]$/,Tw=Function.prototype,Cw=Object.prototype,Aw=Tw.toString,Rw=Cw.hasOwnProperty,Iw=RegExp("^"+Aw.call(Rw).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Nw(t){return!(!ig(t)||(e=t,Pw&&Pw in e))&&(cg(t)?Iw:Lw).test($w(t));var e}function Ww(t,e){var n=function(t,e){return null==t?void 0:t[e]}(t,e);return Nw(n)?n:void 0}var Yw=Ww(qm,"Map"),zw=Ww(Object,"create");var Fw=Object.prototype.hasOwnProperty;var Hw=Object.prototype.hasOwnProperty;function Bw(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function Gw(t,e){var n,r,i=t.__data__;return("string"==(r=typeof(n=e))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?i["string"==typeof e?"string":"hash"]:i.map}function Uw(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}Bw.prototype.clear=function(){this.__data__=zw?zw(null):{},this.size=0},Bw.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},Bw.prototype.get=function(t){var e=this.__data__;if(zw){var n=e[t];return"__lodash_hash_undefined__"===n?void 0:n}return Fw.call(e,t)?e[t]:void 0},Bw.prototype.has=function(t){var e=this.__data__;return zw?void 0!==e[t]:Hw.call(e,t)},Bw.prototype.set=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=zw&&void 0===e?"__lodash_hash_undefined__":e,this},Uw.prototype.clear=function(){this.size=0,this.__data__={hash:new Bw,map:new(Yw||Mw),string:new Bw}},Uw.prototype.delete=function(t){var e=Gw(this,t).delete(t);return this.size-=e?1:0,e},Uw.prototype.get=function(t){return Gw(this,t).get(t)},Uw.prototype.has=function(t){return Gw(this,t).has(t)},Uw.prototype.set=function(t,e){var n=Gw(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this};function qw(t){var e=this.__data__=new Mw(t);this.size=e.size}qw.prototype.clear=function(){this.__data__=new Mw,this.size=0},qw.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},qw.prototype.get=function(t){return this.__data__.get(t)},qw.prototype.has=function(t){return this.__data__.has(t)},qw.prototype.set=function(t,e){var n=this.__data__;if(n instanceof Mw){var r=n.__data__;if(!Yw||r.length<199)return r.push([t,e]),this.size=++n.size,this;n=this.__data__=new Uw(r)}return n.set(t,e),this.size=n.size,this};var Vw=function(){try{var t=Ww(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),Kw=Vw;function Zw(t,e,n){"__proto__"==e&&Kw?Kw(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}function Qw(t,e,n){(void 0!==n&&!Sw(t[e],n)||void 0===n&&!(e in t))&&Zw(t,e,n)}var Jw,Xw=function(t,e,n){for(var r=-1,i=Object(t),o=n(t),a=o.length;a--;){var u=o[Jw?a:++r];if(!1===e(i[u],u,i))break}return t},tx=Xw,ex="object"==typeof exports&&exports&&!exports.nodeType&&exports,nx=ex&&"object"==typeof module&&module&&!module.nodeType&&module,rx=nx&&nx.exports===ex?qm.Buffer:void 0,ix=rx?rx.allocUnsafe:void 0;var ox=qm.Uint8Array;function ax(t,e){var n,r,i=e?(n=t.buffer,r=new n.constructor(n.byteLength),new ox(r).set(new ox(n)),r):t.buffer;return new t.constructor(i,t.byteOffset,t.length)}var ux=Object.create,sx=function(){function t(){}return function(e){if(!ig(e))return{};if(ux)return ux(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();function cx(t,e){return function(n){return t(e(n))}}var lx=cx(Object.getPrototypeOf,Object),fx=Object.prototype;function hx(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||fx)}function dx(t){return null!=t&&"object"==typeof t}function px(t){return dx(t)&&"[object Arguments]"==rg(t)}var vx=Object.prototype,yx=vx.hasOwnProperty,mx=vx.propertyIsEnumerable,gx=px(function(){return arguments}())?px:function(t){return dx(t)&&yx.call(t,"callee")&&!mx.call(t,"callee")},bx=gx,wx=9007199254740991;function xx(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=wx}function Ox(t){return null!=t&&xx(t.length)&&!cg(t)}var kx="object"==typeof exports&&exports&&!exports.nodeType&&exports,Sx=kx&&"object"==typeof module&&module&&!module.nodeType&&module,jx=Sx&&Sx.exports===kx?qm.Buffer:void 0,_x=(jx?jx.isBuffer:void 0)||function(){return!1},Mx="[object Object]",Dx=Function.prototype,Px=Object.prototype,Ex=Dx.toString,$x=Px.hasOwnProperty,Lx=Ex.call(Object);var Tx={};Tx["[object Float32Array]"]=Tx["[object Float64Array]"]=Tx["[object Int8Array]"]=Tx["[object Int16Array]"]=Tx["[object Int32Array]"]=Tx["[object Uint8Array]"]=Tx["[object Uint8ClampedArray]"]=Tx["[object Uint16Array]"]=Tx["[object Uint32Array]"]=!0,Tx["[object Arguments]"]=Tx["[object Array]"]=Tx["[object ArrayBuffer]"]=Tx["[object Boolean]"]=Tx["[object DataView]"]=Tx["[object Date]"]=Tx["[object Error]"]=Tx["[object Function]"]=Tx["[object Map]"]=Tx["[object Number]"]=Tx["[object Object]"]=Tx["[object RegExp]"]=Tx["[object Set]"]=Tx["[object String]"]=Tx["[object WeakMap]"]=!1;var Cx,Ax="object"==typeof exports&&exports&&!exports.nodeType&&exports,Rx=Ax&&"object"==typeof module&&module&&!module.nodeType&&module,Ix=Rx&&Rx.exports===Ax&&Gm.process,Nx=function(){try{var t=Rx&&Rx.require&&Rx.require("util").types;return t||Ix&&Ix.binding&&Ix.binding("util")}catch(t){}}(),Wx=Nx&&Nx.isTypedArray,Yx=Wx?(Cx=Wx,function(t){return Cx(t)}):function(t){return dx(t)&&xx(t.length)&&!!Tx[rg(t)]};function zx(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}var Fx=Object.prototype.hasOwnProperty;function Hx(t,e,n){var r=t[e];Fx.call(t,e)&&Sw(r,n)&&(void 0!==n||e in t)||Zw(t,e,n)}var Bx=9007199254740991,Gx=/^(?:0|[1-9]\d*)$/;function Ux(t,e){var n=typeof t;return!!(e=null==e?Bx:e)&&("number"==n||"symbol"!=n&&Gx.test(t))&&t>-1&&t%1==0&&t<e}var qx=Object.prototype.hasOwnProperty;function Vx(t,e){var n=xh(t),r=!n&&bx(t),i=!n&&!r&&_x(t),o=!n&&!r&&!i&&Yx(t),a=n||r||i||o,u=a?function(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}(t.length,String):[],s=u.length;for(var c in t)!e&&!qx.call(t,c)||a&&("length"==c||i&&("offset"==c||"parent"==c)||o&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||Ux(c,s))||u.push(c);return u}var Kx=Object.prototype.hasOwnProperty;function Zx(t){if(!ig(t))return function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}(t);var e=hx(t),n=[];for(var r in t)("constructor"!=r||!e&&Kx.call(t,r))&&n.push(r);return n}function Qx(t){return Ox(t)?Vx(t,!0):Zx(t)}function Jx(t){return function(t,e,n,r){var i=!n;n||(n={});for(var o=-1,a=e.length;++o<a;){var u=e[o],s=r?r(n[u],t[u],u,n,t):void 0;void 0===s&&(s=t[u]),i?Zw(n,u,s):Hx(n,u,s)}return n}(t,Qx(t))}function Xx(t,e,n,r,i,o,a){var u=zx(t,n),s=zx(e,n),c=a.get(s);if(c)Qw(t,n,c);else{var l,f=o?o(u,s,n+"",t,e,a):void 0,h=void 0===f;if(h){var d=xh(s),p=!d&&_x(s),v=!d&&!p&&Yx(s);f=s,d||p||v?xh(u)?f=u:dx(l=u)&&Ox(l)?f=function(t,e){var n=-1,r=t.length;for(e||(e=Array(r));++n<r;)e[n]=t[n];return e}(u):p?(h=!1,f=function(t,e){if(e)return t.slice();var n=t.length,r=ix?ix(n):new t.constructor(n);return t.copy(r),r}(s,!0)):v?(h=!1,f=ax(s,!0)):f=[]:function(t){if(!dx(t)||rg(t)!=Mx)return!1;var e=lx(t);if(null===e)return!0;var n=$x.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&Ex.call(n)==Lx}(s)||bx(s)?(f=u,bx(u)?f=Jx(u):ig(u)&&!cg(u)||(f=function(t){return"function"!=typeof t.constructor||hx(t)?{}:sx(lx(t))}(s))):h=!1}h&&(a.set(s,f),i(f,s,r,o,a),a.delete(s)),Qw(t,n,f)}}function tO(t,e,n,r,i){t!==e&&tx(e,(function(o,a){if(i||(i=new qw),ig(o))Xx(t,e,a,n,tO,r,i);else{var u=r?r(zx(t,a),o,a+"",t,e,i):void 0;void 0===u&&(u=o),Qw(t,a,u)}}),Qx)}function eO(t){return t}var nO=Math.max;var rO=Kw?function(t,e){return Kw(t,"toString",{configurable:!0,enumerable:!1,value:(n=e,function(){return n}),writable:!0});var n}:eO,iO=rO,oO=Date.now;var aO=function(t){var e=0,n=0;return function(){var r=oO(),i=16-(r-n);if(n=r,i>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(iO),uO=aO;function sO(t,e){return uO(function(t,e,n){return e=nO(void 0===e?t.length-1:e,0),function(){for(var r=arguments,i=-1,o=nO(r.length-e,0),a=Array(o);++i<o;)a[i]=r[e+i];i=-1;for(var u=Array(e+1);++i<e;)u[i]=r[i];return u[e]=n(a),function(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}(t,this,u)}}(t,e,eO),t+"")}var cO,lO=(cO=function(t,e,n,r){tO(t,e,n,r)},sO((function(t,e){var n=-1,r=e.length,i=r>1?e[r-1]:void 0,o=r>2?e[2]:void 0;for(i=cO.length>3&&"function"==typeof i?(r--,i):void 0,o&&function(t,e,n){if(!ig(n))return!1;var r=typeof e;return!!("number"==r?Ox(n)&&Ux(e,n.length):"string"==r&&e in n)&&Sw(n[e],t)}(e[0],e[1],o)&&(i=r<3?void 0:i,r=1),t=Object(t);++n<r;){var a=e[n];a&&cO(t,a,n,i)}return t}))),fO=lO;function hO(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new Uw;++e<n;)this.add(t[e])}function dO(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}hO.prototype.add=hO.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},hO.prototype.has=function(t){return this.__data__.has(t)};var pO=1,vO=2;function yO(t,e,n,r,i,o){var a=n&pO,u=t.length,s=e.length;if(u!=s&&!(a&&s>u))return!1;var c=o.get(t),l=o.get(e);if(c&&l)return c==e&&l==t;var f=-1,h=!0,d=n&vO?new hO:void 0;for(o.set(t,e),o.set(e,t);++f<u;){var p=t[f],v=e[f];if(r)var y=a?r(v,p,f,e,t,o):r(p,v,f,t,e,o);if(void 0!==y){if(y)continue;h=!1;break}if(d){if(!dO(e,(function(t,e){if(a=e,!d.has(a)&&(p===t||i(p,t,n,r,o)))return d.push(e);var a}))){h=!1;break}}else if(p!==v&&!i(p,v,n,r,o)){h=!1;break}}return o.delete(t),o.delete(e),h}function mO(t){var e=-1,n=Array(t.size);return t.forEach((function(t,r){n[++e]=[r,t]})),n}function gO(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n}var bO=1,wO=2,xO="[object Boolean]",OO="[object Date]",kO="[object Error]",SO="[object Map]",jO="[object Number]",_O="[object RegExp]",MO="[object Set]",DO="[object String]",PO="[object Symbol]",EO="[object ArrayBuffer]",$O="[object DataView]",LO=Vm?Vm.prototype:void 0,TO=LO?LO.valueOf:void 0;var CO=Object.prototype.propertyIsEnumerable,AO=Object.getOwnPropertySymbols,RO=AO?function(t){return null==t?[]:(t=Object(t),function(t,e){for(var n=-1,r=null==t?0:t.length,i=0,o=[];++n<r;){var a=t[n];e(a,n,t)&&(o[i++]=a)}return o}(AO(t),(function(e){return CO.call(t,e)})))}:function(){return[]},IO=RO,NO=cx(Object.keys,Object),WO=Object.prototype.hasOwnProperty;function YO(t){return Ox(t)?Vx(t):function(t){if(!hx(t))return NO(t);var e=[];for(var n in Object(t))WO.call(t,n)&&"constructor"!=n&&e.push(n);return e}(t)}function zO(t){return function(t,e,n){var r=e(t);return xh(t)?r:function(t,e){for(var n=-1,r=e.length,i=t.length;++n<r;)t[i+n]=e[n];return t}(r,n(t))}(t,YO,IO)}var FO=1,HO=Object.prototype.hasOwnProperty;var BO=Ww(qm,"DataView"),GO=Ww(qm,"Promise"),UO=Ww(qm,"Set"),qO=Ww(qm,"WeakMap"),VO="[object Map]",KO="[object Promise]",ZO="[object Set]",QO="[object WeakMap]",JO="[object DataView]",XO=$w(BO),tk=$w(Yw),ek=$w(GO),nk=$w(UO),rk=$w(qO),ik=rg;(BO&&ik(new BO(new ArrayBuffer(1)))!=JO||Yw&&ik(new Yw)!=VO||GO&&ik(GO.resolve())!=KO||UO&&ik(new UO)!=ZO||qO&&ik(new qO)!=QO)&&(ik=function(t){var e=rg(t),n="[object Object]"==e?t.constructor:void 0,r=n?$w(n):"";if(r)switch(r){case XO:return JO;case tk:return VO;case ek:return KO;case nk:return ZO;case rk:return QO}return e});var ok=ik,ak=1,uk="[object Arguments]",sk="[object Array]",ck="[object Object]",lk=Object.prototype.hasOwnProperty;function fk(t,e,n,r,i,o){var a=xh(t),u=xh(e),s=a?sk:ok(t),c=u?sk:ok(e),l=(s=s==uk?ck:s)==ck,f=(c=c==uk?ck:c)==ck,h=s==c;if(h&&_x(t)){if(!_x(e))return!1;a=!0,l=!1}if(h&&!l)return o||(o=new qw),a||Yx(t)?yO(t,e,n,r,i,o):function(t,e,n,r,i,o,a){switch(n){case $O:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case EO:return!(t.byteLength!=e.byteLength||!o(new ox(t),new ox(e)));case xO:case OO:case jO:return Sw(+t,+e);case kO:return t.name==e.name&&t.message==e.message;case _O:case DO:return t==e+"";case SO:var u=mO;case MO:var s=r&bO;if(u||(u=gO),t.size!=e.size&&!s)return!1;var c=a.get(t);if(c)return c==e;r|=wO,a.set(t,e);var l=yO(u(t),u(e),r,i,o,a);return a.delete(t),l;case PO:if(TO)return TO.call(t)==TO.call(e)}return!1}(t,e,s,n,r,i,o);if(!(n&ak)){var d=l&&lk.call(t,"__wrapped__"),p=f&&lk.call(e,"__wrapped__");if(d||p){var v=d?t.value():t,y=p?e.value():e;return o||(o=new qw),i(v,y,n,r,o)}}return!!h&&(o||(o=new qw),function(t,e,n,r,i,o){var a=n&FO,u=zO(t),s=u.length;if(s!=zO(e).length&&!a)return!1;for(var c=s;c--;){var l=u[c];if(!(a?l in e:HO.call(e,l)))return!1}var f=o.get(t),h=o.get(e);if(f&&h)return f==e&&h==t;var d=!0;o.set(t,e),o.set(e,t);for(var p=a;++c<s;){var v=t[l=u[c]],y=e[l];if(r)var m=a?r(y,v,l,e,t,o):r(v,y,l,t,e,o);if(!(void 0===m?v===y||i(v,y,n,r,o):m)){d=!1;break}p||(p="constructor"==l)}if(d&&!p){var g=t.constructor,b=e.constructor;g==b||!("constructor"in t)||!("constructor"in e)||"function"==typeof g&&g instanceof g&&"function"==typeof b&&b instanceof b||(d=!1)}return o.delete(t),o.delete(e),d}(t,e,n,r,i,o))}function hk(t,e,n,r,i){return t===e||(null==t||null==e||!dx(t)&&!dx(e)?t!=t&&e!=e:fk(t,e,n,r,hk,i))}function dk(t,e){return hk(t,e)}var pk=Object.prototype.hasOwnProperty;function vk(t,e){return null!=t&&pk.call(t,e)}var yk="[object Symbol]";function mk(t){return"symbol"==typeof t||dx(t)&&rg(t)==yk}var gk=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,bk=/^\w*$/;var wk="Expected a function";function xk(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError(wk);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=t.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(xk.Cache||Uw),n}xk.Cache=Uw;var Ok=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,kk=/\\(\\)?/g,Sk=function(t){var e=xk(t,(function(t){return 500===n.size&&n.clear(),t})),n=e.cache;return e}((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(Ok,(function(t,n,r,i){e.push(r?i.replace(kk,"$1"):n||t)})),e})),jk=Sk;var _k=1/0,Mk=Vm?Vm.prototype:void 0,Dk=Mk?Mk.toString:void 0;function Pk(t){if("string"==typeof t)return t;if(xh(t))return function(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}(t,Pk)+"";if(mk(t))return Dk?Dk.call(t):"";var e=t+"";return"0"==e&&1/t==-_k?"-0":e}function Ek(t,e){return xh(t)?t:function(t,e){if(xh(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!mk(t))||bk.test(t)||!gk.test(t)||null!=e&&t in Object(e)}(t,e)?[t]:jk(function(t){return null==t?"":Pk(t)}(t))}var $k=1/0;function Lk(t){if("string"==typeof t||mk(t))return t;var e=t+"";return"0"==e&&1/t==-$k?"-0":e}function Tk(t,e){return null!=t&&function(t,e,n){for(var r=-1,i=(e=Ek(e,t)).length,o=!1;++r<i;){var a=Lk(e[r]);if(!(o=null!=t&&n(t,a)))break;t=t[a]}return o||++r!=i?o:!!(i=null==t?0:t.length)&&xx(i)&&Ux(a,i)&&(xh(t)||bx(t))}(t,e,vk)}function Ck(t,e,n){var r=null==t?void 0:function(t,e){for(var n=0,r=(e=Ek(e,t)).length;null!=t&&n<r;)t=t[Lk(e[n++])];return n&&n==r?t:void 0}(t,e);return void 0===r?n:r}function Ak(t,e,n){return null==t?t:function(t,e,n,r){if(!ig(t))return t;for(var i=-1,o=(e=Ek(e,t)).length,a=o-1,u=t;null!=u&&++i<o;){var s=Lk(e[i]),c=n;if("__proto__"===s||"constructor"===s||"prototype"===s)return t;if(i!=a){var l=u[s];void 0===(c=r?r(l,s,u):void 0)&&(c=ig(l)?l:Ux(e[i+1])?[]:{})}Hx(u,s,c),u=u[s]}return t}(t,e,n)}var Rk,Ik,Nk={range:function(t){return Math.max(+t,1)},"date.highlight":function(t){return Oh(t)},"subDomain.label":function(t){return function(t){return"string"==typeof t||!xh(t)&&dx(t)&&"[object String]"==rg(t)}(t)&&""!==t||cg(t)?t:null}},Wk=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Nk;a(this,t),this.preProcessors=e,this.options={itemSelector:"#cal-heatmap",range:12,domain:{type:"hour",gutter:4,padding:[0,0,0,0],dynamicDimension:!0,sort:"asc",label:{text:void 0,position:"bottom",textAlign:"middle",offset:{x:0,y:0},rotate:null,width:100,height:25}},subDomain:{type:"minute",width:10,height:10,gutter:2,radius:0,label:null,color:void 0,sort:"asc"},date:{start:new Date,min:void 0,max:void 0,highlight:[],locale:"en",timezone:void 0},verticalOrientation:!1,data:{source:"",type:"json",requestInit:{},x:"",y:"",groupY:"sum",defaultValue:null},scale:void 0,animationDuration:200,theme:"light",x:{domainHorizontalLabelWidth:0,domainVerticalLabelHeight:0}}}return s(t,[{key:"set",value:function(t,e){return!(!Tk(this.options,t)||dk(Ck(this.options,t),e))&&(Ak(this.options,t,Tk(this.preProcessors,t)?Ck(this.preProcessors,t)(e):e),!0)}},{key:"init",value:function(t){var e=this;this.options=Object.assign({},fO(this.options,t,(function(t,e){return Array.isArray(e)?e:void 0})));var n=this.options;Object.keys(this.preProcessors).forEach((function(t){Ak(n,t,Ck(e.preProcessors,t)(Ck(n,t)))})),void 0===n.scale&&this.initScale(),n.x.domainVerticalLabelHeight=n.domain.label.height,"top"===n.domain.label.position||"bottom"===n.domain.label.position?n.x.domainHorizontalLabelWidth=0:(n.x.domainVerticalLabelHeight=0,n.x.domainHorizontalLabelWidth=n.domain.label.width),null!==n.domain.label.text&&""!==n.domain.label.text||(n.x.domainVerticalLabelHeight=0,n.x.domainHorizontalLabelWidth=0)}},{key:"initScale",value:function(){this.options.scale={color:{scheme:"YlOrBr",type:"quantize",domain:Dp}}}}]),t}(),Yk=Yt,zk=P,Fk=m.RegExp,Hk=zk((function(){var t=Fk("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),Bk=Hk||zk((function(){return!Fk("a","y").sticky})),Gk=Hk||zk((function(){var t=Fk("^r","gy");return t.lastIndex=2,null!=t.exec("str")})),Uk={BROKEN_CARET:Gk,MISSED_STICKY:Bk,UNSUPPORTED_Y:Hk},qk=P,Vk=m.RegExp,Kk=qk((function(){var t=Vk(".","s");return!(t.dotAll&&t.exec("\n")&&"s"===t.flags)})),Zk=P,Qk=m.RegExp,Jk=Zk((function(){var t=Qk("(?<a>b)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$<a>c")})),Xk=Ht,tS=A,eS=cf,nS=function(){var t=Yk(this),e="";return t.hasIndices&&(e+="d"),t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.unicodeSets&&(e+="v"),t.sticky&&(e+="y"),e},rS=Uk,iS=zc,oS=gn.get,aS=Kk,uS=Jk,sS=D("native-string-replace",String.prototype.replace),cS=RegExp.prototype.exec,lS=cS,fS=tS("".charAt),hS=tS("".indexOf),dS=tS("".replace),pS=tS("".slice),vS=(Ik=/b*/g,Xk(cS,Rk=/a/,"a"),Xk(cS,Ik,"a"),0!==Rk.lastIndex||0!==Ik.lastIndex),yS=rS.BROKEN_CARET,mS=void 0!==/()??/.exec("")[1];(vS||mS||yS||aS||uS)&&(lS=function(t){var e,n,r,i,o,a,u,s=this,c=oS(s),l=eS(t),f=c.raw;if(f)return f.lastIndex=s.lastIndex,e=Xk(lS,f,l),s.lastIndex=f.lastIndex,e;var h=c.groups,d=yS&&s.sticky,p=Xk(nS,s),v=s.source,y=0,m=l;if(d&&(p=dS(p,"y",""),-1===hS(p,"g")&&(p+="g"),m=pS(l,s.lastIndex),s.lastIndex>0&&(!s.multiline||s.multiline&&"\n"!==fS(l,s.lastIndex-1))&&(v="(?: "+v+")",m=" "+m,y++),n=new RegExp("^(?:"+v+")",p)),mS&&(n=new RegExp("^"+v+"$(?!\\s)",p)),vS&&(r=s.lastIndex),i=Xk(cS,d?n:s,m),d?i?(i.input=pS(i.input,y),i[0]=pS(i[0],y),i.index=s.lastIndex,s.lastIndex+=i[0].length):s.lastIndex=0:vS&&i&&(s.lastIndex=s.global?i.index+i[0].length:r),mS&&i&&i.length>1&&Xk(sS,i[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(i[o]=void 0)})),i&&h)for(i.groups=a=iS(null),o=0;o<h.length;o++)a[(u=h[o])[0]]=i[u[1]];return i});var gS=lS;Si({target:"RegExp",proto:!0,forced:/./.exec!==gS},{exec:gS});var bS,wS,xS=Po,OS=zn,kS=gS,SS=P,jS=gt,_S=Xe,MS=jS("species"),DS=RegExp.prototype,PS=gf.charAt,ES=A,$S=F,LS=Math.floor,TS=ES("".charAt),CS=ES("".replace),AS=ES("".slice),RS=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,IS=/\$([$&'`]|\d{1,2})/g,NS=Ht,WS=Yt,YS=St,zS=Gn,FS=gS,HS=TypeError,BS=_o,GS=Ht,US=A,qS=function(t,e,n,r){var i=jS(t),o=!SS((function(){var e={};return e[i]=function(){return 7},7!=""[t](e)})),a=o&&!SS((function(){var e=!1,n=/a/;return"split"===t&&((n={}).constructor={},n.constructor[MS]=function(){return n},n.flags="",n[i]=/./[i]),n.exec=function(){return e=!0,null},n[i](""),!e}));if(!o||!a||n){var u=xS(/./[i]),s=e(i,""[t],(function(t,e,n,r,i){var a=xS(t),s=e.exec;return s===kS||s===DS.exec?o&&!i?{done:!0,value:u(e,n,r)}:{done:!0,value:a(n,e,r)}:{done:!1}}));OS(String.prototype,t,s[0]),OS(DS,i,s[1])}r&&_S(DS[i],"sham",!0)},VS=P,KS=Yt,ZS=St,QS=R,JS=Mr,XS=Cr,tj=cf,ej=W,nj=function(t,e,n){return e+(n?PS(t,e).length:1)},rj=ue,ij=function(t,e,n,r,i,o){var a=n+t.length,u=r.length,s=IS;return void 0!==i&&(i=$S(i),s=RS),CS(o,s,(function(o,s){var c;switch(TS(s,0)){case"$":return"$";case"&":return t;case"`":return AS(e,0,n);case"'":return AS(e,a);case"<":c=i[AS(s,1,-1)];break;default:var l=+s;if(0===l)return o;if(l>u){var f=LS(l/10);return 0===f?o:f<=u?void 0===r[f-1]?TS(s,1):r[f-1]+TS(s,1):o}c=r[l-1]}return void 0===c?"":c}))},oj=function(t,e){var n=t.exec;if(YS(n)){var r=NS(n,t,e);return null!==r&&WS(r),r}if("RegExp"===zS(t))return NS(FS,t,e);throw HS("RegExp#exec called on incompatible receiver")},aj=gt("replace"),uj=Math.max,sj=Math.min,cj=US([].concat),lj=US([].push),fj=US("".indexOf),hj=US("".slice),dj="$0"==="a".replace(/./,"$0"),pj=!!/./[aj]&&""===/./[aj]("a","$0"),vj=!VS((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}));qS("replace",(function(t,e,n){var r=pj?"$":"$0";return[function(t,n){var r=ej(this),i=QS(t)?void 0:rj(t,aj);return i?GS(i,t,r,n):GS(e,tj(r),t,n)},function(t,i){var o=KS(this),a=tj(t);if("string"==typeof i&&-1===fj(i,r)&&-1===fj(i,"$<")){var u=n(e,o,a,i);if(u.done)return u.value}var s=ZS(i);s||(i=tj(i));var c=o.global;if(c){var l=o.unicode;o.lastIndex=0}for(var f=[];;){var h=oj(o,a);if(null===h)break;if(lj(f,h),!c)break;""===tj(h[0])&&(o.lastIndex=nj(a,XS(o.lastIndex),l))}for(var d,p="",v=0,y=0;y<f.length;y++){for(var m=tj((h=f[y])[0]),g=uj(sj(JS(h.index),a.length),0),b=[],w=1;w<h.length;w++)lj(b,void 0===(d=h[w])?d:String(d));var x=h.groups;if(s){var O=cj([m],b,g,a);void 0!==x&&lj(O,x);var k=tj(BS(i,void 0,O))}else k=ij(m,a,g,b,x,i);g>=v&&(p+=hj(a,v,g)+k,v=g+m.length)}return p+hj(a,v)}]}),!vj||!dj||pj);var yj=function(){function t(e){a(this,t),bS.add(this),this.calendar=e}return s(t,[{key:"getDatas",value:function(t,e,n){return mh(this,void 0,void 0,i().mark((function r(){var o;return i().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(!("string"==typeof t&&t.length>0)){r.next=2;break}return r.abrupt("return",gh(this,bS,"m",wS).call(this,t,e,n));case 2:return o=[],Array.isArray(t)&&(o=t),r.abrupt("return",new Promise((function(t){t(o)})));case 5:case"end":return r.stop()}}),r,this)})))}},{key:"parseURI",value:function(t,e,n){var r=this,i=t.replace(/\{\{start=(.*)\}\}/g,(function(t,n){return r.calendar.dateHelper.date(e).format(n)}));return i=i.replace(/\{\{end=(.*)\}\}/g,(function(t,e){return r.calendar.dateHelper.date(n).format(e)}))}}]),t}();bS=new WeakSet,wS=function(t,e,n){var i=this.calendar.options.options.data,o=i.type,a=i.requestInit,u=this.parseURI(t,e,n);switch(o){case"json":return r.json(u,a);case"csv":return r.csv(u,a);case"tsv":return r.dsv("\t",u,a);case"txt":return r.text(u,a);default:return new Promise((function(t){t([])}))}};var mj=_t,gj=We.EXISTS,bj=A,wj=zi,xj=Function.prototype,Oj=bj(xj.toString),kj=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,Sj=bj(kj.exec);mj&&!gj&&wj(xj,"name",{configurable:!0,get:function(){try{return Sj(kj,Oj(this))[1]}catch(t){return""}}});var jj={exports:{}};!function(t,e){t.exports=function(){var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",o="minute",a="hour",u="day",s="week",c="month",l="quarter",f="year",h="date",d="Invalid Date",p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,v=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,y={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},g={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),o=n-i<0,a=e.clone().add(r+(o?-1:1),c);return+(-(r+(n-i)/(o?i-a:a-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:f,w:s,d:u,D:h,h:a,m:o,s:i,ms:r,Q:l}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},b="en",w={};w[b]=y;var x=function(t){return t instanceof j},O=function t(e,n,r){var i;if(!e)return b;if("string"==typeof e){var o=e.toLowerCase();w[o]&&(i=o),n&&(w[o]=n,i=o);var a=e.split("-");if(!i&&a.length>1)return t(a[0])}else{var u=e.name;w[u]=e,i=u}return!r&&i&&(b=i),i||!r&&b},k=function(t,e){if(x(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new j(n)},S=g;S.l=O,S.i=x,S.w=function(t,e){return k(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var j=function(){function y(t){this.$L=O(t.locale,null,!0),this.parse(t)}var m=y.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(S.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match(p);if(r){var i=r[2]-1||0,o=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return S},m.isValid=function(){return!(this.$d.toString()===d)},m.isSame=function(t,e){var n=k(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return k(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<k(t)},m.$g=function(t,e,n){return S.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!S.u(e)||e,l=S.p(t),d=function(t,e){var i=S.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(u)},p=function(t,e){return S.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},v=this.$W,y=this.$M,m=this.$D,g="set"+(this.$u?"UTC":"");switch(l){case f:return r?d(1,0):d(31,11);case c:return r?d(1,y):d(0,y+1);case s:var b=this.$locale().weekStart||0,w=(v<b?v+7:v)-b;return d(r?m-w:m+(6-w),y);case u:case h:return p(g+"Hours",0);case a:return p(g+"Minutes",1);case o:return p(g+"Seconds",2);case i:return p(g+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,s=S.p(t),l="set"+(this.$u?"UTC":""),d=(n={},n[u]=l+"Date",n[h]=l+"Date",n[c]=l+"Month",n[f]=l+"FullYear",n[a]=l+"Hours",n[o]=l+"Minutes",n[i]=l+"Seconds",n[r]=l+"Milliseconds",n)[s],p=s===u?this.$D+(e-this.$W):e;if(s===c||s===f){var v=this.clone().set(h,1);v.$d[d](p),v.init(),this.$d=v.set(h,Math.min(this.$D,v.daysInMonth())).$d}else d&&this.$d[d](p);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[S.p(t)]()},m.add=function(r,l){var h,d=this;r=Number(r);var p=S.p(l),v=function(t){var e=k(d);return S.w(e.date(e.date()+Math.round(t*r)),d)};if(p===c)return this.set(c,this.$M+r);if(p===f)return this.set(f,this.$y+r);if(p===u)return v(1);if(p===s)return v(7);var y=(h={},h[o]=e,h[a]=n,h[i]=t,h)[p]||1,m=this.$d.getTime()+r*y;return S.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||d;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=S.z(this),o=this.$H,a=this.$m,u=this.$M,s=n.weekdays,c=n.months,l=function(t,n,i,o){return t&&(t[n]||t(e,r))||i[n].slice(0,o)},f=function(t){return S.s(o%12||12,t,"0")},h=n.meridiem||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r},p={YY:String(this.$y).slice(-2),YYYY:this.$y,M:u+1,MM:S.s(u+1,2,"0"),MMM:l(n.monthsShort,u,c,3),MMMM:l(c,u),D:this.$D,DD:S.s(this.$D,2,"0"),d:String(this.$W),dd:l(n.weekdaysMin,this.$W,s,2),ddd:l(n.weekdaysShort,this.$W,s,3),dddd:s[this.$W],H:String(o),HH:S.s(o,2,"0"),h:f(1),hh:f(2),a:h(o,a,!0),A:h(o,a,!1),m:String(a),mm:S.s(a,2,"0"),s:String(this.$s),ss:S.s(this.$s,2,"0"),SSS:S.s(this.$ms,3,"0"),Z:i};return r.replace(v,(function(t,e){return e||p[t]||i.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,h,d){var p,v=S.p(h),y=k(r),m=(y.utcOffset()-this.utcOffset())*e,g=this-y,b=S.m(this,y);return b=(p={},p[f]=b/12,p[c]=b,p[l]=b/3,p[s]=(g-m)/6048e5,p[u]=(g-m)/864e5,p[a]=g/n,p[o]=g/e,p[i]=g/t,p)[v]||g,d?b:S.a(b)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return w[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=O(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return S.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},y}(),_=j.prototype;return k.prototype=_,[["$ms",r],["$s",i],["$m",o],["$H",a],["$W",u],["$M",c],["$y",f],["$D",h]].forEach((function(t){_[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),k.extend=function(t,e){return t.$i||(t(e,j,k),t.$i=!0),k},k.locale=O,k.isDayjs=x,k.unix=function(t){return k(1e3*t)},k.en=w[b],k.Ls=w,k.p={},k}()}(jj);var _j=v(jj.exports),Mj={exports:{}};!function(t,e){var n,r;t.exports=(n="week",r="year",function(t,e,i){var o=e.prototype;o.week=function(t){if(void 0===t&&(t=null),null!==t)return this.add(7*(t-this.week()),"day");var e=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var o=i(this).startOf(r).add(1,r).date(e),a=i(this).endOf(n);if(o.isBefore(a))return 1}var u=i(this).startOf(r).date(e).startOf(n).subtract(1,"millisecond"),s=this.diff(u,n,!0);return s<0?i(this).startOf("week").week():Math.ceil(s)},o.weeks=function(t){return void 0===t&&(t=null),this.week(t)}})}(Mj);var Dj=v(Mj.exports),Pj={exports:{}};!function(t,e){t.exports=function(t,e,n){e.prototype.dayOfYear=function(t){var e=Math.round((n(this).startOf("day")-n(this).startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"day")}}}(Pj);var Ej=v(Pj.exports),$j={exports:{}};!function(t,e){t.exports=function(t,e){e.prototype.weekday=function(t){var e=this.$locale().weekStart||0,n=this.$W,r=(n<e?n+7:n)-e;return this.$utils().u(t)?r:this.subtract(r,"day").add(t,"day")}}}($j);var Lj=v($j.exports),Tj={exports:{}};!function(t,e){t.exports=function(t,e,n){var r=function(t,e){if(!e||!e.length||!e[0]||1===e.length&&!e[0].length)return null;var n;1===e.length&&e[0].length>0&&(e=e[0]),n=e[0];for(var r=1;r<e.length;r+=1)e[r].isValid()&&!e[r][t](n)||(n=e[r]);return n};n.max=function(){var t=[].slice.call(arguments,0);return r("isAfter",t)},n.min=function(){var t=[].slice.call(arguments,0);return r("isBefore",t)}}}(Tj);var Cj=v(Tj.exports),Aj={exports:{}};!function(t,e){t.exports=function(t,e){e.prototype.isoWeeksInYear=function(){var t=this.isLeapYear(),e=this.endOf("y").day();return 4===e||t&&5===e?53:52}}}(Aj);var Rj=v(Aj.exports),Ij={exports:{}};!function(t,e){var n;t.exports=(n="day",function(t,e,r){var i=function(t){return t.add(4-t.isoWeekday(),n)},o=e.prototype;o.isoWeekYear=function(){return i(this).year()},o.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),n);var e,o,a,u=i(this),s=(e=this.isoWeekYear(),a=4-(o=(this.$u?r.utc:r)().year(e).startOf("year")).isoWeekday(),o.isoWeekday()>4&&(a+=7),o.add(a,n));return u.diff(s,"week")+1},o.isoWeekday=function(t){return this.$utils().u(t)?this.day()||7:this.day(this.day()%7?t:t-7)};var a=o.startOf;o.startOf=function(t,e){var n=this.$utils(),r=!!n.u(e)||e;return"isoweek"===n.p(t)?r?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):a.bind(this)(t,e)}})}(Ij);var Nj=v(Ij.exports),Wj={exports:{}};!function(t,e){t.exports=function(t,e){e.prototype.isLeapYear=function(){return this.$y%4==0&&this.$y%100!=0||this.$y%400==0}}}(Wj);var Yj=v(Wj.exports),zj={exports:{}};!function(t,e){t.exports=function(t,e){var n=e.prototype,r=n.format;n.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return r.bind(this)(t);var i=this.$utils(),o=(t||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(t){switch(t){case"Q":return Math.ceil((e.$M+1)/3);case"Do":return n.ordinal(e.$D);case"gggg":return e.weekYear();case"GGGG":return e.isoWeekYear();case"wo":return n.ordinal(e.week(),"W");case"w":case"ww":return i.s(e.week(),"w"===t?1:2,"0");case"W":case"WW":return i.s(e.isoWeek(),"W"===t?1:2,"0");case"k":case"kk":return i.s(String(0===e.$H?24:e.$H),"k"===t?1:2,"0");case"X":return Math.floor(e.$d.getTime()/1e3);case"x":return e.$d.getTime();case"z":return"["+e.offsetName()+"]";case"zzz":return"["+e.offsetName("long")+"]";default:return t}}));return r.bind(this)(o)}}}(zj);var Fj=v(zj.exports),Hj={exports:{}};!function(t,e){var n,r,i;t.exports=(n="minute",r=/[+-]\d\d(?::?\d\d)?/g,i=/([+-]|\d\d)/g,function(t,e,o){var a=e.prototype;o.utc=function(t){return new e({date:t,utc:!0,args:arguments})},a.utc=function(t){var e=o(this.toDate(),{locale:this.$L,utc:!0});return t?e.add(this.utcOffset(),n):e},a.local=function(){return o(this.toDate(),{locale:this.$L,utc:!1})};var u=a.parse;a.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),u.call(this,t)};var s=a.init;a.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else s.call(this)};var c=a.utcOffset;a.utcOffset=function(t,e){var o=this.$utils().u;if(o(t))return this.$u?0:o(this.$offset)?c.call(this):this.$offset;if("string"==typeof t&&(t=function(t){void 0===t&&(t="");var e=t.match(r);if(!e)return null;var n=(""+e[0]).match(i)||["-",0,0],o=n[0],a=60*+n[1]+ +n[2];return 0===a?0:"+"===o?a:-a}(t),null===t))return this;var a=Math.abs(t)<=16?60*t:t,u=this;if(e)return u.$offset=a,u.$u=0===t,u;if(0!==t){var s=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(u=this.local().add(a+s,n)).$offset=a,u.$x.$localOffset=s}else u=this.utc();return u};var l=a.format;a.format=function(t){var e=t||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return l.call(this,e)},a.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},a.isUTC=function(){return!!this.$u},a.toISOString=function(){return this.toDate().toISOString()},a.toString=function(){return this.toDate().toUTCString()};var f=a.toDate;a.toDate=function(t){return"s"===t&&this.$offset?o(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():f.call(this)};var h=a.diff;a.diff=function(t,e,n){if(t&&this.$u===t.$u)return h.call(this,t,e,n);var r=this.local(),i=o(t).local();return h.call(r,i,e,n)}})}(Hj);var Bj=v(Hj.exports),Gj={exports:{}};!function(t,e){var n,r;t.exports=(n={year:0,month:1,day:2,hour:3,minute:4,second:5},r={},function(t,e,i){var o,a=function(t,e,n){void 0===n&&(n={});var i=new Date(t),o=function(t,e){void 0===e&&(e={});var n=e.timeZoneName||"short",i=t+"|"+n,o=r[i];return o||(o=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:n}),r[i]=o),o}(e,n);return o.formatToParts(i)},u=function(t,e){for(var r=a(t,e),o=[],u=0;u<r.length;u+=1){var s=r[u],c=s.type,l=s.value,f=n[c];f>=0&&(o[f]=parseInt(l,10))}var h=o[3],d=24===h?0:h,p=o[0]+"-"+o[1]+"-"+o[2]+" "+d+":"+o[4]+":"+o[5]+":000",v=+t;return(i.utc(p).valueOf()-(v-=v%1e3))/6e4},s=e.prototype;s.tz=function(t,e){void 0===t&&(t=o);var n=this.utcOffset(),r=this.toDate(),a=r.toLocaleString("en-US",{timeZone:t}),u=Math.round((r-new Date(a))/1e3/60),s=i(a).$set("millisecond",this.$ms).utcOffset(15*-Math.round(r.getTimezoneOffset()/15)-u,!0);if(e){var c=s.utcOffset();s=s.add(n-c,"minute")}return s.$x.$timezone=t,s},s.offsetName=function(t){var e=this.$x.$timezone||i.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return"timezonename"===t.type.toLowerCase()}));return n&&n.value};var c=s.startOf;s.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return c.call(this,t,e);var n=i(this.format("YYYY-MM-DD HH:mm:ss:SSS"));return c.call(n,t,e).tz(this.$x.$timezone,!0)},i.tz=function(t,e,n){var r=n&&e,a=n||e||o,s=u(+i(),a);if("string"!=typeof t)return i(t).tz(a);var c=function(t,e,n){var r=t-60*e*1e3,i=u(r,n);if(e===i)return[r,e];var o=u(r-=60*(i-e)*1e3,n);return i===o?[r,i]:[t-60*Math.min(i,o)*1e3,Math.max(i,o)]}(i.utc(t,r).valueOf(),s,a),l=c[0],f=c[1],h=i(l).utcOffset(f);return h.$x.$timezone=a,h},i.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},i.tz.setDefault=function(t){o=t}})}(Gj);var Uj=v(Gj.exports),qj={exports:{}};!function(t,e){t.exports=function(t,e,n){var r=e.prototype,i=function(t){return t&&(t.indexOf?t:t.s)},o=function(t,e,n,r,o){var a=t.name?t:t.$locale(),u=i(a[e]),s=i(a[n]),c=u||s.map((function(t){return t.slice(0,r)}));if(!o)return c;var l=a.weekStart;return c.map((function(t,e){return c[(e+(l||0))%7]}))},a=function(){return n.Ls[n.locale()]},u=function(t,e){return t.formats[e]||function(t){return t.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(t,e,n){return e||n.slice(1)}))}(t.formats[e.toUpperCase()])},s=function(){var t=this;return{months:function(e){return e?e.format("MMMM"):o(t,"months")},monthsShort:function(e){return e?e.format("MMM"):o(t,"monthsShort","months",3)},firstDayOfWeek:function(){return t.$locale().weekStart||0},weekdays:function(e){return e?e.format("dddd"):o(t,"weekdays")},weekdaysMin:function(e){return e?e.format("dd"):o(t,"weekdaysMin","weekdays",2)},weekdaysShort:function(e){return e?e.format("ddd"):o(t,"weekdaysShort","weekdays",3)},longDateFormat:function(e){return u(t.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},n.localeData=function(){var t=a();return{firstDayOfWeek:function(){return t.weekStart||0},weekdays:function(){return n.weekdays()},weekdaysShort:function(){return n.weekdaysShort()},weekdaysMin:function(){return n.weekdaysMin()},months:function(){return n.months()},monthsShort:function(){return n.monthsShort()},longDateFormat:function(e){return u(t,e)},meridiem:t.meridiem,ordinal:t.ordinal}},n.months=function(){return o(a(),"months")},n.monthsShort=function(){return o(a(),"monthsShort","months",3)},n.weekdays=function(t){return o(a(),"weekdays",null,null,t)},n.weekdaysShort=function(t){return o(a(),"weekdaysShort","weekdays",3,t)},n.weekdaysMin=function(t){return o(a(),"weekdaysMin","weekdays",2,t)}}}(qj);var Vj=v(qj.exports),Kj={exports:{}};!function(t,e){var n;t.exports=(n={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},function(t,e,r){var i=e.prototype,o=i.format;r.en.formats=n,i.format=function(t){void 0===t&&(t="YYYY-MM-DDTHH:mm:ssZ");var e=this.$locale().formats,r=function(t,e){return t.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,r,i){var o=i&&i.toUpperCase();return r||e[i]||n[i]||e[o].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(t,e,n){return e||n.slice(1)}))}))}(t,void 0===e?{}:e);return o.call(this,r)}})}(Kj);var Zj=v(Kj.exports),Qj={exports:{}};!function(t,e){t.exports=function(t,e,n){n.updateLocale=function(t,e){var r=n.Ls[t];if(r)return(e?Object.keys(e):[]).forEach((function(t){r[t]=e[t]})),r}}}(Qj);var Jj=v(Qj.exports);_j.extend(Dj),_j.extend(Rj),_j.extend(Nj),_j.extend(Yj),_j.extend(Ej),_j.extend(Lj),_j.extend(Cj),_j.extend(Fj),_j.extend(Bj),_j.extend(Uj),_j.extend(Vj),_j.extend(Zj),_j.extend(Jj);var Xj="en",t_=function(){function t(){var e;a(this,t),this.locale=Xj,this.timezone=_j.tz.guess(),"object"===("undefined"==typeof window?"undefined":o(window))&&((e=window).dayjs||(e.dayjs=_j))}return s(t,[{key:"setup",value:function(t){var e=t.options;return mh(this,void 0,void 0,i().mark((function t(){var n,r;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.timezone=e.date.timezone||_j.tz.guess(),"string"!=typeof(n=e.date.locale)||n===Xj){t.next=17;break}if("object"!==("undefined"==typeof window?"undefined":o(window))){t.next=12;break}if(t.t0=window["dayjs_locale_".concat(n)],t.t0){t.next=9;break}return t.next=8,this.loadBrowserLocale(n);case 8:t.t0=t.sent;case 9:r=t.t0,t.next=15;break;case 12:return t.next=14,this.loadNodeLocale(n);case 14:r=t.sent;case 15:_j.locale(n),this.locale=r;case 17:"object"===o(n)&&(n.hasOwnProperty("name")?(_j.locale(n.name,n),this.locale=n):this.locale=_j.updateLocale(Xj,n));case 18:case"end":return t.stop()}}),t,this)})))}},{key:"extend",value:function(t){return _j.extend(t)}},{key:"getMonthWeekNumber",value:function(t){var e=this.date(t),n=e.startOf("day"),r=e.startOf("month").endOf("week");return n<=r?1:Math.ceil(n.diff(r,"weeks",!0))+1}},{key:"getWeeksCountInMonth",value:function(t){var e=this.date(t);return this.getLastWeekOfMonth(e).diff(this.getFirstWeekOfMonth(e),"week")+1}},{key:"getFirstWeekOfMonth",value:function(t){var e=this.date(t).startOf("month"),n=e.startOf("week");return e.weekday()>4&&(n=n.add(1,"week")),n}},{key:"getLastWeekOfMonth",value:function(t){var e=this.date(t).endOf("month"),n=e.endOf("week");return e.weekday()<4&&(n=n.subtract(1,"week")),n}},{key:"date",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Date;return _j.isDayjs(t)?t:_j(t).tz(this.timezone).utcOffset(0).locale(this.locale)}},{key:"format",value:function(t,e){if("function"==typeof e){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];return e.apply(void 0,[t].concat(r))}return"string"==typeof e?this.date(t).format(e):null}},{key:"intervals",value:function(t,e,n){var r,i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=this.date(e);r="number"==typeof n?o.add(n,t):_j.isDayjs(n)?n:this.date(n),o=o.startOf(t),r=r.startOf(t);var a=_j.min(o,r);r=_j.max(o,r);var u=[];i||(r=r.add(1,"second"));do{u.push(+a),a=a.add(1,t)}while(a<r);return u}},{key:"loadBrowserLocale",value:function(t){return new Promise((function(e,n){var r=document.createElement("script");r.type="text/javascript",r.async=!0,r.src="https://cdn.jsdelivr.net/npm/dayjs@1/locale/".concat(t,".js"),r.onerror=function(t){n(t)},r.onload=function(){e(window["dayjs_locale_".concat(t)])},document.head.appendChild(r)}))}},{key:"loadNodeLocale",value:function(t){return import("dayjs/locale/".concat(t,".js"))}}]),t}(),e_=Si,n_=gg,r_=W,i_=cf,o_=wg,a_=A("".indexOf);e_({target:"String",proto:!0,forced:!o_("includes")},{includes:function(t){return!!~a_(i_(r_(this)),i_(n_(t)),arguments.length>1?arguments[1]:void 0)}});var u_=["json","csv","tsv","txt"];function s_(t,e){var n=e.domain,r=e.subDomain,i=e.data,o=n.type,a=r.type;if(!t.has(o))throw new Error("'".concat(o,"' is not a valid domain type'"));if(!t.has(a))throw new Error("'".concat(a,"' is not a valid subDomain type'"));if(i.type&&!u_.includes(i.type))throw new Error("The data type '".concat(i.type,"' is not valid data type"));if(!(t.get(a).allowedDomainType||[]).includes(o))throw new Error("The subDomain.type '".concat(a,"' can not be used together ")+"with the domain type ".concat(o));return!0}tp("Set",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),hv);var c_=function(){function t(e){a(this,t),this.calendar=e,this.settings=new Map,this.plugins=new Map,this.pendingPaint=new Set}return s(t,[{key:"add",value:function(t){var e=this;t.forEach((function(t){var n,r,i=c(t,2),o=i[0],a=i[1],u=function(t,e){return"".concat((new t).name).concat((null==e?void 0:e.key)||"")}(o,a);e.plugins.get(u)&&e.settings.get(u)&&dk(e.settings.get(u).options,a)||(e.settings.set(u,{options:a,dirty:!0}),e.plugins.has(u)||e.plugins.set(u,(n=o,r=e.calendar,new n(r))),e.pendingPaint.add(e.plugins.get(u)))}))}},{key:"setupAll",value:function(){var t=this;this.plugins.forEach((function(e,n){var r=t.settings.get(n);void 0!==r&&r.dirty&&(e.setup(r.options),r.dirty=!1,t.settings.set(n,r))}))}},{key:"paintAll",value:function(){return Array.from(this.pendingPaint.values()).map((function(t){return t.paint()}))}},{key:"destroyAll",value:function(){return this.allPlugins().map((function(t){return t.destroy()}))}},{key:"getFromPosition",value:function(t){return this.allPlugins().filter((function(e){var n;return(null===(n=e.options)||void 0===n?void 0:n.position)===t}))}},{key:"getHeightFromPosition",value:function(t){return this.getFromPosition(t).map((function(t){return t.options.dimensions.height})).reduce((function(t,e){return t+e}),0)}},{key:"getWidthFromPosition",value:function(t){return this.getFromPosition(t).map((function(t){return t.options.dimensions.width})).reduce((function(t,e){return t+e}),0)}},{key:"allPlugins",value:function(){return Array.from(this.plugins.values())}}]),t}(),l_=[function(t){return{name:"minute",allowedDomainType:["day","hour"],rowsCount:function(){return 10},columnsCount:function(){return 6},mapping:function(e,n){return t.intervals("minute",e,t.date(n)).map((function(t,e){return{t:t,x:Math.floor(e/10),y:e%10}}))},extractUnit:function(e){return t.date(e).startOf("minute").valueOf()}}},function(t,e){var n=e.domain;return{name:"hour",allowedDomainType:["month","week","day"],rowsCount:function(){return 6},columnsCount:function(e){switch(n.type){case"week":return 28;case"month":return 4*(n.dynamicDimension?t.date(e).daysInMonth():31);default:return 4}},mapping:function(e,r){return t.intervals("hour",e,t.date(r)).map((function(e){var r=t.date(e),i=r.hour(),o=r.date(),a=Math.floor(i/6);return"month"===n.type&&(a+=4*(o-1)),"week"===n.type&&(a+=4*+r.format("d")),{t:e,x:a,y:Math.floor(i%6)}}))},extractUnit:function(e){return t.date(e).startOf("hour").valueOf()}}},function(t,e){var n=e.domain,r=e.verticalOrientation;return{name:"day",allowedDomainType:["year","month","week"],rowsCount:function(){return"week"===n.type?1:7},columnsCount:function(e){switch(n.type){case"month":return Math.ceil(n.dynamicDimension&&!r?t.getMonthWeekNumber(t.date(e).endOf("month")):6);case"year":return Math.ceil(n.dynamicDimension?t.date(e).endOf("year").dayOfYear()/7:54);default:return 7}},mapping:function(e,r){var i=0,o=-1;return t.intervals("day",e,t.date(r)).map((function(e){var r=t.date(e);switch(n.type){case"month":o=t.getMonthWeekNumber(e)-1;break;case"year":i!==r.week()&&(i=r.week(),o+=1);break;case"week":o=r.weekday()}return{t:e,x:o,y:"week"===n.type?0:r.weekday()}}))},extractUnit:function(e){return t.date(e).startOf("day").valueOf()}}},function(t,e){var n=e.domain,r=e.verticalOrientation;return{name:"xDay",allowedDomainType:["year","month","week"],rowsCount:function(e){switch(n.type){case"month":return Math.ceil(n.dynamicDimension&&!r?t.getMonthWeekNumber(t.date(e).endOf("month")):6);case"year":return Math.ceil(n.dynamicDimension?t.date(e).endOf("year").dayOfYear()/7:54);default:return 7}},columnsCount:function(){return"week"===n.type?1:7},mapping:function(e,r){return t.intervals("day",e,t.date(r)).map((function(e){var r=t.date(e),i=r.endOf("year").week(),o=0;switch(n.type){case"month":o=t.getMonthWeekNumber(e)-1;break;case"year":1===i&&r.week()===i&&(o=r.subtract(1,"week").week()+1),o=r.week()-1;break;case"week":o=r.weekday()}return{t:e,y:o,x:"week"===n.type?0:r.weekday()}}))},extractUnit:function(e){return t.date(e).startOf("day").valueOf()}}},function(t){return{name:"ghDay",allowedDomainType:["month"],rowsCount:function(){return 7},columnsCount:function(e){return t.getWeeksCountInMonth(e)},mapping:function(e,n){var r=t.getFirstWeekOfMonth(e),i=t.getFirstWeekOfMonth(n),o=-1,a=r.weekday();return t.intervals("day",r,i).map((function(e){var n=t.date(e).weekday();return n===a&&(o+=1),{t:e,x:o,y:n}}))},extractUnit:function(e){return t.date(e).startOf("day").valueOf()}}},function(t,e){var n=e.domain;return{name:"week",allowedDomainType:["year","month"],rowsCount:function(){return 1},columnsCount:function(e){switch(n.type){case"year":return n.dynamicDimension?t.date(e).endOf("year").isoWeeksInYear():53;case"month":return n.dynamicDimension?t.getWeeksCountInMonth(e):5;default:return 1}},mapping:function(e,n){var r=t.getFirstWeekOfMonth(e),i=t.getFirstWeekOfMonth(n);return t.intervals("week",r,i).map((function(t,e){return{t:t,x:e,y:0}}))},extractUnit:function(e){return t.date(e).startOf("week").valueOf()}}},function(t){return{name:"month",allowedDomainType:["year"],rowsCount:function(){return 1},columnsCount:function(){return 12},mapping:function(e,n){return t.intervals("month",e,t.date(n)).map((function(e){return{t:e,x:t.date(e).month(),y:0}}))},extractUnit:function(e){return t.date(e).startOf("month").valueOf()}}},function(t){return{name:"year",allowedDomainType:[],rowsCount:function(){return 1},columnsCount:function(){return 1},mapping:function(e,n){return t.intervals("year",e,t.date(n)).map((function(t,e){return{t:t,x:e,y:0}}))},extractUnit:function(e){return t.date(e).startOf("year").valueOf()}}}],f_=function(){function t(e,n){a(this,t),this.settings=new Map,this.dateHelper=e,this.options=n,this.initiated=!1}return s(t,[{key:"get",value:function(t){return this.settings.get(t)}},{key:"has",value:function(t){return this.settings.has(t)}},{key:"init",value:function(){this.initiated||(this.initiated=!0,this.add(l_))}},{key:"add",value:function(t){var e=this;this.init();var n=[];Oh(t).forEach((function(t){var r=t(e.dateHelper,e.options.options);e.settings.set(r.name,r),r.hasOwnProperty("parent")&&n.push(r.name)})),n.forEach((function(t){var n=e.settings.get(e.settings.get(t).parent);n&&e.settings.set(t,Object.assign(Object.assign({},n),e.settings.get(t)))}))}}]),t}(),h_=function(){function t(){a(this,t),this.options=new Wk,this.dateHelper=new t_,this.templateCollection=new f_(this.dateHelper,this.options),this.dataFetcher=new yj(this),this.navigator=new Pp(this),this.populator=new kw(this),this.calendarPainter=new Bm(this),this.eventEmitter=new wh,this.pluginManager=new c_(this)}return s(t,[{key:"createDomainCollection",value:function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return new ym(this.dateHelper,this.options.options.domain.type,t,e,n)}},{key:"paint",value:function(t,e){return mh(this,void 0,void 0,i().mark((function n(){return i().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return this.options.init(t),n.next=3,this.dateHelper.setup(this.options);case 3:this.templateCollection.init(),n.prev=4,s_(this.templateCollection,this.options.options),n.next=11;break;case 8:return n.prev=8,n.t0=n.catch(4),n.abrupt("return",Promise.reject(n.t0));case 11:return e&&this.pluginManager.add(Oh(e)),this.calendarPainter.setup(),this.domainCollection=new ym(this.dateHelper),this.navigator.loadNewDomains(this.createDomainCollection(this.options.options.date.start,this.options.options.range)),n.abrupt("return",Promise.allSettled([this.calendarPainter.paint(),this.fill()]));case 16:case"end":return n.stop()}}),n,this,[[4,8]])})))}},{key:"addTemplates",value:function(t){this.templateCollection.add(t)}},{key:"next",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,e=this.navigator.loadNewDomains(this.createDomainCollection(this.domainCollection.max,t+1).slice(t),xp.SCROLL_FORWARD);return Promise.allSettled([this.calendarPainter.paint(e),this.fill()])}},{key:"previous",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,e=this.navigator.loadNewDomains(this.createDomainCollection(this.domainCollection.min,-t),xp.SCROLL_BACKWARD);return Promise.allSettled([this.calendarPainter.paint(e),this.fill()])}},{key:"jumpTo",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return Promise.allSettled([this.calendarPainter.paint(this.navigator.jumpTo(t,e)),this.fill()])}},{key:"fill",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.options.data.source,n=this.options.options,r=this.templateCollection,i=this.dateHelper.intervals(n.domain.type,this.domainCollection.max,2)[1],o=this.dataFetcher.getDatas(e,this.domainCollection.min,i);return new Promise((function(e,i){o.then((function(i){t.domainCollection.fill(i,n.data,r.get(n.subDomain.type).extractUnit),t.populator.populate(),e(null)}),(function(t){i(t)}))}))}},{key:"on",value:function(t,e){this.eventEmitter.on(t,e)}},{key:"dimensions",value:function(){return this.calendarPainter.dimensions}},{key:"destroy",value:function(){return this.calendarPainter.destroy()}},{key:"extendDayjs",value:function(t){return this.dateHelper.extend(t)}}]),t}();return h_.VERSION="4.2.3",h_}));//# sourceMappingURL=cal-heatmap.min.js.map diff --git a/static/javascripts/cal-heatmap/cal-heatmap.min.js.map b/static/javascripts/cal-heatmap/cal-heatmap.min.js.map new file mode 100644 index 000000000..43ef6cf61 --- /dev/null +++ b/static/javascripts/cal-heatmap/cal-heatmap.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cal-heatmap.min.js","sources":["../node_modules/core-js/internals/global.js","../node_modules/core-js/internals/define-global-property.js","../node_modules/core-js/internals/shared-store.js","../node_modules/core-js/internals/shared.js","../node_modules/core-js/internals/engine-v8-version.js","../node_modules/core-js/internals/fails.js","../node_modules/core-js/internals/function-bind-native.js","../node_modules/core-js/internals/function-uncurry-this.js","../node_modules/core-js/internals/is-null-or-undefined.js","../node_modules/core-js/internals/require-object-coercible.js","../node_modules/core-js/internals/to-object.js","../node_modules/core-js/internals/has-own-property.js","../node_modules/core-js/internals/uid.js","../node_modules/core-js/internals/engine-user-agent.js","../node_modules/core-js/internals/symbol-constructor-detection.js","../node_modules/core-js/internals/use-symbol-as-uid.js","../node_modules/core-js/internals/well-known-symbol.js","../node_modules/core-js/internals/to-string-tag-support.js","../node_modules/core-js/internals/document-all.js","../node_modules/core-js/internals/is-callable.js","../node_modules/core-js/internals/descriptors.js","../node_modules/core-js/internals/is-object.js","../node_modules/core-js/internals/document-create-element.js","../node_modules/core-js/internals/ie8-dom-define.js","../node_modules/core-js/internals/v8-prototype-define-bug.js","../node_modules/core-js/internals/an-object.js","../node_modules/core-js/internals/function-call.js","../node_modules/core-js/internals/get-built-in.js","../node_modules/core-js/internals/object-is-prototype-of.js","../node_modules/core-js/internals/is-symbol.js","../node_modules/core-js/internals/try-to-string.js","../node_modules/core-js/internals/a-callable.js","../node_modules/core-js/internals/get-method.js","../node_modules/core-js/internals/ordinary-to-primitive.js","../node_modules/core-js/internals/to-primitive.js","../node_modules/core-js/internals/to-property-key.js","../node_modules/core-js/internals/object-define-property.js","../node_modules/core-js/internals/function-name.js","../node_modules/core-js/internals/inspect-source.js","../node_modules/core-js/internals/internal-state.js","../node_modules/core-js/internals/weak-map-basic-detection.js","../node_modules/core-js/internals/create-property-descriptor.js","../node_modules/core-js/internals/create-non-enumerable-property.js","../node_modules/core-js/internals/shared-key.js","../node_modules/core-js/internals/hidden-keys.js","../node_modules/core-js/internals/make-built-in.js","../node_modules/core-js/internals/define-built-in.js","../node_modules/core-js/internals/classof-raw.js","../node_modules/core-js/internals/classof.js","../node_modules/core-js/internals/object-to-string.js","../node_modules/core-js/modules/es.object.to-string.js","../node_modules/core-js/internals/object-property-is-enumerable.js","../node_modules/core-js/internals/indexed-object.js","../node_modules/core-js/internals/to-indexed-object.js","../node_modules/core-js/internals/object-get-own-property-descriptor.js","../node_modules/core-js/internals/math-trunc.js","../node_modules/core-js/internals/to-integer-or-infinity.js","../node_modules/core-js/internals/to-absolute-index.js","../node_modules/core-js/internals/to-length.js","../node_modules/core-js/internals/length-of-array-like.js","../node_modules/core-js/internals/array-includes.js","../node_modules/core-js/internals/object-keys-internal.js","../node_modules/core-js/internals/enum-bug-keys.js","../node_modules/core-js/internals/object-get-own-property-names.js","../node_modules/core-js/internals/object-get-own-property-symbols.js","../node_modules/core-js/internals/own-keys.js","../node_modules/core-js/internals/copy-constructor-properties.js","../node_modules/core-js/internals/is-forced.js","../node_modules/core-js/internals/export.js","../node_modules/core-js/internals/engine-is-node.js","../node_modules/core-js/internals/function-uncurry-this-accessor.js","../node_modules/core-js/internals/a-possible-prototype.js","../node_modules/core-js/internals/object-set-prototype-of.js","../node_modules/core-js/internals/set-to-string-tag.js","../node_modules/core-js/internals/define-built-in-accessor.js","../node_modules/core-js/internals/set-species.js","../node_modules/core-js/internals/an-instance.js","../node_modules/core-js/internals/is-constructor.js","../node_modules/core-js/internals/task.js","../node_modules/core-js/internals/a-constructor.js","../node_modules/core-js/internals/species-constructor.js","../node_modules/core-js/internals/function-apply.js","../node_modules/core-js/internals/function-uncurry-this-clause.js","../node_modules/core-js/internals/function-bind-context.js","../node_modules/core-js/internals/html.js","../node_modules/core-js/internals/array-slice.js","../node_modules/core-js/internals/validate-arguments-length.js","../node_modules/core-js/internals/engine-is-ios.js","../node_modules/core-js/internals/queue.js","../node_modules/core-js/internals/microtask.js","../node_modules/core-js/internals/engine-is-ios-pebble.js","../node_modules/core-js/internals/engine-is-webos-webkit.js","../node_modules/core-js/internals/perform.js","../node_modules/core-js/internals/promise-native-constructor.js","../node_modules/core-js/internals/engine-is-deno.js","../node_modules/core-js/internals/engine-is-browser.js","../node_modules/core-js/internals/promise-constructor-detection.js","../node_modules/core-js/internals/new-promise-capability.js","../node_modules/core-js/modules/es.promise.constructor.js","../node_modules/core-js/internals/host-report-errors.js","../node_modules/core-js/internals/iterators.js","../node_modules/core-js/internals/is-array-iterator-method.js","../node_modules/core-js/internals/get-iterator-method.js","../node_modules/core-js/internals/get-iterator.js","../node_modules/core-js/internals/iterator-close.js","../node_modules/core-js/internals/iterate.js","../node_modules/core-js/internals/check-correctness-of-iteration.js","../node_modules/core-js/internals/promise-statics-incorrect-iteration.js","../node_modules/core-js/modules/es.promise.all.js","../node_modules/core-js/modules/es.promise.catch.js","../node_modules/core-js/modules/es.promise.race.js","../node_modules/core-js/modules/es.promise.reject.js","../node_modules/core-js/internals/promise-resolve.js","../node_modules/core-js/modules/es.promise.resolve.js","../node_modules/core-js/internals/object-keys.js","../node_modules/core-js/internals/object-define-properties.js","../node_modules/core-js/internals/object-create.js","../node_modules/core-js/internals/add-to-unscopables.js","../node_modules/core-js/internals/iterators-core.js","../node_modules/core-js/internals/correct-prototype-getter.js","../node_modules/core-js/internals/object-get-prototype-of.js","../node_modules/core-js/internals/iterator-create-constructor.js","../node_modules/core-js/internals/iterator-define.js","../node_modules/core-js/internals/create-iter-result-object.js","../node_modules/core-js/modules/es.array.iterator.js","../node_modules/core-js/modules/es.promise.all-settled.js","../node_modules/core-js/internals/to-string.js","../node_modules/core-js/internals/string-multibyte.js","../node_modules/core-js/modules/es.string.iterator.js","../node_modules/core-js/internals/dom-iterables.js","../node_modules/core-js/internals/dom-token-list-prototype.js","../node_modules/core-js/modules/web.dom-collections.iterator.js","../node_modules/core-js/internals/array-fill.js","../node_modules/core-js/modules/es.array.fill.js","../node_modules/core-js/internals/is-array.js","../node_modules/core-js/internals/create-property.js","../node_modules/core-js/internals/array-method-has-species-support.js","../node_modules/core-js/modules/es.array.slice.js","../node_modules/tslib/tslib.es6.js","../node_modules/eventemitter3/index.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/castArray.js","../node_modules/core-js/internals/array-species-constructor.js","../node_modules/core-js/internals/array-species-create.js","../node_modules/core-js/internals/array-iteration.js","../node_modules/core-js/modules/es.array.map.js","../node_modules/core-js/internals/object-assign.js","../node_modules/core-js/modules/es.object.assign.js","../node_modules/core-js/internals/array-slice-simple.js","../node_modules/core-js/internals/object-get-own-property-names-external.js","../node_modules/core-js/internals/array-buffer-non-extensible.js","../node_modules/core-js/internals/object-is-extensible.js","../node_modules/core-js/internals/freezing.js","../node_modules/core-js/internals/internal-metadata.js","../node_modules/core-js/internals/inherit-if-required.js","../node_modules/core-js/internals/collection.js","../node_modules/core-js/internals/define-built-ins.js","../node_modules/core-js/internals/collection-weak.js","../../src/constant.ts","../node_modules/core-js/modules/es.weak-set.constructor.js","../../src/calendar/Navigator.ts","../node_modules/core-js/internals/does-not-exceed-safe-integer.js","../node_modules/core-js/modules/es.array.concat.js","../node_modules/core-js/internals/array-method-is-strict.js","../node_modules/core-js/modules/es.array.join.js","../node_modules/core-js/internals/collection-strong.js","../node_modules/core-js/modules/es.map.constructor.js","../node_modules/core-js/internals/delete-property-or-throw.js","../node_modules/core-js/internals/array-sort.js","../node_modules/core-js/internals/engine-ff-version.js","../node_modules/core-js/internals/engine-is-ie-or-edge.js","../node_modules/core-js/internals/engine-webkit-version.js","../node_modules/core-js/modules/es.array.sort.js","../node_modules/core-js/internals/array-for-each.js","../node_modules/core-js/modules/web.dom-collections.for-each.js","../../src/helpers/PositionHelper.ts","../../src/domain/DomainCoordinates.ts","../../src/domain/DomainPainter.ts","../node_modules/core-js/modules/es.array.includes.js","../node_modules/core-js/modules/es.array.filter.js","../node_modules/core-js/internals/array-reduce.js","../node_modules/core-js/modules/es.array.reduce.js","../node_modules/core-js/internals/call-with-safe-iteration-closing.js","../node_modules/core-js/internals/array-from.js","../node_modules/core-js/modules/es.array.from.js","../node_modules/core-js/internals/whitespaces.js","../node_modules/core-js/internals/string-trim.js","../node_modules/core-js/internals/number-parse-int.js","../node_modules/core-js/modules/es.parse-int.js","../../src/calendar/DomainCollection.ts","../../src/domain/DomainLabelPainter.ts","../node_modules/core-js/internals/string-trim-forced.js","../node_modules/core-js/modules/es.string.trim.js","../../src/subDomain/SubDomainPainter.ts","../../src/domain/DomainsContainerPainter.ts","../../src/plugins/PluginPainter.ts","../../src/calendar/CalendarPainter.ts","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/core-js/modules/es.object.keys.js","../node_modules/core-js/internals/is-regexp.js","../node_modules/core-js/modules/es.string.starts-with.js","../node_modules/core-js/internals/not-a-regexp.js","../node_modules/core-js/internals/correct-is-regexp-logic.js","../node_modules/core-js/internals/object-to-array.js","../node_modules/core-js/modules/es.object.entries.js","../node_modules/@observablehq/plot/src/defined.js","../node_modules/isoformat/src/parse.js","../node_modules/@observablehq/plot/src/time.js","../node_modules/@observablehq/plot/src/options.js","../node_modules/@observablehq/plot/src/scales/index.js","../node_modules/@observablehq/plot/src/symbol.js","../node_modules/@observablehq/plot/src/warnings.js","../node_modules/@observablehq/plot/src/scales/schemes.js","../node_modules/@observablehq/plot/src/scales/quantitative.js","../node_modules/@observablehq/plot/src/scales/diverging.js","../node_modules/@observablehq/plot/src/scales/temporal.js","../node_modules/@observablehq/plot/src/scales/ordinal.js","../node_modules/@observablehq/plot/src/scales.js","../../src/scale.ts","../../src/calendar/Populator.ts","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignMergeValue.js","../node_modules/lodash-es/_baseFor.js","../node_modules/lodash-es/_createBaseFor.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_safeGet.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/toPlainObject.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_baseMergeDeep.js","../node_modules/lodash-es/isArrayLikeObject.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/_baseMerge.js","../node_modules/lodash-es/identity.js","../node_modules/lodash-es/_overRest.js","../node_modules/lodash-es/_baseSetToString.js","../node_modules/lodash-es/constant.js","../node_modules/lodash-es/_shortOut.js","../node_modules/lodash-es/_setToString.js","../node_modules/lodash-es/_baseRest.js","../node_modules/lodash-es/_apply.js","../node_modules/lodash-es/mergeWith.js","../node_modules/lodash-es/_createAssigner.js","../node_modules/lodash-es/_isIterateeCall.js","../node_modules/lodash-es/_SetCache.js","../node_modules/lodash-es/_arraySome.js","../node_modules/lodash-es/_setCacheAdd.js","../node_modules/lodash-es/_setCacheHas.js","../node_modules/lodash-es/_equalArrays.js","../node_modules/lodash-es/_cacheHas.js","../node_modules/lodash-es/_mapToArray.js","../node_modules/lodash-es/_setToArray.js","../node_modules/lodash-es/_equalByTag.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/_equalObjects.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_baseIsEqualDeep.js","../node_modules/lodash-es/_baseIsEqual.js","../node_modules/lodash-es/isEqual.js","../node_modules/lodash-es/_baseHas.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/_isKey.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/_castPath.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/has.js","../node_modules/lodash-es/_hasPath.js","../node_modules/lodash-es/get.js","../node_modules/lodash-es/_baseGet.js","../node_modules/lodash-es/set.js","../node_modules/lodash-es/_baseSet.js","../../src/options/OptionsPreProcessors.ts","../node_modules/core-js/internals/regexp-exec.js","../node_modules/lodash-es/isString.js","../../src/options/Options.ts","../node_modules/core-js/internals/regexp-flags.js","../node_modules/core-js/internals/regexp-sticky-helpers.js","../node_modules/core-js/internals/regexp-unsupported-dot-all.js","../node_modules/core-js/internals/regexp-unsupported-ncg.js","../node_modules/core-js/modules/es.regexp.exec.js","../node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","../node_modules/core-js/internals/advance-string-index.js","../node_modules/core-js/internals/get-substitution.js","../node_modules/core-js/internals/regexp-exec-abstract.js","../node_modules/core-js/modules/es.string.replace.js","../../src/DataFetcher.ts","../node_modules/core-js/modules/es.function.name.js","../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/weekOfYear.js","../node_modules/dayjs/plugin/dayOfYear.js","../node_modules/dayjs/plugin/weekday.js","../node_modules/dayjs/plugin/minMax.js","../node_modules/dayjs/plugin/isoWeeksInYear.js","../node_modules/dayjs/plugin/isoWeek.js","../node_modules/dayjs/plugin/isLeapYear.js","../node_modules/dayjs/plugin/advancedFormat.js","../node_modules/dayjs/plugin/utc.js","../node_modules/dayjs/plugin/timezone.js","../node_modules/dayjs/plugin/localeData.js","../node_modules/dayjs/plugin/localizedFormat.js","../node_modules/dayjs/plugin/updateLocale.js","../../src/helpers/DateHelper.ts","../node_modules/core-js/modules/es.string.includes.js","../../src/options/OptionsValidator.ts","../node_modules/core-js/modules/es.set.constructor.js","../../src/plugins/PluginManager.ts","../../src/templates/index.ts","../../src/templates/minute.ts","../../src/templates/hour.ts","../../src/templates/day.ts","../../src/templates/xDay.ts","../../src/templates/ghDay.ts","../../src/templates/week.ts","../../src/templates/month.ts","../../src/templates/year.ts","../../src/TemplateCollection.ts","../../src/CalHeatmap.ts","../../src/version.ts"],"sourcesContent":["var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.30.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var classof = require('../internals/classof-raw');\n\nmodule.exports = typeof process != 'undefined' && classof(process) == 'process';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","module.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","module.exports = {};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = lengthOfArrayLike(O);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport default {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __createBinding,\r\n __exportStar,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n __classPrivateFieldIn,\r\n};\r\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import isArray from './isArray.js';\n\n/**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\nfunction castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n}\n\nexport default castArray;\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (state) {\n return state.frozen || (state.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) splice(this.entries, index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n defineBuiltIns(Prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && hasOwn(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && hasOwn(data, state.id);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return Constructor;\n }\n};\n","export enum ScrollDirection {\n SCROLL_NONE,\n SCROLL_BACKWARD,\n SCROLL_FORWARD,\n}\n\nexport enum Position {\n TOP,\n RIGHT,\n BOTTOM,\n LEFT,\n}\n\nexport const OPTIONS_DEFAULT_DOMAIN_TYPE = 'hour';\n\nexport const OPTIONS_DEFAULT_SUBDOMAIN_TYPE = 'minute';\nexport const OPTIONS_DEFAULT_SUBDOMAIN_WIDTH = 10;\nexport const OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT = 10;\nexport const OPTIONS_DEFAULT_SUBDOMAIN_GUTTER = 2;\nexport const OPTIONS_DEFAULT_SUBDOMAIN_RADIUS = 0;\nexport const OPTIONS_DEFAULT_ANIMATION_DURATION = 200;\nexport const OPTIONS_DEFAULT_RANGE = 12;\nexport const OPTIONS_DEFAULT_ITEM_SELECTOR = '#cal-heatmap';\nexport const OPTIONS_DEFAULT_THEME = 'light';\nexport const OPTIONS_DEFAULT_LOCALE = 'en';\n\nexport const SCALE_BASE_OPACITY_COLOR = 'red';\nexport const SCALE_BASE_COLOR_SCHEME = 'YlOrBr';\nexport const SCALE_BASE_COLOR_TYPE = 'quantize';\nexport const SCALE_BASE_COLOR_DOMAIN = [0, 100];\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.es/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","import { ScrollDirection } from '../constant';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport type DomainCollection from './DomainCollection';\nimport type { Timestamp } from '../index';\n\nexport default class Navigator {\n calendar: CalHeatmap;\n\n minDomainReached: boolean;\n\n maxDomainReached: boolean;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n this.maxDomainReached = false;\n this.minDomainReached = false;\n }\n\n loadNewDomains(\n newDomainCollection: DomainCollection,\n direction: ScrollDirection = ScrollDirection.SCROLL_NONE,\n ): ScrollDirection {\n const { options } = this.calendar.options;\n const templatesClt = this.calendar.templateCollection;\n const minDate = options.date.min ?\n templatesClt.get(options.domain.type)!.extractUnit(+options.date.min) :\n undefined;\n const maxDate = options.date.max ?\n templatesClt.get(options.domain.type)!.extractUnit(+options.date.max) :\n undefined;\n const { domainCollection } = this.calendar;\n\n if (\n this.#isDomainBoundaryReached(\n newDomainCollection,\n minDate,\n maxDate,\n direction,\n )\n ) {\n return ScrollDirection.SCROLL_NONE;\n }\n\n if (direction !== ScrollDirection.SCROLL_NONE) {\n newDomainCollection\n .clamp(minDate, maxDate)\n .slice(options.range, direction === ScrollDirection.SCROLL_FORWARD);\n }\n\n domainCollection.merge(\n newDomainCollection,\n options.range,\n (domainKey: Timestamp, index: number) => {\n let subDomainEndDate = null;\n if (newDomainCollection.at(index + 1)) {\n subDomainEndDate = newDomainCollection.at(index + 1);\n } else {\n subDomainEndDate = this.calendar.dateHelper\n .intervals(options.domain.type, domainKey, 2)\n .pop();\n }\n return templatesClt\n .get(options.subDomain.type)!\n .mapping(domainKey, subDomainEndDate!)\n .map((d) => ({ ...d, v: options.data.defaultValue }));\n },\n );\n\n this.#setDomainsBoundaryReached(\n domainCollection.min,\n domainCollection.max,\n minDate,\n maxDate,\n );\n\n if (direction === ScrollDirection.SCROLL_BACKWARD) {\n this.calendar.eventEmitter.emit('domainsLoaded', [domainCollection.min]);\n } else if (direction === ScrollDirection.SCROLL_FORWARD) {\n this.calendar.eventEmitter.emit('domainsLoaded', [domainCollection.max]);\n }\n\n return direction;\n }\n\n jumpTo(date: Date, reset: boolean): ScrollDirection {\n const { domainCollection, options } = this.calendar;\n const minDate = new Date(domainCollection.min!);\n const maxDate = new Date(domainCollection.max!);\n\n if (date < minDate) {\n return this.loadNewDomains(\n this.calendar.createDomainCollection(date, minDate, false),\n ScrollDirection.SCROLL_BACKWARD,\n );\n }\n if (reset) {\n return this.loadNewDomains(\n this.calendar.createDomainCollection(date, options.options.range),\n minDate < date ?\n ScrollDirection.SCROLL_FORWARD :\n ScrollDirection.SCROLL_BACKWARD,\n );\n }\n\n if (date > maxDate) {\n return this.loadNewDomains(\n this.calendar.createDomainCollection(maxDate, date, false),\n ScrollDirection.SCROLL_FORWARD,\n );\n }\n\n return ScrollDirection.SCROLL_NONE;\n }\n\n #isDomainBoundaryReached(\n newDomainCollection: DomainCollection,\n minDate?: Timestamp,\n maxDate?: Timestamp,\n direction?: ScrollDirection,\n ): boolean {\n if (\n maxDate &&\n newDomainCollection.max! >= maxDate &&\n this.maxDomainReached &&\n direction === ScrollDirection.SCROLL_FORWARD\n ) {\n return true;\n }\n\n if (\n minDate &&\n newDomainCollection.min! <= minDate &&\n this.minDomainReached &&\n direction === ScrollDirection.SCROLL_BACKWARD\n ) {\n return true;\n }\n\n return false;\n }\n\n #setDomainsBoundaryReached(\n lowerBound: Timestamp,\n upperBound: Timestamp,\n min?: Timestamp,\n max?: Timestamp,\n ): void {\n if (min) {\n const reached = lowerBound <= min;\n this.calendar.eventEmitter.emit(\n reached ? 'minDateReached' : 'minDateNotReached',\n );\n this.minDomainReached = reached;\n }\n if (max) {\n const reached = upperBound >= max;\n this.calendar.eventEmitter.emit(\n reached ? 'maxDateReached' : 'maxDateNotReached',\n );\n this.maxDomainReached = reached;\n }\n }\n}\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: FORCED }, {\n join: function join(separator) {\n return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind == 'keys') return createIterResultObject(entry.key, false);\n if (kind == 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = lengthOfArrayLike(items);\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","import { Position } from '../constant';\nimport type { Padding } from '../options/Options';\n\nexport function isHorizontal(position: string): boolean {\n return position === 'left' || position === 'right';\n}\n\nexport function isVertical(position: string): boolean {\n return position === 'top' || position === 'bottom';\n}\n\nexport function horizontalPadding(padding: Padding): number {\n return padding[Position.LEFT] + padding[Position.RIGHT];\n}\n\nexport function verticalPadding(padding: Padding): number {\n return padding[Position.TOP] + padding[Position.BOTTOM];\n}\n","import { ScrollDirection } from '../constant';\nimport { horizontalPadding, verticalPadding } from '../helpers/PositionHelper';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport type DomainPainter from './DomainPainter';\nimport type DomainCollection from '../calendar/DomainCollection';\nimport type { SubDomain, Dimensions, Timestamp } from '../index';\n\ntype SubDomainWithCoordinates = Required<SubDomain> & {\n pre_x: number;\n pre_y: number;\n width: number;\n height: number;\n inner_width: number;\n inner_height: number;\n};\n\nexport default class DomainCoordinates {\n calendar: CalHeatmap;\n\n domainPainter: DomainPainter;\n\n collection: Map<Timestamp, SubDomainWithCoordinates>;\n\n scrollDirection: ScrollDirection;\n\n constructor(calendar: CalHeatmap, domainPainter: DomainPainter) {\n this.calendar = calendar;\n this.domainPainter = domainPainter;\n this.collection = new Map();\n this.scrollDirection = ScrollDirection.SCROLL_FORWARD;\n }\n\n get(domainKey: Timestamp): SubDomainWithCoordinates | undefined {\n return this.collection.get(domainKey);\n }\n\n update(collection: DomainCollection, scrollDirection: ScrollDirection) {\n const { verticalOrientation, domain } = this.calendar.options.options;\n\n this.scrollDirection = scrollDirection;\n const dimensions: Dimensions = {\n width: 0,\n height: 0,\n };\n let exitingTotal = 0;\n let scrollFactor =\n scrollDirection === ScrollDirection.SCROLL_FORWARD ? -1 : 1;\n const { keys } = collection;\n if (this.calendar.options.options.domain.sort === 'desc') {\n keys.reverse();\n scrollFactor *= -1;\n }\n\n collection.yankedDomains.forEach((domainKey: Timestamp) => {\n exitingTotal +=\n this.collection.get(domainKey)![\n verticalOrientation ? 'height' : 'width'\n ];\n });\n collection.yankedDomains.forEach((domainKey: Timestamp) => {\n const coor = this.collection.get(domainKey)!;\n this.collection.set(domainKey, {\n ...coor,\n x: verticalOrientation ? coor.x : coor.x + exitingTotal * scrollFactor,\n y: verticalOrientation ? coor.y + exitingTotal * scrollFactor : coor.y,\n });\n });\n\n keys.forEach((domainKey: Timestamp) => {\n const w = this.#getWidth(domainKey);\n const h = this.#getHeight(domainKey);\n if (verticalOrientation) {\n dimensions.height += h;\n dimensions.width = Math.max(w, dimensions.width);\n } else {\n dimensions.width += w;\n dimensions.height = Math.max(h, dimensions.height);\n }\n\n const x = dimensions.width - w;\n const y = dimensions.height - h;\n\n this.collection.set(domainKey, {\n ...this.collection.get(domainKey)!,\n x: verticalOrientation ? 0 : x,\n y: verticalOrientation ? y : 0,\n pre_x: verticalOrientation ? x : x - exitingTotal * scrollFactor,\n pre_y: verticalOrientation ? y - exitingTotal * scrollFactor : y,\n width: w,\n height: h,\n inner_width: w - (verticalOrientation ? 0 : domain.gutter),\n inner_height: h - (!verticalOrientation ? 0 : domain.gutter),\n });\n });\n\n return dimensions;\n }\n\n /**\n * Return the full width of the domain block\n * @param {number} d Domain start timestamp\n * @return {number} The full width of the domain,\n * including all padding and gutter\n * Used to compute the x position of the domains on the x axis\n */\n #getWidth(d: Timestamp): number {\n const {\n domain, subDomain, x, verticalOrientation,\n } =\n this.calendar.options.options;\n const columnsCount = this.calendar.templateCollection\n .get(subDomain.type)!\n .columnsCount(d);\n\n const subDomainWidth =\n (subDomain.width + subDomain.gutter) * columnsCount - subDomain.gutter;\n\n return (\n horizontalPadding(domain.padding) +\n x.domainHorizontalLabelWidth +\n (verticalOrientation ? 0 : domain.gutter) +\n subDomainWidth\n );\n }\n\n /**\n * Return the full height of the domain block\n * @param {number} d Domain start timestamp\n * @return {number} The full height of the domain,\n * including all paddings and gutter.\n * Used to compute the y position of the domains on the y axis\n */\n #getHeight(d: Timestamp): number {\n const {\n domain, subDomain, x, verticalOrientation,\n } =\n this.calendar.options.options;\n const rowsCount = this.calendar.templateCollection\n .get(subDomain.type)!\n .rowsCount(d);\n\n const subDomainHeight =\n (subDomain.height + subDomain.gutter) * rowsCount - subDomain.gutter;\n\n return (\n verticalPadding(domain.padding) +\n subDomainHeight +\n (verticalOrientation ? domain.gutter : 0) +\n x.domainVerticalLabelHeight\n );\n }\n}\n","import DomainCoordinates from './DomainCoordinates';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport type { ScrollDirection } from '../constant';\nimport type { Dimensions, Timestamp } from '../index';\n\nconst DEFAULT_SELECTOR = '.ch-domain';\n\nexport default class DomainPainter {\n calendar: CalHeatmap;\n\n coordinates: DomainCoordinates;\n\n root: any;\n\n dimensions: Dimensions;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n this.coordinates = new DomainCoordinates(calendar, this);\n this.root = null;\n\n // Dimensions of the internal area containing all the domains\n // Excluding all surrounding margins\n this.dimensions = {\n width: 0,\n height: 0,\n };\n }\n\n paint(scrollDirection: ScrollDirection, rootNode: any): Promise<unknown>[] {\n const { animationDuration } = this.calendar.options.options;\n const t = rootNode.transition().duration(animationDuration);\n const coor = this.coordinates;\n\n this.dimensions = coor.update(\n this.calendar.domainCollection,\n scrollDirection,\n );\n\n const promises: Promise<unknown>[] = [];\n\n this.root = rootNode\n .selectAll(DEFAULT_SELECTOR)\n .data(this.calendar.domainCollection.keys, (d: Timestamp) => d)\n .join(\n (enter: any) => enter\n .append('svg')\n .attr('x', (d: Timestamp) => coor.get(d)!.pre_x)\n .attr('y', (d: Timestamp) => coor.get(d)!.pre_y)\n .attr('width', (d: Timestamp) => coor.get(d)!.inner_width)\n .attr('height', (d: Timestamp) => coor.get(d)!.inner_height)\n .attr('class', (d: Timestamp) => this.#getClassName(d))\n .call((enterSelection: any) => enterSelection\n .append('rect')\n .attr('width', (d: Timestamp) => coor.get(d)!.inner_width)\n .attr('height', (d: Timestamp) => coor.get(d)!.inner_height)\n .attr('class', `${DEFAULT_SELECTOR.slice(1)}-bg`))\n .call((enterSelection: any) => promises.push(\n enterSelection\n .transition(t)\n .attr('x', (d: Timestamp) => coor.get(d)!.x)\n .attr('y', (d: Timestamp) => coor.get(d)!.y)\n .end(),\n )),\n (update: any) => update\n .call((updateSelection: any) => promises.push(\n updateSelection\n .transition(t)\n .attr('x', (d: Timestamp) => coor.get(d)!.x)\n .attr('y', (d: Timestamp) => coor.get(d)!.y)\n .attr('width', (d: Timestamp) => coor.get(d)!.inner_width)\n .attr('height', (d: Timestamp) => coor.get(d)!.inner_height)\n .end(),\n ))\n .call((updateSelection: any) => promises.push(\n updateSelection\n .selectAll(`${DEFAULT_SELECTOR}-bg`)\n .transition(t)\n .attr('width', (d: Timestamp) => coor.get(d)!.inner_width)\n .attr('height', (d: Timestamp) => coor.get(d)!.inner_height)\n .end(),\n )),\n (exit: any) => exit.call((exitSelection: any) => promises.push(\n exitSelection\n .transition(t)\n .attr('x', (d: Timestamp) => coor.get(d)!.x)\n .attr('y', (d: Timestamp) => coor.get(d)!.y)\n .remove()\n .end(),\n )),\n );\n\n return promises;\n }\n\n #getClassName(d: Timestamp): string {\n let classname = DEFAULT_SELECTOR.slice(1);\n const helper = this.calendar.dateHelper.date(d);\n\n switch (this.calendar.options.options.domain.type) {\n case 'hour':\n classname += ` h_${helper.hour()}`;\n break;\n case 'day':\n classname += ` d_${helper.date()} dy_${helper.format('d') + 1}`;\n break;\n case 'week':\n classname += ` w_${helper.week()}`;\n break;\n case 'month':\n classname += ` m_${helper.month() + 1}`;\n break;\n case 'year':\n classname += ` y_${helper.year()}`;\n break;\n default:\n }\n return classname;\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw $TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","var $ = require('../internals/export');\nvar $parseInt = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != $parseInt }, {\n parseInt: $parseInt\n});\n","import castArray from 'lodash-es/castArray';\n\nimport type { SubDomain } from '../index';\nimport type {\n DataOptions,\n DataGroupType,\n DataRecord,\n} from '../options/Options';\nimport { DomainType, Timestamp } from '../index';\nimport type DateHelper from '../helpers/DateHelper';\n\nexport const DOMAIN_FORMAT: Record<DomainType, string> = {\n year: 'YYYY',\n month: 'MMMM',\n week: 'wo [week] YYYY',\n xDay: 'Do MMM',\n ghDay: 'Do MMM',\n day: 'Do MMM',\n hour: 'HH:00',\n minute: 'HH:mm',\n};\n\ntype GroupedRecords = Map<Timestamp, { [key: Timestamp]: DataRecord[] }>;\ntype ValueType = string | number | null;\n\nexport default class DomainCollection {\n collection: Map<Timestamp, SubDomain[]>;\n\n dateHelper: DateHelper;\n\n min: Timestamp;\n\n max: Timestamp;\n\n keys: Timestamp[];\n\n yankedDomains: Timestamp[];\n\n constructor(\n dateHelper: DateHelper,\n interval?: DomainType,\n start?: Date | Timestamp,\n range?: Date | Timestamp,\n excludeEnd: boolean = false,\n ) {\n this.collection = new Map();\n this.dateHelper = dateHelper;\n\n if (interval && start && range) {\n const ts = this.dateHelper\n .intervals(interval, start, range, excludeEnd)\n .map((d: Timestamp) => castArray(d));\n\n // @ts-ignore\n this.collection = new Map(ts);\n }\n\n this.min = 0;\n this.max = 0;\n this.keys = [];\n this.yankedDomains = [];\n\n if (this.collection.size > 0) {\n this.#refreshKeys();\n }\n }\n\n has(key: Timestamp): boolean {\n return this.collection.has(key);\n }\n\n get(key: Timestamp) {\n return this.collection.get(key);\n }\n\n forEach(callback: any) {\n return this.collection.forEach(callback);\n }\n\n at(index: number): Timestamp {\n return this.keys[index];\n }\n\n clamp(minDate?: Timestamp, maxDate?: Timestamp): DomainCollection {\n if (minDate && this.min! < minDate) {\n this.keys\n .filter((key) => key < minDate)\n .forEach((d) => this.collection.delete(d));\n }\n\n if (maxDate && this.max! > maxDate) {\n this.keys\n .filter((key) => key > maxDate)\n .forEach((d) => this.collection.delete(d));\n }\n\n this.#refreshKeys();\n\n return this;\n }\n\n merge(\n newCollection: DomainCollection,\n limit: number,\n createValueCallback: Function,\n ): void {\n this.yankedDomains = [];\n\n newCollection.keys.forEach((domainKey, index) => {\n if (this.has(domainKey)) {\n return;\n }\n\n if (this.collection.size >= limit) {\n let keyToRemove = this.max;\n\n if (domainKey > this.max!) {\n keyToRemove = this.min;\n }\n\n if (keyToRemove && this.collection.delete(keyToRemove)) {\n this.yankedDomains.push(keyToRemove);\n }\n }\n this.collection.set(domainKey, createValueCallback(domainKey, index));\n this.#refreshKeys();\n });\n this.yankedDomains = this.yankedDomains.sort((a, b) => a - b);\n }\n\n slice(limit: number = 0, fromBeginning: boolean = true): DomainCollection {\n if (this.keys.length > limit) {\n const keysToDelete = fromBeginning ?\n this.keys.slice(0, -limit) :\n this.keys.slice(limit);\n\n keysToDelete.forEach((key) => {\n this.collection.delete(key);\n });\n\n this.#refreshKeys();\n }\n\n return this;\n }\n\n fill(\n data: DataRecord[],\n {\n x,\n y,\n groupY,\n defaultValue,\n }: {\n x: DataOptions['x'];\n y: DataOptions['y'];\n groupY: DataOptions['groupY'];\n defaultValue: DataOptions['defaultValue'];\n },\n subDomainKeyExtractor: Function,\n ): void {\n const groupedRecords: GroupedRecords = this.groupRecords(\n data,\n x,\n subDomainKeyExtractor,\n );\n\n this.keys.forEach((domainKey) => {\n const records = groupedRecords.get(domainKey) || {};\n this.#setSubDomainValues(domainKey, records, y, groupY, defaultValue);\n });\n }\n\n #setSubDomainValues(\n domainKey: Timestamp,\n records: { [key: string]: DataRecord[] },\n y: DataOptions['y'],\n groupY: DataOptions['groupY'],\n defaultValue: DataOptions['defaultValue'],\n ): void {\n this.get(domainKey)!.forEach((subDomain: SubDomain, index: number) => {\n let value: ValueType = defaultValue;\n if (records.hasOwnProperty(subDomain.t)) {\n value = this.groupValues(\n this.#extractValues(records[subDomain.t], y),\n groupY,\n );\n }\n\n this.get(domainKey)![index].v = value;\n });\n }\n\n groupRecords(\n data: DataRecord[],\n x: DataOptions['x'],\n subDomainKeyExtractor: Function,\n ): GroupedRecords {\n const results: GroupedRecords = new Map();\n const validSubDomainTimestamp: Map<Timestamp, Timestamp> = new Map();\n this.keys.forEach((domainKey) => {\n this.get(domainKey)!.forEach((subDomain: SubDomain) => {\n validSubDomainTimestamp.set(subDomain.t, domainKey);\n });\n });\n\n data.forEach((d) => {\n const timestamp = this.extractTimestamp(d, x, subDomainKeyExtractor);\n\n if (validSubDomainTimestamp.has(timestamp)) {\n const domainKey = validSubDomainTimestamp.get(timestamp)!;\n const records = results.get(domainKey) || {};\n records[timestamp] ||= [];\n records[timestamp].push(d);\n\n results.set(domainKey, records);\n }\n });\n\n return results;\n }\n\n // eslint-disable-next-line class-methods-use-this\n #extractValues(data: DataRecord[], y: string | Function): ValueType[] {\n return data.map((d): ValueType => (typeof y === 'function' ? y(d) : d[y]));\n }\n\n // eslint-disable-next-line class-methods-use-this\n groupValues(\n values: ValueType[],\n groupFn: DataGroupType | ((values: ValueType[]) => ValueType),\n ): ValueType {\n const cleanedValues = values.filter((n) => n !== null);\n\n if (typeof groupFn === 'string') {\n if (cleanedValues.every((n) => typeof n === 'number')) {\n switch (groupFn) {\n case 'sum':\n return (cleanedValues as number[]).reduce((a, b) => a + b, 0);\n case 'count':\n return cleanedValues.length;\n case 'min':\n return Math.min(...(cleanedValues as number[])) || null;\n case 'max':\n return Math.max(...(cleanedValues as number[])) || null;\n case 'average':\n return cleanedValues.length > 0 ?\n (cleanedValues as number[]).reduce((a, b) => a + b, 0) /\n cleanedValues.length :\n null;\n default:\n return null;\n }\n }\n\n switch (groupFn) {\n case 'count':\n return cleanedValues.length;\n default:\n return null;\n }\n } else if (typeof groupFn === 'function') {\n return groupFn(cleanedValues);\n }\n\n return null;\n }\n\n // eslint-disable-next-line class-methods-use-this\n extractTimestamp(\n datum: DataRecord,\n x: string | Function,\n extractorFn: Function,\n ): Timestamp {\n let timestamp: string | Timestamp =\n typeof x === 'function' ? x(datum) : datum[x];\n\n if (typeof timestamp === 'string') {\n timestamp = +new Date(timestamp);\n }\n\n return extractorFn(timestamp);\n }\n\n #refreshKeys(): Timestamp[] {\n this.keys = Array.from(this.collection.keys())\n .map((d: any) => parseInt(d, 10))\n .sort((a, b) => a - b);\n\n const { keys } = this;\n // eslint-disable-next-line prefer-destructuring\n this.min = keys[0];\n this.max = keys[keys.length - 1];\n\n return this.keys;\n }\n}\n","import { Position } from '../constant';\nimport {\n isVertical,\n verticalPadding,\n horizontalPadding,\n} from '../helpers/PositionHelper';\nimport { DOMAIN_FORMAT } from '../calendar/DomainCollection';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport type { Timestamp } from '../index';\n\nconst DEFAULT_SELECTOR = '.ch-domain-text';\n\nexport default class DomainLabelPainter {\n calendar: CalHeatmap;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n }\n\n paint(root: any): void {\n const { label, type } = this.calendar.options.options.domain;\n const { dateHelper } = this.calendar;\n let format = label.text;\n if (format === null || format === '') {\n return;\n }\n\n if (typeof format === 'undefined') {\n format = DOMAIN_FORMAT[type];\n }\n\n root\n .selectAll(DEFAULT_SELECTOR)\n .data(\n (d: Timestamp) => [d],\n (d: Timestamp) => d,\n )\n .join(\n (enter: any) => enter\n .append('text')\n .attr('class', DEFAULT_SELECTOR.slice(1))\n .attr('x', (d: Timestamp) => this.#getX(d))\n .attr('y', (d: Timestamp) => this.#getY(d))\n .attr('text-anchor', label.textAlign)\n .attr('dominant-baseline', () => this.#textVerticalAlign())\n .text((d: Timestamp, i: number, nodes: any[]) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n dateHelper.format(d, format!, nodes[i]))\n .call((selection: any) => this.#domainRotate(selection)),\n (update: any) => {\n update\n .attr('x', (d: Timestamp) => this.#getX(d))\n .attr('y', (d: Timestamp) => this.#getY(d))\n .attr('text-anchor', label.textAlign)\n .attr('dominant-baseline', () => this.#textVerticalAlign())\n .text((d: Timestamp, i: number, nodes: any[]) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n dateHelper.format(d, format!, nodes[i]))\n .call((selection: any) => this.#domainRotate(selection));\n },\n );\n }\n\n #textVerticalAlign(): string {\n const { position, rotate } = this.calendar.options.options.domain.label;\n\n if (isVertical(position)) {\n return 'middle';\n }\n\n if (\n (rotate === 'left' && position === 'left') ||\n (rotate === 'right' && position === 'right')\n ) {\n return 'bottom';\n }\n\n return 'hanging';\n }\n\n #getX(d: Timestamp): number {\n const {\n padding,\n label: { position, textAlign, offset },\n } = this.calendar.options.options.domain;\n const { domainHorizontalLabelWidth } = this.calendar.options.options.x;\n\n let x = padding[Position.LEFT];\n\n if (position === 'right') {\n x += this.#getDomainInsideWidth(d);\n }\n\n if (textAlign === 'middle') {\n if (['top', 'bottom'].includes(position)) {\n x += this.#getDomainInsideWidth(d) / 2;\n } else {\n x += domainHorizontalLabelWidth / 2;\n }\n }\n\n if (textAlign === 'end') {\n if (isVertical(position)) {\n x += this.#getDomainInsideWidth(d);\n } else {\n x += domainHorizontalLabelWidth;\n }\n }\n\n return x + offset.x;\n }\n\n #getY(d: Timestamp): number {\n const {\n domain: {\n label: { position, offset },\n padding,\n },\n x,\n } = this.calendar.options.options;\n\n let y = padding[Position.TOP] + x.domainVerticalLabelHeight / 2;\n\n if (position === 'bottom') {\n y += this.#getDomainInsideHeight(d);\n }\n\n return y + offset.y;\n }\n\n #getDomainInsideWidth(d: Timestamp): number {\n const {\n domain: { padding },\n x: { domainHorizontalLabelWidth },\n } = this.calendar.options.options;\n const { coordinates } =\n this.calendar.calendarPainter.domainsContainerPainter.domainPainter;\n\n return (\n coordinates.get(d)!.inner_width -\n domainHorizontalLabelWidth -\n horizontalPadding(padding)\n );\n }\n\n #getDomainInsideHeight(d: Timestamp): number {\n const {\n x: { domainVerticalLabelHeight },\n domain: { padding },\n } = this.calendar.options.options;\n const { coordinates } =\n this.calendar.calendarPainter.domainsContainerPainter.domainPainter;\n\n return (\n coordinates.get(d)!.inner_height -\n domainVerticalLabelHeight -\n verticalPadding(padding)\n );\n }\n\n #domainRotate(selection: any) {\n const {\n domain: {\n label: { rotate, textAlign, position },\n },\n x,\n } = this.calendar.options.options;\n const labelWidth = x.domainHorizontalLabelWidth;\n\n switch (rotate) {\n // Rotating the text clockwise\n case 'right':\n selection.attr('transform', (d: Timestamp) => {\n const domainWidth = this.#getDomainInsideWidth(d);\n const domainHeight = this.#getDomainInsideHeight(d);\n const s = [\n `rotate(90, ${position === 'right' ? domainWidth : labelWidth}, 0)`,\n ];\n\n switch (position) {\n case 'right':\n if (textAlign === 'middle') {\n s.push(`translate(${domainHeight / 2 - labelWidth / 2})`);\n } else if (textAlign === 'end') {\n s.push(`translate(${domainHeight - labelWidth})`);\n }\n break;\n case 'left':\n if (textAlign === 'start') {\n s.push(`translate(${labelWidth})`);\n } else if (textAlign === 'middle') {\n s.push(`translate(${labelWidth / 2 + domainHeight / 2})`);\n } else if (textAlign === 'end') {\n s.push(`translate(${domainHeight})`);\n }\n break;\n default:\n }\n\n return s.join(',');\n });\n break;\n // Rotating the text anticlockwise\n case 'left':\n selection.attr('transform', (d: Timestamp) => {\n const domainWidth = this.#getDomainInsideWidth(d);\n const domainHeight = this.#getDomainInsideHeight(d);\n const s = [\n `rotate(270, ${\n position === 'right' ? domainWidth : labelWidth\n }, 0)`,\n ];\n\n switch (position) {\n case 'right':\n if (textAlign === 'start') {\n s.push(`translate(-${domainHeight})`);\n } else if (textAlign === 'middle') {\n s.push(`translate(-${domainHeight / 2 + labelWidth / 2})`);\n } else if (textAlign === 'end') {\n s.push(`translate(-${labelWidth})`);\n }\n break;\n case 'left':\n if (textAlign === 'start') {\n s.push(`translate(${labelWidth - domainHeight})`);\n } else if (textAlign === 'middle') {\n s.push(`translate(${labelWidth / 2 - domainHeight / 2})`);\n }\n break;\n default:\n }\n\n return s.join(',');\n });\n break;\n default:\n }\n }\n}\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","import { Position } from '../constant';\nimport type CalHeatmap from '../CalHeatmap';\nimport type { Timestamp, SubDomain } from '../index';\n\nexport const DEFAULT_SELECTOR = '.ch-subdomain';\nconst HIGHLIGHT_CLASSNAME = 'highlight';\n\nexport default class SubDomainPainter {\n calendar: CalHeatmap;\n\n root: any;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n this.root = null;\n }\n\n paint(root: any): void {\n this.root = root || this.root;\n const containerClassname = `${DEFAULT_SELECTOR}-container`;\n\n const subDomainSvgGroup = this.root\n .selectAll(containerClassname)\n .data(\n (d: Timestamp) => [d],\n (d: Timestamp) => d,\n )\n .join(\n (enter: any) => enter\n .append('svg')\n .call((selection: any) => this.#setPositions(selection))\n .attr('class', containerClassname.slice(1)),\n\n (update: any) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n update.call((selection: any) => this.#setPositions(selection)),\n );\n\n const {\n subDomain: {\n radius, width, height, sort,\n },\n } = this.calendar.options.options;\n const evt = this.calendar.eventEmitter;\n\n subDomainSvgGroup\n .selectAll('g')\n .data((d: Timestamp) => {\n const subDomainsCollection: SubDomain[] =\n this.calendar.domainCollection.get(d)!;\n if (sort === 'desc') {\n const max = Math.max(\n ...subDomainsCollection.map((s: SubDomain) => s.x),\n );\n subDomainsCollection.forEach((s: SubDomain, i: number) => {\n subDomainsCollection[i].x = Math.abs(s.x - max);\n });\n }\n\n return subDomainsCollection;\n })\n .join(\n (enter: any) => enter\n .append('g')\n .call((selection: any) => selection\n .insert('rect')\n .attr('class', (d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.#classname(d.t, `${DEFAULT_SELECTOR.slice(1)}-bg`))\n .attr('width', width)\n .attr('height', height)\n .attr('x', (d: SubDomain) => this.#getX(d))\n .attr('y', (d: SubDomain) => this.#getY(d))\n .on('click', (ev: PointerEvent, d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n evt.emit('click', ev, d.t, d.v))\n .on('mouseover', (ev: PointerEvent, d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n evt.emit('mouseover', ev, d.t, d.v))\n .on('mouseout', (ev: PointerEvent, d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n evt.emit('mouseout', ev, d.t, d.v))\n .attr('rx', radius > 0 ? radius : null)\n .attr('ry', radius > 0 ? radius : null))\n .call((selection: any) => this.#appendText(selection)),\n (update: any) => update\n .selectAll('rect')\n .attr('class', (d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.#classname(d.t, `${DEFAULT_SELECTOR.slice(1)}-bg`))\n .attr('width', width)\n .attr('height', height)\n .attr('x', (d: SubDomain) => this.#getX(d))\n .attr('y', (d: SubDomain) => this.#getY(d))\n .attr('rx', radius)\n .attr('ry', radius),\n );\n }\n\n /**\n * Set the subDomain group X and Y position\n * @param {d3-selection} selection A d3-selection object\n */\n #setPositions(selection: any): void {\n const { options } = this.calendar.options;\n const {\n padding,\n label: { position },\n } = options.domain;\n\n selection\n .attr('x', () => {\n let pos = padding[Position.LEFT];\n if (position === 'left') {\n pos += options.x.domainHorizontalLabelWidth;\n }\n return pos;\n })\n .attr('y', () => {\n let pos = padding[Position.TOP];\n if (position === 'top') {\n pos += options.x.domainVerticalLabelHeight;\n }\n return pos;\n });\n }\n\n /**\n * Return a classname if the specified date should be highlighted\n *\n * @param {number} timestamp Unix timestamp of the current subDomain\n * @return {String} the highlight class\n */\n #classname(timestamp: Timestamp, ...otherClasses: string[]): string {\n const {\n date: { highlight },\n subDomain: { type },\n } = this.calendar.options.options;\n let classname = '';\n\n if (highlight.length > 0) {\n highlight.forEach((d) => {\n const unitFn = this.calendar.templateCollection.get(type).extractUnit;\n\n if (unitFn(+d) === unitFn(timestamp)) {\n classname = HIGHLIGHT_CLASSNAME;\n }\n });\n }\n\n return [classname, ...otherClasses].join(' ').trim();\n }\n\n #appendText(elem: any) {\n const { width, height, label } = this.calendar.options.options.subDomain;\n\n if (!label) {\n return null;\n }\n\n return elem\n .append('text')\n .attr('class', (d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.#classname(d.t, `${DEFAULT_SELECTOR.slice(1)}-text`))\n .attr('x', (d: SubDomain) => this.#getX(d) + width / 2)\n .attr('y', (d: SubDomain) => this.#getY(d) + height / 2)\n .attr('text-anchor', 'middle')\n .attr('dominant-baseline', 'central')\n .text((d: SubDomain, i: number, nodes: any[]) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.calendar.dateHelper.format(d.t, label, d.v, nodes[i]));\n }\n\n #getCoordinates(axis: 'x' | 'y', d: SubDomain): number {\n const { subDomain } = this.calendar.options.options;\n return (\n d[axis] *\n (subDomain[axis === 'x' ? 'width' : 'height'] + subDomain.gutter)\n );\n }\n\n #getX(d: SubDomain): number {\n return this.#getCoordinates('x', d);\n }\n\n #getY(d: SubDomain): number {\n return this.#getCoordinates('y', d);\n }\n}\n","import { select } from 'd3-selection';\nimport DomainPainter from './DomainPainter';\nimport DomainLabelPainter from './DomainLabelPainter';\nimport SubDomainPainter from '../subDomain/SubDomainPainter';\nimport { ScrollDirection } from '../constant';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport type { Dimensions } from '../index';\n\nconst BASE_SELECTOR = '.ch-domain-container';\nconst TRANSITION_CLASSNAME = 'in-transition';\n\nclass DomainsContainerPainter {\n calendar: CalHeatmap;\n\n domainPainter: DomainPainter;\n\n domainLabelPainter: DomainLabelPainter;\n\n subDomainPainter: SubDomainPainter;\n\n dimensions: Dimensions;\n\n root: any;\n\n transitionsQueueCount: number;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n\n this.domainPainter = new DomainPainter(calendar);\n this.subDomainPainter = new SubDomainPainter(calendar);\n this.domainLabelPainter = new DomainLabelPainter(calendar);\n this.dimensions = {\n width: 0,\n height: 0,\n };\n this.transitionsQueueCount = 0;\n }\n\n setup() {\n this.root = this.calendar.calendarPainter.root\n .attr('x', 0)\n .attr('y', 0)\n .append('svg')\n .attr('class', BASE_SELECTOR.slice(1))\n .append('svg')\n .attr('class', `${BASE_SELECTOR.slice(1)}-animation-wrapper`);\n }\n\n paint(scrollDirection: ScrollDirection): Promise<unknown>[] {\n this.#startAnimation();\n\n const result = this.domainPainter.paint(scrollDirection, this.root);\n this.subDomainPainter.paint(this.domainPainter.root);\n this.domainLabelPainter.paint(this.domainPainter.root);\n\n this.#recomputeDimensions();\n\n Promise.allSettled(result).then(() => {\n this.#endAnimation();\n });\n\n return result;\n }\n\n updatePosition() {\n if (!this.root?.node()) {\n return Promise.resolve();\n }\n\n const { animationDuration } = this.calendar.options.options;\n const topHeight = this.calendar.pluginManager.getHeightFromPosition('top');\n const leftWidth = this.calendar.pluginManager.getWidthFromPosition('left');\n\n return [\n select(this.root.node().parentNode)\n .transition()\n .duration(animationDuration)\n .call((selection: any) => {\n selection.attr('x', leftWidth).attr('y', topHeight);\n })\n .end(),\n ];\n }\n\n width(): Dimensions['width'] {\n return this.dimensions.width;\n }\n\n height(): Dimensions['height'] {\n return this.dimensions.height;\n }\n\n destroy(): Promise<unknown> {\n this.#startAnimation();\n\n return Promise.resolve();\n }\n\n #startAnimation() {\n if (this.root?.node()) {\n this.transitionsQueueCount += 1;\n select(this.root.node().parentNode).classed(TRANSITION_CLASSNAME, true);\n }\n }\n\n #endAnimation() {\n if (this.root?.node()) {\n this.transitionsQueueCount -= 1;\n\n if (this.transitionsQueueCount === 0) {\n select(this.root.node().parentNode).classed(\n TRANSITION_CLASSNAME,\n false,\n );\n }\n }\n }\n\n #recomputeDimensions(): void {\n const {\n animationDuration,\n verticalOrientation,\n domain: { gutter },\n } = this.calendar.options.options;\n const { dimensions: domainsDimensions } = this.domainPainter;\n\n this.dimensions = {\n width: domainsDimensions.width - (verticalOrientation ? 0 : gutter),\n height: domainsDimensions.height - (!verticalOrientation ? 0 : gutter),\n };\n\n this.root\n .transition()\n .duration(animationDuration)\n .attr('width', this.dimensions.width)\n .attr('height', this.dimensions.height);\n }\n}\n\nexport default DomainsContainerPainter;\n","import type CalHeatmap from '../CalHeatmap';\n\nclass PluginPainter {\n calendar: CalHeatmap;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n }\n\n paint(): Promise<unknown>[] {\n let promises: Promise<unknown>[] = [];\n\n promises = promises.concat(this.calendar.pluginManager.paintAll());\n promises = promises.concat(this.setPluginsPosition());\n\n return promises;\n }\n\n setPluginsPosition(): Promise<unknown>[] {\n const { pluginManager } = this.calendar;\n const { animationDuration } = this.calendar.options.options;\n const { domainsContainerPainter } = this.calendar.calendarPainter;\n\n const top = pluginManager.getFromPosition('top');\n const right = pluginManager.getFromPosition('right');\n const bottom = pluginManager.getFromPosition('bottom');\n const left = pluginManager.getFromPosition('left');\n\n const topHeight = pluginManager.getHeightFromPosition('top');\n const leftWidth = pluginManager.getWidthFromPosition('left');\n\n const promises: Promise<unknown>[] = [];\n\n let topOffset = 0;\n top.forEach((plugin) => {\n promises.push(\n plugin.root\n .transition()\n .duration(animationDuration)\n .attr('y', topOffset)\n .attr('x', leftWidth)\n .end(),\n );\n topOffset += plugin.options.dimensions!.height;\n });\n\n let leftOffset = 0;\n left.forEach((plugin) => {\n promises.push(\n plugin.root\n .transition()\n .duration(animationDuration)\n .attr('x', leftOffset)\n .attr('y', topHeight)\n .end(),\n );\n leftOffset += plugin.options.dimensions!.width;\n });\n\n bottom.forEach((plugin) => {\n promises.push(\n plugin.root\n .transition()\n .duration(animationDuration)\n .attr('x', leftWidth)\n .attr('y', topHeight + domainsContainerPainter.height())\n .end(),\n );\n });\n\n leftOffset += domainsContainerPainter.width();\n\n right.forEach((plugin) => {\n promises.push(\n plugin.root\n .transition()\n .duration(animationDuration)\n .attr('x', leftOffset)\n .attr('y', topHeight)\n .end(),\n );\n leftOffset += plugin.options.dimensions!.width;\n });\n\n return promises;\n }\n\n insideWidth() {\n return (\n this.calendar.pluginManager.getWidthFromPosition('left') +\n this.calendar.pluginManager.getWidthFromPosition('right')\n );\n }\n\n insideHeight() {\n return (\n this.calendar.pluginManager.getHeightFromPosition('top') +\n this.calendar.pluginManager.getHeightFromPosition('bottom')\n );\n }\n}\n\nexport default PluginPainter;\n","import { select } from 'd3-selection';\n\nimport DomainsContainerPainter from '../domain/DomainsContainerPainter';\nimport PluginPainter from '../plugins/PluginPainter';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport { ScrollDirection } from '../constant';\nimport type { Dimensions } from '../index';\n\nexport const DEFAULT_SELECTOR = '.ch-container';\n\nexport default class CalendarPainter {\n calendar: CalHeatmap;\n\n dimensions: Dimensions;\n\n root: any;\n\n domainsContainerPainter: DomainsContainerPainter;\n\n pluginPainter: PluginPainter;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n this.dimensions = {\n width: 0,\n height: 0,\n };\n this.root = null;\n this.domainsContainerPainter = new DomainsContainerPainter(calendar);\n this.pluginPainter = new PluginPainter(calendar);\n }\n\n setup(): boolean {\n const { itemSelector, theme } = this.calendar.options.options;\n\n if (!this.root) {\n this.root = select(itemSelector)\n .append('svg')\n .attr('data-theme', theme)\n .attr('class', DEFAULT_SELECTOR.slice(1));\n this.domainsContainerPainter.setup();\n }\n\n this.calendar.pluginManager.setupAll();\n\n return true;\n }\n\n paint(navigationDir: ScrollDirection = ScrollDirection.SCROLL_NONE) {\n const transitions = this.domainsContainerPainter\n .paint(navigationDir)\n .concat(this.pluginPainter.paint())\n .concat(this.domainsContainerPainter.updatePosition());\n\n this.#resize();\n\n return Promise.allSettled(transitions);\n }\n\n #getHeight(): Dimensions['height'] {\n return (\n this.domainsContainerPainter.height() + this.pluginPainter.insideHeight()\n );\n }\n\n #getWidth(): Dimensions['width'] {\n return (\n this.domainsContainerPainter.width() + this.pluginPainter.insideWidth()\n );\n }\n\n #resize(): void {\n const { options } = this.calendar.options;\n\n const newWidth = this.#getWidth();\n const newHeight = this.#getHeight();\n\n this.root\n .transition()\n .duration(options.animationDuration)\n .attr('width', newWidth)\n .attr('height', newHeight);\n\n if (\n newWidth !== this.dimensions.width ||\n newHeight !== this.dimensions.height\n ) {\n this.calendar.eventEmitter.emit(\n 'resize',\n newWidth,\n newHeight,\n this.dimensions.width,\n this.dimensions.height,\n );\n }\n\n this.dimensions = {\n width: newWidth,\n height: newHeight,\n };\n }\n\n destroy(): Promise<unknown> {\n const result: Promise<unknown>[] = this.calendar.pluginManager\n .destroyAll()\n .concat(this.domainsContainerPainter.destroy());\n\n if (!this.root) {\n return Promise.allSettled(result);\n }\n\n result.push(\n this.root\n .transition()\n .duration(this.calendar.options.options.animationDuration)\n .attr('width', 0)\n .attr('height', 0)\n .remove()\n .end(),\n );\n\n return Promise.allSettled(result);\n }\n}\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar nativeStartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return nativeStartsWith\n ? nativeStartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","var isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","import {ascending, descending} from \"d3\";\n\nexport function defined(x) {\n return x != null && !Number.isNaN(x);\n}\n\nexport function ascendingDefined(a, b) {\n return +defined(b) - +defined(a) || ascending(a, b);\n}\n\nexport function descendingDefined(a, b) {\n return +defined(b) - +defined(a) || descending(a, b);\n}\n\nexport function nonempty(x) {\n return x != null && `${x}` !== \"\";\n}\n\nexport function finite(x) {\n return isFinite(x) ? x : NaN;\n}\n\nexport function positive(x) {\n return x > 0 && isFinite(x) ? x : NaN;\n}\n\nexport function negative(x) {\n return x < 0 && isFinite(x) ? x : NaN;\n}\n","const re = /^(?:[-+]\\d{2})?\\d{4}(?:-\\d{2}(?:-\\d{2})?)?(?:T\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{3})?)?(?:Z|[-+]\\d{2}:?\\d{2})?)?$/;\n\nexport default function parse(string, fallback) {\n if (!re.test(string += \"\")) return typeof fallback === \"function\" ? fallback(string) : fallback;\n return new Date(string);\n}\n","import {utcSecond, utcMinute, utcHour, utcDay, utcWeek, utcMonth, utcYear} from \"d3\";\nimport {utcMonday, utcTuesday, utcWednesday, utcThursday, utcFriday, utcSaturday, utcSunday} from \"d3\";\nimport {timeSecond, timeMinute, timeHour, timeDay, timeWeek, timeMonth, timeYear} from \"d3\";\nimport {timeMonday, timeTuesday, timeWednesday, timeThursday, timeFriday, timeSaturday, timeSunday} from \"d3\";\n\nconst timeIntervals = new Map([\n [\"second\", timeSecond],\n [\"minute\", timeMinute],\n [\"hour\", timeHour],\n [\"day\", timeDay],\n [\"week\", timeWeek],\n [\"month\", timeMonth],\n [\"quarter\", timeMonth.every(3)],\n [\"half\", timeMonth.every(6)],\n [\"year\", timeYear],\n [\"monday\", timeMonday],\n [\"tuesday\", timeTuesday],\n [\"wednesday\", timeWednesday],\n [\"thursday\", timeThursday],\n [\"friday\", timeFriday],\n [\"saturday\", timeSaturday],\n [\"sunday\", timeSunday]\n]);\n\nconst utcIntervals = new Map([\n [\"second\", utcSecond],\n [\"minute\", utcMinute],\n [\"hour\", utcHour],\n [\"day\", utcDay],\n [\"week\", utcWeek],\n [\"month\", utcMonth],\n [\"quarter\", utcMonth.every(3)],\n [\"half\", utcMonth.every(6)],\n [\"year\", utcYear],\n [\"monday\", utcMonday],\n [\"tuesday\", utcTuesday],\n [\"wednesday\", utcWednesday],\n [\"thursday\", utcThursday],\n [\"friday\", utcFriday],\n [\"saturday\", utcSaturday],\n [\"sunday\", utcSunday]\n]);\n\nexport function maybeTimeInterval(interval) {\n const i = timeIntervals.get(`${interval}`.toLowerCase());\n if (!i) throw new Error(`unknown interval: ${interval}`);\n return i;\n}\n\nexport function maybeUtcInterval(interval) {\n const i = utcIntervals.get(`${interval}`.toLowerCase());\n if (!i) throw new Error(`unknown interval: ${interval}`);\n return i;\n}\n","import {parse as isoParse} from \"isoformat\";\nimport {color, descending, range as rangei, quantile} from \"d3\";\nimport {maybeTimeInterval, maybeUtcInterval} from \"./time.js\";\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray\nexport const TypedArray = Object.getPrototypeOf(Uint8Array);\nconst objectToString = Object.prototype.toString;\n\nexport function valueof(data, value, type) {\n const valueType = typeof value;\n return valueType === \"string\"\n ? maybeTypedMap(data, field(value), type)\n : valueType === \"function\"\n ? maybeTypedMap(data, value, type)\n : valueType === \"number\" || value instanceof Date || valueType === \"boolean\"\n ? map(data, constant(value), type)\n : typeof value?.transform === \"function\"\n ? maybeTypedArrayify(value.transform(data), type)\n : maybeTypedArrayify(value, type);\n}\n\nfunction maybeTypedMap(data, f, type) {\n return map(data, type?.prototype instanceof TypedArray ? floater(f) : f, type);\n}\n\nfunction maybeTypedArrayify(data, type) {\n return type === undefined\n ? arrayify(data) // preserve undefined type\n : data instanceof type\n ? data\n : type.prototype instanceof TypedArray && !(data instanceof TypedArray)\n ? type.from(data, coerceNumber)\n : type.from(data);\n}\n\nfunction floater(f) {\n return (d, i) => coerceNumber(f(d, i));\n}\n\nexport const field = (name) => (d) => d[name];\nexport const indexOf = {transform: range};\nexport const identity = {transform: (d) => d};\nexport const zero = () => 0;\nexport const one = () => 1;\nexport const yes = () => true;\nexport const string = (x) => (x == null ? x : `${x}`);\nexport const number = (x) => (x == null ? x : +x);\nexport const boolean = (x) => (x == null ? x : !!x);\nexport const first = (x) => (x ? x[0] : undefined);\nexport const second = (x) => (x ? x[1] : undefined);\nexport const third = (x) => (x ? x[2] : undefined);\nexport const constant = (x) => () => x;\n\n// Converts a string like “p25†into a function that takes an index I and an\n// accessor function f, returning the corresponding percentile value.\nexport function percentile(reduce) {\n const p = +`${reduce}`.slice(1) / 100;\n return (I, f) => quantile(I, p, f);\n}\n\n// If the values are specified as a typed array, no coercion is required.\nexport function coerceNumbers(values) {\n return values instanceof TypedArray ? values : map(values, coerceNumber, Float64Array);\n}\n\n// Unlike Mark’s number, here we want to convert null and undefined to NaN since\n// the result will be stored in a Float64Array and we don’t want null to be\n// coerced to zero. We use Number instead of unary + to allow BigInt coercion.\nfunction coerceNumber(x) {\n return x == null ? NaN : Number(x);\n}\n\nexport function coerceDates(values) {\n return map(values, coerceDate);\n}\n\n// When coercing strings to dates, we only want to allow the ISO 8601 format\n// since the built-in string parsing of the Date constructor varies across\n// browsers. (In the future, this could be made more liberal if desired, though\n// it is still generally preferable to do date parsing yourself explicitly,\n// rather than rely on Plot.) Any non-string values are coerced to number first\n// and treated as milliseconds since UNIX epoch.\nexport function coerceDate(x) {\n return x instanceof Date && !isNaN(x)\n ? x\n : typeof x === \"string\"\n ? isoParse(x)\n : x == null || isNaN((x = +x))\n ? undefined\n : new Date(x);\n}\n\n// Some channels may allow a string constant to be specified; to differentiate\n// string constants (e.g., \"red\") from named fields (e.g., \"date\"), this\n// function tests whether the given value is a CSS color string and returns a\n// tuple [channel, constant] where one of the two is undefined, and the other is\n// the given value. If you wish to reference a named field that is also a valid\n// CSS color, use an accessor (d => d.red) instead.\nexport function maybeColorChannel(value, defaultValue) {\n if (value === undefined) value = defaultValue;\n return value === null ? [undefined, \"none\"] : isColor(value) ? [undefined, value] : [value, undefined];\n}\n\n// Similar to maybeColorChannel, this tests whether the given value is a number\n// indicating a constant, and otherwise assumes that it’s a channel value.\nexport function maybeNumberChannel(value, defaultValue) {\n if (value === undefined) value = defaultValue;\n return value === null || typeof value === \"number\" ? [undefined, value] : [value, undefined];\n}\n\n// Validates the specified optional string against the allowed list of keywords.\nexport function maybeKeyword(input, name, allowed) {\n if (input != null) return keyword(input, name, allowed);\n}\n\n// Validates the specified required string against the allowed list of keywords.\nexport function keyword(input, name, allowed) {\n const i = `${input}`.toLowerCase();\n if (!allowed.includes(i)) throw new Error(`invalid ${name}: ${input}`);\n return i;\n}\n\n// Promotes the specified data to an array as needed.\nexport function arrayify(data) {\n return data == null || data instanceof Array || data instanceof TypedArray ? data : Array.from(data);\n}\n\n// An optimization of type.from(values, f): if the given values are already an\n// instanceof the desired array type, the faster values.map method is used.\nexport function map(values, f, type = Array) {\n return values == null ? values : values instanceof type ? values.map(f) : type.from(values, f);\n}\n\n// An optimization of type.from(values): if the given values are already an\n// instanceof the desired array type, the faster values.slice method is used.\nexport function slice(values, type = Array) {\n return values instanceof type ? values.slice() : type.from(values);\n}\n\n// Disambiguates an options object (e.g., {y: \"x2\"}) from a primitive value.\nexport function isObject(option) {\n return option?.toString === objectToString;\n}\n\n// Disambiguates a scale options object (e.g., {color: {type: \"linear\"}}) from\n// some other option (e.g., {color: \"red\"}). When creating standalone legends,\n// this is used to test whether a scale is defined; this should be consistent\n// with inferScaleType when there are no channels associated with the scale, and\n// if this returns true, then normalizeScale must return non-null.\nexport function isScaleOptions(option) {\n return isObject(option) && (option.type !== undefined || option.domain !== undefined);\n}\n\n// Disambiguates an options object (e.g., {y: \"x2\"}) from a channel value\n// definition expressed as a channel transform (e.g., {transform: …}).\nexport function isOptions(option) {\n return isObject(option) && typeof option.transform !== \"function\";\n}\n\n// Disambiguates a sort transform (e.g., {sort: \"date\"}) from a channel domain\n// sort definition (e.g., {sort: {y: \"x\"}}).\nexport function isDomainSort(sort) {\n return isOptions(sort) && sort.value === undefined && sort.channel === undefined;\n}\n\n// For marks specified either as [0, x] or [x1, x2], such as areas and bars.\nexport function maybeZero(x, x1, x2, x3 = identity) {\n if (x1 === undefined && x2 === undefined) {\n // {x} or {}\n (x1 = 0), (x2 = x === undefined ? x3 : x);\n } else if (x1 === undefined) {\n // {x, x2} or {x2}\n x1 = x === undefined ? 0 : x;\n } else if (x2 === undefined) {\n // {x, x1} or {x1}\n x2 = x === undefined ? 0 : x;\n }\n return [x1, x2];\n}\n\n// For marks that have x and y channels (e.g., cell, dot, line, text).\nexport function maybeTuple(x, y) {\n return x === undefined && y === undefined ? [first, second] : [x, y];\n}\n\n// A helper for extracting the z channel, if it is variable. Used by transforms\n// that require series, such as moving average and normalize.\nexport function maybeZ({z, fill, stroke} = {}) {\n if (z === undefined) [z] = maybeColorChannel(fill);\n if (z === undefined) [z] = maybeColorChannel(stroke);\n return z;\n}\n\n// Returns a Uint32Array with elements [0, 1, 2, … data.length - 1].\nexport function range(data) {\n const n = data.length;\n const r = new Uint32Array(n);\n for (let i = 0; i < n; ++i) r[i] = i;\n return r;\n}\n\n// Returns a filtered range of data given the test function.\nexport function where(data, test) {\n return range(data).filter((i) => test(data[i], i, data));\n}\n\n// Returns an array [values[index[0]], values[index[1]], …].\nexport function take(values, index) {\n return map(index, (i) => values[i]);\n}\n\n// Based on InternMap (d3.group).\nexport function keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n\nexport function maybeInput(key, options) {\n if (options[key] !== undefined) return options[key];\n switch (key) {\n case \"x1\":\n case \"x2\":\n key = \"x\";\n break;\n case \"y1\":\n case \"y2\":\n key = \"y\";\n break;\n }\n return options[key];\n}\n\nexport function column(source) {\n // Defines a column whose values are lazily populated by calling the returned\n // setter. If the given source is labeled, the label is propagated to the\n // returned column definition.\n let value;\n return [\n {\n transform: () => value,\n label: labelof(source)\n },\n (v) => (value = v)\n ];\n}\n\n// Like column, but allows the source to be null.\nexport function maybeColumn(source) {\n return source == null ? [source] : column(source);\n}\n\nexport function labelof(value, defaultValue) {\n return typeof value === \"string\" ? value : value && value.label !== undefined ? value.label : defaultValue;\n}\n\n// Assuming that both x1 and x2 and lazy columns (per above), this derives a new\n// a column that’s the average of the two, and which inherits the column label\n// (if any). Both input columns are assumed to be quantitative. If either column\n// is temporal, the returned column is also temporal.\nexport function mid(x1, x2) {\n return {\n transform(data) {\n const X1 = x1.transform(data);\n const X2 = x2.transform(data);\n return isTemporal(X1) || isTemporal(X2)\n ? map(X1, (_, i) => new Date((+X1[i] + +X2[i]) / 2))\n : map(X1, (_, i) => (+X1[i] + +X2[i]) / 2, Float64Array);\n },\n label: x1.label\n };\n}\n\n// If interval is not nullish, converts interval shorthand such as a number (for\n// multiples) or a time interval name (such as “dayâ€) to a {floor, offset,\n// range} object similar to a D3 time interval.\nexport function maybeInterval(interval, type) {\n if (interval == null) return;\n if (typeof interval === \"number\") {\n if (0 < interval && interval < 1 && Number.isInteger(1 / interval)) interval = -1 / interval;\n const n = Math.abs(interval);\n return interval < 0\n ? {\n floor: (d) => Math.floor(d * n) / n,\n offset: (d) => (d * n + 1) / n, // note: no optional step for simplicity\n range: (lo, hi) => rangei(Math.ceil(lo * n), hi * n).map((x) => x / n)\n }\n : {\n floor: (d) => Math.floor(d / n) * n,\n offset: (d) => d + n, // note: no optional step for simplicity\n range: (lo, hi) => rangei(Math.ceil(lo / n), hi / n).map((x) => x * n)\n };\n }\n if (typeof interval === \"string\") return (type === \"time\" ? maybeTimeInterval : maybeUtcInterval)(interval);\n if (typeof interval.floor !== \"function\") throw new Error(\"invalid interval; missing floor method\");\n if (typeof interval.offset !== \"function\") throw new Error(\"invalid interval; missing offset method\");\n return interval;\n}\n\n// Like maybeInterval, but requires a range method too.\nexport function maybeRangeInterval(interval, type) {\n interval = maybeInterval(interval, type);\n if (interval && typeof interval.range !== \"function\") throw new Error(\"invalid interval: missing range method\");\n return interval;\n}\n\n// Like maybeRangeInterval, but requires a ceil method too.\nexport function maybeNiceInterval(interval, type) {\n interval = maybeRangeInterval(interval, type);\n if (interval && typeof interval.ceil !== \"function\") throw new Error(\"invalid interval: missing ceil method\");\n return interval;\n}\n\n// This distinguishes between per-dimension options and a standalone value.\nexport function maybeValue(value) {\n return value === undefined || isOptions(value) ? value : {value};\n}\n\n// Coerces the given channel values (if any) to numbers. This is useful when\n// values will be interpolated into other code, such as an SVG transform, and\n// where we don’t wish to allow unexpected behavior for weird input.\nexport function numberChannel(source) {\n return source == null\n ? null\n : {\n transform: (data) => valueof(data, source, Float64Array),\n label: labelof(source)\n };\n}\n\nexport function isTuples(data) {\n if (!isIterable(data)) return false;\n for (const d of data) {\n if (d == null) continue;\n return typeof d === \"object\" && \"0\" in d && \"1\" in d;\n }\n}\n\nexport function isIterable(value) {\n return value && typeof value[Symbol.iterator] === \"function\";\n}\n\nexport function isTextual(values) {\n for (const value of values) {\n if (value == null) continue;\n return typeof value !== \"object\" || value instanceof Date;\n }\n}\n\nexport function isOrdinal(values) {\n for (const value of values) {\n if (value == null) continue;\n const type = typeof value;\n return type === \"string\" || type === \"boolean\";\n }\n}\n\nexport function isTemporal(values) {\n for (const value of values) {\n if (value == null) continue;\n return value instanceof Date;\n }\n}\n\n// Are these strings that might represent dates? This is stricter than ISO 8601\n// because we want to ignore false positives on numbers; for example, the string\n// \"1192\" is more likely to represent a number than a date even though it is\n// valid ISO 8601 representing 1192-01-01.\nexport function isTemporalString(values) {\n for (const value of values) {\n if (value == null) continue;\n return typeof value === \"string\" && isNaN(value) && isoParse(value);\n }\n}\n\n// Are these strings that might represent numbers? This is stricter than\n// coercion because we want to ignore false positives on e.g. empty strings.\nexport function isNumericString(values) {\n for (const value of values) {\n if (value == null) continue;\n if (typeof value !== \"string\") return false;\n if (!value.trim()) continue;\n return !isNaN(value);\n }\n}\n\nexport function isNumeric(values) {\n for (const value of values) {\n if (value == null) continue;\n return typeof value === \"number\";\n }\n}\n\n// Returns true if every non-null value in the specified iterable of values\n// passes the specified predicate, and there is at least one non-null value;\n// returns false if at least one non-null value does not pass the specified\n// predicate; otherwise returns undefined (as if all values are null).\nexport function isEvery(values, is) {\n let every;\n for (const value of values) {\n if (value == null) continue;\n if (!is(value)) return false;\n every = true;\n }\n return every;\n}\n\n// Mostly relies on d3-color, with a few extra color keywords. Currently this\n// strictly requires that the value be a string; we might want to apply string\n// coercion here, though note that d3-color instances would need to support\n// valueOf to work correctly with InternMap.\n// https://www.w3.org/TR/SVG11/painting.html#SpecifyingPaint\nexport function isColor(value) {\n if (typeof value !== \"string\") return false;\n value = value.toLowerCase().trim();\n return (\n value === \"none\" ||\n value === \"currentcolor\" ||\n (value.startsWith(\"url(\") && value.endsWith(\")\")) || // <funciri>, e.g. pattern or gradient\n (value.startsWith(\"var(\") && value.endsWith(\")\")) || // CSS variable\n color(value) !== null\n );\n}\n\nexport function isOpacity(value) {\n return typeof value === \"number\" && ((0 <= value && value <= 1) || isNaN(value));\n}\n\nexport function isNoneish(value) {\n return value == null || isNone(value);\n}\n\nexport function isNone(value) {\n return /^\\s*none\\s*$/i.test(value);\n}\n\nexport function isRound(value) {\n return /^\\s*round\\s*$/i.test(value);\n}\n\nexport function maybeFrameAnchor(value = \"middle\") {\n return keyword(value, \"frameAnchor\", [\n \"middle\",\n \"top-left\",\n \"top\",\n \"top-right\",\n \"right\",\n \"bottom-right\",\n \"bottom\",\n \"bottom-left\",\n \"left\"\n ]);\n}\n\n// Like a sort comparator, returns a positive value if the given array of values\n// is in ascending order, a negative value if the values are in descending\n// order. Assumes monotonicity; only tests the first and last values.\nexport function orderof(values) {\n if (values == null) return;\n const first = values[0];\n const last = values[values.length - 1];\n return descending(first, last);\n}\n\n// Unlike {...defaults, ...options}, this ensures that any undefined (but\n// present) properties in options inherit the given default value.\nexport function inherit(options = {}, ...rest) {\n let o = options;\n for (const defaults of rest) {\n for (const key in defaults) {\n if (o[key] === undefined) {\n const value = defaults[key];\n if (o === options) o = {...o, [key]: value};\n else o[key] = value;\n }\n }\n }\n return o;\n}\n\n// Given an iterable of named things (objects with a name property), returns a\n// corresponding object with properties associated with the given name.\nexport function named(things) {\n console.warn(\"named iterables are deprecated; please use an object instead\");\n const names = new Set();\n return Object.fromEntries(\n Array.from(things, (thing) => {\n const {name} = thing;\n if (name == null) throw new Error(\"missing name\");\n const key = `${name}`;\n if (key === \"__proto__\") throw new Error(`illegal name: ${key}`);\n if (names.has(key)) throw new Error(`duplicate name: ${key}`);\n names.add(key);\n return [name, thing];\n })\n );\n}\n\nexport function maybeNamed(things) {\n return isIterable(things) ? named(things) : things;\n}\n","// Positional scales have associated axes, and for ordinal data, a point or band\n// scale is used instead of an ordinal scale.\nexport const position = Symbol(\"position\");\n\n// Color scales default to the turbo interpolator for quantitative data, and to\n// the Tableau10 scheme for ordinal data. Color scales may also have an\n// associated legend.\nexport const color = Symbol(\"color\");\n\n// Radius scales default to the sqrt type, have a default range of [0, 3], and a\n// default domain from 0 to the median first quartile of associated channels.\nexport const radius = Symbol(\"radius\");\n\n// Length scales default to the linear type, have a default range of [0, 12],\n// and a default domain from 0 to the median median of associated channels.\nexport const length = Symbol(\"length\");\n\n// Opacity scales have a default range of [0, 1], and a default domain from 0 to\n// the maximum value of associated channels.\nexport const opacity = Symbol(\"opacity\");\n\n// Symbol scales have a default range of categorical symbols.\nexport const symbol = Symbol(\"symbol\");\n\n// TODO Rather than hard-coding the list of known scale names, collect the names\n// and categories for each plot specification, so that custom marks can register\n// custom scales.\nexport const registry = new Map([\n [\"x\", position],\n [\"y\", position],\n [\"fx\", position],\n [\"fy\", position],\n [\"r\", radius],\n [\"color\", color],\n [\"opacity\", opacity],\n [\"symbol\", symbol],\n [\"length\", length]\n]);\n","import {symbolAsterisk, symbolDiamond2, symbolPlus, symbolSquare2, symbolTriangle2, symbolTimes} from \"d3\";\nimport {symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye} from \"d3\";\n\nexport const sqrt3 = Math.sqrt(3);\nexport const sqrt4_3 = 2 / sqrt3;\n\nconst symbolHexagon = {\n draw(context, size) {\n const rx = Math.sqrt(size / Math.PI),\n ry = rx * sqrt4_3,\n hy = ry / 2;\n context.moveTo(0, ry);\n context.lineTo(rx, hy);\n context.lineTo(rx, -hy);\n context.lineTo(0, -ry);\n context.lineTo(-rx, -hy);\n context.lineTo(-rx, hy);\n context.closePath();\n }\n};\n\nconst symbols = new Map([\n [\"asterisk\", symbolAsterisk],\n [\"circle\", symbolCircle],\n [\"cross\", symbolCross],\n [\"diamond\", symbolDiamond],\n [\"diamond2\", symbolDiamond2],\n [\"hexagon\", symbolHexagon],\n [\"plus\", symbolPlus],\n [\"square\", symbolSquare],\n [\"square2\", symbolSquare2],\n [\"star\", symbolStar],\n [\"times\", symbolTimes],\n [\"triangle\", symbolTriangle],\n [\"triangle2\", symbolTriangle2],\n [\"wye\", symbolWye]\n]);\n\nfunction isSymbolObject(value) {\n return value && typeof value.draw === \"function\";\n}\n\nexport function isSymbol(value) {\n if (isSymbolObject(value)) return true;\n if (typeof value !== \"string\") return false;\n return symbols.has(value.toLowerCase());\n}\n\nexport function maybeSymbol(symbol) {\n if (symbol == null || isSymbolObject(symbol)) return symbol;\n const value = symbols.get(`${symbol}`.toLowerCase());\n if (value) return value;\n throw new Error(`invalid symbol: ${symbol}`);\n}\n\nexport function maybeSymbolChannel(symbol) {\n if (symbol == null || isSymbolObject(symbol)) return [undefined, symbol];\n if (typeof symbol === \"string\") {\n const value = symbols.get(`${symbol}`.toLowerCase());\n if (value) return [undefined, value];\n }\n return [symbol, undefined];\n}\n","let warnings = 0;\n\nexport function consumeWarnings() {\n const w = warnings;\n warnings = 0;\n return w;\n}\n\nexport function warn(message) {\n console.warn(message);\n ++warnings;\n}\n","import {\n interpolateBlues,\n interpolateBrBG,\n interpolateBuGn,\n interpolateBuPu,\n interpolateGnBu,\n interpolateGreens,\n interpolateGreys,\n interpolateOranges,\n interpolateOrRd,\n interpolatePiYG,\n interpolatePRGn,\n interpolatePuBu,\n interpolatePuBuGn,\n interpolatePuOr,\n interpolatePuRd,\n interpolatePurples,\n interpolateRdBu,\n interpolateRdGy,\n interpolateRdPu,\n interpolateRdYlBu,\n interpolateRdYlGn,\n interpolateReds,\n interpolateSpectral,\n interpolateYlGn,\n interpolateYlGnBu,\n interpolateYlOrBr,\n interpolateYlOrRd,\n interpolateTurbo,\n interpolateViridis,\n interpolateMagma,\n interpolateInferno,\n interpolatePlasma,\n interpolateCividis,\n interpolateCubehelixDefault,\n interpolateWarm,\n interpolateCool,\n interpolateRainbow,\n interpolateSinebow,\n quantize,\n schemeAccent,\n schemeBlues,\n schemeBrBG,\n schemeBuGn,\n schemeBuPu,\n schemeCategory10,\n schemeDark2,\n schemeGnBu,\n schemeGreens,\n schemeGreys,\n schemeOranges,\n schemeOrRd,\n schemePaired,\n schemePastel1,\n schemePastel2,\n schemePiYG,\n schemePRGn,\n schemePuBu,\n schemePuBuGn,\n schemePuOr,\n schemePuRd,\n schemePurples,\n schemeRdBu,\n schemeRdGy,\n schemeRdPu,\n schemeRdYlBu,\n schemeRdYlGn,\n schemeReds,\n schemeSet1,\n schemeSet2,\n schemeSet3,\n schemeSpectral,\n schemeTableau10,\n schemeYlGn,\n schemeYlGnBu,\n schemeYlOrBr,\n schemeYlOrRd\n} from \"d3\";\n\nconst ordinalSchemes = new Map([\n // categorical\n [\"accent\", schemeAccent],\n [\"category10\", schemeCategory10],\n [\"dark2\", schemeDark2],\n [\"paired\", schemePaired],\n [\"pastel1\", schemePastel1],\n [\"pastel2\", schemePastel2],\n [\"set1\", schemeSet1],\n [\"set2\", schemeSet2],\n [\"set3\", schemeSet3],\n [\"tableau10\", schemeTableau10],\n\n // diverging\n [\"brbg\", scheme11(schemeBrBG, interpolateBrBG)],\n [\"prgn\", scheme11(schemePRGn, interpolatePRGn)],\n [\"piyg\", scheme11(schemePiYG, interpolatePiYG)],\n [\"puor\", scheme11(schemePuOr, interpolatePuOr)],\n [\"rdbu\", scheme11(schemeRdBu, interpolateRdBu)],\n [\"rdgy\", scheme11(schemeRdGy, interpolateRdGy)],\n [\"rdylbu\", scheme11(schemeRdYlBu, interpolateRdYlBu)],\n [\"rdylgn\", scheme11(schemeRdYlGn, interpolateRdYlGn)],\n [\"spectral\", scheme11(schemeSpectral, interpolateSpectral)],\n\n // reversed diverging (for temperature data)\n [\"burd\", scheme11r(schemeRdBu, interpolateRdBu)],\n [\"buylrd\", scheme11r(schemeRdYlBu, interpolateRdYlBu)],\n\n // sequential (single-hue)\n [\"blues\", scheme9(schemeBlues, interpolateBlues)],\n [\"greens\", scheme9(schemeGreens, interpolateGreens)],\n [\"greys\", scheme9(schemeGreys, interpolateGreys)],\n [\"oranges\", scheme9(schemeOranges, interpolateOranges)],\n [\"purples\", scheme9(schemePurples, interpolatePurples)],\n [\"reds\", scheme9(schemeReds, interpolateReds)],\n\n // sequential (multi-hue)\n [\"turbo\", schemei(interpolateTurbo)],\n [\"viridis\", schemei(interpolateViridis)],\n [\"magma\", schemei(interpolateMagma)],\n [\"inferno\", schemei(interpolateInferno)],\n [\"plasma\", schemei(interpolatePlasma)],\n [\"cividis\", schemei(interpolateCividis)],\n [\"cubehelix\", schemei(interpolateCubehelixDefault)],\n [\"warm\", schemei(interpolateWarm)],\n [\"cool\", schemei(interpolateCool)],\n [\"bugn\", scheme9(schemeBuGn, interpolateBuGn)],\n [\"bupu\", scheme9(schemeBuPu, interpolateBuPu)],\n [\"gnbu\", scheme9(schemeGnBu, interpolateGnBu)],\n [\"orrd\", scheme9(schemeOrRd, interpolateOrRd)],\n [\"pubu\", scheme9(schemePuBu, interpolatePuBu)],\n [\"pubugn\", scheme9(schemePuBuGn, interpolatePuBuGn)],\n [\"purd\", scheme9(schemePuRd, interpolatePuRd)],\n [\"rdpu\", scheme9(schemeRdPu, interpolateRdPu)],\n [\"ylgn\", scheme9(schemeYlGn, interpolateYlGn)],\n [\"ylgnbu\", scheme9(schemeYlGnBu, interpolateYlGnBu)],\n [\"ylorbr\", scheme9(schemeYlOrBr, interpolateYlOrBr)],\n [\"ylorrd\", scheme9(schemeYlOrRd, interpolateYlOrRd)],\n\n // cyclical\n [\"rainbow\", schemeicyclical(interpolateRainbow)],\n [\"sinebow\", schemeicyclical(interpolateSinebow)]\n]);\n\nfunction scheme9(scheme, interpolate) {\n return ({length: n}) => {\n if (n === 1) return [scheme[3][1]]; // favor midpoint\n if (n === 2) return [scheme[3][1], scheme[3][2]]; // favor darker\n n = Math.max(3, Math.floor(n));\n return n > 9 ? quantize(interpolate, n) : scheme[n];\n };\n}\n\nfunction scheme11(scheme, interpolate) {\n return ({length: n}) => {\n if (n === 2) return [scheme[3][0], scheme[3][2]]; // favor diverging extrema\n n = Math.max(3, Math.floor(n));\n return n > 11 ? quantize(interpolate, n) : scheme[n];\n };\n}\n\nfunction scheme11r(scheme, interpolate) {\n return ({length: n}) => {\n if (n === 2) return [scheme[3][2], scheme[3][0]]; // favor diverging extrema\n n = Math.max(3, Math.floor(n));\n return n > 11 ? quantize((t) => interpolate(1 - t), n) : scheme[n].slice().reverse();\n };\n}\n\nfunction schemei(interpolate) {\n return ({length: n}) => quantize(interpolate, Math.max(2, Math.floor(n)));\n}\n\nfunction schemeicyclical(interpolate) {\n return ({length: n}) => quantize(interpolate, Math.floor(n) + 1).slice(0, -1);\n}\n\nexport function ordinalScheme(scheme) {\n const s = `${scheme}`.toLowerCase();\n if (!ordinalSchemes.has(s)) throw new Error(`unknown ordinal scheme: ${s}`);\n return ordinalSchemes.get(s);\n}\n\nexport function ordinalRange(scheme, length) {\n const s = ordinalScheme(scheme);\n const r = typeof s === \"function\" ? s({length}) : s;\n return r.length !== length ? r.slice(0, length) : r;\n}\n\n// If the specified domain contains only booleans (ignoring null and undefined),\n// returns a corresponding range where false is mapped to the low color and true\n// is mapped to the high color of the specified scheme.\nexport function maybeBooleanRange(domain, scheme = \"greys\") {\n const range = new Set();\n const [f, t] = ordinalRange(scheme, 2);\n for (const value of domain) {\n if (value == null) continue;\n if (value === true) range.add(t);\n else if (value === false) range.add(f);\n else return;\n }\n return [...range];\n}\n\nconst quantitativeSchemes = new Map([\n // diverging\n [\"brbg\", interpolateBrBG],\n [\"prgn\", interpolatePRGn],\n [\"piyg\", interpolatePiYG],\n [\"puor\", interpolatePuOr],\n [\"rdbu\", interpolateRdBu],\n [\"rdgy\", interpolateRdGy],\n [\"rdylbu\", interpolateRdYlBu],\n [\"rdylgn\", interpolateRdYlGn],\n [\"spectral\", interpolateSpectral],\n\n // reversed diverging (for temperature data)\n [\"burd\", (t) => interpolateRdBu(1 - t)],\n [\"buylrd\", (t) => interpolateRdYlBu(1 - t)],\n\n // sequential (single-hue)\n [\"blues\", interpolateBlues],\n [\"greens\", interpolateGreens],\n [\"greys\", interpolateGreys],\n [\"purples\", interpolatePurples],\n [\"reds\", interpolateReds],\n [\"oranges\", interpolateOranges],\n\n // sequential (multi-hue)\n [\"turbo\", interpolateTurbo],\n [\"viridis\", interpolateViridis],\n [\"magma\", interpolateMagma],\n [\"inferno\", interpolateInferno],\n [\"plasma\", interpolatePlasma],\n [\"cividis\", interpolateCividis],\n [\"cubehelix\", interpolateCubehelixDefault],\n [\"warm\", interpolateWarm],\n [\"cool\", interpolateCool],\n [\"bugn\", interpolateBuGn],\n [\"bupu\", interpolateBuPu],\n [\"gnbu\", interpolateGnBu],\n [\"orrd\", interpolateOrRd],\n [\"pubugn\", interpolatePuBuGn],\n [\"pubu\", interpolatePuBu],\n [\"purd\", interpolatePuRd],\n [\"rdpu\", interpolateRdPu],\n [\"ylgnbu\", interpolateYlGnBu],\n [\"ylgn\", interpolateYlGn],\n [\"ylorbr\", interpolateYlOrBr],\n [\"ylorrd\", interpolateYlOrRd],\n\n // cyclical\n [\"rainbow\", interpolateRainbow],\n [\"sinebow\", interpolateSinebow]\n]);\n\nexport function quantitativeScheme(scheme) {\n const s = `${scheme}`.toLowerCase();\n if (!quantitativeSchemes.has(s)) throw new Error(`unknown quantitative scheme: ${s}`);\n return quantitativeSchemes.get(s);\n}\n\nconst divergingSchemes = new Set([\n \"brbg\",\n \"prgn\",\n \"piyg\",\n \"puor\",\n \"rdbu\",\n \"rdgy\",\n \"rdylbu\",\n \"rdylgn\",\n \"spectral\",\n \"burd\",\n \"buylrd\"\n]);\n\nexport function isDivergingScheme(scheme) {\n return scheme != null && divergingSchemes.has(`${scheme}`.toLowerCase());\n}\n","import {\n descending,\n extent,\n interpolateHcl,\n interpolateHsl,\n interpolateLab,\n interpolateNumber,\n interpolateRgb,\n interpolateRound,\n min,\n max,\n median,\n quantile,\n quantize,\n reverse as reverseof,\n scaleLinear,\n scaleLog,\n scalePow,\n scaleQuantile,\n scaleSymlog,\n scaleThreshold,\n scaleIdentity,\n ticks\n} from \"d3\";\nimport {positive, negative, finite} from \"../defined.js\";\nimport {arrayify, constant, orderof, slice, maybeNiceInterval, maybeRangeInterval} from \"../options.js\";\nimport {ordinalRange, quantitativeScheme} from \"./schemes.js\";\nimport {registry, radius, opacity, color, length} from \"./index.js\";\n\nexport const flip = (i) => (t) => i(1 - t);\nconst unit = [0, 1];\n\nconst interpolators = new Map([\n // numbers\n [\"number\", interpolateNumber],\n\n // color spaces\n [\"rgb\", interpolateRgb],\n [\"hsl\", interpolateHsl],\n [\"hcl\", interpolateHcl],\n [\"lab\", interpolateLab]\n]);\n\nexport function maybeInterpolator(interpolate) {\n const i = `${interpolate}`.toLowerCase();\n if (!interpolators.has(i)) throw new Error(`unknown interpolator: ${i}`);\n return interpolators.get(i);\n}\n\nexport function createScaleQ(\n key,\n scale,\n channels,\n {\n type,\n nice,\n clamp,\n zero,\n domain = inferAutoDomain(key, channels),\n unknown,\n round,\n scheme,\n interval,\n range = registry.get(key) === radius\n ? inferRadialRange(channels, domain)\n : registry.get(key) === length\n ? inferLengthRange(channels, domain)\n : registry.get(key) === opacity\n ? unit\n : undefined,\n interpolate = registry.get(key) === color\n ? scheme == null && range !== undefined\n ? interpolateRgb\n : quantitativeScheme(scheme !== undefined ? scheme : type === \"cyclical\" ? \"rainbow\" : \"turbo\")\n : round\n ? interpolateRound\n : interpolateNumber,\n reverse\n }\n) {\n interval = maybeRangeInterval(interval, type);\n if (type === \"cyclical\" || type === \"sequential\") type = \"linear\"; // shorthand for color schemes\n reverse = !!reverse;\n\n // Sometimes interpolate is a named interpolator, such as \"lab\" for Lab color\n // space. Other times interpolate is a function that takes two arguments and\n // is used in conjunction with the range. And other times the interpolate\n // function is a “fixed†interpolator on the [0, 1] interval, as when a\n // color scheme such as interpolateRdBu is used.\n if (typeof interpolate !== \"function\") {\n interpolate = maybeInterpolator(interpolate);\n }\n if (interpolate.length === 1) {\n if (reverse) {\n interpolate = flip(interpolate);\n reverse = false;\n }\n if (range === undefined) {\n range = Float64Array.from(domain, (_, i) => i / (domain.length - 1));\n if (range.length === 2) range = unit; // optimize common case of [0, 1]\n }\n scale.interpolate((range === unit ? constant : interpolatePiecewise)(interpolate));\n } else {\n scale.interpolate(interpolate);\n }\n\n // If a zero option is specified, we assume that the domain is numeric, and we\n // want to ensure that the domain crosses zero. However, note that the domain\n // may be reversed (descending) so we shouldn’t assume that the first value is\n // smaller than the last; and also it’s possible that the domain has more than\n // two values for a “poly†scale. And lastly be careful not to mutate input!\n if (zero) {\n const [min, max] = extent(domain);\n if (min > 0 || max < 0) {\n domain = slice(domain);\n if (orderof(domain) !== Math.sign(min)) domain[domain.length - 1] = 0;\n // [2, 1] or [-2, -1]\n else domain[0] = 0; // [1, 2] or [-1, -2]\n }\n }\n\n if (reverse) domain = reverseof(domain);\n scale.domain(domain).unknown(unknown);\n if (nice) scale.nice(maybeNice(nice, type)), (domain = scale.domain());\n if (range !== undefined) scale.range(range);\n if (clamp) scale.clamp(clamp);\n return {type, domain, range, scale, interpolate, interval};\n}\n\nfunction maybeNice(nice, type) {\n return nice === true ? undefined : typeof nice === \"number\" ? nice : maybeNiceInterval(nice, type);\n}\n\nexport function createScaleLinear(key, channels, options) {\n return createScaleQ(key, scaleLinear(), channels, options);\n}\n\nexport function createScaleSqrt(key, channels, options) {\n return createScalePow(key, channels, {...options, exponent: 0.5});\n}\n\nexport function createScalePow(key, channels, {exponent = 1, ...options}) {\n return createScaleQ(key, scalePow().exponent(exponent), channels, {...options, type: \"pow\"});\n}\n\nexport function createScaleLog(key, channels, {base = 10, domain = inferLogDomain(channels), ...options}) {\n return createScaleQ(key, scaleLog().base(base), channels, {...options, domain});\n}\n\nexport function createScaleSymlog(key, channels, {constant = 1, ...options}) {\n return createScaleQ(key, scaleSymlog().constant(constant), channels, options);\n}\n\nexport function createScaleQuantile(\n key,\n channels,\n {\n range,\n quantiles = range === undefined ? 5 : (range = [...range]).length, // deprecated; use n instead\n n = quantiles,\n scheme = \"rdylbu\",\n domain = inferQuantileDomain(channels),\n unknown,\n interpolate,\n reverse\n }\n) {\n if (range === undefined) {\n range =\n interpolate !== undefined\n ? quantize(interpolate, n)\n : registry.get(key) === color\n ? ordinalRange(scheme, n)\n : undefined;\n }\n if (domain.length > 0) {\n domain = scaleQuantile(domain, range === undefined ? {length: n} : range).quantiles();\n }\n return createScaleThreshold(key, channels, {domain, range, reverse, unknown});\n}\n\nexport function createScaleQuantize(\n key,\n channels,\n {\n range,\n n = range === undefined ? 5 : (range = [...range]).length,\n scheme = \"rdylbu\",\n domain = inferAutoDomain(key, channels),\n unknown,\n interpolate,\n reverse\n }\n) {\n const [min, max] = extent(domain);\n let thresholds;\n if (range === undefined) {\n thresholds = ticks(min, max, n); // approximate number of nice, round thresholds\n if (thresholds[0] <= min) thresholds.splice(0, 1); // drop exact lower bound\n if (thresholds[thresholds.length - 1] >= max) thresholds.pop(); // drop exact upper bound\n n = thresholds.length + 1;\n range =\n interpolate !== undefined\n ? quantize(interpolate, n)\n : registry.get(key) === color\n ? ordinalRange(scheme, n)\n : undefined;\n } else {\n thresholds = quantize(interpolateNumber(min, max), n + 1).slice(1, -1); // exactly n - 1 thresholds to match range\n if (min instanceof Date) thresholds = thresholds.map((x) => new Date(x)); // preserve date types\n }\n if (orderof(arrayify(domain)) < 0) thresholds.reverse(); // preserve descending domain\n return createScaleThreshold(key, channels, {domain: thresholds, range, reverse, unknown});\n}\n\nexport function createScaleThreshold(\n key,\n channels,\n {\n domain = [0], // explicit thresholds in ascending order\n unknown,\n scheme = \"rdylbu\",\n interpolate,\n range = interpolate !== undefined\n ? quantize(interpolate, domain.length + 1)\n : registry.get(key) === color\n ? ordinalRange(scheme, domain.length + 1)\n : undefined,\n reverse\n }\n) {\n domain = arrayify(domain);\n const sign = orderof(domain); // preserve descending domain\n if (!isNaN(sign) && !isOrdered(domain, sign)) throw new Error(`the ${key} scale has a non-monotonic domain`);\n if (reverse) range = reverseof(range); // domain ascending, so reverse range\n return {\n type: \"threshold\",\n scale: scaleThreshold(sign < 0 ? reverseof(domain) : domain, range === undefined ? [] : range).unknown(unknown),\n domain,\n range\n };\n}\n\nfunction isOrdered(domain, sign) {\n for (let i = 1, n = domain.length, d = domain[0]; i < n; ++i) {\n const s = descending(d, (d = domain[i]));\n if (s !== 0 && s !== sign) return false;\n }\n return true;\n}\n\nexport function createScaleIdentity() {\n return {type: \"identity\", scale: scaleIdentity()};\n}\n\nexport function inferDomain(channels, f = finite) {\n return channels.length\n ? [\n min(channels, ({value}) => (value === undefined ? value : min(value, f))),\n max(channels, ({value}) => (value === undefined ? value : max(value, f)))\n ]\n : [0, 1];\n}\n\nfunction inferAutoDomain(key, channels) {\n const type = registry.get(key);\n return (type === radius || type === opacity || type === length ? inferZeroDomain : inferDomain)(channels);\n}\n\nfunction inferZeroDomain(channels) {\n return [0, channels.length ? max(channels, ({value}) => (value === undefined ? value : max(value, finite))) : 1];\n}\n\n// We don’t want the upper bound of the radial domain to be zero, as this would\n// be degenerate, so we ignore nonpositive values. We also don’t want the\n// maximum default radius to exceed 30px.\nfunction inferRadialRange(channels, domain) {\n const hint = channels.find(({radius}) => radius !== undefined);\n if (hint !== undefined) return [0, hint.radius]; // a natural maximum radius, e.g. hexbins\n const h25 = quantile(channels, 0.5, ({value}) => (value === undefined ? NaN : quantile(value, 0.25, positive)));\n const range = domain.map((d) => 3 * Math.sqrt(d / h25));\n const k = 30 / max(range);\n return k < 1 ? range.map((r) => r * k) : range;\n}\n\n// We want a length scale’s domain to go from zero to a positive value, and to\n// treat negative lengths if any as inverted vectors of equivalent magnitude. We\n// also don’t want the maximum default length to exceed 60px.\nfunction inferLengthRange(channels, domain) {\n const h50 = median(channels, ({value}) => (value === undefined ? NaN : median(value, Math.abs)));\n const range = domain.map((d) => (12 * d) / h50);\n const k = 60 / max(range);\n return k < 1 ? range.map((r) => r * k) : range;\n}\n\nfunction inferLogDomain(channels) {\n for (const {value} of channels) {\n if (value !== undefined) {\n for (let v of value) {\n if (v > 0) return inferDomain(channels, positive);\n if (v < 0) return inferDomain(channels, negative);\n }\n }\n }\n return [1, 10];\n}\n\nfunction inferQuantileDomain(channels) {\n const domain = [];\n for (const {value} of channels) {\n if (value === undefined) continue;\n for (const v of value) domain.push(v);\n }\n return domain;\n}\n\nexport function interpolatePiecewise(interpolate) {\n return (i, j) => (t) => interpolate(i + t * (j - i));\n}\n","import {\n descending,\n interpolateNumber,\n interpolateRgb,\n piecewise,\n scaleDiverging,\n scaleDivergingLog,\n scaleDivergingPow,\n scaleDivergingSymlog\n} from \"d3\";\nimport {positive, negative} from \"../defined.js\";\nimport {quantitativeScheme} from \"./schemes.js\";\nimport {registry, color} from \"./index.js\";\nimport {inferDomain, maybeInterpolator, flip, interpolatePiecewise} from \"./quantitative.js\";\n\nfunction createScaleD(\n key,\n scale,\n transform,\n channels,\n {\n type,\n nice,\n clamp,\n domain = inferDomain(channels),\n unknown,\n pivot = 0,\n scheme,\n range,\n symmetric = true,\n interpolate = registry.get(key) === color\n ? scheme == null && range !== undefined\n ? interpolateRgb\n : quantitativeScheme(scheme !== undefined ? scheme : \"rdbu\")\n : interpolateNumber,\n reverse\n }\n) {\n pivot = +pivot;\n let [min, max] = domain;\n if (descending(min, max) < 0) ([min, max] = [max, min]), (reverse = !reverse);\n min = Math.min(min, pivot);\n max = Math.max(max, pivot);\n\n // Sometimes interpolate is a named interpolator, such as \"lab\" for Lab color\n // space. Other times interpolate is a function that takes two arguments and\n // is used in conjunction with the range. And other times the interpolate\n // function is a “fixed†interpolator on the [0, 1] interval, as when a\n // color scheme such as interpolateRdBu is used.\n if (typeof interpolate !== \"function\") {\n interpolate = maybeInterpolator(interpolate);\n }\n\n // If an explicit range is specified, promote it to a piecewise interpolator.\n if (range !== undefined) {\n interpolate =\n interpolate.length === 1 ? interpolatePiecewise(interpolate)(...range) : piecewise(interpolate, range);\n }\n\n // Reverse before normalization.\n if (reverse) interpolate = flip(interpolate);\n\n // Normalize the interpolator for symmetric difference around the pivot.\n if (symmetric) {\n const mid = transform.apply(pivot);\n const mindelta = mid - transform.apply(min);\n const maxdelta = transform.apply(max) - mid;\n if (mindelta < maxdelta) min = transform.invert(mid - maxdelta);\n else if (mindelta > maxdelta) max = transform.invert(mid + mindelta);\n }\n\n scale.domain([min, pivot, max]).unknown(unknown).interpolator(interpolate);\n if (clamp) scale.clamp(clamp);\n if (nice) scale.nice(nice);\n return {type, domain: [min, max], pivot, interpolate, scale};\n}\n\nexport function createScaleDiverging(key, channels, options) {\n return createScaleD(key, scaleDiverging(), transformIdentity, channels, options);\n}\n\nexport function createScaleDivergingSqrt(key, channels, options) {\n return createScaleDivergingPow(key, channels, {...options, exponent: 0.5});\n}\n\nexport function createScaleDivergingPow(key, channels, {exponent = 1, ...options}) {\n return createScaleD(key, scaleDivergingPow().exponent((exponent = +exponent)), transformPow(exponent), channels, {\n ...options,\n type: \"diverging-pow\"\n });\n}\n\nexport function createScaleDivergingLog(\n key,\n channels,\n {base = 10, pivot = 1, domain = inferDomain(channels, pivot < 0 ? negative : positive), ...options}\n) {\n return createScaleD(key, scaleDivergingLog().base((base = +base)), transformLog, channels, {\n domain,\n pivot,\n ...options\n });\n}\n\nexport function createScaleDivergingSymlog(key, channels, {constant = 1, ...options}) {\n return createScaleD(\n key,\n scaleDivergingSymlog().constant((constant = +constant)),\n transformSymlog(constant),\n channels,\n options\n );\n}\n\nconst transformIdentity = {\n apply(x) {\n return x;\n },\n invert(x) {\n return x;\n }\n};\n\nconst transformLog = {\n apply: Math.log,\n invert: Math.exp\n};\n\nconst transformSqrt = {\n apply(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n },\n invert(x) {\n return Math.sign(x) * (x * x);\n }\n};\n\nfunction transformPow(exponent) {\n return exponent === 0.5\n ? transformSqrt\n : {\n apply(x) {\n return Math.sign(x) * Math.pow(Math.abs(x), exponent);\n },\n invert(x) {\n return Math.sign(x) * Math.pow(Math.abs(x), 1 / exponent);\n }\n };\n}\n\nfunction transformSymlog(constant) {\n return {\n apply(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / constant));\n },\n invert(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * constant;\n }\n };\n}\n","import {scaleTime, scaleUtc} from \"d3\";\nimport {createScaleQ} from \"./quantitative.js\";\n\nfunction createScaleT(key, scale, channels, options) {\n return createScaleQ(key, scale, channels, options);\n}\n\nexport function createScaleTime(key, channels, options) {\n return createScaleT(key, scaleTime(), channels, options);\n}\n\nexport function createScaleUtc(key, channels, options) {\n return createScaleT(key, scaleUtc(), channels, options);\n}\n","import {InternSet, extent, quantize, reverse as reverseof, sort, symbolsFill, symbolsStroke} from \"d3\";\nimport {scaleBand, scaleOrdinal, scalePoint, scaleImplicit} from \"d3\";\nimport {ascendingDefined} from \"../defined.js\";\nimport {isNoneish, map, maybeRangeInterval} from \"../options.js\";\nimport {maybeSymbol} from \"../symbol.js\";\nimport {registry, color, position, symbol} from \"./index.js\";\nimport {maybeBooleanRange, ordinalScheme, quantitativeScheme} from \"./schemes.js\";\n\n// This denotes an implicitly ordinal color scale: the scale type was not set,\n// but the associated values are strings or booleans. If the associated defined\n// values are entirely boolean, the range will default to greys. You can opt out\n// of this by setting the type explicitly.\nexport const ordinalImplicit = Symbol(\"ordinal\");\n\nfunction createScaleO(key, scale, channels, {type, interval, domain, range, reverse, hint}) {\n interval = maybeRangeInterval(interval, type);\n if (domain === undefined) domain = inferDomain(channels, interval, key);\n if (type === \"categorical\" || type === ordinalImplicit) type = \"ordinal\"; // shorthand for color schemes\n if (reverse) domain = reverseof(domain);\n scale.domain(domain);\n if (range !== undefined) {\n // If the range is specified as a function, pass it the domain.\n if (typeof range === \"function\") range = range(domain);\n scale.range(range);\n }\n return {type, domain, range, scale, hint, interval};\n}\n\nexport function createScaleOrdinal(key, channels, {type, interval, domain, range, scheme, unknown, ...options}) {\n interval = maybeRangeInterval(interval, type);\n if (domain === undefined) domain = inferDomain(channels, interval, key);\n let hint;\n if (registry.get(key) === symbol) {\n hint = inferSymbolHint(channels);\n range = range === undefined ? inferSymbolRange(hint) : map(range, maybeSymbol);\n } else if (registry.get(key) === color) {\n if (range === undefined && (type === \"ordinal\" || type === ordinalImplicit)) {\n range = maybeBooleanRange(domain, scheme);\n if (range !== undefined) scheme = undefined; // Don’t re-apply scheme.\n }\n if (scheme === undefined && range === undefined) {\n scheme = type === \"ordinal\" ? \"turbo\" : \"tableau10\";\n }\n if (scheme !== undefined) {\n if (range !== undefined) {\n const interpolate = quantitativeScheme(scheme);\n const t0 = range[0],\n d = range[1] - range[0];\n range = ({length: n}) => quantize((t) => interpolate(t0 + d * t), n);\n } else {\n range = ordinalScheme(scheme);\n }\n }\n }\n if (unknown === scaleImplicit) {\n throw new Error(`implicit unknown on ${key} scale is not supported`);\n }\n return createScaleO(key, scaleOrdinal().unknown(unknown), channels, {...options, type, domain, range, hint});\n}\n\nexport function createScalePoint(key, channels, {align = 0.5, padding = 0.5, ...options}) {\n return maybeRound(scalePoint().align(align).padding(padding), channels, options, key);\n}\n\nexport function createScaleBand(\n key,\n channels,\n {\n align = 0.5,\n padding = 0.1,\n paddingInner = padding,\n paddingOuter = key === \"fx\" || key === \"fy\" ? 0 : padding,\n ...options\n }\n) {\n return maybeRound(\n scaleBand().align(align).paddingInner(paddingInner).paddingOuter(paddingOuter),\n channels,\n options,\n key\n );\n}\n\nfunction maybeRound(scale, channels, options, key) {\n let {round} = options;\n if (round !== undefined) scale.round((round = !!round));\n scale = createScaleO(key, scale, channels, options);\n scale.round = round; // preserve for autoScaleRound\n return scale;\n}\n\nfunction inferDomain(channels, interval, key) {\n const values = new InternSet();\n for (const {value, domain} of channels) {\n if (domain !== undefined) return domain(); // see channelDomain\n if (value === undefined) continue;\n for (const v of value) values.add(v);\n }\n if (interval !== undefined) {\n const [min, max] = extent(values).map(interval.floor, interval);\n return interval.range(min, interval.offset(max));\n }\n if (values.size > 10e3 && registry.get(key) === position) {\n throw new Error(`implicit ordinal domain of ${key} scale has more than 10,000 values`);\n }\n return sort(values, ascendingDefined);\n}\n\n// If all channels provide a consistent hint, propagate it to the scale.\nfunction inferHint(channels, key) {\n let value;\n for (const {hint} of channels) {\n const candidate = hint?.[key];\n if (candidate === undefined) continue; // no hint here\n if (value === undefined) value = candidate;\n // first hint\n else if (value !== candidate) return; // inconsistent hint\n }\n return value;\n}\n\nfunction inferSymbolHint(channels) {\n return {\n fill: inferHint(channels, \"fill\"),\n stroke: inferHint(channels, \"stroke\")\n };\n}\n\nfunction inferSymbolRange(hint) {\n return isNoneish(hint.fill) ? symbolsStroke : symbolsFill;\n}\n","import {\n isOrdinal,\n isTemporal,\n isTemporalString,\n isNumericString,\n isScaleOptions,\n map,\n slice,\n coerceNumbers,\n coerceDates\n} from \"./options.js\";\nimport {registry, color, position, radius, opacity, symbol, length} from \"./scales/index.js\";\nimport {\n createScaleLinear,\n createScaleSqrt,\n createScalePow,\n createScaleLog,\n createScaleSymlog,\n createScaleQuantile,\n createScaleQuantize,\n createScaleThreshold,\n createScaleIdentity\n} from \"./scales/quantitative.js\";\nimport {\n createScaleDiverging,\n createScaleDivergingSqrt,\n createScaleDivergingPow,\n createScaleDivergingLog,\n createScaleDivergingSymlog\n} from \"./scales/diverging.js\";\nimport {isDivergingScheme} from \"./scales/schemes.js\";\nimport {createScaleTime, createScaleUtc} from \"./scales/temporal.js\";\nimport {createScaleOrdinal, createScalePoint, createScaleBand, ordinalImplicit} from \"./scales/ordinal.js\";\nimport {maybeSymbol} from \"./symbol.js\";\nimport {warn} from \"./warnings.js\";\n\nexport function createScales(\n channelsByScale,\n {\n label: globalLabel,\n inset: globalInset = 0,\n insetTop: globalInsetTop = globalInset,\n insetRight: globalInsetRight = globalInset,\n insetBottom: globalInsetBottom = globalInset,\n insetLeft: globalInsetLeft = globalInset,\n round,\n nice,\n clamp,\n zero,\n align,\n padding,\n projection,\n facet: {label: facetLabel = globalLabel} = {},\n ...options\n } = {}\n) {\n const scales = {};\n for (const [key, channels] of channelsByScale) {\n const scaleOptions = options[key];\n const scale = createScale(key, channels, {\n round: registry.get(key) === position ? round : undefined, // only for position\n nice,\n clamp,\n zero,\n align,\n padding,\n projection,\n ...scaleOptions\n });\n if (scale) {\n // populate generic scale options (percent, transform, insets)\n let {\n label = key === \"fx\" || key === \"fy\" ? facetLabel : globalLabel,\n percent,\n transform,\n inset,\n insetTop = inset !== undefined ? inset : key === \"y\" ? globalInsetTop : 0, // not fy\n insetRight = inset !== undefined ? inset : key === \"x\" ? globalInsetRight : 0, // not fx\n insetBottom = inset !== undefined ? inset : key === \"y\" ? globalInsetBottom : 0, // not fy\n insetLeft = inset !== undefined ? inset : key === \"x\" ? globalInsetLeft : 0 // not fx\n } = scaleOptions || {};\n if (transform == null) transform = undefined;\n else if (typeof transform !== \"function\") throw new Error(\"invalid scale transform; not a function\");\n scale.percent = !!percent;\n scale.label = label === undefined ? inferScaleLabel(channels, scale) : label;\n scale.transform = transform;\n if (key === \"x\" || key === \"fx\") {\n scale.insetLeft = +insetLeft;\n scale.insetRight = +insetRight;\n } else if (key === \"y\" || key === \"fy\") {\n scale.insetTop = +insetTop;\n scale.insetBottom = +insetBottom;\n }\n scales[key] = scale;\n }\n }\n return scales;\n}\n\nexport function createScaleFunctions(scales) {\n return Object.fromEntries(\n Object.entries(scales)\n .filter(([, {scale}]) => scale) // drop identity scales\n .map(([name, {scale, type, interval, label}]) => {\n scale.type = type; // for axis\n if (interval != null) scale.interval = interval; // for axis\n if (label != null) scale.label = label; // for axis\n return [name, scale];\n })\n );\n}\n\n// Mutates scale.range!\nexport function autoScaleRange(scales, dimensions) {\n const {x, y, fx, fy} = scales;\n const superdimensions = fx || fy ? outerDimensions(dimensions) : dimensions;\n if (fx) autoScaleRangeX(fx, superdimensions);\n if (fy) autoScaleRangeY(fy, superdimensions);\n const subdimensions = fx || fy ? innerDimensions(scales, dimensions) : dimensions;\n if (x) autoScaleRangeX(x, subdimensions);\n if (y) autoScaleRangeY(y, subdimensions);\n}\n\n// Channels can have labels; if all the channels for a given scale are\n// consistently labeled (i.e., have the same value if not undefined), and the\n// corresponding scale doesn’t already have an explicit label, then the\n// channels’ label is promoted to the scale. This inferred label should have an\n// orientation-appropriate arrow added when used as an axis, but we don’t want\n// to add the arrow when the label is set explicitly as an option; so, the\n// inferred label is distinguished as an object with an “inferred†property.\nfunction inferScaleLabel(channels = [], scale) {\n let label;\n for (const {label: l} of channels) {\n if (l === undefined) continue;\n if (label === undefined) label = l;\n else if (label !== l) return;\n }\n if (label === undefined) return;\n // Ignore the implicit label for temporal scales if it’s simply “dateâ€.\n if (isTemporalScale(scale) && /^(date|time|year)$/i.test(label)) return;\n if (!isOrdinalScale(scale) && scale.percent) label = `${label} (%)`;\n return {inferred: true, toString: () => label};\n}\n\n// Returns the dimensions of the outer frame; this is subdivided into facets\n// with the margins of each facet collapsing into the outer margins.\nexport function outerDimensions(dimensions) {\n const {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n width,\n height,\n facet: {\n marginTop: facetMarginTop,\n marginRight: facetMarginRight,\n marginBottom: facetMarginBottom,\n marginLeft: facetMarginLeft\n }\n } = dimensions;\n return {\n marginTop: Math.max(marginTop, facetMarginTop),\n marginRight: Math.max(marginRight, facetMarginRight),\n marginBottom: Math.max(marginBottom, facetMarginBottom),\n marginLeft: Math.max(marginLeft, facetMarginLeft),\n width,\n height\n };\n}\n\n// Returns the dimensions of each facet.\nexport function innerDimensions({fx, fy}, dimensions) {\n const {marginTop, marginRight, marginBottom, marginLeft, width, height} = outerDimensions(dimensions);\n return {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n width: fx ? fx.scale.bandwidth() + marginLeft + marginRight : width,\n height: fy ? fy.scale.bandwidth() + marginTop + marginBottom : height\n };\n}\n\nfunction autoScaleRangeX(scale, dimensions) {\n if (scale.range === undefined) {\n const {insetLeft, insetRight} = scale;\n const {width, marginLeft = 0, marginRight = 0} = dimensions;\n const left = marginLeft + insetLeft;\n const right = width - marginRight - insetRight;\n scale.range = [left, Math.max(left, right)];\n if (!isOrdinalScale(scale)) scale.range = piecewiseRange(scale);\n scale.scale.range(scale.range);\n }\n autoScaleRound(scale);\n}\n\nfunction autoScaleRangeY(scale, dimensions) {\n if (scale.range === undefined) {\n const {insetTop, insetBottom} = scale;\n const {height, marginTop = 0, marginBottom = 0} = dimensions;\n const top = marginTop + insetTop;\n const bottom = height - marginBottom - insetBottom;\n scale.range = [Math.max(top, bottom), top];\n if (!isOrdinalScale(scale)) scale.range = piecewiseRange(scale);\n else scale.range.reverse();\n scale.scale.range(scale.range);\n }\n autoScaleRound(scale);\n}\n\nfunction autoScaleRound(scale) {\n if (scale.round === undefined && isBandScale(scale) && roundError(scale) <= 30) {\n scale.scale.round(true);\n }\n}\n\n// If we were to turn on rounding for this band or point scale, how much wasted\n// space would it introduce (on both ends of the range)? This must match\n// d3.scaleBand’s rounding behavior:\n// https://github.com/d3/d3-scale/blob/83555bd759c7314420bd4240642beda5e258db9e/src/band.js#L20-L32\nfunction roundError({scale}) {\n const n = scale.domain().length;\n const [start, stop] = scale.range();\n const paddingInner = scale.paddingInner ? scale.paddingInner() : 1;\n const paddingOuter = scale.paddingOuter ? scale.paddingOuter() : scale.padding();\n const m = n - paddingInner;\n const step = Math.abs(stop - start) / Math.max(1, m + paddingOuter * 2);\n return (step - Math.floor(step)) * m;\n}\n\nfunction piecewiseRange(scale) {\n const length = scale.scale.domain().length + isThresholdScale(scale);\n if (!(length > 2)) return scale.range;\n const [start, end] = scale.range;\n return Array.from({length}, (_, i) => start + (i / (length - 1)) * (end - start));\n}\n\nexport function normalizeScale(key, scale, hint) {\n return createScale(key, hint === undefined ? undefined : [{hint}], {...scale});\n}\n\nfunction createScale(key, channels = [], options = {}) {\n const type = inferScaleType(key, channels, options);\n\n // Warn for common misuses of implicit ordinal scales. We disable this test if\n // you specify a scale interval or if you set the domain or range explicitly,\n // since setting the domain or range (typically with a cardinality of more than\n // two) is another indication that you intended for the scale to be ordinal; we\n // also disable it for facet scales since these are always band scales.\n if (\n options.type === undefined &&\n options.domain === undefined &&\n options.range === undefined &&\n options.interval == null &&\n key !== \"fx\" &&\n key !== \"fy\" &&\n isOrdinalScale({type})\n ) {\n const values = channels.map(({value}) => value).filter((value) => value !== undefined);\n if (values.some(isTemporal))\n warn(\n `Warning: some data associated with the ${key} scale are dates. Dates are typically associated with a \"utc\" or \"time\" scale rather than a \"${formatScaleType(\n type\n )}\" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., d3.utcDay), or you can suppress this warning by setting the type of the ${key} scale to \"${formatScaleType(\n type\n )}\".`\n );\n else if (values.some(isTemporalString))\n warn(\n `Warning: some data associated with the ${key} scale are strings that appear to be dates (e.g., YYYY-MM-DD). If these strings represent dates, you should parse them to Date objects. Dates are typically associated with a \"utc\" or \"time\" scale rather than a \"${formatScaleType(\n type\n )}\" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can suppress this warning by setting the type of the ${key} scale to \"${formatScaleType(\n type\n )}\".`\n );\n else if (values.some(isNumericString))\n warn(\n `Warning: some data associated with the ${key} scale are strings that appear to be numbers. If these strings represent numbers, you should parse or coerce them to numbers. Numbers are typically associated with a \"linear\" scale rather than a \"${formatScaleType(\n type\n )}\" scale. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., 1 for integers), or you can suppress this warning by setting the type of the ${key} scale to \"${formatScaleType(\n type\n )}\".`\n );\n }\n\n options.type = type; // Mutates input!\n\n // Once the scale type is known, coerce the associated channel values and any\n // explicitly-specified domain to the expected type.\n switch (type) {\n case \"diverging\":\n case \"diverging-sqrt\":\n case \"diverging-pow\":\n case \"diverging-log\":\n case \"diverging-symlog\":\n case \"cyclical\":\n case \"sequential\":\n case \"linear\":\n case \"sqrt\":\n case \"threshold\":\n case \"quantile\":\n case \"pow\":\n case \"log\":\n case \"symlog\":\n options = coerceType(channels, options, coerceNumbers);\n break;\n case \"identity\":\n switch (registry.get(key)) {\n case position:\n options = coerceType(channels, options, coerceNumbers);\n break;\n case symbol:\n options = coerceType(channels, options, coerceSymbols);\n break;\n }\n break;\n case \"utc\":\n case \"time\":\n options = coerceType(channels, options, coerceDates);\n break;\n }\n\n switch (type) {\n case \"diverging\":\n return createScaleDiverging(key, channels, options);\n case \"diverging-sqrt\":\n return createScaleDivergingSqrt(key, channels, options);\n case \"diverging-pow\":\n return createScaleDivergingPow(key, channels, options);\n case \"diverging-log\":\n return createScaleDivergingLog(key, channels, options);\n case \"diverging-symlog\":\n return createScaleDivergingSymlog(key, channels, options);\n case \"categorical\":\n case \"ordinal\":\n case ordinalImplicit:\n return createScaleOrdinal(key, channels, options);\n case \"cyclical\":\n case \"sequential\":\n case \"linear\":\n return createScaleLinear(key, channels, options);\n case \"sqrt\":\n return createScaleSqrt(key, channels, options);\n case \"threshold\":\n return createScaleThreshold(key, channels, options);\n case \"quantile\":\n return createScaleQuantile(key, channels, options);\n case \"quantize\":\n return createScaleQuantize(key, channels, options);\n case \"pow\":\n return createScalePow(key, channels, options);\n case \"log\":\n return createScaleLog(key, channels, options);\n case \"symlog\":\n return createScaleSymlog(key, channels, options);\n case \"utc\":\n return createScaleUtc(key, channels, options);\n case \"time\":\n return createScaleTime(key, channels, options);\n case \"point\":\n return createScalePoint(key, channels, options);\n case \"band\":\n return createScaleBand(key, channels, options);\n case \"identity\":\n return registry.get(key) === position ? createScaleIdentity() : {type: \"identity\"};\n case undefined:\n return;\n default:\n throw new Error(`unknown scale type: ${type}`);\n }\n}\n\nfunction formatScaleType(type) {\n return typeof type === \"symbol\" ? type.description : type;\n}\n\n// A special type symbol when the x and y scales are replaced with a projection.\nconst typeProjection = {toString: () => \"projection\"};\n\nfunction inferScaleType(key, channels, {type, domain, range, scheme, pivot, projection}) {\n // The facet scales are always band scales; this cannot be changed.\n if (key === \"fx\" || key === \"fy\") return \"band\";\n\n // If a projection is specified, the x- and y-scales are disabled; these\n // channels will be projected rather than scaled. (But still check that none\n // of the associated channels are incompatible with a projection.)\n if ((key === \"x\" || key === \"y\") && projection != null) type = typeProjection;\n\n // If a channel dictates a scale type, make sure that it is consistent with\n // the user-specified scale type (if any) and all other channels. For example,\n // barY requires x to be a band scale and disallows any other scale type.\n for (const {type: t} of channels) {\n if (t === undefined) continue;\n else if (type === undefined) type = t;\n else if (type !== t) throw new Error(`scale incompatible with channel: ${type} !== ${t}`);\n }\n\n // If the scale, a channel, or user specified a (consistent) type, return it.\n if (type === typeProjection) return;\n if (type !== undefined) return type;\n\n // If there’s no data (and no type) associated with this scale, don’t create a scale.\n if (domain === undefined && !channels.some(({value}) => value !== undefined)) return;\n\n // Some scales have default types.\n const kind = registry.get(key);\n if (kind === radius) return \"sqrt\";\n if (kind === opacity || kind === length) return \"linear\";\n if (kind === symbol) return \"ordinal\";\n\n // If the domain or range has more than two values, assume it’s ordinal. You\n // can still use a “piecewise†(or “polylinearâ€) scale, but you must set the\n // type explicitly.\n if ((domain || range || []).length > 2) return asOrdinalType(kind);\n\n // Otherwise, infer the scale type from the data! Prefer the domain, if\n // present, over channels. (The domain and channels should be consistently\n // typed, and the domain is more explicit and typically much smaller.) We only\n // check the first defined value for expedience and simplicity; we expect\n // that the types are consistent.\n if (domain !== undefined) {\n if (isOrdinal(domain)) return asOrdinalType(kind);\n if (isTemporal(domain)) return \"utc\";\n if (kind === color && (pivot != null || isDivergingScheme(scheme))) return \"diverging\";\n return \"linear\";\n }\n\n // If any channel is ordinal or temporal, it takes priority.\n const values = channels.map(({value}) => value).filter((value) => value !== undefined);\n if (values.some(isOrdinal)) return asOrdinalType(kind);\n if (values.some(isTemporal)) return \"utc\";\n if (kind === color && (pivot != null || isDivergingScheme(scheme))) return \"diverging\";\n return \"linear\";\n}\n\n// Positional scales default to a point scale instead of an ordinal scale.\nfunction asOrdinalType(kind) {\n switch (kind) {\n case position:\n return \"point\";\n case color:\n return ordinalImplicit;\n default:\n return \"ordinal\";\n }\n}\n\nexport function isTemporalScale({type}) {\n return type === \"time\" || type === \"utc\";\n}\n\nexport function isOrdinalScale({type}) {\n return type === \"ordinal\" || type === \"point\" || type === \"band\" || type === ordinalImplicit;\n}\n\nexport function isThresholdScale({type}) {\n return type === \"threshold\";\n}\n\nfunction isBandScale({type}) {\n return type === \"point\" || type === \"band\";\n}\n\nexport function isDivergingScale({type}) {\n return /^diverging($|-)/.test(type);\n}\n\n// Certain marks have special behavior if a scale is collapsed, i.e. if the\n// domain is degenerate and represents only a single value such as [3, 3]; for\n// example, a rect will span the full extent of the chart along a collapsed\n// dimension (whereas a dot will simply be drawn in the center).\nexport function isCollapsed(scale) {\n if (scale === undefined) return true; // treat missing scale as collapsed\n const domain = scale.domain();\n const value = scale(domain[0]);\n for (let i = 1, n = domain.length; i < n; ++i) {\n if (scale(domain[i]) - value) {\n return false;\n }\n }\n return true;\n}\n\n// Mutates channel.value!\nfunction coerceType(channels, {domain, ...options}, coerceValues) {\n for (const c of channels) {\n if (c.value !== undefined) {\n c.value = coerceValues(c.value);\n }\n }\n return {\n domain: domain === undefined ? domain : coerceValues(domain),\n ...options\n };\n}\n\nfunction coerceSymbols(values) {\n return map(values, maybeSymbol);\n}\n\nexport function scale(options = {}) {\n let scale;\n for (const key in options) {\n if (!registry.has(key)) continue; // ignore unknown properties\n if (!isScaleOptions(options[key])) continue; // e.g., ignore {color: \"red\"}\n if (scale !== undefined) throw new Error(\"ambiguous scale definition; multiple scales found\");\n scale = exposeScale(normalizeScale(key, options[key]));\n }\n if (scale === undefined) throw new Error(\"invalid scale definition; no scale found\");\n return scale;\n}\n\nexport function exposeScales(scaleDescriptors) {\n return (key) => {\n if (!registry.has((key = `${key}`))) throw new Error(`unknown scale: ${key}`);\n return key in scaleDescriptors ? exposeScale(scaleDescriptors[key]) : undefined;\n };\n}\n\n// Note: axis- and legend-related properties (such as label, ticks and\n// tickFormat) are not included here as they do not affect the scale’s behavior.\nfunction exposeScale({scale, type, domain, range, interpolate, interval, transform, percent, pivot}) {\n if (type === \"identity\") return {type: \"identity\", apply: (d) => d, invert: (d) => d};\n const unknown = scale.unknown ? scale.unknown() : undefined;\n return {\n type,\n domain: slice(domain), // defensive copy\n ...(range !== undefined && {range: slice(range)}), // defensive copy\n ...(transform !== undefined && {transform}),\n ...(percent && {percent}), // only exposed if truthy\n ...(unknown !== undefined && {unknown}),\n ...(interval !== undefined && {interval}),\n\n // quantitative\n ...(interpolate !== undefined && {interpolate}),\n ...(scale.clamp && {clamp: scale.clamp()}),\n\n // diverging (always asymmetric; we never want to apply the symmetric transform twice)\n ...(pivot !== undefined && {pivot, symmetric: false}),\n\n // log, diverging-log\n ...(scale.base && {base: scale.base()}),\n\n // pow, diverging-pow\n ...(scale.exponent && {exponent: scale.exponent()}),\n\n // symlog, diverging-symlog\n ...(scale.constant && {constant: scale.constant()}),\n\n // band, point\n ...(scale.align && {align: scale.align(), round: scale.round()}),\n ...(scale.padding &&\n (scale.paddingInner\n ? {paddingInner: scale.paddingInner(), paddingOuter: scale.paddingOuter()}\n : {padding: scale.padding()})),\n ...(scale.bandwidth && {bandwidth: scale.bandwidth(), step: scale.step()}),\n\n // utilities\n apply: (t) => scale(t),\n ...(scale.invert && {invert: (t) => scale.invert(t)})\n };\n}\n","// @ts-ignore\nimport { scale } from '@observablehq/plot';\nimport { OptionsType } from './options/Options';\nimport { SCALE_BASE_OPACITY_COLOR } from './constant';\n\nimport type { SubDomain } from './index';\n\ntype ValueType = string | number | undefined;\n\nexport function normalizedScale(scaleOptions: OptionsType['scale']): any {\n try {\n const scaleType = Object.keys(scaleOptions!)[0];\n\n return scale({\n [scaleType]: {\n ...scaleOptions![scaleType as 'color' | 'opacity'],\n clamp: true,\n },\n });\n } catch (error) {\n return null;\n }\n}\n\nfunction scaleStyle(_scale: any, scaleOptions: OptionsType['scale']) {\n const styles: { fill?: Function; 'fill-opacity'?: Function } = {};\n\n if (scaleOptions!.hasOwnProperty('opacity')) {\n styles.fill = () =>\n // eslint-disable-next-line implicit-arrow-linebreak\n scaleOptions!.opacity!.baseColor || SCALE_BASE_OPACITY_COLOR;\n styles['fill-opacity'] = (d: ValueType) => _scale?.apply(d);\n } else {\n styles.fill = (d: ValueType) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n (typeof d === 'string' && d?.startsWith('#') ? d : _scale?.apply(d));\n }\n\n return styles;\n}\n\nexport function applyScaleStyle(\n elem: any,\n _scale: any,\n scaleOptions: OptionsType['scale'],\n keyname?: string,\n) {\n Object.entries(scaleStyle(_scale, scaleOptions)).forEach(([prop, val]) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n elem.style(prop, (d: SubDomain | string) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n val(keyname ? (d as SubDomain)[keyname as keyof SubDomain] : d)));\n}\n","import isFunction from 'lodash-es/isFunction';\nimport { hcl } from 'd3-color';\nimport { normalizedScale, applyScaleStyle } from '../scale';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport type { SubDomain, Timestamp } from '../index';\n\nexport default class Populator {\n calendar: CalHeatmap;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n }\n\n populate(): void {\n const { calendar } = this;\n const { scale, subDomain } = calendar.options.options;\n const colorScale = normalizedScale(scale);\n\n calendar.calendarPainter\n .root!.selectAll('.ch-domain')\n .selectAll('svg')\n .selectAll('g')\n .data((d: Timestamp) => calendar.domainCollection.get(d) || [])\n .call((element: any) => {\n applyScaleStyle(element.select('rect'), colorScale, scale!, 'v');\n })\n .call((element: any) => {\n element\n .select('text')\n .attr('style', (d: SubDomain) => {\n const defaultColor =\n hcl(colorScale?.apply(d.v)).l > 60 ? '#000' : '#fff';\n let color = subDomain.color || (d.v ? defaultColor : null);\n\n if (isFunction(color)) {\n color = color(d.t, d.v, colorScale?.apply(d.v));\n }\n\n if (!color) {\n return null;\n }\n\n return `fill: ${color};`;\n })\n .text((d: SubDomain, i: number, nodes: any[]) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n calendar.dateHelper.format(d.t, subDomain.label, d.v, nodes[i]));\n })\n .call(() => {\n calendar.eventEmitter.emit('fill');\n });\n }\n}\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nexport default mergeWith;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nexport default isEqual;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nexport default baseHas;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import baseHas from './_baseHas.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nexport default has;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseSet from './_baseSet.js';\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nexport default set;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","import castArray from 'lodash-es/castArray';\nimport isFunction from 'lodash-es/isFunction';\nimport isString from 'lodash-es/isString';\nimport type { SubDomainOptions } from './Options';\n\nexport default {\n range: (value: number): number => Math.max(+value, 1),\n 'date.highlight': (args: Date[] | Date): Date[] => castArray(args),\n 'subDomain.label': (\n value: SubDomainOptions['label'],\n ): string | Function | null =>\n // eslint-disable-next-line\n ((isString(value) && value !== '') || isFunction(value) ? value : null),\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","import baseGetTag from './_baseGetTag.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nexport default isString;\n","import mergeWith from 'lodash-es/mergeWith';\nimport isEqual from 'lodash-es/isEqual';\nimport has from 'lodash-es/has';\nimport get from 'lodash-es/get';\nimport set from 'lodash-es/set';\nimport type { Ls } from 'dayjs';\nimport type { DomainType, Timestamp } from '../index';\nimport {\n OPTIONS_DEFAULT_DOMAIN_TYPE,\n OPTIONS_DEFAULT_SUBDOMAIN_TYPE,\n OPTIONS_DEFAULT_SUBDOMAIN_WIDTH,\n OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT,\n OPTIONS_DEFAULT_SUBDOMAIN_GUTTER,\n OPTIONS_DEFAULT_SUBDOMAIN_RADIUS,\n OPTIONS_DEFAULT_THEME,\n OPTIONS_DEFAULT_ANIMATION_DURATION,\n OPTIONS_DEFAULT_ITEM_SELECTOR,\n OPTIONS_DEFAULT_RANGE,\n SCALE_BASE_COLOR_SCHEME,\n SCALE_BASE_COLOR_TYPE,\n SCALE_BASE_COLOR_DOMAIN,\n OPTIONS_DEFAULT_LOCALE,\n} from '../constant';\n\nimport OptionsPreProcessors from './OptionsPreProcessors';\n\ntype SortOrder = 'asc' | 'desc';\nexport type TextAlign = 'start' | 'middle' | 'end';\nexport type Padding = [number, number, number, number];\n\nexport type DomainOptions = {\n type: DomainType;\n gutter: number;\n padding: Padding;\n dynamicDimension: boolean;\n label: LabelOptions;\n sort: SortOrder;\n};\n\ntype LabelOptions = {\n text?:\n | string\n | null\n | ((timestamp: Timestamp, element: SVGElement) => string);\n position: 'top' | 'right' | 'bottom' | 'left';\n textAlign: TextAlign;\n offset: {\n x: number;\n y: number;\n };\n rotate: null | 'left' | 'right';\n width: number;\n height: number;\n};\n\nexport type SubDomainOptions = {\n type: string;\n width: number;\n height: number;\n gutter: number;\n radius: number;\n label:\n | string\n | null\n | ((timestamp: Timestamp, value: number, element: SVGElement) => string);\n color?:\n | string\n | ((\n timestamp: Timestamp,\n value: number | string | null | undefined,\n backgroundColor: string,\n ) => string);\n sort: SortOrder;\n};\n\nexport type DataGroupType = 'sum' | 'count' | 'min' | 'max' | 'average';\n\ntype DateOptions = {\n start: Date;\n min?: Date;\n max?: Date;\n highlight: Date[];\n locale: string | Partial<(typeof Ls)[0]>;\n timezone?: string;\n};\n\nexport type DataRecord = Record<string, string | number>;\nexport type DataOptions = {\n source: string | DataRecord[];\n type: 'json' | 'csv' | 'tsv' | 'txt';\n requestInit: object;\n x: string | ((datum: DataRecord) => number);\n y: string | ((datum: DataRecord) => number);\n groupY:\n | DataGroupType\n | ((values: (string | number | null)[]) => string | number | null);\n defaultValue: null | number | string;\n};\n\ntype ScaleOptions = {\n opacity?: {\n domain: number[];\n type?: string;\n baseColor: string;\n };\n color?: {\n domain: number[];\n scheme?: string;\n range?: string[];\n interpolate?: any;\n type?: string;\n };\n};\n\nexport type OptionsType = {\n itemSelector: string;\n range: number;\n domain: DomainOptions;\n subDomain: SubDomainOptions;\n date: DateOptions;\n data: DataOptions;\n scale?: ScaleOptions;\n animationDuration: number;\n verticalOrientation: boolean;\n theme: 'light' | 'dark';\n};\n\ntype InternalOptionsType = {\n x: {\n domainHorizontalLabelWidth: number;\n domainVerticalLabelHeight: number;\n };\n};\n\nexport default class Options {\n options: OptionsType & InternalOptionsType;\n\n preProcessors: {\n [key: string]: (value: any) => any;\n };\n\n constructor(processors = OptionsPreProcessors) {\n this.preProcessors = processors;\n\n this.options = {\n // selector string of the container to append the graph to\n // Accept any string value accepted by document.querySelector or CSS3\n // or an Element object\n itemSelector: OPTIONS_DEFAULT_ITEM_SELECTOR,\n\n // Number of domain to display on the graph\n range: OPTIONS_DEFAULT_RANGE,\n\n domain: {\n type: OPTIONS_DEFAULT_DOMAIN_TYPE,\n\n // Space between each domain, in pixel\n gutter: 4,\n\n padding: [0, 0, 0, 0],\n\n // Whether to enable dynamic domain size\n // The width/height on a domain depends on the number of\n // subDomains items count\n dynamicDimension: true,\n\n // Whether to show most recent date first\n sort: 'asc',\n\n label: {\n // Formatting of the domain label\n // @default: undefined, will use the formatting\n // according to domain type\n // Accept any string accepted by dayjs.format()\n // or a function\n //\n // Refer to https://day.js.org/docs/en/display/format\n // for list of accepted string tokens used by dayjs.format()\n text: undefined,\n\n // valid: top, right, bottom, left\n position: 'bottom',\n\n // Valid are the direct svg values: start, middle, end\n textAlign: 'middle',\n\n // By default, there is no margin/padding around the label\n offset: {\n x: 0,\n y: 0,\n },\n\n rotate: null,\n\n // Used only on vertical orientation\n width: 100,\n\n // Used only on horizontal orientation\n height: 25,\n },\n },\n\n subDomain: {\n type: OPTIONS_DEFAULT_SUBDOMAIN_TYPE,\n\n // Width of each subDomain cell, in pixel\n width: OPTIONS_DEFAULT_SUBDOMAIN_WIDTH,\n\n // Height of each subDomain cell, in pixel\n height: OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT,\n\n // Space between each subDomain cell, in pixel\n gutter: OPTIONS_DEFAULT_SUBDOMAIN_GUTTER,\n\n // Radius of each subDomain cell, in pixel\n radius: OPTIONS_DEFAULT_SUBDOMAIN_RADIUS,\n\n // Formatting of the text inside each subDomain cell\n // @default: null, no text\n // Accept any string accepted by dayjs.format()\n // or a function\n //\n // Refer to https://day.js.org/docs/en/display/format\n // for list of accepted string tokens used by dayjs.format()\n label: null,\n\n color: undefined,\n\n sort: 'asc',\n },\n\n date: {\n // Start date of the graph\n // @default now\n start: new Date(),\n\n min: undefined,\n\n max: undefined,\n\n // List of dates to highlight\n // Valid values:\n // - []: don't highlight anything\n // - an array of Date objects: highlight the specified dates\n highlight: [],\n\n locale: OPTIONS_DEFAULT_LOCALE,\n\n timezone: undefined,\n },\n\n // Calendar orientation\n // false: display domains side by side\n // true : display domains one under the other\n verticalOrientation: false,\n\n data: {\n // Data source\n // URL, where to fetch the original datas\n source: '',\n\n // Data type\n // Default: json\n type: 'json',\n\n requestInit: {},\n\n // keyname of the time property\n x: '',\n\n // keyname of the value property\n y: '',\n\n // Grouping function of the values\n groupY: 'sum',\n\n defaultValue: null,\n },\n\n scale: undefined,\n\n // Animation duration, in ms\n animationDuration: OPTIONS_DEFAULT_ANIMATION_DURATION,\n\n // Theme mode: dark/light\n theme: OPTIONS_DEFAULT_THEME,\n\n // Internally used options, do not edit not set\n x: {\n domainHorizontalLabelWidth: 0,\n domainVerticalLabelHeight: 0,\n },\n };\n }\n\n /**\n * Set a new value for an option, only if unchanged\n * @param {string} key Name of the option\n * @param {any} value Value of the option\n * @return {boolean} Whether the option have been changed\n */\n set(key: string, value: any): boolean {\n if (!has(this.options, key) || isEqual(get(this.options, key), value)) {\n return false;\n }\n\n set(\n this.options,\n key,\n has(this.preProcessors, key) ?\n get(this.preProcessors, key)(value) :\n value,\n );\n\n return true;\n }\n\n init(opts?: CalHeatmap.DeepPartial<OptionsType>): void {\n this.options = {\n // eslint-disable-next-line arrow-body-style\n ...mergeWith(this.options, opts, (_, srcValue) => {\n return Array.isArray(srcValue) ? srcValue : undefined;\n }),\n };\n\n const { options } = this;\n\n Object.keys(this.preProcessors).forEach((key) => {\n set(options, key, get(this.preProcessors, key)(get(options, key)));\n });\n\n if (typeof options.scale === 'undefined') {\n this.initScale();\n }\n\n options.x.domainVerticalLabelHeight = options.domain.label.height;\n\n // When the label is affecting the height\n if (\n options.domain.label.position === 'top' ||\n options.domain.label.position === 'bottom'\n ) {\n options.x.domainHorizontalLabelWidth = 0;\n } else {\n options.x.domainVerticalLabelHeight = 0;\n options.x.domainHorizontalLabelWidth = options.domain.label.width;\n }\n\n if (\n options.domain.label.text === null ||\n options.domain.label.text === ''\n ) {\n options.x.domainVerticalLabelHeight = 0;\n options.x.domainHorizontalLabelWidth = 0;\n }\n }\n\n initScale() {\n this.options.scale = {\n color: {\n scheme: SCALE_BASE_COLOR_SCHEME,\n type: SCALE_BASE_COLOR_TYPE,\n domain: SCALE_BASE_COLOR_DOMAIN,\n },\n };\n }\n}\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","import {\n json, csv, dsv, text,\n} from 'd3-fetch';\n\nimport type { DataOptions, DataRecord } from './options/Options';\nimport type { Timestamp } from './index';\nimport type CalHeatmap from './CalHeatmap';\n\nexport default class DataFetcher {\n calendar: CalHeatmap;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n }\n\n /**\n * Fetch and interpret data from the datasource\n *\n * @param {string|object} source\n * @param {number} startTimestamp\n * @param {number} endTimestamp\n *\n * @return {Promize} A promise, that will return the final data when resolved\n */\n async getDatas(\n source: DataOptions['source'],\n startTimestamp: Timestamp,\n endTimestamp: Timestamp,\n ): Promise<unknown> {\n if (typeof source === 'string' && source.length > 0) {\n return this.#fetch(source, startTimestamp, endTimestamp);\n }\n\n let d: DataRecord[] = [];\n if (Array.isArray(source)) {\n d = source;\n }\n\n return new Promise((resolve) => {\n resolve(d);\n });\n }\n\n parseURI(\n str: string,\n startTimestamp: Timestamp,\n endTimestamp: Timestamp,\n ): string {\n let newUri = str.replace(/\\{\\{start=(.*)\\}\\}/g, (_, format) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.calendar.dateHelper.date(startTimestamp).format(format));\n newUri = newUri.replace(/\\{\\{end=(.*)\\}\\}/g, (_, format) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.calendar.dateHelper.date(endTimestamp).format(format));\n\n return newUri;\n }\n\n #fetch(\n source: DataOptions['source'],\n startTimestamp: Timestamp,\n endTimestamp: Timestamp,\n ): Promise<unknown> {\n const { type, requestInit } = this.calendar.options.options.data;\n\n const url = this.parseURI(source as string, startTimestamp, endTimestamp);\n\n switch (type) {\n case 'json':\n return json(url, requestInit);\n case 'csv':\n return csv(url, requestInit);\n case 'tsv':\n return dsv('\\t', url, requestInit);\n case 'txt':\n return text(url, requestInit);\n default:\n return new Promise((resolve) => {\n resolve([]);\n });\n }\n }\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineBuiltInAccessor(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",f=\"month\",h=\"quarter\",c=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,f),s=n-i<0,u=e.clone().add(r+(s?-1:1),f);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:f,y:c,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:h}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=function(t){return t instanceof _},S=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=v;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<w(t)},m.$g=function(t,e,n){return O.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!O.u(e)||e,h=O.p(t),l=function(t,e){var i=O.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return O.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(h){case c:return r?l(1,0):l(31,11);case f:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=O.p(t),h=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=h+\"Date\",n[d]=h+\"Date\",n[f]=h+\"Month\",n[c]=h+\"FullYear\",n[u]=h+\"Hours\",n[s]=h+\"Minutes\",n[i]=h+\"Seconds\",n[r]=h+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===f||o===c){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[O.p(t)]()},m.add=function(r,h){var d,l=this;r=Number(r);var $=O.p(h),y=function(t){var e=w(l);return O.w(e.date(e.date()+Math.round(t*r)),l)};if($===f)return this.set(f,this.$M+r);if($===c)return this.set(c,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return O.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=O.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,f=n.months,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},c=function(t){return O.s(s%12||12,t,\"0\")},d=n.meridiem||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r},$={YY:String(this.$y).slice(-2),YYYY:this.$y,M:a+1,MM:O.s(a+1,2,\"0\"),MMM:h(n.monthsShort,a,f,3),MMMM:h(f,a),D:this.$D,DD:O.s(this.$D,2,\"0\"),d:String(this.$W),dd:h(n.weekdaysMin,this.$W,o,2),ddd:h(n.weekdaysShort,this.$W,o,3),dddd:o[this.$W],H:String(s),HH:O.s(s,2,\"0\"),h:c(1),hh:c(2),a:d(s,u,!0),A:d(s,u,!1),m:String(u),mm:O.s(u,2,\"0\"),s:String(this.$s),ss:O.s(this.$s,2,\"0\"),SSS:O.s(this.$ms,3,\"0\"),Z:i};return r.replace(y,(function(t,e){return e||$[t]||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=O.p(d),M=w(r),m=(M.utcOffset()-this.utcOffset())*e,v=this-M,g=O.m(this,M);return g=($={},$[c]=g/12,$[f]=g,$[h]=g/3,$[o]=(v-m)/6048e5,$[a]=(v-m)/864e5,$[u]=v/n,$[s]=v/e,$[i]=v/t,$)[y]||v,l?g:O.a(g)},m.daysInMonth=function(){return this.endOf(f).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=S(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return O.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),T=_.prototype;return w.prototype=T,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",f],[\"$y\",c],[\"$D\",d]].forEach((function(t){T[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),w.extend=function(t,e){return t.$i||(t(e,_,w),t.$i=!0),w},w.locale=S,w.isDayjs=p,w.unix=function(t){return w(1e3*t)},w.en=D[g],w.Ls=D,w.p={},w}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_dayOfYear=t()}(this,(function(){\"use strict\";return function(e,t,n){t.prototype.dayOfYear=function(e){var t=Math.round((n(this).startOf(\"day\")-n(this).startOf(\"year\"))/864e5)+1;return null==e?t:this.add(e-t,\"day\")}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekday=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekday=function(e){var t=this.$locale().weekStart||0,i=this.$W,n=(i<t?i+7:i)-t;return this.$utils().u(e)?n:this.subtract(n,\"day\").add(e,\"day\")}}}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_minMax=n()}(this,(function(){\"use strict\";return function(e,n,t){var i=function(e,n){if(!n||!n.length||!n[0]||1===n.length&&!n[0].length)return null;var t;1===n.length&&n[0].length>0&&(n=n[0]);t=n[0];for(var i=1;i<n.length;i+=1)n[i].isValid()&&!n[i][e](t)||(t=n[i]);return t};t.max=function(){var e=[].slice.call(arguments,0);return i(\"isAfter\",e)},t.min=function(){var e=[].slice.call(arguments,0);return i(\"isBefore\",e)}}}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeeksInYear=n()}(this,(function(){\"use strict\";return function(e,n){n.prototype.isoWeeksInYear=function(){var e=this.isLeapYear(),n=this.endOf(\"y\").day();return 4===n||e&&5===n?53:52}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeek=t()}(this,(function(){\"use strict\";var e=\"day\";return function(t,i,s){var a=function(t){return t.add(4-t.isoWeekday(),e)},d=i.prototype;d.isoWeekYear=function(){return a(this).year()},d.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var i,d,n,o,r=a(this),u=(i=this.isoWeekYear(),d=this.$u,n=(d?s.utc:s)().year(i).startOf(\"year\"),o=4-n.isoWeekday(),n.isoWeekday()>4&&(o+=7),n.add(o,e));return r.diff(u,\"week\")+1},d.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var n=d.startOf;d.startOf=function(e,t){var i=this.$utils(),s=!!i.u(t)||t;return\"isoweek\"===i.p(e)?s?this.date(this.date()-(this.isoWeekday()-1)).startOf(\"day\"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf(\"day\"):n.bind(this)(e,t)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isLeapYear=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.isLeapYear=function(){return this.$y%4==0&&this.$y%100!=0||this.$y%400==0}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){\"use strict\";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||\"YYYY-MM-DDTHH:mm:ssZ\").replace(/\\[([^\\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case\"Q\":return Math.ceil((t.$M+1)/3);case\"Do\":return r.ordinal(t.$D);case\"gggg\":return t.weekYear();case\"GGGG\":return t.isoWeekYear();case\"wo\":return r.ordinal(t.week(),\"W\");case\"w\":case\"ww\":return s.s(t.week(),\"w\"===e?1:2,\"0\");case\"W\":case\"WW\":return s.s(t.isoWeek(),\"W\"===e?1:2,\"0\");case\"k\":case\"kk\":return s.s(String(0===t.$H?24:t.$H),\"k\"===e?1:2,\"0\");case\"X\":return Math.floor(t.$d.getTime()/1e3);case\"x\":return t.$d.getTime();case\"z\":return\"[\"+t.offsetName()+\"]\";case\"zzz\":return\"[\"+t.offsetName(\"long\")+\"]\";default:return e}}));return n.bind(this)(a)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_timezone=e()}(this,(function(){\"use strict\";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||\"short\",o=t+\"|\"+i,r=e[o];return r||(r=new Intl.DateTimeFormat(\"en-US\",{hour12:!1,timeZone:t,year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(r[c]=parseInt(m,10))}var d=r[3],l=24===d?0:d,v=r[0]+\"-\"+r[1]+\"-\"+r[2]+\" \"+l+\":\"+r[4]+\":\"+r[5]+\":000\",h=+e;return(o.utc(v).valueOf()-(h-=h%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n=this.utcOffset(),i=this.toDate(),a=i.toLocaleString(\"en-US\",{timeZone:t}),u=Math.round((i-new Date(a))/1e3/60),f=o(a).$set(\"millisecond\",this.$ms).utcOffset(15*-Math.round(i.getTimezoneOffset()/15)-u,!0);if(e){var s=f.utcOffset();f=f.add(n-s,\"minute\")}return f.$x.$timezone=t,f},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return\"timezonename\"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"));return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if(\"string\"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return[i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t}}}));","!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_localizedFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"};return function(t,o,n){var r=o.prototype,i=r.format;n.en.formats=e,r.format=function(t){void 0===t&&(t=\"YYYY-MM-DDTHH:mm:ssZ\");var o=this.$locale().formats,n=function(t,o){return t.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var i=r&&r.toUpperCase();return n||o[r]||e[r]||o[i].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,o){return t||o.slice(1)}))}))}(t,void 0===o?{}:o);return i.call(this,n)}}}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_updateLocale=n()}(this,(function(){\"use strict\";return function(e,n,t){t.updateLocale=function(e,n){var o=t.Ls[e];if(o)return(n?Object.keys(n):[]).forEach((function(e){o[e]=n[e]})),o}}}));","import dayjs from 'dayjs';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport dayOfYear from 'dayjs/plugin/dayOfYear';\nimport weekday from 'dayjs/plugin/weekday';\nimport minMax from 'dayjs/plugin/minMax';\nimport isoWeeksInYear from 'dayjs/plugin/isoWeeksInYear';\nimport isoWeek from 'dayjs/plugin/isoWeek';\nimport isLeapYear from 'dayjs/plugin/isLeapYear';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone';\nimport localeData from 'dayjs/plugin/localeData';\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\nimport updateLocale from 'dayjs/plugin/updateLocale';\n\nimport type { ManipulateType, PluginFunc, Ls } from 'dayjs';\nimport type { OptionsType } from '../options/Options';\nimport type { Timestamp, DomainType } from '../index';\n\ndayjs.extend(weekOfYear);\ndayjs.extend(isoWeeksInYear);\ndayjs.extend(isoWeek);\ndayjs.extend(isLeapYear);\ndayjs.extend(dayOfYear);\ndayjs.extend(weekday);\ndayjs.extend(minMax);\ndayjs.extend(advancedFormat);\ndayjs.extend(utc);\ndayjs.extend(timezone);\ndayjs.extend(localeData);\ndayjs.extend(localizedFormat);\ndayjs.extend(updateLocale);\n\nconst DEFAULT_LOCALE = 'en';\n\nexport default class DateHelper {\n locale: OptionsType['date']['locale'];\n\n timezone: string;\n\n constructor() {\n this.locale = DEFAULT_LOCALE;\n this.timezone = dayjs.tz.guess();\n if (typeof window === 'object') {\n (window as any).dayjs ||= dayjs;\n }\n }\n\n async setup({ options }: { options: OptionsType }) {\n this.timezone = options.date.timezone || dayjs.tz.guess();\n const userLocale = options.date.locale;\n\n if (typeof userLocale === 'string' && userLocale !== DEFAULT_LOCALE) {\n let locale;\n if (typeof window === 'object') {\n locale =\n (window as any)[`dayjs_locale_${userLocale}`] ||\n (await this.loadBrowserLocale(userLocale));\n } else {\n locale = await this.loadNodeLocale(userLocale);\n }\n dayjs.locale(userLocale);\n this.locale = locale;\n }\n\n if (typeof userLocale === 'object') {\n if (userLocale.hasOwnProperty('name')) {\n dayjs.locale(userLocale.name, userLocale);\n this.locale = userLocale;\n } else {\n this.locale = dayjs.updateLocale(DEFAULT_LOCALE, userLocale);\n }\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n extend(dayjsPlugin: PluginFunc): dayjs.Dayjs {\n return dayjs.extend(dayjsPlugin);\n }\n\n /**\n * Return the week number, relative to its month\n *\n * @param {number|Date} d Date or timestamp in milliseconds\n * @returns {number} The week number, relative to the month [0-5]\n */\n getMonthWeekNumber(d: Timestamp | dayjs.Dayjs): number {\n const dayjsDate = this.date(d);\n const date = dayjsDate.startOf('day');\n const endOfWeek = dayjsDate.startOf('month').endOf('week');\n\n if (date <= endOfWeek) {\n return 1;\n }\n return Math.ceil(date.diff(endOfWeek, 'weeks', true)) + 1;\n }\n\n /**\n * Return the number of weeks in the given month\n *\n * As there is no fixed standard to specify which month a partial week should\n * belongs to, the ISO week date standard is used, where:\n * - the first week of the month should have at least 4 days\n *\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Timestamp | dayjs.Dayjs} d Datejs object or timestamp\n * @return {number} The number of weeks\n */\n getWeeksCountInMonth(d: Timestamp | dayjs.Dayjs): number {\n const pivotDate = this.date(d);\n\n return (\n this.getLastWeekOfMonth(pivotDate).diff(\n this.getFirstWeekOfMonth(pivotDate),\n 'week',\n ) + 1\n );\n }\n\n /**\n * Return the start of the first week of the month\n *\n * @see getWeeksCountInMonth() about standard warning\n * @return {dayjs.Dayjs} A dayjs object representing the start of the\n * first week\n */\n getFirstWeekOfMonth(d: Timestamp | dayjs.Dayjs): dayjs.Dayjs {\n const startOfMonth = this.date(d).startOf('month');\n let startOfFirstWeek = startOfMonth.startOf('week');\n if (startOfMonth.weekday() > 4) {\n startOfFirstWeek = startOfFirstWeek.add(1, 'week');\n }\n\n return startOfFirstWeek;\n }\n\n /**\n * Return the end of the last week of the month\n *\n * @see getWeeksCountInMonth() about standard warning\n * @return {dayjs.Dayjs} A dayjs object representing the end of the last week\n */\n getLastWeekOfMonth(d: Timestamp | dayjs.Dayjs): dayjs.Dayjs {\n const endOfMonth = this.date(d).endOf('month');\n let endOfLastWeek = endOfMonth.endOf('week');\n if (endOfMonth.weekday() < 4) {\n endOfLastWeek = endOfLastWeek.subtract(1, 'week');\n }\n\n return endOfLastWeek;\n }\n\n date(d: Timestamp | Date | dayjs.Dayjs | string = new Date()): dayjs.Dayjs {\n if (dayjs.isDayjs(d)) {\n return d;\n }\n\n return dayjs(d)\n .tz(this.timezone)\n .utcOffset(0)\n .locale(this.locale as (typeof Ls)[0] | string);\n }\n\n format(\n timestamp: Timestamp,\n formatter: null | string | Function,\n ...args: any\n ): string | null {\n if (typeof formatter === 'function') {\n return formatter(timestamp, ...args);\n }\n\n if (typeof formatter === 'string') {\n return this.date(timestamp).format(formatter);\n }\n\n return null;\n }\n\n /**\n * Return an array of time interval\n *\n * @param {number|Date} date A random date included in the wanted interval\n * @param {number|Date} range Length of the wanted interval, or a stop date.\n * @param {boolean} range Whether the end date should be excluded\n * from the result\n * @returns {Array<number>} Array of unix timestamp, in milliseconds\n */\n intervals(\n interval: DomainType,\n date: Timestamp | Date | dayjs.Dayjs,\n range: number | Date | dayjs.Dayjs,\n excludeEnd: boolean = true,\n ): Timestamp[] {\n let start = this.date(date);\n let end: dayjs.Dayjs;\n if (typeof range === 'number') {\n end = start.add(range, interval as ManipulateType);\n } else if (dayjs.isDayjs(range)) {\n end = range;\n } else {\n end = this.date(range);\n }\n\n start = start.startOf(interval as ManipulateType);\n\n end = end.startOf(interval as ManipulateType);\n let pivot = dayjs.min(start, end);\n end = dayjs.max(start, end);\n const result: Timestamp[] = [];\n\n if (!excludeEnd) {\n end = end.add(1, 'second');\n }\n\n do {\n result.push(+pivot);\n pivot = pivot.add(1, interval as ManipulateType);\n } while (pivot < end);\n\n return result;\n }\n\n // this function will work cross-browser for loading scripts asynchronously\n // eslint-disable-next-line class-methods-use-this\n loadBrowserLocale(userLocale: string): Promise<any> {\n return new Promise((resolve, reject) => {\n const s = document.createElement('script');\n s.type = 'text/javascript';\n s.async = true;\n s.src = `https://cdn.jsdelivr.net/npm/dayjs@1/locale/${userLocale}.js`;\n s.onerror = (err) => {\n reject(err);\n };\n s.onload = () => {\n resolve((window as any)[`dayjs_locale_${userLocale}`]);\n };\n document.head.appendChild(s);\n });\n }\n\n // eslint-disable-next-line class-methods-use-this\n loadNodeLocale(userLocale: string): Promise<any> {\n return import(`dayjs/locale/${userLocale}.js`);\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","import type TemplateCollection from '../TemplateCollection';\nimport type { DomainOptions, SubDomainOptions, DataOptions } from './Options';\nimport type { DomainType } from '../index';\n\nconst ALLOWED_DATA_TYPES = ['json', 'csv', 'tsv', 'txt'];\n\n/**\n * Ensure that critical options are valid\n *\n * @throw {Error} on critical invalid options\n * @return {boolean} Returns true when there is not critical errors\n */\nexport default function validate(\n templateCollection: TemplateCollection,\n {\n domain,\n subDomain,\n data,\n }: {\n domain: Partial<DomainOptions>;\n subDomain: Partial<SubDomainOptions>;\n data: Partial<DataOptions>;\n },\n): boolean {\n const domainType = domain.type as DomainType;\n const subDomainType = subDomain.type as string;\n\n if (!templateCollection.has(domainType)) {\n throw new Error(`'${domainType}' is not a valid domain type'`);\n }\n\n if (!templateCollection.has(subDomainType)) {\n throw new Error(`'${subDomainType}' is not a valid subDomain type'`);\n }\n\n if (data.type && !ALLOWED_DATA_TYPES.includes(data.type)) {\n throw new Error(`The data type '${data.type}' is not valid data type`);\n }\n\n if (\n !(templateCollection.get(subDomainType).allowedDomainType || []).includes(\n domainType,\n )\n ) {\n throw new Error(\n `The subDomain.type '${subDomainType}' can not be used together ` +\n `with the domain type ${domainType}`,\n );\n }\n\n return true;\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","import isEqual from 'lodash-es/isEqual';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport {\n PluginDefinition,\n PluginOptions,\n IPluginContructor,\n IPlugin,\n} from '../index';\n\ntype PluginSetting = {\n options?: PluginOptions;\n dirty: boolean;\n};\n\nfunction createPlugin(\n Creator: IPluginContructor,\n calendar: CalHeatmap,\n): IPlugin {\n return new Creator(calendar);\n}\n\nfunction extractPluginName(\n PluginClass: IPluginContructor,\n options?: PluginOptions,\n): string {\n return `${new PluginClass().name}${options?.key || ''}`;\n}\n\nexport default class PluginManager {\n calendar: CalHeatmap;\n\n settings: Map<IPlugin['name'], PluginSetting>;\n\n plugins: Map<IPlugin['name'], IPlugin>;\n\n pendingPaint: Set<IPlugin>;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n this.settings = new Map();\n this.plugins = new Map();\n this.pendingPaint = new Set();\n }\n\n add(plugins: PluginDefinition[]): void {\n plugins.forEach(([PluginClass, pluginOptions]) => {\n const name = extractPluginName(PluginClass, pluginOptions);\n\n const existingPlugin = this.plugins.get(name);\n\n if (\n existingPlugin &&\n this.settings.get(name) &&\n isEqual(this.settings.get(name)!.options, pluginOptions)\n ) {\n return;\n }\n\n this.settings.set(name, {\n options: pluginOptions,\n dirty: true,\n });\n\n if (!this.plugins.has(name)) {\n this.plugins.set(name, createPlugin(PluginClass, this.calendar));\n }\n\n this.pendingPaint.add(this.plugins.get(name)!);\n });\n }\n\n setupAll(): void {\n this.plugins.forEach((pluginInstance, name) => {\n const settings = this.settings.get(name);\n\n if (typeof settings !== 'undefined') {\n if (settings.dirty) {\n pluginInstance.setup(settings.options);\n settings.dirty = false;\n\n this.settings.set(name, settings);\n }\n }\n });\n }\n\n paintAll(): Promise<unknown>[] {\n return Array.from(this.pendingPaint.values()).map((p) => p.paint());\n }\n\n destroyAll(): Promise<unknown>[] {\n return this.allPlugins().map((p) => p.destroy());\n }\n\n getFromPosition(position: PluginOptions['position']): IPlugin[] {\n return this.allPlugins().filter(\n (plugin) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n plugin.options?.position === position,\n );\n }\n\n getHeightFromPosition(position: PluginOptions['position']): number {\n return this.getFromPosition(position)\n .map((d) => d.options.dimensions!.height)\n .reduce((a, b) => a + b, 0);\n }\n\n getWidthFromPosition(position: PluginOptions['position']): number {\n return this.getFromPosition(position)\n .map((d) => d.options.dimensions!.width)\n .reduce((a, b) => a + b, 0);\n }\n\n allPlugins(): IPlugin[] {\n return Array.from(this.plugins.values());\n }\n}\n","import minuteTemplate from './minute';\nimport hourTemplate from './hour';\nimport dayTemplate from './day';\nimport xDayTemplate from './xDay';\nimport ghDayTemplate from './ghDay';\nimport weekTemplate from './week';\nimport monthTemplate from './month';\nimport yearTemplate from './year';\n\nexport default [\n minuteTemplate,\n hourTemplate,\n dayTemplate,\n xDayTemplate,\n ghDayTemplate,\n weekTemplate,\n monthTemplate,\n yearTemplate,\n];\n","import type { Template, DomainType } from '../index';\n\nconst minuteTemplate: Template = (DateHelper) => {\n const COLUMNS_COUNT = 10;\n const ROWS_COUNT = 6;\n const ALLOWED_DOMAIN_TYPE: DomainType[] = ['day', 'hour'];\n\n return {\n name: 'minute',\n allowedDomainType: ALLOWED_DOMAIN_TYPE,\n rowsCount: () => COLUMNS_COUNT,\n columnsCount: () => ROWS_COUNT,\n mapping: (startTimestamp, endTimestamp) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n DateHelper.intervals(\n 'minute',\n startTimestamp,\n DateHelper.date(endTimestamp),\n ).map((ts, index: number) => ({\n t: ts,\n x: Math.floor(index / COLUMNS_COUNT),\n y: index % COLUMNS_COUNT,\n })),\n extractUnit: (ts) => DateHelper.date(ts).startOf('minute').valueOf(),\n };\n};\n\nexport default minuteTemplate;\n","import type { DomainOptions } from '../options/Options';\nimport type { Template, DomainType } from '../index';\n\nconst hourTemplate: Template = (\n DateHelper,\n { domain }: { domain: DomainOptions },\n) => {\n const TOTAL_ITEMS = 24;\n const ROWS_COUNT = 6;\n const ALLOWED_DOMAIN_TYPE: DomainType[] = ['month', 'week', 'day'];\n\n return {\n name: 'hour',\n allowedDomainType: ALLOWED_DOMAIN_TYPE,\n rowsCount: () => ROWS_COUNT,\n columnsCount: (ts) => {\n switch (domain.type) {\n case 'week':\n return (TOTAL_ITEMS / ROWS_COUNT) * 7;\n case 'month':\n return (\n (TOTAL_ITEMS / ROWS_COUNT) *\n (domain.dynamicDimension ? DateHelper.date(ts).daysInMonth() : 31)\n );\n case 'day':\n default:\n return TOTAL_ITEMS / ROWS_COUNT;\n }\n },\n mapping: (startTimestamp, endTimestamp) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n DateHelper.intervals(\n 'hour',\n startTimestamp,\n DateHelper.date(endTimestamp),\n ).map((ts) => {\n const date = DateHelper.date(ts);\n const hour = date.hour();\n const monthDate = date.date();\n let baseX = Math.floor(hour / ROWS_COUNT);\n const columnOffset = TOTAL_ITEMS / ROWS_COUNT;\n\n if (domain.type === 'month') {\n baseX += (monthDate - 1) * columnOffset;\n }\n if (domain.type === 'week') {\n baseX += +date.format('d') * columnOffset;\n }\n\n return {\n t: ts,\n x: baseX,\n y: Math.floor(hour % ROWS_COUNT),\n };\n }),\n extractUnit: (ts) => DateHelper.date(ts).startOf('hour').valueOf(),\n };\n};\n\nexport default hourTemplate;\n","import type { OptionsType, DomainOptions } from '../options/Options';\nimport type { Template, DomainType } from '../index';\n\nconst dayTemplate: Template = (\n DateHelper,\n {\n domain,\n verticalOrientation,\n }: {\n domain: DomainOptions;\n verticalOrientation: OptionsType['verticalOrientation'];\n },\n) => {\n const ROWS_COUNT = 7;\n const ALLOWED_DOMAIN_TYPE: DomainType[] = ['year', 'month', 'week'];\n\n return {\n name: 'day',\n allowedDomainType: ALLOWED_DOMAIN_TYPE,\n rowsCount: () => (domain.type === 'week' ? 1 : ROWS_COUNT),\n columnsCount: (ts) => {\n switch (domain.type) {\n case 'month':\n return Math.ceil(\n domain.dynamicDimension && !verticalOrientation ?\n DateHelper.getMonthWeekNumber(\n DateHelper.date(ts).endOf('month'),\n ) :\n 6, // In rare case, when the first week contains less than 3 days\n );\n case 'year':\n return Math.ceil(\n domain.dynamicDimension ?\n DateHelper.date(ts).endOf('year').dayOfYear() / ROWS_COUNT :\n 54,\n );\n case 'week':\n default:\n return ROWS_COUNT;\n }\n },\n mapping: (startTimestamp, endTimestamp) => {\n let weekNumber = 0;\n let x = -1;\n\n return DateHelper.intervals(\n 'day',\n startTimestamp,\n DateHelper.date(endTimestamp),\n ).map((ts) => {\n const date = DateHelper.date(ts);\n\n switch (domain.type) {\n case 'month':\n x = DateHelper.getMonthWeekNumber(ts) - 1;\n break;\n case 'year':\n if (weekNumber !== date.week()) {\n weekNumber = date.week();\n x += 1;\n }\n break;\n case 'week':\n x = date.weekday();\n break;\n default:\n }\n\n return {\n t: ts,\n x,\n y: domain.type === 'week' ? 0 : date.weekday(),\n };\n });\n },\n extractUnit: (ts) => DateHelper.date(ts).startOf('day').valueOf(),\n };\n};\n\nexport default dayTemplate;\n","import type { OptionsType, DomainOptions } from '../options/Options';\nimport type { Template, DomainType } from '../index';\n\nconst dayTemplate: Template = (\n DateHelper,\n {\n domain,\n verticalOrientation,\n }: {\n domain: DomainOptions;\n verticalOrientation: OptionsType['verticalOrientation'];\n },\n) => {\n const COLUMNS_COUNT = 7;\n const ALLOWED_DOMAIN_TYPE: DomainType[] = ['year', 'month', 'week'];\n\n return {\n name: 'xDay',\n allowedDomainType: ALLOWED_DOMAIN_TYPE,\n rowsCount: (ts) => {\n switch (domain.type) {\n case 'month':\n return Math.ceil(\n domain.dynamicDimension && !verticalOrientation ?\n DateHelper.getMonthWeekNumber(\n DateHelper.date(ts).endOf('month'),\n ) :\n 6, // In rare case, when the first week contains less than 3 days\n );\n case 'year':\n return Math.ceil(\n domain.dynamicDimension ?\n DateHelper.date(ts).endOf('year').dayOfYear() / COLUMNS_COUNT :\n 54,\n );\n case 'week':\n default:\n return COLUMNS_COUNT;\n }\n },\n columnsCount: () => {\n if (domain.type === 'week') {\n return 1;\n }\n return COLUMNS_COUNT;\n },\n mapping: (startTimestamp, endTimestamp) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n DateHelper.intervals(\n 'day',\n startTimestamp,\n DateHelper.date(endTimestamp),\n ).map((ts) => {\n const date = DateHelper.date(ts);\n const endWeekNumber = date.endOf('year').week();\n let x = 0;\n\n switch (domain.type) {\n case 'month':\n x = DateHelper.getMonthWeekNumber(ts) - 1;\n break;\n case 'year':\n if (endWeekNumber === 1 && date.week() === endWeekNumber) {\n x = date.subtract(1, 'week').week() + 1;\n }\n\n x = date.week() - 1;\n break;\n case 'week':\n x = date.weekday();\n break;\n default:\n }\n\n return {\n t: ts,\n y: x,\n x: domain.type === 'week' ? 0 : date.weekday(),\n };\n }),\n extractUnit: (ts) => DateHelper.date(ts).startOf('day').valueOf(),\n };\n};\n\nexport default dayTemplate;\n","import type { Template, DomainType } from '../index';\n\nconst dayTemplate: Template = (DateHelper) => {\n const ROWS_COUNT = 7;\n const ALLOWED_DOMAIN_TYPE: DomainType[] = ['month'];\n\n return {\n name: 'ghDay',\n allowedDomainType: ALLOWED_DOMAIN_TYPE,\n rowsCount: () => ROWS_COUNT,\n columnsCount: (ts) => DateHelper.getWeeksCountInMonth(ts),\n mapping: (startTimestamp, endTimestamp) => {\n const clampStart = DateHelper.getFirstWeekOfMonth(startTimestamp);\n const clampEnd = DateHelper.getFirstWeekOfMonth(endTimestamp);\n\n let x = -1;\n const pivotDay = clampStart.weekday();\n\n return DateHelper.intervals('day', clampStart, clampEnd).map((ts) => {\n const weekday = DateHelper.date(ts).weekday();\n if (weekday === pivotDay) {\n x += 1;\n }\n\n return {\n t: ts,\n x,\n y: weekday,\n };\n });\n },\n extractUnit: (ts) => DateHelper.date(ts).startOf('day').valueOf(),\n };\n};\n\nexport default dayTemplate;\n","import type { DomainOptions } from '../options/Options';\nimport type { Template, DomainType } from '../index';\n\nconst weekTemplate: Template = (\n DateHelper,\n { domain }: { domain: DomainOptions },\n) => {\n const ALLOWED_DOMAIN_TYPE: DomainType[] = ['year', 'month'];\n\n return {\n name: 'week',\n allowedDomainType: ALLOWED_DOMAIN_TYPE,\n rowsCount: () => 1,\n columnsCount: (ts) => {\n switch (domain.type) {\n case 'year':\n return domain.dynamicDimension ?\n DateHelper.date(ts).endOf('year').isoWeeksInYear() :\n 53;\n case 'month':\n return domain.dynamicDimension ?\n DateHelper.getWeeksCountInMonth(ts) :\n 5;\n default:\n return 1;\n }\n },\n mapping: (startTimestamp, endTimestamp) => {\n const clampStart = DateHelper.getFirstWeekOfMonth(startTimestamp);\n const clampEnd = DateHelper.getFirstWeekOfMonth(endTimestamp);\n\n return DateHelper.intervals('week', clampStart, clampEnd).map(\n (ts, i) => ({\n t: ts,\n x: i,\n y: 0,\n }),\n );\n },\n extractUnit: (ts) => DateHelper.date(ts).startOf('week').valueOf(),\n };\n};\n\nexport default weekTemplate;\n","import type { Template, DomainType } from '../index';\n\nconst monthTemplate: Template = (DateHelper) => {\n const ALLOWED_DOMAIN_TYPE: DomainType[] = ['year'];\n\n return {\n name: 'month',\n allowedDomainType: ALLOWED_DOMAIN_TYPE,\n rowsCount: () => 1,\n columnsCount: () => 12,\n mapping: (startTimestamp, endTimestamp) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n DateHelper.intervals(\n 'month',\n startTimestamp,\n DateHelper.date(endTimestamp),\n ).map((ts) => ({\n t: ts,\n x: DateHelper.date(ts).month(),\n y: 0,\n })),\n extractUnit: (ts) => DateHelper.date(ts).startOf('month').valueOf(),\n };\n};\n\nexport default monthTemplate;\n","import type { Template, DomainType } from '../index';\n\nconst yearTemplate: Template = (DateHelper) => {\n const ALLOWED_DOMAIN_TYPE: DomainType[] = [];\n\n return {\n name: 'year',\n allowedDomainType: ALLOWED_DOMAIN_TYPE,\n rowsCount: () => 1,\n columnsCount: () => 1,\n mapping: (startTimestamp, endTimestamp) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n DateHelper.intervals(\n 'year',\n startTimestamp,\n DateHelper.date(endTimestamp),\n ).map((ts, index) => ({\n t: ts,\n x: index,\n y: 0,\n })),\n extractUnit: (ts) => DateHelper.date(ts).startOf('year').valueOf(),\n };\n};\n\nexport default yearTemplate;\n","import castArray from 'lodash-es/castArray';\n\nimport DefaultTemplates from './templates/index';\nimport type Options from './options/Options';\nimport type { Template, TemplateResult } from './index';\nimport type DateHelper from './helpers/DateHelper';\n\nexport default class TemplateCollection {\n dateHelper: DateHelper;\n\n options: Options;\n\n settings: Map<string, TemplateResult>;\n\n // Whether the default templates has been initiated\n initiated: boolean;\n\n constructor(dateHelper: DateHelper, options: Options) {\n this.settings = new Map();\n this.dateHelper = dateHelper;\n this.options = options;\n this.initiated = false;\n }\n\n get(subDomainType: string): TemplateResult {\n return this.settings.get(subDomainType)!;\n }\n\n has(subDomainType: string): boolean {\n return this.settings.has(subDomainType);\n }\n\n init() {\n if (!this.initiated) {\n this.initiated = true;\n this.add(DefaultTemplates);\n }\n }\n\n add(templates: Template | Template[]) {\n this.init();\n\n const tplWithParent: string[] = [];\n castArray(templates).forEach((f) => {\n const template = f(this.dateHelper, this.options.options);\n this.settings.set(template.name, template);\n\n if (template.hasOwnProperty('parent')) {\n tplWithParent.push(template.name);\n }\n });\n\n tplWithParent.forEach((name) => {\n const parentTemplate = this.settings.get(\n this.settings.get(name)!.parent!,\n );\n\n if (!parentTemplate) {\n return;\n }\n\n this.settings.set(name, {\n ...parentTemplate,\n ...this.settings.get(name),\n });\n });\n }\n}\n","import EventEmmiter from 'eventemitter3';\nimport castArray from 'lodash-es/castArray';\nimport type { PluginFunc } from 'dayjs';\nimport type dayjs from 'dayjs';\n\nimport Navigator from './calendar/Navigator';\nimport CalendarPainter from './calendar/CalendarPainter';\nimport Populator from './calendar/Populator';\nimport Options from './options/Options';\nimport DataFetcher from './DataFetcher';\nimport DomainCollection from './calendar/DomainCollection';\nimport DateHelper from './helpers/DateHelper';\nimport validate from './options/OptionsValidator';\nimport PluginManager from './plugins/PluginManager';\nimport VERSION from './version';\n\nimport './cal-heatmap.scss';\n\nimport TemplateCollection from './TemplateCollection';\n\nimport type { OptionsType } from './options/Options';\nimport type {\n Template,\n Dimensions,\n PluginDefinition,\n Timestamp,\n} from './index';\n\nimport { ScrollDirection } from './constant';\n\nexport default class CalHeatmap {\n static VERSION = VERSION;\n\n options: Options;\n\n calendarPainter: CalendarPainter;\n\n populator: Populator;\n\n navigator: Navigator;\n\n eventEmitter: EventEmmiter;\n\n dataFetcher: DataFetcher;\n\n domainCollection!: DomainCollection;\n\n templateCollection: TemplateCollection;\n\n dateHelper: DateHelper;\n\n pluginManager: PluginManager;\n\n constructor() {\n // Default options\n this.options = new Options();\n\n // Init the helpers with the default options\n this.dateHelper = new DateHelper();\n this.templateCollection = new TemplateCollection(\n this.dateHelper,\n this.options,\n );\n this.dataFetcher = new DataFetcher(this);\n this.navigator = new Navigator(this);\n this.populator = new Populator(this);\n\n this.calendarPainter = new CalendarPainter(this);\n this.eventEmitter = new EventEmmiter();\n this.pluginManager = new PluginManager(this);\n }\n\n createDomainCollection(\n startDate: Timestamp | Date,\n range: number | Date,\n excludeEnd: boolean = true,\n ): DomainCollection {\n return new DomainCollection(\n this.dateHelper,\n this.options.options.domain.type,\n startDate,\n range,\n excludeEnd,\n );\n }\n\n // =========================================================================\n // PUBLIC API\n // =========================================================================\n\n /**\n * Setup and paint the calendar with the given options\n *\n * @param {Object} options The Options object\n * @return A Promise, which will fulfill once all the underlying asynchronous\n * tasks settle, whether resolved or rejected.\n */\n async paint(\n options?: CalHeatmap.DeepPartial<OptionsType>,\n plugins?: PluginDefinition[] | PluginDefinition,\n ): Promise<unknown> {\n this.options.init(options);\n await this.dateHelper.setup(this.options);\n\n this.templateCollection.init();\n\n try {\n validate(this.templateCollection, this.options.options);\n } catch (error) {\n return Promise.reject(error);\n }\n\n if (plugins) {\n this.pluginManager.add(castArray(plugins as any) as PluginDefinition[]);\n }\n\n this.calendarPainter.setup();\n\n // Record all the valid domains\n // Each domain value is a timestamp in milliseconds\n this.domainCollection = new DomainCollection(this.dateHelper);\n this.navigator.loadNewDomains(\n this.createDomainCollection(\n this.options.options.date.start,\n this.options.options.range,\n ),\n );\n\n return Promise.allSettled([this.calendarPainter.paint(), this.fill()]);\n }\n\n /**\n * Add a new subDomainTemplate\n *\n * @since 4.0.0\n * @param {SubDomainTemplate[] | SubDomainTemplate} templates\n * A single, or an array of SubDomainTemplate object\n * @return void\n */\n addTemplates(templates: Template | Template[]): void {\n this.templateCollection.add(templates);\n }\n\n /**\n * Shift the calendar by n domains forward\n *\n * @param {number} n Number of domain intervals to shift forward\n * @return A Promise, which will fulfill once all the underlying asynchronous\n * tasks settle, whether resolved or rejected.\n */\n next(n: number = 1): Promise<unknown> {\n const loadDirection = this.navigator.loadNewDomains(\n this.createDomainCollection(this.domainCollection.max, n + 1).slice(n),\n ScrollDirection.SCROLL_FORWARD,\n );\n\n return Promise.allSettled([\n this.calendarPainter.paint(loadDirection),\n this.fill(),\n ]);\n }\n\n /**\n * Shift the calendar by n domains backward\n *\n * @param {number} n Number of domain intervals to shift backward\n * @return A Promise, which will fulfill once all the underlying asynchronous\n * tasks settle, whether resolved or rejected.\n */\n previous(n: number = 1): Promise<unknown> {\n const loadDirection = this.navigator.loadNewDomains(\n this.createDomainCollection(this.domainCollection.min, -n),\n ScrollDirection.SCROLL_BACKWARD,\n );\n\n return Promise.allSettled([\n this.calendarPainter.paint(loadDirection),\n this.fill(),\n ]);\n }\n\n /**\n * Jump directly to a specific date\n *\n * JumpTo will scroll the calendar until the wanted domain with the specified\n * date is visible. Unless you set reset to true, the wanted domain\n * will not necessarily be the first domain of the calendar.\n *\n * @param {Date} date Jump to the domain containing that date\n * @param {boolean} reset Whether the wanted domain\n * should be the first domain of the calendar\n * @return A Promise, which will fulfill once all the underlying asynchronous\n * tasks settle, whether resolved or rejected.\n */\n jumpTo(date: Date, reset: boolean = false): Promise<unknown> {\n return Promise.allSettled([\n this.calendarPainter.paint(this.navigator.jumpTo(date, reset)),\n this.fill(),\n ]);\n }\n\n /**\n * Fill the calendar with the given data\n *\n * @param {Object|string} dataSource The calendar's datasource,\n * same type as `options.data.source`\n * @return A Promise, which will fulfill once all the underlying asynchronous\n * tasks settle, whether resolved or rejected.\n */\n fill(dataSource = this.options.options.data.source): Promise<unknown> {\n const { options } = this.options;\n const template = this.templateCollection;\n const endDate = this.dateHelper.intervals(\n options.domain.type,\n this.domainCollection.max,\n 2,\n )[1];\n\n const dataPromise = this.dataFetcher.getDatas(\n dataSource,\n this.domainCollection.min,\n endDate,\n );\n\n return new Promise((resolve, reject) => {\n dataPromise.then(\n (data: any) => {\n this.domainCollection.fill(\n data,\n options.data,\n template.get(options.subDomain.type)!.extractUnit,\n );\n this.populator.populate();\n resolve(null);\n },\n (error) => {\n reject(error);\n },\n );\n });\n }\n\n /**\n * Listener for all events\n *\n * @since 4.0.0\n * @param {string} eventName Name of the event to listen to\n * @param {function} Callback function to execute on event trigger\n * @return void\n */\n on(name: string, fn: () => any): void {\n this.eventEmitter.on(name, fn);\n }\n\n dimensions(): Dimensions {\n return this.calendarPainter.dimensions;\n }\n\n /**\n * Destroy the calendar\n *\n * @since 3.3.6\n * @return A Promise, which will fulfill once all the underlying asynchronous\n * tasks settle, whether resolved or rejected.\n */\n destroy(): Promise<unknown> {\n return this.calendarPainter.destroy();\n }\n\n extendDayjs(plugin: PluginFunc): dayjs.Dayjs {\n return this.dateHelper.extend(plugin);\n }\n}\n","const VERSION = '4.2.3';\nexport default VERSION;\n"],"names":["check","it","Math","global","globalThis","window","self","this","Function","require$$0","defineProperty","Object","defineGlobalProperty","key","value","configurable","writable","error","require$$1","SHARED","sharedStore","store","sharedModule","undefined","push","version","mode","copyright","license","source","match","fails","exec","functionBindNative","test","bind","hasOwnProperty","NATIVE_BIND","FunctionPrototype","prototype","call","uncurryThisWithBind","functionUncurryThis","fn","apply","arguments","isNullOrUndefined","$TypeError","TypeError","requireObjectCoercible","$Object","toObject","argument","hasOwnProperty_1","hasOwn","uncurryThis","id","postfix","random","toString","uid","engineUserAgent","navigator","String","userAgent","process","Deno","versions","v8","split","engineV8Version","V8_VERSION","$String","require$$2","symbolConstructorDetection","getOwnPropertySymbols","symbol","Symbol","sham","useSymbolAsUid","iterator","shared","require$$3","NATIVE_SYMBOL","require$$4","USE_SYMBOL_AS_UID","require$$5","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","wellKnownSymbol","name","toStringTagSupport","documentAll","document","all","documentAll_1","IS_HTMLDDA","isCallable","objectDefineProperty","descriptors","get","isObject","EXISTS","createElement","documentCreateElement","ie8DomDefine","a","v8PrototypeDefineBug","anObject","functionCall","getBuiltIn","namespace","method","length","objectIsPrototypeOf","isPrototypeOf","isSymbol","$Symbol","tryToString","aCallable","getMethod","V","P","func","ordinaryToPrimitive","input","pref","val","valueOf","TO_PRIMITIVE","toPrimitive","result","exoticToPrim","toPropertyKey","DESCRIPTORS","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","ENUMERABLE","CONFIGURABLE","WRITABLE","f","O","Attributes","current","enumerable","makeBuiltIn$3","exports","getDescriptor","functionName","PROPER","functionToString","inspectSource","set","has","WeakMap","weakMapBasicDetection","createPropertyDescriptor","bitmap","definePropertyModule","createNonEnumerableProperty","object","keys","sharedKey","hiddenKeys","NATIVE_WEAK_MAP","require$$6","require$$7","OBJECT_ALREADY_INITIALIZED","state","metadata","facade","STATE","internalState","enforce","getterFor","TYPE","type","CONFIGURABLE_FUNCTION_NAME","enforceInternalState","getInternalState","stringSlice","slice","replace","join","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","makeBuiltInModule","options","getter","setter","arity","constructor","defineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","classofRaw","TO_STRING_TAG_SUPPORT","TO_STRING_TAG","CORRECT_ARGUMENTS","classof","tag","tryGet","callee","objectGetOwnPropertyDescriptor","objectPropertyIsEnumerable","$propertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","descriptor","indexedObject","IndexedObject","toIndexedObject","propertyIsEnumerableModule","objectGetOwnPropertyNames","ceil","floor","trunc","x","n","toIntegerOrInfinity","number","max","min","toAbsoluteIndex","index","integer","toLength","lengthOfArrayLike","obj","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","includes","indexOf","objectKeysInternal","names","i","enumBugKeys","internalObjectKeys","concat","getOwnPropertyNames","objectGetOwnPropertySymbols","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","isForced_1","copyConstructorProperties","target","exceptions","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","engineIsNode","uncurryThisAccessor","aPossiblePrototype","objectSetPrototypeOf","setPrototypeOf","CORRECT_SETTER","Array","proto","__proto__","setToStringTag","TAG","defineBuiltInAccessor","SPECIES","setSpecies","CONSTRUCTOR_NAME","Constructor","anInstance","Prototype","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","$location","defer","channel","port","isConstructor","called","aConstructor","functionApply","Reflect","functionUncurryThisClause","functionBindContext","that","html","arraySlice","engineIsIos","require$$8","validateArgumentsLength","passed","required","IS_IOS","require$$10","IS_NODE","require$$11","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","location","run","runner","eventListener","event","globalPostMessageDefer","postMessage","protocol","host","handler","args","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","appendChild","removeChild","setTimeout","task","Queue","head","tail","add","item","entry","next","notify","toggle","node","promise","then","engineIsIosPebble","Pebble","engineIsWebosWebkit","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","Promise","queueMicrotaskDescriptor","microtask","flush","parent","domain","exit","enter","resolve","createTextNode","observe","characterData","microtask_1","perform","promiseNativeConstructor","engineIsDeno","engineIsBrowser","NativePromiseConstructor","IS_BROWSER","IS_DENO","require$$9","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","promiseConstructorDetection","CONSTRUCTOR","REJECTION_EVENT","newPromiseCapability$2","PromiseCapability","C","reject","$$resolve","$$reject","newPromiseCapability","Internal","OwnPromiseCapability","nativeThen","$","require$$12","speciesConstructor","defaultConstructor","S","require$$14","require$$15","hostReportErrors","b","console","require$$17","require$$18","InternalStateModule","require$$19","require$$20","newPromiseCapabilityModule","require$$22","PROMISE","require$$21","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","setInternalState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","ok","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","isUnhandled","emit","unwrap","internalReject","done","internalResolve","wrapper","executor","onFulfilled","onRejected","PromiseWrapper","wrap","iterators","Iterators","ITERATOR","ArrayPrototype","isArrayIteratorMethod","getIteratorMethod","getIterator","usingIterator","iteratorMethod","iteratorClose","kind","innerResult","innerError","Result","stopped","ResultPrototype","iterate","iterable","unboundFunction","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","SAFE_CLOSING","iteratorWithReturn","return","from","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","promiseStaticsIncorrectIteration","capability","$promiseResolve","values","remaining","alreadyCalled","real","catch","race","r","promiseResolve","promiseCapability","objectDefineProperties","objectKeys","defineProperties","Properties","props","activeXDocument","definePropertiesModule","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","style","display","src","contentWindow","open","F","objectCreate","create","UNSCOPABLES","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","addToUnscopables","correctPrototypeGetter","getPrototypeOf","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","objectGetPrototypeOf","BUGGY_SAFARI_ITERATORS","NEW_ITERATOR_PROTOTYPE","iteratorsCore","returnThis","createIteratorConstructor","IteratorConstructor","NAME","ENUMERABLE_NEXT","PROPER_FUNCTION_NAME","require$$13","KEYS","VALUES","ENTRIES","iteratorDefine","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","createIterResultObject","defineIterator","ARRAY_ITERATOR","es_array_iterator","iterated","Arguments","allSettled","status","charAt","charCodeAt","CONVERT_TO_STRING","pos","first","second","position","size","stringMultibyte","codeAt","STRING_ITERATOR","point","domIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","classList","DOMTokenListPrototype","domTokenListPrototype","DOMIterables","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","METHOD_NAME","fill","argumentsLength","end","endPos","isArray","createProperty","propertyKey","arrayMethodHasSpeciesSupport","array","foo","Boolean","nativeSlice","HAS_SPECIES_SUPPORT","$Array","__awaiter","thisArg","_arguments","generator","fulfilled","e","rejected","__classPrivateFieldGet","receiver","start","k","fin","prefix","Events","EE","context","once","addListener","emitter","listener","evt","_events","_eventsCount","clearEvent","EventEmitter","eventNames","events","listeners","handlers","l","ee","listenerCount","a1","a2","a3","a4","a5","len","removeListener","j","on","removeAllListeners","off","prefixed","module","isArray$3","castArray","arraySpeciesConstructor","originalArray","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","boundFunction","arrayIteration","forEach","map","filter","some","every","find","findIndex","filterReject","$map","$assign","assign","objectAssign","A","B","alphabet","chr","T","internalMetadata","objectGetOwnPropertyNamesExternal","arraySliceSimple","$getOwnPropertyNames","windowNames","getWindowNames","arrayBufferNonExtensible","ArrayBuffer","buffer","isExtensible","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","objectIsExtensible","freezing","preventExtensions","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","meta","internalMetadataModule","enable","splice","fastKey","getWeakData","onFreeze","InternalMetadataModule","inheritIfRequired","dummy","Wrapper","NewTarget","NewTargetPrototype","collection","common","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","getConstructor","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setStrong","defineBuiltIns","internalStateGetterFor","uncaughtFrozenStore","frozen","UncaughtFrozenStore","findUncaughtFrozen","delete","ScrollDirection","Position","collectionWeak","define","init","SCALE_BASE_OPACITY_COLOR","SCALE_BASE_COLOR_DOMAIN","Navigator","calendar","_classCallCheck","maxDomainReached","minDomainReached","_createClass","newDomainCollection","_this","direction","SCROLL_NONE","templatesClt","templateCollection","minDate","date","extractUnit","maxDate","domainCollection","_Navigator_instances","_Navigator_isDomainBoundaryReached","clamp","range","SCROLL_FORWARD","merge","domainKey","subDomainEndDate","at","dateHelper","intervals","pop","subDomain","mapping","d","v","defaultValue","_Navigator_setDomainsBoundaryReached","SCROLL_BACKWARD","eventEmitter","reset","_this$calendar","Date","loadNewDomains","createDomainCollection","WeakSet","lowerBound","upperBound","reached","doesNotExceedSafeInteger","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","isConcatSpreadable","spreadable","arg","E","arrayMethodIsStrict","nativeJoin","separator","collectionStrong","last","previous","getEntry","removed","prev","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","mergeSort","comparefn","middle","insertionSort","element","left","right","llength","rlength","lindex","rindex","arraySort","firefox","engineFfVersion","engineIsIeOrEdge","webkit","engineWebkitVersion","deletePropertyOrThrow","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","nativeSort","sort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","STABLE_SORT","code","fromCharCode","itemsLength","items","arrayLength","y","getSortCompare","$forEach","arrayForEach","isVertical","horizontalPadding","padding","LEFT","RIGHT","verticalPadding","TOP","BOTTOM","DomainCoordinates","domainPainter","Map","scrollDirection","_this$calendar$option","verticalOrientation","dimensions","width","height","exitingTotal","scrollFactor","reverse","yankedDomains","coor","w","_DomainCoordinates_instances","_DomainCoordinates_getWidth","h","_DomainCoordinates_getHeight","pre_x","pre_y","inner_width","gutter","inner_height","_this$calendar$option2","columnsCount","subDomainWidth","domainHorizontalLabelWidth","_this$calendar$option3","rowsCount","subDomainHeight","domainVerticalLabelHeight","DEFAULT_SELECTOR","DomainPainter","coordinates","root","rootNode","animationDuration","t","transition","duration","update","promises","selectAll","append","attr","enterSelection","updateSelection","exitSelection","remove","classname","helper","hour","format","week","month","year","$includes","$filter","IS_RIGHT","memo","$reduce","reduce","callWithSafeIterationClosing","arrayLike","IS_CONSTRUCTOR","mapfn","whitespaces","ltrim","RegExp","rtrim","stringTrim","trim","$parseInt","parseInt","hex","numberParseInt","radix","DOMAIN_FORMAT","xDay","ghDay","day","minute","DomainCollection","interval","excludeEnd","ts","_DomainCollection_instances","_DomainCollection_refreshKeys","callback","newCollection","limit","createValueCallback","_this2","keyToRemove","_this3","fromBeginning","_ref","subDomainKeyExtractor","_this4","groupY","groupedRecords","groupRecords","records","_DomainCollection_setSubDomainValues","_this5","results","validSubDomainTimestamp","timestamp","extractTimestamp","groupFn","cleanedValues","_toConsumableArray","datum","extractorFn","_this6","groupValues","_DomainCollection_extractValues","DomainLabelPainter","label","text","textAlign","_DomainLabelPainter_instances","_DomainLabelPainter_textVerticalAlign","nodes","selection","_DomainLabelPainter_domainRotate","rotate","_this$calendar$option4","offset","_DomainLabelPainter_getDomainInsideWidth","_this$calendar$option5","_this$calendar$option6","_this$calendar$option7","_DomainLabelPainter_getDomainInsideHeight","_this$calendar$option8","calendarPainter","domainsContainerPainter","_this$calendar$option9","_this$calendar$option10","_this$calendar$option11","labelWidth","domainWidth","domainHeight","s","$trim","forcedStringTrimMethod","SubDomainPainter","containerClassname","subDomainSvgGroup","_SubDomainPainter_instances","_SubDomainPainter_setPositions","radius","subDomainsCollection","abs","insert","_SubDomainPainter_classname","ev","_SubDomainPainter_appendText","_options$domain","highlight","unitFn","_len","otherClasses","_key","elem","_SubDomainPainter_getCoordinates","axis","BASE_SELECTOR","TRANSITION_CLASSNAME","DomainsContainerPainter","subDomainPainter","domainLabelPainter","transitionsQueueCount","_DomainsContainerPainter_instances","_DomainsContainerPainter_startAnimation","paint","_DomainsContainerPainter_recomputeDimensions","_DomainsContainerPainter_endAnimation","_a","topHeight","pluginManager","getHeightFromPosition","leftWidth","getWidthFromPosition","select","parentNode","classed","domainsDimensions","PluginPainter","paintAll","setPluginsPosition","top","getFromPosition","bottom","topOffset","plugin","leftOffset","CalendarPainter","pluginPainter","itemSelector","theme","setup","setupAll","navigationDir","transitions","updatePosition","_CalendarPainter_instances","_CalendarPainter_resize","destroyAll","destroy","insideHeight","_CalendarPainter_getWidth","insideWidth","newWidth","newHeight","freeGlobal$1","freeSelf","root$1","freeGlobal","Symbol$2","objectProto","nativeObjectToString","symToStringTag","toStringTag","nullTag","undefinedTag","baseGetTag","isOwn","unmasked","getRawTag","objectToString","asyncTag","funcTag","genTag","proxyTag","isFunction","nativeKeys","MATCH","isRegExp","notARegexp","correctIsRegexpLogic","regexp","error1","error2","notARegExp","correctIsRegExpLogic","nativeStartsWith","startsWith","CORRECT_IS_REGEXP_LOGIC","searchString","search","TO_ENTRIES","$entries","defined","Number","isNaN","ascendingDefined","ascending","finite","isFinite","NaN","positive","negative","re","parse","fallback","timeIntervals","timeSecond","timeMinute","timeHour","timeDay","timeWeek","timeMonth","timeYear","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","timeSunday","utcIntervals","utcSecond","utcMinute","utcHour","utcDay","utcWeek","utcMonth","utcYear","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcSunday","maybeTimeInterval","Error","maybeUtcInterval","TypedArray","Uint8Array","constant","coerceNumbers","coerceNumber","Float64Array","coerceDates","coerceDate","isoParse","arrayify","isScaleOptions","option","maybeInterval","isInteger","lo","hi","rangei","maybeRangeInterval","isOrdinal","isTemporal","isTemporalString","isNumericString","orderof","descending","color","opacity","registry","sqrt4_3","sqrt","symbolHexagon","draw","rx","PI","ry","hy","moveTo","lineTo","closePath","symbols","symbolAsterisk","symbolCircle","symbolCross","symbolDiamond","symbolDiamond2","symbolPlus","symbolSquare","symbolSquare2","symbolStar","symbolTimes","symbolTriangle","symbolTriangle2","symbolWye","maybeSymbol","isSymbolObject","warn","message","ordinalSchemes","schemeAccent","schemeCategory10","schemeDark2","schemePaired","schemePastel1","schemePastel2","schemeSet1","schemeSet2","schemeSet3","schemeTableau10","scheme11","schemeBrBG","interpolateBrBG","schemePRGn","interpolatePRGn","schemePiYG","interpolatePiYG","schemePuOr","interpolatePuOr","schemeRdBu","interpolateRdBu","schemeRdGy","interpolateRdGy","schemeRdYlBu","interpolateRdYlBu","schemeRdYlGn","interpolateRdYlGn","schemeSpectral","interpolateSpectral","scheme11r","scheme9","schemeBlues","interpolateBlues","schemeGreens","interpolateGreens","schemeGreys","interpolateGreys","schemeOranges","interpolateOranges","schemePurples","interpolatePurples","schemeReds","interpolateReds","schemei","interpolateTurbo","interpolateViridis","interpolateMagma","interpolateInferno","interpolatePlasma","interpolateCividis","interpolateCubehelixDefault","interpolateWarm","interpolateCool","schemeBuGn","interpolateBuGn","schemeBuPu","interpolateBuPu","schemeGnBu","interpolateGnBu","schemeOrRd","interpolateOrRd","schemePuBu","interpolatePuBu","schemePuBuGn","interpolatePuBuGn","schemePuRd","interpolatePuRd","schemeRdPu","interpolateRdPu","schemeYlGn","interpolateYlGn","schemeYlGnBu","interpolateYlGnBu","schemeYlOrBr","interpolateYlOrBr","schemeYlOrRd","interpolateYlOrRd","schemeicyclical","interpolateRainbow","interpolateSinebow","scheme","interpolate","quantize","ordinalScheme","ordinalRange","quantitativeSchemes","quantitativeScheme","divergingSchemes","Set","isDivergingScheme","flip","unit","interpolators","interpolateNumber","interpolateRgb","interpolateHsl","interpolateHcl","interpolateLab","maybeInterpolator","createScaleQ","scale","channels","nice","zero","inferAutoDomain","unknown","round","inferRadialRange","inferLengthRange","interpolateRound","_","interpolatePiecewise","extent","sign","reverseof","maybeNiceInterval","maybeNice","createScalePow","exponent","scalePow","createScaleThreshold","isOrdered","scaleThreshold","inferDomain","inferZeroDomain","hint","h25","quantile","h50","median","inferLogDomain","inferQuantileDomain","createScaleD","transform","pivot","symmetric","piecewise","mid","mindelta","maxdelta","invert","interpolator","createScaleDivergingPow","scaleDivergingPow","transformSqrt","pow","transformPow","createScaleDivergingSymlog","scaleDivergingSymlog","log1p","expm1","transformSymlog","transformIdentity","transformLog","log","exp","createScaleT","ordinalImplicit","createScaleO","createScaleOrdinal","inferHint","stroke","inferSymbolHint","isNone","symbolsStroke","symbolsFill","inferSymbolRange","maybeBooleanRange","t0","scaleImplicit","scaleOrdinal","maybeRound","InternSet","candidate","normalizeScale","projection","typeProjection","asOrdinalType","inferScaleType","isOrdinalScale","formatScaleType","coerceType","coerceSymbols","scaleDiverging","createScaleDiverging","createScaleDivergingSqrt","base","scaleDivergingLog","createScaleDivergingLog","scaleLinear","createScaleLinear","createScaleSqrt","quantiles","scaleQuantile","createScaleQuantile","thresholds","ticks","createScaleQuantize","scaleLog","createScaleLog","scaleSymlog","createScaleSymlog","scaleUtc","createScaleUtc","scaleTime","createScaleTime","align","scalePoint","createScalePoint","paddingInner","paddingOuter","scaleBand","createScaleBand","scaleIdentity","createScale","description","coerceValues","c","exposeScale","percent","bandwidth","normalizedScale","scaleOptions","scaleType","applyScaleStyle","_scale","keyname","styles","baseColor","scaleStyle","_ref2","_slicedToArray","prop","Populator","_calendar$options$opt","colorScale","defaultColor","hcl","eq","other","assocIndexOf","ListCache","__data__","coreJsData$1","maskSrcKey","coreJsData","funcToString","toSource","reIsHostCtor","funcProto","reIsNative","baseIsNative","getNative","getValue","Map$2","nativeCreate$1","Hash","getMapData","MapCache","nativeCreate","hash","Stack","pairs","LARGE_ARRAY_SIZE","defineProperty$1","baseAssignValue","assignMergeValue","fromRight","baseFor","iteratee","keysFunc","baseFor$1","freeExports","nodeType","freeModule","Buffer","allocUnsafe","Uint8Array$2","cloneTypedArray","typedArray","isDeep","arrayBuffer","byteLength","byteOffset","baseCreate$1","overArg","getPrototype$1","isPrototype","Ctor","isObjectLike","baseIsArguments","isArguments","isArguments$1","MAX_SAFE_INTEGER","isLength","isArrayLike","isBuffer$1","isBuffer","objectTag","objectCtorString","typedArrayTags","freeProcess","nodeUtil","types","require","binding","nodeIsTypedArray","isTypedArray","isTypedArray$1","safeGet","assignValue","objValue","reIsUint","isIndex","arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","baseTimes","baseKeysIn","nativeKeysIn","isProto","keysIn","toPlainObject","customizer","isNew","newValue","copyObject","baseMergeDeep","srcIndex","mergeFunc","stack","srcValue","stacked","isCommon","isTyped","copyArray","copy","cloneBuffer","getPrototype","isPlainObject","baseCreate","initCloneObject","baseMerge","identity","nativeMax","baseSetToString","baseSetToString$1","nativeNow","setToString","count","lastCalled","stamp","shortOut","setToString$1","baseRest","otherArgs","overRest","assigner","mergeWith","sources","guard","isIterateeCall","mergeWith$1","SetCache","arraySome","predicate","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","equalArrays","bitmask","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","mapToArray","setToArray","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","stringTag","symbolTag","arrayBufferTag","dataViewTag","symbolProto","symbolValueOf","nativeGetSymbols","getSymbols","resIndex","arrayFilter","getSymbols$1","nativeKeys$1","baseKeys","getAllKeys","symbolsFunc","arrayPush","baseGetAllKeys","DataView$1","Promise$2","Set$2","WeakMap$1","promiseTag","weakMapTag","dataViewCtorString","DataView","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","getTag$1","argsTag","arrayTag","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","convert","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","equalObjects","baseIsEqual","isEqual","baseHas","reIsDeepProp","reIsPlainProp","FUNC_ERROR_TEXT","memoize","resolver","memoized","cache","Cache","rePropName","reEscapeChar","stringToPath","memoizeCapped","quote","subString","stringToPath$1","INFINITY","symbolToString","baseToString","arrayMap","castPath","isKey","toKey","path","hasFunc","hasPath","baseGet","lastIndex","nested","baseSet","re1","re2","OptionsPreProcessors","isString","Options","processors","preProcessors","dynamicDimension","locale","timezone","requestInit","opts","initScale","$RegExp","UNSUPPORTED_Y","MISSED_STICKY","sticky","BROKEN_CARET","regexpStickyHelpers","regexpUnsupportedDotAll","dotAll","flags","regexpUnsupportedNcg","groups","regexpFlags","hasIndices","ignoreCase","multiline","unicode","unicodeSets","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","group","str","raw","charsAdded","strCopy","regexpExec","RegExpPrototype","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","fixRegExpWellKnownSymbolLogic","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","uncurriedNativeRegExpMethod","nativeMethod","arg2","forceStringMethod","$exec","advanceStringIndex","getSubstitution","matched","captures","namedCaptures","tailPos","m","ch","capture","regExpExec","R","REPLACE","require$$16","stringIndexOf","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_SUPPORTS_NAMED_GROUPS","maybeCallNative","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","res","functionalReplace","fullUnicode","accumulatedResult","nextSourcePosition","replacerArgs","DataFetcher","startTimestamp","endTimestamp","_context","abrupt","_DataFetcher_instances","_DataFetcher_fetch","_callee","newUri","url","parseURI","json","csv","dsv","FUNCTION_NAME_EXISTS","nameRE","dayjs_min","u","o","M","weekdays","months","ordinal","z","utcOffset","clone","p","D","ms","Q","g","$L","utc","$u","$x","$offset","$d","substring","UTC","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","unix","getTime","toDate","$locale","weekStart","$set","daysInMonth","subtract","invalidDate","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","H","HH","hh","mm","ss","SSS","Z","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","extend","$i","isDayjs","en","Ls","yearStart","weeks","dayOfYear","weekday","isoWeeksInYear","isLeapYear","isoWeekday","isoWeekYear","isoWeek","weekYear","offsetName","local","getUTCFullYear","getUTCMonth","getUTCDate","getUTCDay","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","$localOffset","isUTC","timeZoneName","Intl","DateTimeFormat","hour12","timeZone","formatToParts","tz","toLocaleString","$timezone","guess","resolvedOptions","setDefault","formats","toUpperCase","firstDayOfWeek","longDateFormat","localeData","LTS","L","LL","LLL","LLLL","updateLocale","dayjs","weekOfYear","minMax","advancedFormat","localizedFormat","DEFAULT_LOCALE","DateHelper","_typeof","userLocale","loadBrowserLocale","sent","loadNodeLocale","dayjsPlugin","dayjsDate","endOfWeek","pivotDate","getLastWeekOfMonth","getFirstWeekOfMonth","startOfMonth","startOfFirstWeek","endOfMonth","endOfLastWeek","formatter","async","onerror","err","onload","import","ALLOWED_DATA_TYPES","validate","domainType","subDomainType","allowedDomainType","PluginManager","settings","plugins","pendingPaint","Creator","PluginClass","pluginOptions","extractPluginName","dirty","pluginInstance","allPlugins","TOTAL_ITEMS","monthDate","baseX","getMonthWeekNumber","weekNumber","endWeekNumber","getWeeksCountInMonth","clampStart","clampEnd","pivotDay","TemplateCollection","initiated","DefaultTemplates","templates","tplWithParent","template","parentTemplate","CalHeatmap","dataFetcher","populator","EventEmmiter","startDate","loadDirection","jumpTo","dataSource","endDate","dataPromise","getDatas","populate","VERSION"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,161,162,163,164,165,166,167,168,169,170,171,172,173,174,178,179,180,181,182,183,184,185,186,187,188,191,192,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,359,360,362,363,364,365,366,367,368,369,370,371,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,389,391]} \ No newline at end of file diff --git a/static/javascripts/cal-heatmap/plugins/CalendarLabel.esm.js b/static/javascripts/cal-heatmap/plugins/CalendarLabel.esm.js new file mode 100644 index 000000000..44d6ba523 --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/CalendarLabel.esm.js @@ -0,0 +1,3793 @@ +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); + } +} +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function _toPrimitive(input, hint) { + if (typeof input !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (typeof res !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} +function _toPropertyKey(arg) { + var key = _toPrimitive(arg, "string"); + return typeof key === "symbol" ? key : String(key); +} + +var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +var fails$j = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } +}; + +var fails$i = fails$j; + +// Detect IE8's incomplete defineProperty implementation +var descriptors = !fails$i(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; +}); + +var fails$h = fails$j; + +var functionBindNative = !fails$h(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); +}); + +var NATIVE_BIND$3 = functionBindNative; + +var FunctionPrototype$3 = Function.prototype; +var call$e = FunctionPrototype$3.call; +var uncurryThisWithBind = NATIVE_BIND$3 && FunctionPrototype$3.bind.bind(call$e, call$e); + +var functionUncurryThis = NATIVE_BIND$3 ? uncurryThisWithBind : function (fn) { + return function () { + return call$e.apply(fn, arguments); + }; +}; + +// we can't use just `it == null` since of `document.all` special case +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec +var isNullOrUndefined$6 = function (it) { + return it === null || it === undefined; +}; + +var isNullOrUndefined$5 = isNullOrUndefined$6; + +var $TypeError$c = TypeError; + +// `RequireObjectCoercible` abstract operation +// https://tc39.es/ecma262/#sec-requireobjectcoercible +var requireObjectCoercible$3 = function (it) { + if (isNullOrUndefined$5(it)) throw $TypeError$c("Can't call method on " + it); + return it; +}; + +var requireObjectCoercible$2 = requireObjectCoercible$3; + +var $Object$4 = Object; + +// `ToObject` abstract operation +// https://tc39.es/ecma262/#sec-toobject +var toObject$5 = function (argument) { + return $Object$4(requireObjectCoercible$2(argument)); +}; + +var uncurryThis$l = functionUncurryThis; +var toObject$4 = toObject$5; + +var hasOwnProperty = uncurryThis$l({}.hasOwnProperty); + +// `HasOwnProperty` abstract operation +// https://tc39.es/ecma262/#sec-hasownproperty +// eslint-disable-next-line es/no-object-hasown -- safe +var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject$4(it), key); +}; + +var DESCRIPTORS$b = descriptors; +var hasOwn$b = hasOwnProperty_1; + +var FunctionPrototype$2 = Function.prototype; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getDescriptor = DESCRIPTORS$b && Object.getOwnPropertyDescriptor; + +var EXISTS$1 = hasOwn$b(FunctionPrototype$2, 'name'); +// additional protection from minified / mangled / dropped function names +var PROPER = EXISTS$1 && (function something() { /* empty */ }).name === 'something'; +var CONFIGURABLE$1 = EXISTS$1 && (!DESCRIPTORS$b || (DESCRIPTORS$b && getDescriptor(FunctionPrototype$2, 'name').configurable)); + +var functionName = { + EXISTS: EXISTS$1, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE$1 +}; + +var makeBuiltIn$3 = {exports: {}}; + +var documentAll$2 = typeof document == 'object' && document.all; + +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot +// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing +var IS_HTMLDDA = typeof documentAll$2 == 'undefined' && documentAll$2 !== undefined; + +var documentAll_1 = { + all: documentAll$2, + IS_HTMLDDA: IS_HTMLDDA +}; + +var $documentAll$1 = documentAll_1; + +var documentAll$1 = $documentAll$1.all; + +// `IsCallable` abstract operation +// https://tc39.es/ecma262/#sec-iscallable +var isCallable$m = $documentAll$1.IS_HTMLDDA ? function (argument) { + return typeof argument == 'function' || argument === documentAll$1; +} : function (argument) { + return typeof argument == 'function'; +}; + +var check = function (it) { + return it && it.Math == Math && it; +}; + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +var global$j = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || commonjsGlobal || Function('return this')(); + +var global$i = global$j; + +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty$7 = Object.defineProperty; + +var defineGlobalProperty$3 = function (key, value) { + try { + defineProperty$7(global$i, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global$i[key] = value; + } return value; +}; + +var global$h = global$j; +var defineGlobalProperty$2 = defineGlobalProperty$3; + +var SHARED = '__core-js_shared__'; +var store$3 = global$h[SHARED] || defineGlobalProperty$2(SHARED, {}); + +var sharedStore = store$3; + +var uncurryThis$k = functionUncurryThis; +var isCallable$l = isCallable$m; +var store$2 = sharedStore; + +var functionToString$1 = uncurryThis$k(Function.toString); + +// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper +if (!isCallable$l(store$2.inspectSource)) { + store$2.inspectSource = function (it) { + return functionToString$1(it); + }; +} + +var inspectSource$3 = store$2.inspectSource; + +var global$g = global$j; +var isCallable$k = isCallable$m; + +var WeakMap$1 = global$g.WeakMap; + +var weakMapBasicDetection = isCallable$k(WeakMap$1) && /native code/.test(String(WeakMap$1)); + +var isCallable$j = isCallable$m; +var $documentAll = documentAll_1; + +var documentAll = $documentAll.all; + +var isObject$e = $documentAll.IS_HTMLDDA ? function (it) { + return typeof it == 'object' ? it !== null : isCallable$j(it) || it === documentAll; +} : function (it) { + return typeof it == 'object' ? it !== null : isCallable$j(it); +}; + +var objectDefineProperty = {}; + +var global$f = global$j; +var isObject$d = isObject$e; + +var document$3 = global$f.document; +// typeof document.createElement is 'object' in old IE +var EXISTS = isObject$d(document$3) && isObject$d(document$3.createElement); + +var documentCreateElement$2 = function (it) { + return EXISTS ? document$3.createElement(it) : {}; +}; + +var DESCRIPTORS$a = descriptors; +var fails$g = fails$j; +var createElement$1 = documentCreateElement$2; + +// Thanks to IE8 for its funny defineProperty +var ie8DomDefine = !DESCRIPTORS$a && !fails$g(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement$1('div'), 'a', { + get: function () { return 7; } + }).a != 7; +}); + +var DESCRIPTORS$9 = descriptors; +var fails$f = fails$j; + +// V8 ~ Chrome 36- +// https://bugs.chromium.org/p/v8/issues/detail?id=3334 +var v8PrototypeDefineBug = DESCRIPTORS$9 && fails$f(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype != 42; +}); + +var isObject$c = isObject$e; + +var $String$5 = String; +var $TypeError$b = TypeError; + +// `Assert: Type(argument) is Object` +var anObject$b = function (argument) { + if (isObject$c(argument)) return argument; + throw $TypeError$b($String$5(argument) + ' is not an object'); +}; + +var NATIVE_BIND$2 = functionBindNative; + +var call$d = Function.prototype.call; + +var functionCall = NATIVE_BIND$2 ? call$d.bind(call$d) : function () { + return call$d.apply(call$d, arguments); +}; + +var global$e = global$j; +var isCallable$i = isCallable$m; + +var aFunction = function (argument) { + return isCallable$i(argument) ? argument : undefined; +}; + +var getBuiltIn$7 = function (namespace, method) { + return arguments.length < 2 ? aFunction(global$e[namespace]) : global$e[namespace] && global$e[namespace][method]; +}; + +var uncurryThis$j = functionUncurryThis; + +var objectIsPrototypeOf = uncurryThis$j({}.isPrototypeOf); + +var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + +var global$d = global$j; +var userAgent$3 = engineUserAgent; + +var process$4 = global$d.process; +var Deno$1 = global$d.Deno; +var versions = process$4 && process$4.versions || Deno$1 && Deno$1.version; +var v8 = versions && versions.v8; +var match, version; + +if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); +} + +// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` +// so check `userAgent` even if `.v8` exists, but 0 +if (!version && userAgent$3) { + match = userAgent$3.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent$3.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } +} + +var engineV8Version = version; + +/* eslint-disable es/no-symbol -- required for testing */ + +var V8_VERSION$1 = engineV8Version; +var fails$e = fails$j; +var global$c = global$j; + +var $String$4 = global$c.String; + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing +var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$e(function () { + var symbol = Symbol(); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String$4(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION$1 && V8_VERSION$1 < 41; +}); + +/* eslint-disable es/no-symbol -- required for testing */ + +var NATIVE_SYMBOL$1 = symbolConstructorDetection; + +var useSymbolAsUid = NATIVE_SYMBOL$1 + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + +var getBuiltIn$6 = getBuiltIn$7; +var isCallable$h = isCallable$m; +var isPrototypeOf$2 = objectIsPrototypeOf; +var USE_SYMBOL_AS_UID$1 = useSymbolAsUid; + +var $Object$3 = Object; + +var isSymbol$2 = USE_SYMBOL_AS_UID$1 ? function (it) { + return typeof it == 'symbol'; +} : function (it) { + var $Symbol = getBuiltIn$6('Symbol'); + return isCallable$h($Symbol) && isPrototypeOf$2($Symbol.prototype, $Object$3(it)); +}; + +var $String$3 = String; + +var tryToString$4 = function (argument) { + try { + return $String$3(argument); + } catch (error) { + return 'Object'; + } +}; + +var isCallable$g = isCallable$m; +var tryToString$3 = tryToString$4; + +var $TypeError$a = TypeError; + +// `Assert: IsCallable(argument) is true` +var aCallable$8 = function (argument) { + if (isCallable$g(argument)) return argument; + throw $TypeError$a(tryToString$3(argument) + ' is not a function'); +}; + +var aCallable$7 = aCallable$8; +var isNullOrUndefined$4 = isNullOrUndefined$6; + +// `GetMethod` abstract operation +// https://tc39.es/ecma262/#sec-getmethod +var getMethod$3 = function (V, P) { + var func = V[P]; + return isNullOrUndefined$4(func) ? undefined : aCallable$7(func); +}; + +var call$c = functionCall; +var isCallable$f = isCallable$m; +var isObject$b = isObject$e; + +var $TypeError$9 = TypeError; + +// `OrdinaryToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-ordinarytoprimitive +var ordinaryToPrimitive$1 = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable$f(fn = input.toString) && !isObject$b(val = call$c(fn, input))) return val; + if (isCallable$f(fn = input.valueOf) && !isObject$b(val = call$c(fn, input))) return val; + if (pref !== 'string' && isCallable$f(fn = input.toString) && !isObject$b(val = call$c(fn, input))) return val; + throw $TypeError$9("Can't convert object to primitive value"); +}; + +var shared$3 = {exports: {}}; + +var store$1 = sharedStore; + +(shared$3.exports = function (key, value) { + return store$1[key] || (store$1[key] = value !== undefined ? value : {}); +})('versions', []).push({ + version: '3.30.2', + mode: 'global', + copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE', + source: 'https://github.com/zloirock/core-js' +}); + +var sharedExports = shared$3.exports; + +var uncurryThis$i = functionUncurryThis; + +var id$2 = 0; +var postfix = Math.random(); +var toString$5 = uncurryThis$i(1.0.toString); + +var uid$3 = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$5(++id$2 + postfix, 36); +}; + +var global$b = global$j; +var shared$2 = sharedExports; +var hasOwn$a = hasOwnProperty_1; +var uid$2 = uid$3; +var NATIVE_SYMBOL = symbolConstructorDetection; +var USE_SYMBOL_AS_UID = useSymbolAsUid; + +var Symbol$1 = global$b.Symbol; +var WellKnownSymbolsStore = shared$2('wks'); +var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1['for'] || Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$2; + +var wellKnownSymbol$f = function (name) { + if (!hasOwn$a(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn$a(Symbol$1, name) + ? Symbol$1[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; +}; + +var call$b = functionCall; +var isObject$a = isObject$e; +var isSymbol$1 = isSymbol$2; +var getMethod$2 = getMethod$3; +var ordinaryToPrimitive = ordinaryToPrimitive$1; +var wellKnownSymbol$e = wellKnownSymbol$f; + +var $TypeError$8 = TypeError; +var TO_PRIMITIVE = wellKnownSymbol$e('toPrimitive'); + +// `ToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-toprimitive +var toPrimitive$1 = function (input, pref) { + if (!isObject$a(input) || isSymbol$1(input)) return input; + var exoticToPrim = getMethod$2(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call$b(exoticToPrim, input, pref); + if (!isObject$a(result) || isSymbol$1(result)) return result; + throw $TypeError$8("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); +}; + +var toPrimitive = toPrimitive$1; +var isSymbol = isSymbol$2; + +// `ToPropertyKey` abstract operation +// https://tc39.es/ecma262/#sec-topropertykey +var toPropertyKey$3 = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; +}; + +var DESCRIPTORS$8 = descriptors; +var IE8_DOM_DEFINE$1 = ie8DomDefine; +var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug; +var anObject$a = anObject$b; +var toPropertyKey$2 = toPropertyKey$3; + +var $TypeError$7 = TypeError; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var $defineProperty = Object.defineProperty; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; +var ENUMERABLE = 'enumerable'; +var CONFIGURABLE = 'configurable'; +var WRITABLE = 'writable'; + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +objectDefineProperty.f = DESCRIPTORS$8 ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) { + anObject$a(O); + P = toPropertyKey$2(P); + anObject$a(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor$1(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); +} : $defineProperty : function defineProperty(O, P, Attributes) { + anObject$a(O); + P = toPropertyKey$2(P); + anObject$a(Attributes); + if (IE8_DOM_DEFINE$1) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw $TypeError$7('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + +var createPropertyDescriptor$4 = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + +var DESCRIPTORS$7 = descriptors; +var definePropertyModule$4 = objectDefineProperty; +var createPropertyDescriptor$3 = createPropertyDescriptor$4; + +var createNonEnumerableProperty$5 = DESCRIPTORS$7 ? function (object, key, value) { + return definePropertyModule$4.f(object, key, createPropertyDescriptor$3(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + +var shared$1 = sharedExports; +var uid$1 = uid$3; + +var keys = shared$1('keys'); + +var sharedKey$3 = function (key) { + return keys[key] || (keys[key] = uid$1(key)); +}; + +var hiddenKeys$5 = {}; + +var NATIVE_WEAK_MAP = weakMapBasicDetection; +var global$a = global$j; +var isObject$9 = isObject$e; +var createNonEnumerableProperty$4 = createNonEnumerableProperty$5; +var hasOwn$9 = hasOwnProperty_1; +var shared = sharedStore; +var sharedKey$2 = sharedKey$3; +var hiddenKeys$4 = hiddenKeys$5; + +var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; +var TypeError$2 = global$a.TypeError; +var WeakMap = global$a.WeakMap; +var set$1, get, has; + +var enforce = function (it) { + return has(it) ? get(it) : set$1(it, {}); +}; + +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject$9(it) || (state = get(it)).type !== TYPE) { + throw TypeError$2('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; +}; + +if (NATIVE_WEAK_MAP || shared.state) { + var store = shared.state || (shared.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set$1 = function (it, metadata) { + if (store.has(it)) throw TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; +} else { + var STATE = sharedKey$2('state'); + hiddenKeys$4[STATE] = true; + set$1 = function (it, metadata) { + if (hasOwn$9(it, STATE)) throw TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty$4(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn$9(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn$9(it, STATE); + }; +} + +var internalState = { + set: set$1, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor +}; + +var uncurryThis$h = functionUncurryThis; +var fails$d = fails$j; +var isCallable$e = isCallable$m; +var hasOwn$8 = hasOwnProperty_1; +var DESCRIPTORS$6 = descriptors; +var CONFIGURABLE_FUNCTION_NAME$1 = functionName.CONFIGURABLE; +var inspectSource$2 = inspectSource$3; +var InternalStateModule$4 = internalState; + +var enforceInternalState = InternalStateModule$4.enforce; +var getInternalState$2 = InternalStateModule$4.get; +var $String$2 = String; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty$6 = Object.defineProperty; +var stringSlice$2 = uncurryThis$h(''.slice); +var replace = uncurryThis$h(''.replace); +var join = uncurryThis$h([].join); + +var CONFIGURABLE_LENGTH = DESCRIPTORS$6 && !fails$d(function () { + return defineProperty$6(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; +}); + +var TEMPLATE = String(String).split('String'); + +var makeBuiltIn$2 = makeBuiltIn$3.exports = function (value, name, options) { + if (stringSlice$2($String$2(name), 0, 7) === 'Symbol(') { + name = '[' + replace($String$2(name), /^Symbol\(([^)]*)\)/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn$8(value, 'name') || (CONFIGURABLE_FUNCTION_NAME$1 && value.name !== name)) { + if (DESCRIPTORS$6) defineProperty$6(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn$8(options, 'arity') && value.length !== options.arity) { + defineProperty$6(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn$8(options, 'constructor') && options.constructor) { + if (DESCRIPTORS$6) defineProperty$6(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn$8(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; +}; + +// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative +// eslint-disable-next-line no-extend-native -- required +Function.prototype.toString = makeBuiltIn$2(function toString() { + return isCallable$e(this) && getInternalState$2(this).source || inspectSource$2(this); +}, 'toString'); + +var makeBuiltInExports = makeBuiltIn$3.exports; + +var makeBuiltIn$1 = makeBuiltInExports; +var defineProperty$5 = objectDefineProperty; + +var defineBuiltInAccessor$2 = function (target, name, descriptor) { + if (descriptor.get) makeBuiltIn$1(descriptor.get, name, { getter: true }); + if (descriptor.set) makeBuiltIn$1(descriptor.set, name, { setter: true }); + return defineProperty$5.f(target, name, descriptor); +}; + +var DESCRIPTORS$5 = descriptors; +var FUNCTION_NAME_EXISTS = functionName.EXISTS; +var uncurryThis$g = functionUncurryThis; +var defineBuiltInAccessor$1 = defineBuiltInAccessor$2; + +var FunctionPrototype$1 = Function.prototype; +var functionToString = uncurryThis$g(FunctionPrototype$1.toString); +var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/; +var regExpExec = uncurryThis$g(nameRE.exec); +var NAME = 'name'; + +// Function instances `.name` property +// https://tc39.es/ecma262/#sec-function-instances-name +if (DESCRIPTORS$5 && !FUNCTION_NAME_EXISTS) { + defineBuiltInAccessor$1(FunctionPrototype$1, NAME, { + configurable: true, + get: function () { + try { + return regExpExec(nameRE, functionToString(this))[1]; + } catch (error) { + return ''; + } + } + }); +} + +var objectGetOwnPropertyDescriptor = {}; + +var objectPropertyIsEnumerable = {}; + +var $propertyIsEnumerable = {}.propertyIsEnumerable; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor$2 = Object.getOwnPropertyDescriptor; + +// Nashorn ~ JDK8 bug +var NASHORN_BUG = getOwnPropertyDescriptor$2 && !$propertyIsEnumerable.call({ 1: 2 }, 1); + +// `Object.prototype.propertyIsEnumerable` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable +objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor$2(this, V); + return !!descriptor && descriptor.enumerable; +} : $propertyIsEnumerable; + +var uncurryThis$f = functionUncurryThis; + +var toString$4 = uncurryThis$f({}.toString); +var stringSlice$1 = uncurryThis$f(''.slice); + +var classofRaw$2 = function (it) { + return stringSlice$1(toString$4(it), 8, -1); +}; + +var uncurryThis$e = functionUncurryThis; +var fails$c = fails$j; +var classof$9 = classofRaw$2; + +var $Object$2 = Object; +var split = uncurryThis$e(''.split); + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +var indexedObject = fails$c(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object$2('z').propertyIsEnumerable(0); +}) ? function (it) { + return classof$9(it) == 'String' ? split(it, '') : $Object$2(it); +} : $Object$2; + +// toObject with fallback for non-array-like ES3 strings +var IndexedObject$3 = indexedObject; +var requireObjectCoercible$1 = requireObjectCoercible$3; + +var toIndexedObject$7 = function (it) { + return IndexedObject$3(requireObjectCoercible$1(it)); +}; + +var DESCRIPTORS$4 = descriptors; +var call$a = functionCall; +var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable; +var createPropertyDescriptor$2 = createPropertyDescriptor$4; +var toIndexedObject$6 = toIndexedObject$7; +var toPropertyKey$1 = toPropertyKey$3; +var hasOwn$7 = hasOwnProperty_1; +var IE8_DOM_DEFINE = ie8DomDefine; + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +objectGetOwnPropertyDescriptor.f = DESCRIPTORS$4 ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject$6(O); + P = toPropertyKey$1(P); + if (IE8_DOM_DEFINE) try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (hasOwn$7(O, P)) return createPropertyDescriptor$2(!call$a(propertyIsEnumerableModule$1.f, O, P), O[P]); +}; + +var isCallable$d = isCallable$m; +var definePropertyModule$3 = objectDefineProperty; +var makeBuiltIn = makeBuiltInExports; +var defineGlobalProperty$1 = defineGlobalProperty$3; + +var defineBuiltIn$8 = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable$d(value)) makeBuiltIn(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty$1(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule$3.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; +}; + +var objectGetOwnPropertyNames = {}; + +var ceil = Math.ceil; +var floor = Math.floor; + +// `Math.trunc` method +// https://tc39.es/ecma262/#sec-math.trunc +// eslint-disable-next-line es/no-math-trunc -- safe +var mathTrunc = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor : ceil)(n); +}; + +var trunc = mathTrunc; + +// `ToIntegerOrInfinity` abstract operation +// https://tc39.es/ecma262/#sec-tointegerorinfinity +var toIntegerOrInfinity$3 = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); +}; + +var toIntegerOrInfinity$2 = toIntegerOrInfinity$3; + +var max$1 = Math.max; +var min$1 = Math.min; + +// Helper for a popular repeating case of the spec: +// Let integer be ? ToInteger(index). +// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). +var toAbsoluteIndex$2 = function (index, length) { + var integer = toIntegerOrInfinity$2(index); + return integer < 0 ? max$1(integer + length, 0) : min$1(integer, length); +}; + +var toIntegerOrInfinity$1 = toIntegerOrInfinity$3; + +var min = Math.min; + +// `ToLength` abstract operation +// https://tc39.es/ecma262/#sec-tolength +var toLength$1 = function (argument) { + return argument > 0 ? min(toIntegerOrInfinity$1(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 +}; + +var toLength = toLength$1; + +// `LengthOfArrayLike` abstract operation +// https://tc39.es/ecma262/#sec-lengthofarraylike +var lengthOfArrayLike$4 = function (obj) { + return toLength(obj.length); +}; + +var toIndexedObject$5 = toIndexedObject$7; +var toAbsoluteIndex$1 = toAbsoluteIndex$2; +var lengthOfArrayLike$3 = lengthOfArrayLike$4; + +// `Array.prototype.{ indexOf, includes }` methods implementation +var createMethod$2 = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject$5($this); + var length = lengthOfArrayLike$3(O); + var index = toAbsoluteIndex$1(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + +var arrayIncludes = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod$2(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod$2(false) +}; + +var uncurryThis$d = functionUncurryThis; +var hasOwn$6 = hasOwnProperty_1; +var toIndexedObject$4 = toIndexedObject$7; +var indexOf = arrayIncludes.indexOf; +var hiddenKeys$3 = hiddenKeys$5; + +var push$1 = uncurryThis$d([].push); + +var objectKeysInternal = function (object, names) { + var O = toIndexedObject$4(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn$6(hiddenKeys$3, key) && hasOwn$6(O, key) && push$1(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn$6(O, key = names[i++])) { + ~indexOf(result, key) || push$1(result, key); + } + return result; +}; + +// IE8- don't enum bug keys +var enumBugKeys$3 = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; + +var internalObjectKeys$1 = objectKeysInternal; +var enumBugKeys$2 = enumBugKeys$3; + +var hiddenKeys$2 = enumBugKeys$2.concat('length', 'prototype'); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +// eslint-disable-next-line es/no-object-getownpropertynames -- safe +objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys$1(O, hiddenKeys$2); +}; + +var objectGetOwnPropertySymbols = {}; + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe +objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; + +var getBuiltIn$5 = getBuiltIn$7; +var uncurryThis$c = functionUncurryThis; +var getOwnPropertyNamesModule$1 = objectGetOwnPropertyNames; +var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols; +var anObject$9 = anObject$b; + +var concat$1 = uncurryThis$c([].concat); + +// all object keys, includes non-enumerable and symbols +var ownKeys$1 = getBuiltIn$5('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule$1.f(anObject$9(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f; + return getOwnPropertySymbols ? concat$1(keys, getOwnPropertySymbols(it)) : keys; +}; + +var hasOwn$5 = hasOwnProperty_1; +var ownKeys = ownKeys$1; +var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor; +var definePropertyModule$2 = objectDefineProperty; + +var copyConstructorProperties$1 = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule$2.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn$5(target, key) && !(exceptions && hasOwn$5(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } +}; + +var fails$b = fails$j; +var isCallable$c = isCallable$m; + +var replacement = /#|\.prototype\./; + +var isForced$3 = function (feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true + : value == NATIVE ? false + : isCallable$c(detection) ? fails$b(detection) + : !!detection; +}; + +var normalize = isForced$3.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); +}; + +var data = isForced$3.data = {}; +var NATIVE = isForced$3.NATIVE = 'N'; +var POLYFILL = isForced$3.POLYFILL = 'P'; + +var isForced_1 = isForced$3; + +var global$9 = global$j; +var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f; +var createNonEnumerableProperty$3 = createNonEnumerableProperty$5; +var defineBuiltIn$7 = defineBuiltIn$8; +var defineGlobalProperty = defineGlobalProperty$3; +var copyConstructorProperties = copyConstructorProperties$1; +var isForced$2 = isForced_1; + +/* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key +*/ +var _export = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global$9; + } else if (STATIC) { + target = global$9[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = (global$9[TARGET] || {}).prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor$1(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced$2(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty$3(sourceProperty, 'sham', true); + } + defineBuiltIn$7(target, key, sourceProperty, options); + } +}; + +var internalObjectKeys = objectKeysInternal; +var enumBugKeys$1 = enumBugKeys$3; + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +// eslint-disable-next-line es/no-object-keys -- safe +var objectKeys$2 = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys$1); +}; + +var DESCRIPTORS$3 = descriptors; +var uncurryThis$b = functionUncurryThis; +var call$9 = functionCall; +var fails$a = fails$j; +var objectKeys$1 = objectKeys$2; +var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols; +var propertyIsEnumerableModule = objectPropertyIsEnumerable; +var toObject$3 = toObject$5; +var IndexedObject$2 = indexedObject; + +// eslint-disable-next-line es/no-object-assign -- safe +var $assign = Object.assign; +// eslint-disable-next-line es/no-object-defineproperty -- required for testing +var defineProperty$4 = Object.defineProperty; +var concat = uncurryThis$b([].concat); + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +var objectAssign = !$assign || fails$a(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS$3 && $assign({ b: 1 }, $assign(defineProperty$4({}, 'a', { + enumerable: true, + get: function () { + defineProperty$4(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol(); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] != 7 || objectKeys$1($assign({}, B)).join('') != alphabet; +}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject$3(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject$2(arguments[index++]); + var keys = getOwnPropertySymbols ? concat(objectKeys$1(S), getOwnPropertySymbols(S)) : objectKeys$1(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS$3 || call$9(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; +} : $assign; + +var $$b = _export; +var assign = objectAssign; + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +// eslint-disable-next-line es/no-object-assign -- required for testing +$$b({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign +}); + +var wellKnownSymbol$d = wellKnownSymbol$f; + +var TO_STRING_TAG$3 = wellKnownSymbol$d('toStringTag'); +var test = {}; + +test[TO_STRING_TAG$3] = 'z'; + +var toStringTagSupport = String(test) === '[object z]'; + +var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport; +var isCallable$b = isCallable$m; +var classofRaw$1 = classofRaw$2; +var wellKnownSymbol$c = wellKnownSymbol$f; + +var TO_STRING_TAG$2 = wellKnownSymbol$c('toStringTag'); +var $Object$1 = Object; + +// ES3 wrong here +var CORRECT_ARGUMENTS = classofRaw$1(function () { return arguments; }()) == 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } +}; + +// getting tag from ES6+ `Object.prototype.toString` +var classof$8 = TO_STRING_TAG_SUPPORT$2 ? classofRaw$1 : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object$1(it), TO_STRING_TAG$2)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw$1(O) + // ES3 arguments fallback + : (result = classofRaw$1(O)) == 'Object' && isCallable$b(O.callee) ? 'Arguments' : result; +}; + +var TO_STRING_TAG_SUPPORT$1 = toStringTagSupport; +var classof$7 = classof$8; + +// `Object.prototype.toString` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.tostring +var objectToString = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() { + return '[object ' + classof$7(this) + ']'; +}; + +var TO_STRING_TAG_SUPPORT = toStringTagSupport; +var defineBuiltIn$6 = defineBuiltIn$8; +var toString$3 = objectToString; + +// `Object.prototype.toString` method +// https://tc39.es/ecma262/#sec-object.prototype.tostring +if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn$6(Object.prototype, 'toString', toString$3, { unsafe: true }); +} + +var classof$6 = classofRaw$2; + +var engineIsNode = typeof process != 'undefined' && classof$6(process) == 'process'; + +var uncurryThis$a = functionUncurryThis; +var aCallable$6 = aCallable$8; + +var functionUncurryThisAccessor = function (object, key, method) { + try { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return uncurryThis$a(aCallable$6(Object.getOwnPropertyDescriptor(object, key)[method])); + } catch (error) { /* empty */ } +}; + +var isCallable$a = isCallable$m; + +var $String$1 = String; +var $TypeError$6 = TypeError; + +var aPossiblePrototype$1 = function (argument) { + if (typeof argument == 'object' || isCallable$a(argument)) return argument; + throw $TypeError$6("Can't set " + $String$1(argument) + ' as a prototype'); +}; + +/* eslint-disable no-proto -- safe */ + +var uncurryThisAccessor = functionUncurryThisAccessor; +var anObject$8 = anObject$b; +var aPossiblePrototype = aPossiblePrototype$1; + +// `Object.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.setprototypeof +// Works with __proto__ only. Old v8 can't work with null proto objects. +// eslint-disable-next-line es/no-object-setprototypeof -- safe +var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set'); + setter(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + anObject$8(O); + aPossiblePrototype(proto); + if (CORRECT_SETTER) setter(O, proto); + else O.__proto__ = proto; + return O; + }; +}() : undefined); + +var defineProperty$3 = objectDefineProperty.f; +var hasOwn$4 = hasOwnProperty_1; +var wellKnownSymbol$b = wellKnownSymbol$f; + +var TO_STRING_TAG$1 = wellKnownSymbol$b('toStringTag'); + +var setToStringTag$4 = function (target, TAG, STATIC) { + if (target && !STATIC) target = target.prototype; + if (target && !hasOwn$4(target, TO_STRING_TAG$1)) { + defineProperty$3(target, TO_STRING_TAG$1, { configurable: true, value: TAG }); + } +}; + +var getBuiltIn$4 = getBuiltIn$7; +var defineBuiltInAccessor = defineBuiltInAccessor$2; +var wellKnownSymbol$a = wellKnownSymbol$f; +var DESCRIPTORS$2 = descriptors; + +var SPECIES$3 = wellKnownSymbol$a('species'); + +var setSpecies$1 = function (CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn$4(CONSTRUCTOR_NAME); + + if (DESCRIPTORS$2 && Constructor && !Constructor[SPECIES$3]) { + defineBuiltInAccessor(Constructor, SPECIES$3, { + configurable: true, + get: function () { return this; } + }); + } +}; + +var isPrototypeOf$1 = objectIsPrototypeOf; + +var $TypeError$5 = TypeError; + +var anInstance$3 = function (it, Prototype) { + if (isPrototypeOf$1(Prototype, it)) return it; + throw $TypeError$5('Incorrect invocation'); +}; + +var uncurryThis$9 = functionUncurryThis; +var fails$9 = fails$j; +var isCallable$9 = isCallable$m; +var classof$5 = classof$8; +var getBuiltIn$3 = getBuiltIn$7; +var inspectSource$1 = inspectSource$3; + +var noop = function () { /* empty */ }; +var empty = []; +var construct = getBuiltIn$3('Reflect', 'construct'); +var constructorRegExp = /^\s*(?:class|function)\b/; +var exec = uncurryThis$9(constructorRegExp.exec); +var INCORRECT_TO_STRING = !constructorRegExp.exec(noop); + +var isConstructorModern = function isConstructor(argument) { + if (!isCallable$9(argument)) return false; + try { + construct(noop, empty, argument); + return true; + } catch (error) { + return false; + } +}; + +var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable$9(argument)) return false; + switch (classof$5(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource$1(argument)); + } catch (error) { + return true; + } +}; + +isConstructorLegacy.sham = true; + +// `IsConstructor` abstract operation +// https://tc39.es/ecma262/#sec-isconstructor +var isConstructor$2 = !construct || fails$9(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; +}) ? isConstructorLegacy : isConstructorModern; + +var isConstructor$1 = isConstructor$2; +var tryToString$2 = tryToString$4; + +var $TypeError$4 = TypeError; + +// `Assert: IsConstructor(argument) is true` +var aConstructor$1 = function (argument) { + if (isConstructor$1(argument)) return argument; + throw $TypeError$4(tryToString$2(argument) + ' is not a constructor'); +}; + +var anObject$7 = anObject$b; +var aConstructor = aConstructor$1; +var isNullOrUndefined$3 = isNullOrUndefined$6; +var wellKnownSymbol$9 = wellKnownSymbol$f; + +var SPECIES$2 = wellKnownSymbol$9('species'); + +// `SpeciesConstructor` abstract operation +// https://tc39.es/ecma262/#sec-speciesconstructor +var speciesConstructor$1 = function (O, defaultConstructor) { + var C = anObject$7(O).constructor; + var S; + return C === undefined || isNullOrUndefined$3(S = anObject$7(C)[SPECIES$2]) ? defaultConstructor : aConstructor(S); +}; + +var NATIVE_BIND$1 = functionBindNative; + +var FunctionPrototype = Function.prototype; +var apply$1 = FunctionPrototype.apply; +var call$8 = FunctionPrototype.call; + +// eslint-disable-next-line es/no-reflect -- safe +var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND$1 ? call$8.bind(apply$1) : function () { + return call$8.apply(apply$1, arguments); +}); + +var classofRaw = classofRaw$2; +var uncurryThis$8 = functionUncurryThis; + +var functionUncurryThisClause = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis$8(fn); +}; + +var uncurryThis$7 = functionUncurryThisClause; +var aCallable$5 = aCallable$8; +var NATIVE_BIND = functionBindNative; + +var bind$5 = uncurryThis$7(uncurryThis$7.bind); + +// optional / simple context binding +var functionBindContext = function (fn, that) { + aCallable$5(fn); + return that === undefined ? fn : NATIVE_BIND ? bind$5(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; + +var getBuiltIn$2 = getBuiltIn$7; + +var html$2 = getBuiltIn$2('document', 'documentElement'); + +var uncurryThis$6 = functionUncurryThis; + +var arraySlice$2 = uncurryThis$6([].slice); + +var $TypeError$3 = TypeError; + +var validateArgumentsLength$1 = function (passed, required) { + if (passed < required) throw $TypeError$3('Not enough arguments'); + return passed; +}; + +var userAgent$2 = engineUserAgent; + +// eslint-disable-next-line redos/no-vulnerable -- safe +var engineIsIos = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent$2); + +var global$8 = global$j; +var apply = functionApply; +var bind$4 = functionBindContext; +var isCallable$8 = isCallable$m; +var hasOwn$3 = hasOwnProperty_1; +var fails$8 = fails$j; +var html$1 = html$2; +var arraySlice$1 = arraySlice$2; +var createElement = documentCreateElement$2; +var validateArgumentsLength = validateArgumentsLength$1; +var IS_IOS$1 = engineIsIos; +var IS_NODE$3 = engineIsNode; + +var set = global$8.setImmediate; +var clear = global$8.clearImmediate; +var process$3 = global$8.process; +var Dispatch = global$8.Dispatch; +var Function$1 = global$8.Function; +var MessageChannel = global$8.MessageChannel; +var String$1 = global$8.String; +var counter = 0; +var queue$2 = {}; +var ONREADYSTATECHANGE = 'onreadystatechange'; +var $location, defer, channel, port; + +fails$8(function () { + // Deno throws a ReferenceError on `location` access without `--location` flag + $location = global$8.location; +}); + +var run = function (id) { + if (hasOwn$3(queue$2, id)) { + var fn = queue$2[id]; + delete queue$2[id]; + fn(); + } +}; + +var runner = function (id) { + return function () { + run(id); + }; +}; + +var eventListener = function (event) { + run(event.data); +}; + +var globalPostMessageDefer = function (id) { + // old engines have not location.origin + global$8.postMessage(String$1(id), $location.protocol + '//' + $location.host); +}; + +// Node.js 0.9+ & IE10+ has setImmediate, otherwise: +if (!set || !clear) { + set = function setImmediate(handler) { + validateArgumentsLength(arguments.length, 1); + var fn = isCallable$8(handler) ? handler : Function$1(handler); + var args = arraySlice$1(arguments, 1); + queue$2[++counter] = function () { + apply(fn, undefined, args); + }; + defer(counter); + return counter; + }; + clear = function clearImmediate(id) { + delete queue$2[id]; + }; + // Node.js 0.8- + if (IS_NODE$3) { + defer = function (id) { + process$3.nextTick(runner(id)); + }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(runner(id)); + }; + // Browsers with MessageChannel, includes WebWorkers + // except iOS - https://github.com/zloirock/core-js/issues/624 + } else if (MessageChannel && !IS_IOS$1) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = eventListener; + defer = bind$4(port.postMessage, port); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if ( + global$8.addEventListener && + isCallable$8(global$8.postMessage) && + !global$8.importScripts && + $location && $location.protocol !== 'file:' && + !fails$8(globalPostMessageDefer) + ) { + defer = globalPostMessageDefer; + global$8.addEventListener('message', eventListener, false); + // IE8- + } else if (ONREADYSTATECHANGE in createElement('script')) { + defer = function (id) { + html$1.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { + html$1.removeChild(this); + run(id); + }; + }; + // Rest old browsers + } else { + defer = function (id) { + setTimeout(runner(id), 0); + }; + } +} + +var task$1 = { + set: set, + clear: clear +}; + +var Queue$2 = function () { + this.head = null; + this.tail = null; +}; + +Queue$2.prototype = { + add: function (item) { + var entry = { item: item, next: null }; + var tail = this.tail; + if (tail) tail.next = entry; + else this.head = entry; + this.tail = entry; + }, + get: function () { + var entry = this.head; + if (entry) { + var next = this.head = entry.next; + if (next === null) this.tail = null; + return entry.item; + } + } +}; + +var queue$1 = Queue$2; + +var userAgent$1 = engineUserAgent; + +var engineIsIosPebble = /ipad|iphone|ipod/i.test(userAgent$1) && typeof Pebble != 'undefined'; + +var userAgent = engineUserAgent; + +var engineIsWebosWebkit = /web0s(?!.*chrome)/i.test(userAgent); + +var global$7 = global$j; +var bind$3 = functionBindContext; +var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; +var macrotask = task$1.set; +var Queue$1 = queue$1; +var IS_IOS = engineIsIos; +var IS_IOS_PEBBLE = engineIsIosPebble; +var IS_WEBOS_WEBKIT = engineIsWebosWebkit; +var IS_NODE$2 = engineIsNode; + +var MutationObserver = global$7.MutationObserver || global$7.WebKitMutationObserver; +var document$2 = global$7.document; +var process$2 = global$7.process; +var Promise$1 = global$7.Promise; +// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` +var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global$7, 'queueMicrotask'); +var microtask$1 = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; +var notify$1, toggle, node, promise, then; + +// modern engines have queueMicrotask method +if (!microtask$1) { + var queue = new Queue$1(); + + var flush = function () { + var parent, fn; + if (IS_NODE$2 && (parent = process$2.domain)) parent.exit(); + while (fn = queue.get()) try { + fn(); + } catch (error) { + if (queue.head) notify$1(); + throw error; + } + if (parent) parent.enter(); + }; + + // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 + // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 + if (!IS_IOS && !IS_NODE$2 && !IS_WEBOS_WEBKIT && MutationObserver && document$2) { + toggle = true; + node = document$2.createTextNode(''); + new MutationObserver(flush).observe(node, { characterData: true }); + notify$1 = function () { + node.data = toggle = !toggle; + }; + // environments with maybe non-completely correct, but existent Promise + } else if (!IS_IOS_PEBBLE && Promise$1 && Promise$1.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + promise = Promise$1.resolve(undefined); + // workaround of WebKit ~ iOS Safari 10.1 bug + promise.constructor = Promise$1; + then = bind$3(promise.then, promise); + notify$1 = function () { + then(flush); + }; + // Node.js without promises + } else if (IS_NODE$2) { + notify$1 = function () { + process$2.nextTick(flush); + }; + // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessage + // - onreadystatechange + // - setTimeout + } else { + // `webpack` dev server bug on IE global methods - use bind(fn, global) + macrotask = bind$3(macrotask, global$7); + notify$1 = function () { + macrotask(flush); + }; + } + + microtask$1 = function (fn) { + if (!queue.head) notify$1(); + queue.add(fn); + }; +} + +var microtask_1 = microtask$1; + +var hostReportErrors$1 = function (a, b) { + try { + // eslint-disable-next-line no-console -- safe + arguments.length == 1 ? console.error(a) : console.error(a, b); + } catch (error) { /* empty */ } +}; + +var perform$3 = function (exec) { + try { + return { error: false, value: exec() }; + } catch (error) { + return { error: true, value: error }; + } +}; + +var global$6 = global$j; + +var promiseNativeConstructor = global$6.Promise; + +/* global Deno -- Deno case */ + +var engineIsDeno = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; + +var IS_DENO$1 = engineIsDeno; +var IS_NODE$1 = engineIsNode; + +var engineIsBrowser = !IS_DENO$1 && !IS_NODE$1 + && typeof window == 'object' + && typeof document == 'object'; + +var global$5 = global$j; +var NativePromiseConstructor$3 = promiseNativeConstructor; +var isCallable$7 = isCallable$m; +var isForced$1 = isForced_1; +var inspectSource = inspectSource$3; +var wellKnownSymbol$8 = wellKnownSymbol$f; +var IS_BROWSER = engineIsBrowser; +var IS_DENO = engineIsDeno; +var V8_VERSION = engineV8Version; + +NativePromiseConstructor$3 && NativePromiseConstructor$3.prototype; +var SPECIES$1 = wellKnownSymbol$8('species'); +var SUBCLASSING = false; +var NATIVE_PROMISE_REJECTION_EVENT$1 = isCallable$7(global$5.PromiseRejectionEvent); + +var FORCED_PROMISE_CONSTRUCTOR$5 = isForced$1('Promise', function () { + var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor$3); + var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor$3); + // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // We can't detect it synchronously, so just check versions + if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true; + // We can't use @@species feature detection in V8 since it causes + // deoptimization and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) { + // Detect correctness of subclassing with @@species support + var promise = new NativePromiseConstructor$3(function (resolve) { resolve(1); }); + var FakePromise = function (exec) { + exec(function () { /* empty */ }, function () { /* empty */ }); + }; + var constructor = promise.constructor = {}; + constructor[SPECIES$1] = FakePromise; + SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise; + if (!SUBCLASSING) return true; + // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test + } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT$1; +}); + +var promiseConstructorDetection = { + CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR$5, + REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT$1, + SUBCLASSING: SUBCLASSING +}; + +var newPromiseCapability$2 = {}; + +var aCallable$4 = aCallable$8; + +var $TypeError$2 = TypeError; + +var PromiseCapability = function (C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw $TypeError$2('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aCallable$4(resolve); + this.reject = aCallable$4(reject); +}; + +// `NewPromiseCapability` abstract operation +// https://tc39.es/ecma262/#sec-newpromisecapability +newPromiseCapability$2.f = function (C) { + return new PromiseCapability(C); +}; + +var $$a = _export; +var IS_NODE = engineIsNode; +var global$4 = global$j; +var call$7 = functionCall; +var defineBuiltIn$5 = defineBuiltIn$8; +var setPrototypeOf$2 = objectSetPrototypeOf; +var setToStringTag$3 = setToStringTag$4; +var setSpecies = setSpecies$1; +var aCallable$3 = aCallable$8; +var isCallable$6 = isCallable$m; +var isObject$8 = isObject$e; +var anInstance$2 = anInstance$3; +var speciesConstructor = speciesConstructor$1; +var task = task$1.set; +var microtask = microtask_1; +var hostReportErrors = hostReportErrors$1; +var perform$2 = perform$3; +var Queue = queue$1; +var InternalStateModule$3 = internalState; +var NativePromiseConstructor$2 = promiseNativeConstructor; +var PromiseConstructorDetection = promiseConstructorDetection; +var newPromiseCapabilityModule$3 = newPromiseCapability$2; + +var PROMISE = 'Promise'; +var FORCED_PROMISE_CONSTRUCTOR$4 = PromiseConstructorDetection.CONSTRUCTOR; +var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT; +var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING; +var getInternalPromiseState = InternalStateModule$3.getterFor(PROMISE); +var setInternalState$3 = InternalStateModule$3.set; +var NativePromisePrototype$1 = NativePromiseConstructor$2 && NativePromiseConstructor$2.prototype; +var PromiseConstructor = NativePromiseConstructor$2; +var PromisePrototype = NativePromisePrototype$1; +var TypeError$1 = global$4.TypeError; +var document$1 = global$4.document; +var process$1 = global$4.process; +var newPromiseCapability$1 = newPromiseCapabilityModule$3.f; +var newGenericPromiseCapability = newPromiseCapability$1; + +var DISPATCH_EVENT = !!(document$1 && document$1.createEvent && global$4.dispatchEvent); +var UNHANDLED_REJECTION = 'unhandledrejection'; +var REJECTION_HANDLED = 'rejectionhandled'; +var PENDING = 0; +var FULFILLED = 1; +var REJECTED = 2; +var HANDLED = 1; +var UNHANDLED = 2; + +var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; + +// helpers +var isThenable = function (it) { + var then; + return isObject$8(it) && isCallable$6(then = it.then) ? then : false; +}; + +var callReaction = function (reaction, state) { + var value = state.value; + var ok = state.state == FULFILLED; + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + try { + if (handler) { + if (!ok) { + if (state.rejection === UNHANDLED) onHandleUnhandled(state); + state.rejection = HANDLED; + } + if (handler === true) result = value; + else { + if (domain) domain.enter(); + result = handler(value); // can throw + if (domain) { + domain.exit(); + exited = true; + } + } + if (result === reaction.promise) { + reject(TypeError$1('Promise-chain cycle')); + } else if (then = isThenable(result)) { + call$7(then, result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (error) { + if (domain && !exited) domain.exit(); + reject(error); + } +}; + +var notify = function (state, isReject) { + if (state.notified) return; + state.notified = true; + microtask(function () { + var reactions = state.reactions; + var reaction; + while (reaction = reactions.get()) { + callReaction(reaction, state); + } + state.notified = false; + if (isReject && !state.rejection) onUnhandled(state); + }); +}; + +var dispatchEvent = function (name, promise, reason) { + var event, handler; + if (DISPATCH_EVENT) { + event = document$1.createEvent('Event'); + event.promise = promise; + event.reason = reason; + event.initEvent(name, false, true); + global$4.dispatchEvent(event); + } else event = { promise: promise, reason: reason }; + if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global$4['on' + name])) handler(event); + else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); +}; + +var onUnhandled = function (state) { + call$7(task, global$4, function () { + var promise = state.facade; + var value = state.value; + var IS_UNHANDLED = isUnhandled(state); + var result; + if (IS_UNHANDLED) { + result = perform$2(function () { + if (IS_NODE) { + process$1.emit('unhandledRejection', value, promise); + } else dispatchEvent(UNHANDLED_REJECTION, promise, value); + }); + // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; + if (result.error) throw result.value; + } + }); +}; + +var isUnhandled = function (state) { + return state.rejection !== HANDLED && !state.parent; +}; + +var onHandleUnhandled = function (state) { + call$7(task, global$4, function () { + var promise = state.facade; + if (IS_NODE) { + process$1.emit('rejectionHandled', promise); + } else dispatchEvent(REJECTION_HANDLED, promise, state.value); + }); +}; + +var bind$2 = function (fn, state, unwrap) { + return function (value) { + fn(state, value, unwrap); + }; +}; + +var internalReject = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + state.value = value; + state.state = REJECTED; + notify(state, true); +}; + +var internalResolve = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + try { + if (state.facade === value) throw TypeError$1("Promise can't be resolved itself"); + var then = isThenable(value); + if (then) { + microtask(function () { + var wrapper = { done: false }; + try { + call$7(then, value, + bind$2(internalResolve, wrapper, state), + bind$2(internalReject, wrapper, state) + ); + } catch (error) { + internalReject(wrapper, error, state); + } + }); + } else { + state.value = value; + state.state = FULFILLED; + notify(state, false); + } + } catch (error) { + internalReject({ done: false }, error, state); + } +}; + +// constructor polyfill +if (FORCED_PROMISE_CONSTRUCTOR$4) { + // 25.4.3.1 Promise(executor) + PromiseConstructor = function Promise(executor) { + anInstance$2(this, PromisePrototype); + aCallable$3(executor); + call$7(Internal, this); + var state = getInternalPromiseState(this); + try { + executor(bind$2(internalResolve, state), bind$2(internalReject, state)); + } catch (error) { + internalReject(state, error); + } + }; + + PromisePrototype = PromiseConstructor.prototype; + + // eslint-disable-next-line no-unused-vars -- required for `.length` + Internal = function Promise(executor) { + setInternalState$3(this, { + type: PROMISE, + done: false, + notified: false, + parent: false, + reactions: new Queue(), + rejection: false, + state: PENDING, + value: undefined + }); + }; + + // `Promise.prototype.then` method + // https://tc39.es/ecma262/#sec-promise.prototype.then + Internal.prototype = defineBuiltIn$5(PromisePrototype, 'then', function then(onFulfilled, onRejected) { + var state = getInternalPromiseState(this); + var reaction = newPromiseCapability$1(speciesConstructor(this, PromiseConstructor)); + state.parent = true; + reaction.ok = isCallable$6(onFulfilled) ? onFulfilled : true; + reaction.fail = isCallable$6(onRejected) && onRejected; + reaction.domain = IS_NODE ? process$1.domain : undefined; + if (state.state == PENDING) state.reactions.add(reaction); + else microtask(function () { + callReaction(reaction, state); + }); + return reaction.promise; + }); + + OwnPromiseCapability = function () { + var promise = new Internal(); + var state = getInternalPromiseState(promise); + this.promise = promise; + this.resolve = bind$2(internalResolve, state); + this.reject = bind$2(internalReject, state); + }; + + newPromiseCapabilityModule$3.f = newPromiseCapability$1 = function (C) { + return C === PromiseConstructor || C === PromiseWrapper + ? new OwnPromiseCapability(C) + : newGenericPromiseCapability(C); + }; + + if (isCallable$6(NativePromiseConstructor$2) && NativePromisePrototype$1 !== Object.prototype) { + nativeThen = NativePromisePrototype$1.then; + + if (!NATIVE_PROMISE_SUBCLASSING) { + // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs + defineBuiltIn$5(NativePromisePrototype$1, 'then', function then(onFulfilled, onRejected) { + var that = this; + return new PromiseConstructor(function (resolve, reject) { + call$7(nativeThen, that, resolve, reject); + }).then(onFulfilled, onRejected); + // https://github.com/zloirock/core-js/issues/640 + }, { unsafe: true }); + } + + // make `.constructor === Promise` work for native promise-based APIs + try { + delete NativePromisePrototype$1.constructor; + } catch (error) { /* empty */ } + + // make `instanceof Promise` work for native promise-based APIs + if (setPrototypeOf$2) { + setPrototypeOf$2(NativePromisePrototype$1, PromisePrototype); + } + } +} + +$$a({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR$4 }, { + Promise: PromiseConstructor +}); + +setToStringTag$3(PromiseConstructor, PROMISE, false); +setSpecies(PROMISE); + +var iterators = {}; + +var wellKnownSymbol$7 = wellKnownSymbol$f; +var Iterators$4 = iterators; + +var ITERATOR$5 = wellKnownSymbol$7('iterator'); +var ArrayPrototype$1 = Array.prototype; + +// check on default Array iterator +var isArrayIteratorMethod$1 = function (it) { + return it !== undefined && (Iterators$4.Array === it || ArrayPrototype$1[ITERATOR$5] === it); +}; + +var classof$4 = classof$8; +var getMethod$1 = getMethod$3; +var isNullOrUndefined$2 = isNullOrUndefined$6; +var Iterators$3 = iterators; +var wellKnownSymbol$6 = wellKnownSymbol$f; + +var ITERATOR$4 = wellKnownSymbol$6('iterator'); + +var getIteratorMethod$2 = function (it) { + if (!isNullOrUndefined$2(it)) return getMethod$1(it, ITERATOR$4) + || getMethod$1(it, '@@iterator') + || Iterators$3[classof$4(it)]; +}; + +var call$6 = functionCall; +var aCallable$2 = aCallable$8; +var anObject$6 = anObject$b; +var tryToString$1 = tryToString$4; +var getIteratorMethod$1 = getIteratorMethod$2; + +var $TypeError$1 = TypeError; + +var getIterator$1 = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod$1(argument) : usingIterator; + if (aCallable$2(iteratorMethod)) return anObject$6(call$6(iteratorMethod, argument)); + throw $TypeError$1(tryToString$1(argument) + ' is not iterable'); +}; + +var call$5 = functionCall; +var anObject$5 = anObject$b; +var getMethod = getMethod$3; + +var iteratorClose$1 = function (iterator, kind, value) { + var innerResult, innerError; + anObject$5(iterator); + try { + innerResult = getMethod(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') throw value; + return value; + } + innerResult = call$5(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === 'throw') throw value; + if (innerError) throw innerResult; + anObject$5(innerResult); + return value; +}; + +var bind$1 = functionBindContext; +var call$4 = functionCall; +var anObject$4 = anObject$b; +var tryToString = tryToString$4; +var isArrayIteratorMethod = isArrayIteratorMethod$1; +var lengthOfArrayLike$2 = lengthOfArrayLike$4; +var isPrototypeOf = objectIsPrototypeOf; +var getIterator = getIterator$1; +var getIteratorMethod = getIteratorMethod$2; +var iteratorClose = iteratorClose$1; + +var $TypeError = TypeError; + +var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; +}; + +var ResultPrototype = Result.prototype; + +var iterate$4 = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_RECORD = !!(options && options.IS_RECORD); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind$1(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose(iterator, 'normal', condition); + return new Result(true, condition); + }; + + var callFn = function (value) { + if (AS_ENTRIES) { + anObject$4(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; + + if (IS_RECORD) { + iterator = iterable.iterator; + } else if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod(iterable); + if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = lengthOfArrayLike$2(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + } + iterator = getIterator(iterable, iterFn); + } + + next = IS_RECORD ? iterable.next : iterator.next; + while (!(step = call$4(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } + if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); +}; + +var wellKnownSymbol$5 = wellKnownSymbol$f; + +var ITERATOR$3 = wellKnownSymbol$5('iterator'); +var SAFE_CLOSING = false; + +try { + var called = 0; + var iteratorWithReturn = { + next: function () { + return { done: !!called++ }; + }, + 'return': function () { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR$3] = function () { + return this; + }; + // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing + Array.from(iteratorWithReturn, function () { throw 2; }); +} catch (error) { /* empty */ } + +var checkCorrectnessOfIteration$2 = function (exec, SKIP_CLOSING) { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR$3] = function () { + return { + next: function () { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { /* empty */ } + return ITERATION_SUPPORT; +}; + +var NativePromiseConstructor$1 = promiseNativeConstructor; +var checkCorrectnessOfIteration$1 = checkCorrectnessOfIteration$2; +var FORCED_PROMISE_CONSTRUCTOR$3 = promiseConstructorDetection.CONSTRUCTOR; + +var promiseStaticsIncorrectIteration = FORCED_PROMISE_CONSTRUCTOR$3 || !checkCorrectnessOfIteration$1(function (iterable) { + NativePromiseConstructor$1.all(iterable).then(undefined, function () { /* empty */ }); +}); + +var $$9 = _export; +var call$3 = functionCall; +var aCallable$1 = aCallable$8; +var newPromiseCapabilityModule$2 = newPromiseCapability$2; +var perform$1 = perform$3; +var iterate$3 = iterate$4; +var PROMISE_STATICS_INCORRECT_ITERATION$1 = promiseStaticsIncorrectIteration; + +// `Promise.all` method +// https://tc39.es/ecma262/#sec-promise.all +$$9({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$1 }, { + all: function all(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$2.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform$1(function () { + var $promiseResolve = aCallable$1(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate$3(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call$3($promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + +var $$8 = _export; +var FORCED_PROMISE_CONSTRUCTOR$2 = promiseConstructorDetection.CONSTRUCTOR; +var NativePromiseConstructor = promiseNativeConstructor; +var getBuiltIn$1 = getBuiltIn$7; +var isCallable$5 = isCallable$m; +var defineBuiltIn$4 = defineBuiltIn$8; + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + +// `Promise.prototype.catch` method +// https://tc39.es/ecma262/#sec-promise.prototype.catch +$$8({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR$2, real: true }, { + 'catch': function (onRejected) { + return this.then(undefined, onRejected); + } +}); + +// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` +if (isCallable$5(NativePromiseConstructor)) { + var method = getBuiltIn$1('Promise').prototype['catch']; + if (NativePromisePrototype['catch'] !== method) { + defineBuiltIn$4(NativePromisePrototype, 'catch', method, { unsafe: true }); + } +} + +var $$7 = _export; +var call$2 = functionCall; +var aCallable = aCallable$8; +var newPromiseCapabilityModule$1 = newPromiseCapability$2; +var perform = perform$3; +var iterate$2 = iterate$4; +var PROMISE_STATICS_INCORRECT_ITERATION = promiseStaticsIncorrectIteration; + +// `Promise.race` method +// https://tc39.es/ecma262/#sec-promise.race +$$7({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + race: function race(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$1.f(C); + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aCallable(C.resolve); + iterate$2(iterable, function (promise) { + call$2($promiseResolve, C, promise).then(capability.resolve, reject); + }); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + +var $$6 = _export; +var call$1 = functionCall; +var newPromiseCapabilityModule = newPromiseCapability$2; +var FORCED_PROMISE_CONSTRUCTOR$1 = promiseConstructorDetection.CONSTRUCTOR; + +// `Promise.reject` method +// https://tc39.es/ecma262/#sec-promise.reject +$$6({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR$1 }, { + reject: function reject(r) { + var capability = newPromiseCapabilityModule.f(this); + call$1(capability.reject, undefined, r); + return capability.promise; + } +}); + +var anObject$3 = anObject$b; +var isObject$7 = isObject$e; +var newPromiseCapability = newPromiseCapability$2; + +var promiseResolve$1 = function (C, x) { + anObject$3(C); + if (isObject$7(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; +}; + +var $$5 = _export; +var getBuiltIn = getBuiltIn$7; +var FORCED_PROMISE_CONSTRUCTOR = promiseConstructorDetection.CONSTRUCTOR; +var promiseResolve = promiseResolve$1; + +getBuiltIn('Promise'); + +// `Promise.resolve` method +// https://tc39.es/ecma262/#sec-promise.resolve +$$5({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + resolve: function resolve(x) { + return promiseResolve(this, x); + } +}); + +var fails$7 = fails$j; + +var arrayMethodIsStrict$2 = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails$7(function () { + // eslint-disable-next-line no-useless-call -- required for testing + method.call(null, argument || function () { return 1; }, 1); + }); +}; + +var $$4 = _export; +var uncurryThis$5 = functionUncurryThis; +var IndexedObject$1 = indexedObject; +var toIndexedObject$3 = toIndexedObject$7; +var arrayMethodIsStrict$1 = arrayMethodIsStrict$2; + +var nativeJoin = uncurryThis$5([].join); + +var ES3_STRINGS = IndexedObject$1 != Object; +var FORCED = ES3_STRINGS || !arrayMethodIsStrict$1('join', ','); + +// `Array.prototype.join` method +// https://tc39.es/ecma262/#sec-array.prototype.join +$$4({ target: 'Array', proto: true, forced: FORCED }, { + join: function join(separator) { + return nativeJoin(toIndexedObject$3(this), separator === undefined ? ',' : separator); + } +}); + +var objectDefineProperties = {}; + +var DESCRIPTORS$1 = descriptors; +var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug; +var definePropertyModule$1 = objectDefineProperty; +var anObject$2 = anObject$b; +var toIndexedObject$2 = toIndexedObject$7; +var objectKeys = objectKeys$2; + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +// eslint-disable-next-line es/no-object-defineproperties -- safe +objectDefineProperties.f = DESCRIPTORS$1 && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject$2(O); + var props = toIndexedObject$2(Properties); + var keys = objectKeys(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule$1.f(O, key = keys[index++], props[key]); + return O; +}; + +/* global ActiveXObject -- old IE, WSH */ + +var anObject$1 = anObject$b; +var definePropertiesModule = objectDefineProperties; +var enumBugKeys = enumBugKeys$3; +var hiddenKeys$1 = hiddenKeys$5; +var html = html$2; +var documentCreateElement$1 = documentCreateElement$2; +var sharedKey$1 = sharedKey$3; + +var GT = '>'; +var LT = '<'; +var PROTOTYPE = 'prototype'; +var SCRIPT = 'script'; +var IE_PROTO$1 = sharedKey$1('IE_PROTO'); + +var EmptyConstructor = function () { /* empty */ }; + +var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; +}; + +// Create object with fake `null` prototype: use ActiveX Object with cleared prototype +var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; +}; + +// Create object with fake `null` prototype: use iframe Object with cleared prototype +var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement$1('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; +}; + +// Check for document.domain and active x support +// No need to use active x approach when document.domain is not set +// see https://github.com/es-shims/es5-shim/issues/150 +// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 +// avoid IE GC bug +var activeXDocument; +var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); +}; + +hiddenKeys$1[IE_PROTO$1] = true; + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +// eslint-disable-next-line es/no-object-create -- safe +var objectCreate = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject$1(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO$1] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); +}; + +var wellKnownSymbol$4 = wellKnownSymbol$f; +var create$1 = objectCreate; +var defineProperty$2 = objectDefineProperty.f; + +var UNSCOPABLES = wellKnownSymbol$4('unscopables'); +var ArrayPrototype = Array.prototype; + +// Array.prototype[@@unscopables] +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +if (ArrayPrototype[UNSCOPABLES] == undefined) { + defineProperty$2(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create$1(null) + }); +} + +// add a key to Array.prototype[@@unscopables] +var addToUnscopables$1 = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; +}; + +var fails$6 = fails$j; + +var correctPrototypeGetter = !fails$6(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + // eslint-disable-next-line es/no-object-getprototypeof -- required for testing + return Object.getPrototypeOf(new F()) !== F.prototype; +}); + +var hasOwn$2 = hasOwnProperty_1; +var isCallable$4 = isCallable$m; +var toObject$2 = toObject$5; +var sharedKey = sharedKey$3; +var CORRECT_PROTOTYPE_GETTER = correctPrototypeGetter; + +var IE_PROTO = sharedKey('IE_PROTO'); +var $Object = Object; +var ObjectPrototype = $Object.prototype; + +// `Object.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.getprototypeof +// eslint-disable-next-line es/no-object-getprototypeof -- safe +var objectGetPrototypeOf = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { + var object = toObject$2(O); + if (hasOwn$2(object, IE_PROTO)) return object[IE_PROTO]; + var constructor = object.constructor; + if (isCallable$4(constructor) && object instanceof constructor) { + return constructor.prototype; + } return object instanceof $Object ? ObjectPrototype : null; +}; + +var fails$5 = fails$j; +var isCallable$3 = isCallable$m; +var isObject$6 = isObject$e; +var getPrototypeOf$1 = objectGetPrototypeOf; +var defineBuiltIn$3 = defineBuiltIn$8; +var wellKnownSymbol$3 = wellKnownSymbol$f; + +var ITERATOR$2 = wellKnownSymbol$3('iterator'); +var BUGGY_SAFARI_ITERATORS$1 = false; + +// `%IteratorPrototype%` object +// https://tc39.es/ecma262/#sec-%iteratorprototype%-object +var IteratorPrototype$2, PrototypeOfArrayIteratorPrototype, arrayIterator; + +/* eslint-disable es/no-array-prototype-keys -- safe */ +if ([].keys) { + arrayIterator = [].keys(); + // Safari 8 has buggy iterators w/o `next` + if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS$1 = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf$1(getPrototypeOf$1(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype$2 = PrototypeOfArrayIteratorPrototype; + } +} + +var NEW_ITERATOR_PROTOTYPE = !isObject$6(IteratorPrototype$2) || fails$5(function () { + var test = {}; + // FF44- legacy iterators case + return IteratorPrototype$2[ITERATOR$2].call(test) !== test; +}); + +if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype$2 = {}; + +// `%IteratorPrototype%[@@iterator]()` method +// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator +if (!isCallable$3(IteratorPrototype$2[ITERATOR$2])) { + defineBuiltIn$3(IteratorPrototype$2, ITERATOR$2, function () { + return this; + }); +} + +var iteratorsCore = { + IteratorPrototype: IteratorPrototype$2, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS$1 +}; + +var IteratorPrototype$1 = iteratorsCore.IteratorPrototype; +var create = objectCreate; +var createPropertyDescriptor$1 = createPropertyDescriptor$4; +var setToStringTag$2 = setToStringTag$4; +var Iterators$2 = iterators; + +var returnThis$1 = function () { return this; }; + +var iteratorCreateConstructor = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = create(IteratorPrototype$1, { next: createPropertyDescriptor$1(+!ENUMERABLE_NEXT, next) }); + setToStringTag$2(IteratorConstructor, TO_STRING_TAG, false); + Iterators$2[TO_STRING_TAG] = returnThis$1; + return IteratorConstructor; +}; + +var $$3 = _export; +var call = functionCall; +var FunctionName = functionName; +var isCallable$2 = isCallable$m; +var createIteratorConstructor = iteratorCreateConstructor; +var getPrototypeOf = objectGetPrototypeOf; +var setPrototypeOf$1 = objectSetPrototypeOf; +var setToStringTag$1 = setToStringTag$4; +var createNonEnumerableProperty$2 = createNonEnumerableProperty$5; +var defineBuiltIn$2 = defineBuiltIn$8; +var wellKnownSymbol$2 = wellKnownSymbol$f; +var Iterators$1 = iterators; +var IteratorsCore = iteratorsCore; + +var PROPER_FUNCTION_NAME = FunctionName.PROPER; +var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; +var IteratorPrototype = IteratorsCore.IteratorPrototype; +var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; +var ITERATOR$1 = wellKnownSymbol$2('iterator'); +var KEYS = 'keys'; +var VALUES = 'values'; +var ENTRIES = 'entries'; + +var returnThis = function () { return this; }; + +var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + + var getIterationMethod = function (KIND) { + if (KIND === DEFAULT && defaultIterator) return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; + switch (KIND) { + case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; + case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; + case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; + } return function () { return new IteratorConstructor(this); }; + }; + + var TO_STRING_TAG = NAME + ' Iterator'; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR$1] + || IterablePrototype['@@iterator'] + || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + + // fix native + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf$1) { + setPrototypeOf$1(CurrentIteratorPrototype, IteratorPrototype); + } else if (!isCallable$2(CurrentIteratorPrototype[ITERATOR$1])) { + defineBuiltIn$2(CurrentIteratorPrototype, ITERATOR$1, returnThis); + } + } + // Set @@toStringTag to native iterators + setToStringTag$1(CurrentIteratorPrototype, TO_STRING_TAG, true); + } + } + + // fix Array.prototype.{ values, @@iterator }.name in V8 / FF + if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { + if (CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty$2(IterablePrototype, 'name', VALUES); + } else { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { return call(nativeIterator, this); }; + } + } + + // export additional methods + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + defineBuiltIn$2(IterablePrototype, KEY, methods[KEY]); + } + } else $$3({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + + // define iterator + if (IterablePrototype[ITERATOR$1] !== defaultIterator) { + defineBuiltIn$2(IterablePrototype, ITERATOR$1, defaultIterator, { name: DEFAULT }); + } + Iterators$1[NAME] = defaultIterator; + + return methods; +}; + +// `CreateIterResultObject` abstract operation +// https://tc39.es/ecma262/#sec-createiterresultobject +var createIterResultObject$2 = function (value, done) { + return { value: value, done: done }; +}; + +var toIndexedObject$1 = toIndexedObject$7; +var addToUnscopables = addToUnscopables$1; +var Iterators = iterators; +var InternalStateModule$2 = internalState; +var defineProperty$1 = objectDefineProperty.f; +var defineIterator$1 = iteratorDefine; +var createIterResultObject$1 = createIterResultObject$2; +var DESCRIPTORS = descriptors; + +var ARRAY_ITERATOR = 'Array Iterator'; +var setInternalState$2 = InternalStateModule$2.set; +var getInternalState$1 = InternalStateModule$2.getterFor(ARRAY_ITERATOR); + +// `Array.prototype.entries` method +// https://tc39.es/ecma262/#sec-array.prototype.entries +// `Array.prototype.keys` method +// https://tc39.es/ecma262/#sec-array.prototype.keys +// `Array.prototype.values` method +// https://tc39.es/ecma262/#sec-array.prototype.values +// `Array.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-array.prototype-@@iterator +// `CreateArrayIterator` internal method +// https://tc39.es/ecma262/#sec-createarrayiterator +var es_array_iterator = defineIterator$1(Array, 'Array', function (iterated, kind) { + setInternalState$2(this, { + type: ARRAY_ITERATOR, + target: toIndexedObject$1(iterated), // target + index: 0, // next index + kind: kind // kind + }); +// `%ArrayIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next +}, function () { + var state = getInternalState$1(this); + var target = state.target; + var kind = state.kind; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject$1(undefined, true); + } + if (kind == 'keys') return createIterResultObject$1(index, false); + if (kind == 'values') return createIterResultObject$1(target[index], false); + return createIterResultObject$1([index, target[index]], false); +}, 'values'); + +// argumentsList[@@iterator] is %ArrayProto_values% +// https://tc39.es/ecma262/#sec-createunmappedargumentsobject +// https://tc39.es/ecma262/#sec-createmappedargumentsobject +var values = Iterators.Arguments = Iterators.Array; + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('keys'); +addToUnscopables('values'); +addToUnscopables('entries'); + +// V8 ~ Chrome 45- bug +if (DESCRIPTORS && values.name !== 'values') try { + defineProperty$1(values, 'name', { value: 'values' }); +} catch (error) { /* empty */ } + +var classof$3 = classof$8; + +var $String = String; + +var toString$2 = function (argument) { + if (classof$3(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string'); + return $String(argument); +}; + +var uncurryThis$4 = functionUncurryThis; +var toIntegerOrInfinity = toIntegerOrInfinity$3; +var toString$1 = toString$2; +var requireObjectCoercible = requireObjectCoercible$3; + +var charAt$1 = uncurryThis$4(''.charAt); +var charCodeAt = uncurryThis$4(''.charCodeAt); +var stringSlice = uncurryThis$4(''.slice); + +var createMethod$1 = function (CONVERT_TO_STRING) { + return function ($this, pos) { + var S = toString$1(requireObjectCoercible($this)); + var position = toIntegerOrInfinity(pos); + var size = S.length; + var first, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; + first = charCodeAt(S, position); + return first < 0xD800 || first > 0xDBFF || position + 1 === size + || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF + ? CONVERT_TO_STRING + ? charAt$1(S, position) + : first + : CONVERT_TO_STRING + ? stringSlice(S, position, position + 2) + : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; + }; +}; + +var stringMultibyte = { + // `String.prototype.codePointAt` method + // https://tc39.es/ecma262/#sec-string.prototype.codepointat + codeAt: createMethod$1(false), + // `String.prototype.at` method + // https://github.com/mathiasbynens/String.prototype.at + charAt: createMethod$1(true) +}; + +var charAt = stringMultibyte.charAt; +var toString = toString$2; +var InternalStateModule$1 = internalState; +var defineIterator = iteratorDefine; +var createIterResultObject = createIterResultObject$2; + +var STRING_ITERATOR = 'String Iterator'; +var setInternalState$1 = InternalStateModule$1.set; +var getInternalState = InternalStateModule$1.getterFor(STRING_ITERATOR); + +// `String.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-string.prototype-@@iterator +defineIterator(String, 'String', function (iterated) { + setInternalState$1(this, { + type: STRING_ITERATOR, + string: toString(iterated), + index: 0 + }); +// `%StringIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next +}, function next() { + var state = getInternalState(this); + var string = state.string; + var index = state.index; + var point; + if (index >= string.length) return createIterResultObject(undefined, true); + point = charAt(string, index); + state.index += point.length; + return createIterResultObject(point, false); +}); + +var internalMetadata = {exports: {}}; + +var objectGetOwnPropertyNamesExternal = {}; + +var toPropertyKey = toPropertyKey$3; +var definePropertyModule = objectDefineProperty; +var createPropertyDescriptor = createPropertyDescriptor$4; + +var createProperty$1 = function (object, key, value) { + var propertyKey = toPropertyKey(key); + if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); + else object[propertyKey] = value; +}; + +var toAbsoluteIndex = toAbsoluteIndex$2; +var lengthOfArrayLike$1 = lengthOfArrayLike$4; +var createProperty = createProperty$1; + +var $Array$1 = Array; +var max = Math.max; + +var arraySliceSimple = function (O, start, end) { + var length = lengthOfArrayLike$1(O); + var k = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + var result = $Array$1(max(fin - k, 0)); + for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]); + result.length = n; + return result; +}; + +/* eslint-disable es/no-object-getownpropertynames -- safe */ + +var classof$2 = classofRaw$2; +var toIndexedObject = toIndexedObject$7; +var $getOwnPropertyNames = objectGetOwnPropertyNames.f; +var arraySlice = arraySliceSimple; + +var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + +var getWindowNames = function (it) { + try { + return $getOwnPropertyNames(it); + } catch (error) { + return arraySlice(windowNames); + } +}; + +// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window +objectGetOwnPropertyNamesExternal.f = function getOwnPropertyNames(it) { + return windowNames && classof$2(it) == 'Window' + ? getWindowNames(it) + : $getOwnPropertyNames(toIndexedObject(it)); +}; + +// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it +var fails$4 = fails$j; + +var arrayBufferNonExtensible = fails$4(function () { + if (typeof ArrayBuffer == 'function') { + var buffer = new ArrayBuffer(8); + // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe + if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 }); + } +}); + +var fails$3 = fails$j; +var isObject$5 = isObject$e; +var classof$1 = classofRaw$2; +var ARRAY_BUFFER_NON_EXTENSIBLE = arrayBufferNonExtensible; + +// eslint-disable-next-line es/no-object-isextensible -- safe +var $isExtensible = Object.isExtensible; +var FAILS_ON_PRIMITIVES$1 = fails$3(function () { $isExtensible(1); }); + +// `Object.isExtensible` method +// https://tc39.es/ecma262/#sec-object.isextensible +var objectIsExtensible = (FAILS_ON_PRIMITIVES$1 || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) { + if (!isObject$5(it)) return false; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof$1(it) == 'ArrayBuffer') return false; + return $isExtensible ? $isExtensible(it) : true; +} : $isExtensible; + +var fails$2 = fails$j; + +var freezing = !fails$2(function () { + // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing + return Object.isExtensible(Object.preventExtensions({})); +}); + +var $$2 = _export; +var uncurryThis$3 = functionUncurryThis; +var hiddenKeys = hiddenKeys$5; +var isObject$4 = isObject$e; +var hasOwn$1 = hasOwnProperty_1; +var defineProperty = objectDefineProperty.f; +var getOwnPropertyNamesModule = objectGetOwnPropertyNames; +var getOwnPropertyNamesExternalModule = objectGetOwnPropertyNamesExternal; +var isExtensible = objectIsExtensible; +var uid = uid$3; +var FREEZING = freezing; + +var REQUIRED = false; +var METADATA = uid('meta'); +var id$1 = 0; + +var setMetadata = function (it) { + defineProperty(it, METADATA, { value: { + objectID: 'O' + id$1++, // object ID + weakData: {} // weak collections IDs + } }); +}; + +var fastKey = function (it, create) { + // return a primitive with prefix + if (!isObject$4(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!hasOwn$1(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; + // not necessary to add metadata + if (!create) return 'E'; + // add missing metadata + setMetadata(it); + // return object ID + } return it[METADATA].objectID; +}; + +var getWeakData$1 = function (it, create) { + if (!hasOwn$1(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; + // not necessary to add metadata + if (!create) return false; + // add missing metadata + setMetadata(it); + // return the store of weak collections IDs + } return it[METADATA].weakData; +}; + +// add metadata on freeze-family methods calling +var onFreeze = function (it) { + if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn$1(it, METADATA)) setMetadata(it); + return it; +}; + +var enable = function () { + meta.enable = function () { /* empty */ }; + REQUIRED = true; + var getOwnPropertyNames = getOwnPropertyNamesModule.f; + var splice = uncurryThis$3([].splice); + var test = {}; + test[METADATA] = 1; + + // prevent exposing of metadata key + if (getOwnPropertyNames(test).length) { + getOwnPropertyNamesModule.f = function (it) { + var result = getOwnPropertyNames(it); + for (var i = 0, length = result.length; i < length; i++) { + if (result[i] === METADATA) { + splice(result, i, 1); + break; + } + } return result; + }; + + $$2({ target: 'Object', stat: true, forced: true }, { + getOwnPropertyNames: getOwnPropertyNamesExternalModule.f + }); + } +}; + +var meta = internalMetadata.exports = { + enable: enable, + fastKey: fastKey, + getWeakData: getWeakData$1, + onFreeze: onFreeze +}; + +hiddenKeys[METADATA] = true; + +var internalMetadataExports = internalMetadata.exports; + +var isCallable$1 = isCallable$m; +var isObject$3 = isObject$e; +var setPrototypeOf = objectSetPrototypeOf; + +// makes subclassing work correct for wrapped built-ins +var inheritIfRequired$1 = function ($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if ( + // it can work only with native `setPrototypeOf` + setPrototypeOf && + // we haven't completely correct pre-ES6 way for getting `new.target`, so use this + isCallable$1(NewTarget = dummy.constructor) && + NewTarget !== Wrapper && + isObject$3(NewTargetPrototype = NewTarget.prototype) && + NewTargetPrototype !== Wrapper.prototype + ) setPrototypeOf($this, NewTargetPrototype); + return $this; +}; + +var $$1 = _export; +var global$3 = global$j; +var uncurryThis$2 = functionUncurryThis; +var isForced = isForced_1; +var defineBuiltIn$1 = defineBuiltIn$8; +var InternalMetadataModule = internalMetadataExports; +var iterate$1 = iterate$4; +var anInstance$1 = anInstance$3; +var isCallable = isCallable$m; +var isNullOrUndefined$1 = isNullOrUndefined$6; +var isObject$2 = isObject$e; +var fails$1 = fails$j; +var checkCorrectnessOfIteration = checkCorrectnessOfIteration$2; +var setToStringTag = setToStringTag$4; +var inheritIfRequired = inheritIfRequired$1; + +var collection$1 = function (CONSTRUCTOR_NAME, wrapper, common) { + var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; + var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; + var ADDER = IS_MAP ? 'set' : 'add'; + var NativeConstructor = global$3[CONSTRUCTOR_NAME]; + var NativePrototype = NativeConstructor && NativeConstructor.prototype; + var Constructor = NativeConstructor; + var exported = {}; + + var fixMethod = function (KEY) { + var uncurriedNativeMethod = uncurryThis$2(NativePrototype[KEY]); + defineBuiltIn$1(NativePrototype, KEY, + KEY == 'add' ? function add(value) { + uncurriedNativeMethod(this, value === 0 ? 0 : value); + return this; + } : KEY == 'delete' ? function (key) { + return IS_WEAK && !isObject$2(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY == 'get' ? function get(key) { + return IS_WEAK && !isObject$2(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY == 'has' ? function has(key) { + return IS_WEAK && !isObject$2(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : function set(key, value) { + uncurriedNativeMethod(this, key === 0 ? 0 : key, value); + return this; + } + ); + }; + + var REPLACE = isForced( + CONSTRUCTOR_NAME, + !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails$1(function () { + new NativeConstructor().entries().next(); + })) + ); + + if (REPLACE) { + // create collection constructor + Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); + InternalMetadataModule.enable(); + } else if (isForced(CONSTRUCTOR_NAME, true)) { + var instance = new Constructor(); + // early implementations not supports chaining + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; + // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false + var THROWS_ON_PRIMITIVES = fails$1(function () { instance.has(1); }); + // most early implementations doesn't supports iterables, most modern - not close it correctly + // eslint-disable-next-line no-new -- required for testing + var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); }); + // for early implementations -0 and +0 not the same + var BUGGY_ZERO = !IS_WEAK && fails$1(function () { + // V8 ~ Chromium 42- fails only with 5+ elements + var $instance = new NativeConstructor(); + var index = 5; + while (index--) $instance[ADDER](index, index); + return !$instance.has(-0); + }); + + if (!ACCEPT_ITERABLES) { + Constructor = wrapper(function (dummy, iterable) { + anInstance$1(dummy, NativePrototype); + var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); + if (!isNullOrUndefined$1(iterable)) iterate$1(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + return that; + }); + Constructor.prototype = NativePrototype; + NativePrototype.constructor = Constructor; + } + + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); + + // weak collections should not contains .clear method + if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear; + } + + exported[CONSTRUCTOR_NAME] = Constructor; + $$1({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported); + + setToStringTag(Constructor, CONSTRUCTOR_NAME); + + if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); + + return Constructor; +}; + +var defineBuiltIn = defineBuiltIn$8; + +var defineBuiltIns$1 = function (target, src, options) { + for (var key in src) defineBuiltIn(target, key, src[key], options); + return target; +}; + +var classof = classofRaw$2; + +// `IsArray` abstract operation +// https://tc39.es/ecma262/#sec-isarray +// eslint-disable-next-line es/no-array-isarray -- safe +var isArray$1 = Array.isArray || function isArray(argument) { + return classof(argument) == 'Array'; +}; + +var isArray = isArray$1; +var isConstructor = isConstructor$2; +var isObject$1 = isObject$e; +var wellKnownSymbol$1 = wellKnownSymbol$f; + +var SPECIES = wellKnownSymbol$1('species'); +var $Array = Array; + +// a part of `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +var arraySpeciesConstructor$1 = function (originalArray) { + var C; + if (isArray(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined; + else if (isObject$1(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array : C; +}; + +var arraySpeciesConstructor = arraySpeciesConstructor$1; + +// `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +var arraySpeciesCreate$1 = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); +}; + +var bind = functionBindContext; +var uncurryThis$1 = functionUncurryThis; +var IndexedObject = indexedObject; +var toObject$1 = toObject$5; +var lengthOfArrayLike = lengthOfArrayLike$4; +var arraySpeciesCreate = arraySpeciesCreate$1; + +var push = uncurryThis$1([].push); + +// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation +var createMethod = function (TYPE) { + var IS_MAP = TYPE == 1; + var IS_FILTER = TYPE == 2; + var IS_SOME = TYPE == 3; + var IS_EVERY = TYPE == 4; + var IS_FIND_INDEX = TYPE == 6; + var IS_FILTER_REJECT = TYPE == 7; + var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject$1($this); + var self = IndexedObject(O); + var boundFunction = bind(callbackfn, that); + var length = lengthOfArrayLike(self); + var index = 0; + var create = specificCreate || arraySpeciesCreate; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push(target, value); // filterReject + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; +}; + +var arrayIteration = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod(7) +}; + +var uncurryThis = functionUncurryThis; +var defineBuiltIns = defineBuiltIns$1; +var getWeakData = internalMetadataExports.getWeakData; +var anInstance = anInstance$3; +var anObject = anObject$b; +var isNullOrUndefined = isNullOrUndefined$6; +var isObject = isObject$e; +var iterate = iterate$4; +var ArrayIterationModule = arrayIteration; +var hasOwn = hasOwnProperty_1; +var InternalStateModule = internalState; + +var setInternalState = InternalStateModule.set; +var internalStateGetterFor = InternalStateModule.getterFor; +var find = ArrayIterationModule.find; +var findIndex = ArrayIterationModule.findIndex; +var splice = uncurryThis([].splice); +var id = 0; + +// fallback for uncaught frozen keys +var uncaughtFrozenStore = function (state) { + return state.frozen || (state.frozen = new UncaughtFrozenStore()); +}; + +var UncaughtFrozenStore = function () { + this.entries = []; +}; + +var findUncaughtFrozen = function (store, key) { + return find(store.entries, function (it) { + return it[0] === key; + }); +}; + +UncaughtFrozenStore.prototype = { + get: function (key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function (key) { + return !!findUncaughtFrozen(this, key); + }, + set: function (key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value; + else this.entries.push([key, value]); + }, + 'delete': function (key) { + var index = findIndex(this.entries, function (it) { + return it[0] === key; + }); + if (~index) splice(this.entries, index, 1); + return !!~index; + } +}; + +var collectionWeak$1 = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + id: id++, + frozen: undefined + }); + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var data = getWeakData(anObject(key), true); + if (data === true) uncaughtFrozenStore(state).set(key, value); + else data[state.id] = value; + return that; + }; + + defineBuiltIns(Prototype, { + // `{ WeakMap, WeakSet }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.delete + // https://tc39.es/ecma262/#sec-weakset.prototype.delete + 'delete': function (key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state)['delete'](key); + return data && hasOwn(data, state.id) && delete data[state.id]; + }, + // `{ WeakMap, WeakSet }.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.has + // https://tc39.es/ecma262/#sec-weakset.prototype.has + has: function has(key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).has(key); + return data && hasOwn(data, state.id); + } + }); + + defineBuiltIns(Prototype, IS_MAP ? { + // `WeakMap.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.get + get: function get(key) { + var state = getInternalState(this); + if (isObject(key)) { + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).get(key); + return data ? data[state.id] : undefined; + } + }, + // `WeakMap.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.set + set: function set(key, value) { + return define(this, key, value); + } + } : { + // `WeakSet.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-weakset.prototype.add + add: function add(value) { + return define(this, value, true); + } + }); + + return Constructor; + } +}; + +var collection = collection$1; +var collectionWeak = collectionWeak$1; + +// `WeakSet` constructor +// https://tc39.es/ecma262/#sec-weakset-constructor +collection('WeakSet', function (init) { + return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionWeak); + +// iterable DOM collections +// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods +var domIterables = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 +}; + +// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList` +var documentCreateElement = documentCreateElement$2; + +var classList = documentCreateElement('span').classList; +var DOMTokenListPrototype$2 = classList && classList.constructor && classList.constructor.prototype; + +var domTokenListPrototype = DOMTokenListPrototype$2 === Object.prototype ? undefined : DOMTokenListPrototype$2; + +var global$2 = global$j; +var DOMIterables$1 = domIterables; +var DOMTokenListPrototype$1 = domTokenListPrototype; +var ArrayIteratorMethods = es_array_iterator; +var createNonEnumerableProperty$1 = createNonEnumerableProperty$5; +var wellKnownSymbol = wellKnownSymbol$f; + +var ITERATOR = wellKnownSymbol('iterator'); +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var ArrayValues = ArrayIteratorMethods.values; + +var handlePrototype$1 = function (CollectionPrototype, COLLECTION_NAME) { + if (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[ITERATOR] !== ArrayValues) try { + createNonEnumerableProperty$1(CollectionPrototype, ITERATOR, ArrayValues); + } catch (error) { + CollectionPrototype[ITERATOR] = ArrayValues; + } + if (!CollectionPrototype[TO_STRING_TAG]) { + createNonEnumerableProperty$1(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); + } + if (DOMIterables$1[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { + createNonEnumerableProperty$1(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); + } catch (error) { + CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; + } + } + } +}; + +for (var COLLECTION_NAME$1 in DOMIterables$1) { + handlePrototype$1(global$2[COLLECTION_NAME$1] && global$2[COLLECTION_NAME$1].prototype, COLLECTION_NAME$1); +} + +handlePrototype$1(DOMTokenListPrototype$1, 'DOMTokenList'); + +var $forEach = arrayIteration.forEach; +var arrayMethodIsStrict = arrayMethodIsStrict$2; + +var STRICT_METHOD = arrayMethodIsStrict('forEach'); + +// `Array.prototype.forEach` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.foreach +var arrayForEach = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) { + return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); +// eslint-disable-next-line es/no-array-prototype-foreach -- safe +} : [].forEach; + +var global$1 = global$j; +var DOMIterables = domIterables; +var DOMTokenListPrototype = domTokenListPrototype; +var forEach = arrayForEach; +var createNonEnumerableProperty = createNonEnumerableProperty$5; + +var handlePrototype = function (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { + createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach); + } catch (error) { + CollectionPrototype.forEach = forEach; + } +}; + +for (var COLLECTION_NAME in DOMIterables) { + if (DOMIterables[COLLECTION_NAME]) { + handlePrototype(global$1[COLLECTION_NAME] && global$1[COLLECTION_NAME].prototype); + } +} + +handlePrototype(DOMTokenListPrototype); + +var $ = _export; +var toObject = toObject$5; +var nativeKeys = objectKeys$2; +var fails = fails$j; + +var FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); }); + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { + keys: function keys(it) { + return nativeKeys(toObject(it)); + } +}); + +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global Reflect, Promise */ + + +function __classPrivateFieldGet(receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +} + +var ScrollDirection; +(function (ScrollDirection) { + ScrollDirection[ScrollDirection["SCROLL_NONE"] = 0] = "SCROLL_NONE"; + ScrollDirection[ScrollDirection["SCROLL_BACKWARD"] = 1] = "SCROLL_BACKWARD"; + ScrollDirection[ScrollDirection["SCROLL_FORWARD"] = 2] = "SCROLL_FORWARD"; +})(ScrollDirection || (ScrollDirection = {})); +var Position; +(function (Position) { + Position[Position["TOP"] = 0] = "TOP"; + Position[Position["RIGHT"] = 1] = "RIGHT"; + Position[Position["BOTTOM"] = 2] = "BOTTOM"; + Position[Position["LEFT"] = 3] = "LEFT"; +})(Position || (Position = {})); + +function isHorizontal(position) { + return position === 'left' || position === 'right'; +} +function isVertical(position) { + return position === 'top' || position === 'bottom'; +} +function horizontalPadding(padding) { + return padding[Position.LEFT] + padding[Position.RIGHT]; +} +function verticalPadding(padding) { + return padding[Position.TOP] + padding[Position.BOTTOM]; +} + +var _CalendarLabel_instances, _CalendarLabel_buildComputedOptions, _CalendarLabel_computeDimensions, _CalendarLabel_setRectAttr, _CalendarLabel_setTextAttr, _CalendarLabel_getTextXOffset, _CalendarLabel_getX, _CalendarLabel_getY; +var DEFAULT_SELECTOR = '.ch-plugin-calendar-label'; +var defaultOptions = { + enabled: true, + dimensions: { + width: 0, + height: 0 + }, + position: 'left', + text: function text() { + return []; + }, + padding: [0, 0, 0, 0] +}; +var CalendarLabel = /*#__PURE__*/function () { + function CalendarLabel(calendar) { + _classCallCheck(this, CalendarLabel); + var _a, _b; + _CalendarLabel_instances.add(this); + this.name = 'CalendarLabel'; + var subDomain = (_b = (_a = calendar === null || calendar === void 0 ? void 0 : calendar.options) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.subDomain; + this.calendar = calendar; + this.root = null; + this.shown = false; + this.options = defaultOptions; + this.computedOptions = { + radius: subDomain === null || subDomain === void 0 ? void 0 : subDomain.radius, + width: subDomain === null || subDomain === void 0 ? void 0 : subDomain.width, + height: subDomain === null || subDomain === void 0 ? void 0 : subDomain.height, + gutter: subDomain === null || subDomain === void 0 ? void 0 : subDomain.gutter, + textAlign: 'start' + }; + } + _createClass(CalendarLabel, [{ + key: "setup", + value: function setup(pluginOptions) { + this.options = Object.assign(Object.assign({}, defaultOptions), pluginOptions); + } + }, { + key: "paint", + value: function paint() { + var enabled = this.options.enabled; + if (!enabled) { + return this.destroy(); + } + this.shown = true; + var calendarRoot = this.calendar.calendarPainter.root; + if (!this.root) { + this.root = calendarRoot.append('svg').attr('class', DEFAULT_SELECTOR.slice(1)).attr('data-key', this.options.key).attr('x', 0).attr('y', 0); + } + this.build(); + return Promise.resolve(); + } + }, { + key: "destroy", + value: function destroy() { + if (this.root !== null) { + this.root.remove(); + this.root = null; + } + return Promise.resolve(); + } + }, { + key: "build", + value: function build() { + var _this = this; + __classPrivateFieldGet(this, _CalendarLabel_instances, "m", _CalendarLabel_buildComputedOptions).call(this); + __classPrivateFieldGet(this, _CalendarLabel_instances, "m", _CalendarLabel_computeDimensions).call(this); + this.root.selectAll('g').data(this.options.text).join(function (enter) { + return enter.append('g').call(function (selection) { + return selection.append('rect').attr('class', "".concat(DEFAULT_SELECTOR.slice(1), "-bg")).attr('style', 'fill: transparent').call(function (s) { + return __classPrivateFieldGet(_this, _CalendarLabel_instances, "m", _CalendarLabel_setRectAttr).call(_this, s); + }); + }).call(function (selection) { + return selection.append('text').attr('class', "".concat(DEFAULT_SELECTOR.slice(1), "-text")).attr('dominant-baseline', 'central').attr('text-anchor', 'middle').attr('style', 'fill: currentColor; font-size: 10px').call(function (s) { + return __classPrivateFieldGet(_this, _CalendarLabel_instances, "m", _CalendarLabel_setTextAttr).call(_this, s); + }); + }); + }); + return Promise.resolve(); + } + }]); + return CalendarLabel; +}(); +_CalendarLabel_instances = new WeakSet(), _CalendarLabel_buildComputedOptions = function _CalendarLabel_buildComputedOptions() { + var _this2 = this; + Object.keys(this.computedOptions).forEach(function (key) { + if (typeof _this2.options[key] !== 'undefined') { + // @ts-ignore + _this2.computedOptions[key] = _this2.options[key]; + } + }); +}, _CalendarLabel_computeDimensions = function _CalendarLabel_computeDimensions() { + var _this$computedOptions = this.computedOptions, + width = _this$computedOptions.width, + height = _this$computedOptions.height, + gutter = _this$computedOptions.gutter; + var _this$options = this.options, + text = _this$options.text, + padding = _this$options.padding, + position = _this$options.position; + var labelsCount = text().length; + this.options.dimensions = { + width: width + horizontalPadding(padding), + height: height + verticalPadding(padding) + }; + if (isVertical(position)) { + this.options.dimensions.width += (width + gutter) * (labelsCount - 1); + } else { + this.options.dimensions.height += (height + gutter) * (labelsCount - 1); + } +}, _CalendarLabel_setRectAttr = function _CalendarLabel_setRectAttr(selection) { + var _this3 = this; + var _this$computedOptions2 = this.computedOptions, + width = _this$computedOptions2.width, + height = _this$computedOptions2.height, + radius = _this$computedOptions2.radius; + selection.attr('width', width).attr('height', height).attr('rx', radius && radius > 0 ? radius : null).attr('ry', radius && radius > 0 ? radius : null).attr('x', function (_d, i) { + return __classPrivateFieldGet(_this3, _CalendarLabel_instances, "m", _CalendarLabel_getX).call(_this3, i); + }).attr('y', function (_d, i) { + return __classPrivateFieldGet(_this3, _CalendarLabel_instances, "m", _CalendarLabel_getY).call(_this3, i); + }); +}, _CalendarLabel_setTextAttr = function _CalendarLabel_setTextAttr(selection) { + var _this4 = this; + var _this$computedOptions3 = this.computedOptions, + height = _this$computedOptions3.height, + textAlign = _this$computedOptions3.textAlign; + selection.attr('text-anchor', textAlign).attr('x', function (_d, i) { + return __classPrivateFieldGet(_this4, _CalendarLabel_instances, "m", _CalendarLabel_getTextXOffset).call(_this4) + __classPrivateFieldGet(_this4, _CalendarLabel_instances, "m", _CalendarLabel_getX).call(_this4, i); + }).attr('y', function (_d, i) { + return __classPrivateFieldGet(_this4, _CalendarLabel_instances, "m", _CalendarLabel_getY).call(_this4, i) + height / 2; + }).text(function (data) { + return data; + }); +}, _CalendarLabel_getTextXOffset = function _CalendarLabel_getTextXOffset() { + var _this$computedOptions4 = this.computedOptions, + width = _this$computedOptions4.width, + textAlign = _this$computedOptions4.textAlign; + switch (textAlign) { + case 'start': + return 0; + case 'middle': + return width / 2; + case 'end': + return width; + default: + return 0; + } +}, _CalendarLabel_getX = function _CalendarLabel_getX(index) { + var _this$options2 = this.options, + position = _this$options2.position, + padding = _this$options2.padding; + var _this$computedOptions5 = this.computedOptions, + width = _this$computedOptions5.width, + gutter = _this$computedOptions5.gutter; + if (isHorizontal(position)) { + return padding[Position.LEFT]; + } + return padding[Position.LEFT] + (width + gutter) * index; +}, _CalendarLabel_getY = function _CalendarLabel_getY(index) { + var _this$options3 = this.options, + position = _this$options3.position, + padding = _this$options3.padding; + var _this$computedOptions6 = this.computedOptions, + height = _this$computedOptions6.height, + gutter = _this$computedOptions6.gutter; + if (isVertical(position)) { + return padding[Position.TOP]; + } + return padding[Position.TOP] + (height + gutter) * index; +}; + +export { CalendarLabel as default }; diff --git a/static/javascripts/cal-heatmap/plugins/CalendarLabel.js b/static/javascripts/cal-heatmap/plugins/CalendarLabel.js new file mode 100644 index 000000000..c7bf4a005 --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/CalendarLabel.js @@ -0,0 +1,3801 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.CalendarLabel = factory()); +})(this, (function () { 'use strict'; + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _toPrimitive(input, hint) { + if (typeof input !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (typeof res !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); + } + function _toPropertyKey(arg) { + var key = _toPrimitive(arg, "string"); + return typeof key === "symbol" ? key : String(key); + } + + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + var fails$j = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } + }; + + var fails$i = fails$j; + + // Detect IE8's incomplete defineProperty implementation + var descriptors = !fails$i(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; + }); + + var fails$h = fails$j; + + var functionBindNative = !fails$h(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); + }); + + var NATIVE_BIND$3 = functionBindNative; + + var FunctionPrototype$3 = Function.prototype; + var call$e = FunctionPrototype$3.call; + var uncurryThisWithBind = NATIVE_BIND$3 && FunctionPrototype$3.bind.bind(call$e, call$e); + + var functionUncurryThis = NATIVE_BIND$3 ? uncurryThisWithBind : function (fn) { + return function () { + return call$e.apply(fn, arguments); + }; + }; + + // we can't use just `it == null` since of `document.all` special case + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec + var isNullOrUndefined$6 = function (it) { + return it === null || it === undefined; + }; + + var isNullOrUndefined$5 = isNullOrUndefined$6; + + var $TypeError$c = TypeError; + + // `RequireObjectCoercible` abstract operation + // https://tc39.es/ecma262/#sec-requireobjectcoercible + var requireObjectCoercible$3 = function (it) { + if (isNullOrUndefined$5(it)) throw $TypeError$c("Can't call method on " + it); + return it; + }; + + var requireObjectCoercible$2 = requireObjectCoercible$3; + + var $Object$4 = Object; + + // `ToObject` abstract operation + // https://tc39.es/ecma262/#sec-toobject + var toObject$5 = function (argument) { + return $Object$4(requireObjectCoercible$2(argument)); + }; + + var uncurryThis$l = functionUncurryThis; + var toObject$4 = toObject$5; + + var hasOwnProperty = uncurryThis$l({}.hasOwnProperty); + + // `HasOwnProperty` abstract operation + // https://tc39.es/ecma262/#sec-hasownproperty + // eslint-disable-next-line es/no-object-hasown -- safe + var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject$4(it), key); + }; + + var DESCRIPTORS$b = descriptors; + var hasOwn$b = hasOwnProperty_1; + + var FunctionPrototype$2 = Function.prototype; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getDescriptor = DESCRIPTORS$b && Object.getOwnPropertyDescriptor; + + var EXISTS$1 = hasOwn$b(FunctionPrototype$2, 'name'); + // additional protection from minified / mangled / dropped function names + var PROPER = EXISTS$1 && (function something() { /* empty */ }).name === 'something'; + var CONFIGURABLE$1 = EXISTS$1 && (!DESCRIPTORS$b || (DESCRIPTORS$b && getDescriptor(FunctionPrototype$2, 'name').configurable)); + + var functionName = { + EXISTS: EXISTS$1, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE$1 + }; + + var makeBuiltIn$3 = {exports: {}}; + + var documentAll$2 = typeof document == 'object' && document.all; + + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + // eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing + var IS_HTMLDDA = typeof documentAll$2 == 'undefined' && documentAll$2 !== undefined; + + var documentAll_1 = { + all: documentAll$2, + IS_HTMLDDA: IS_HTMLDDA + }; + + var $documentAll$1 = documentAll_1; + + var documentAll$1 = $documentAll$1.all; + + // `IsCallable` abstract operation + // https://tc39.es/ecma262/#sec-iscallable + var isCallable$m = $documentAll$1.IS_HTMLDDA ? function (argument) { + return typeof argument == 'function' || argument === documentAll$1; + } : function (argument) { + return typeof argument == 'function'; + }; + + var check = function (it) { + return it && it.Math == Math && it; + }; + + // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 + var global$j = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || commonjsGlobal || Function('return this')(); + + var global$i = global$j; + + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$7 = Object.defineProperty; + + var defineGlobalProperty$3 = function (key, value) { + try { + defineProperty$7(global$i, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global$i[key] = value; + } return value; + }; + + var global$h = global$j; + var defineGlobalProperty$2 = defineGlobalProperty$3; + + var SHARED = '__core-js_shared__'; + var store$3 = global$h[SHARED] || defineGlobalProperty$2(SHARED, {}); + + var sharedStore = store$3; + + var uncurryThis$k = functionUncurryThis; + var isCallable$l = isCallable$m; + var store$2 = sharedStore; + + var functionToString$1 = uncurryThis$k(Function.toString); + + // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper + if (!isCallable$l(store$2.inspectSource)) { + store$2.inspectSource = function (it) { + return functionToString$1(it); + }; + } + + var inspectSource$3 = store$2.inspectSource; + + var global$g = global$j; + var isCallable$k = isCallable$m; + + var WeakMap$1 = global$g.WeakMap; + + var weakMapBasicDetection = isCallable$k(WeakMap$1) && /native code/.test(String(WeakMap$1)); + + var isCallable$j = isCallable$m; + var $documentAll = documentAll_1; + + var documentAll = $documentAll.all; + + var isObject$e = $documentAll.IS_HTMLDDA ? function (it) { + return typeof it == 'object' ? it !== null : isCallable$j(it) || it === documentAll; + } : function (it) { + return typeof it == 'object' ? it !== null : isCallable$j(it); + }; + + var objectDefineProperty = {}; + + var global$f = global$j; + var isObject$d = isObject$e; + + var document$3 = global$f.document; + // typeof document.createElement is 'object' in old IE + var EXISTS = isObject$d(document$3) && isObject$d(document$3.createElement); + + var documentCreateElement$2 = function (it) { + return EXISTS ? document$3.createElement(it) : {}; + }; + + var DESCRIPTORS$a = descriptors; + var fails$g = fails$j; + var createElement$1 = documentCreateElement$2; + + // Thanks to IE8 for its funny defineProperty + var ie8DomDefine = !DESCRIPTORS$a && !fails$g(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement$1('div'), 'a', { + get: function () { return 7; } + }).a != 7; + }); + + var DESCRIPTORS$9 = descriptors; + var fails$f = fails$j; + + // V8 ~ Chrome 36- + // https://bugs.chromium.org/p/v8/issues/detail?id=3334 + var v8PrototypeDefineBug = DESCRIPTORS$9 && fails$f(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype != 42; + }); + + var isObject$c = isObject$e; + + var $String$5 = String; + var $TypeError$b = TypeError; + + // `Assert: Type(argument) is Object` + var anObject$b = function (argument) { + if (isObject$c(argument)) return argument; + throw $TypeError$b($String$5(argument) + ' is not an object'); + }; + + var NATIVE_BIND$2 = functionBindNative; + + var call$d = Function.prototype.call; + + var functionCall = NATIVE_BIND$2 ? call$d.bind(call$d) : function () { + return call$d.apply(call$d, arguments); + }; + + var global$e = global$j; + var isCallable$i = isCallable$m; + + var aFunction = function (argument) { + return isCallable$i(argument) ? argument : undefined; + }; + + var getBuiltIn$7 = function (namespace, method) { + return arguments.length < 2 ? aFunction(global$e[namespace]) : global$e[namespace] && global$e[namespace][method]; + }; + + var uncurryThis$j = functionUncurryThis; + + var objectIsPrototypeOf = uncurryThis$j({}.isPrototypeOf); + + var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + + var global$d = global$j; + var userAgent$3 = engineUserAgent; + + var process$4 = global$d.process; + var Deno$1 = global$d.Deno; + var versions = process$4 && process$4.versions || Deno$1 && Deno$1.version; + var v8 = versions && versions.v8; + var match, version; + + if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); + } + + // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` + // so check `userAgent` even if `.v8` exists, but 0 + if (!version && userAgent$3) { + match = userAgent$3.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent$3.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } + } + + var engineV8Version = version; + + /* eslint-disable es/no-symbol -- required for testing */ + + var V8_VERSION$1 = engineV8Version; + var fails$e = fails$j; + var global$c = global$j; + + var $String$4 = global$c.String; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing + var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$e(function () { + var symbol = Symbol(); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String$4(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION$1 && V8_VERSION$1 < 41; + }); + + /* eslint-disable es/no-symbol -- required for testing */ + + var NATIVE_SYMBOL$1 = symbolConstructorDetection; + + var useSymbolAsUid = NATIVE_SYMBOL$1 + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + + var getBuiltIn$6 = getBuiltIn$7; + var isCallable$h = isCallable$m; + var isPrototypeOf$2 = objectIsPrototypeOf; + var USE_SYMBOL_AS_UID$1 = useSymbolAsUid; + + var $Object$3 = Object; + + var isSymbol$2 = USE_SYMBOL_AS_UID$1 ? function (it) { + return typeof it == 'symbol'; + } : function (it) { + var $Symbol = getBuiltIn$6('Symbol'); + return isCallable$h($Symbol) && isPrototypeOf$2($Symbol.prototype, $Object$3(it)); + }; + + var $String$3 = String; + + var tryToString$4 = function (argument) { + try { + return $String$3(argument); + } catch (error) { + return 'Object'; + } + }; + + var isCallable$g = isCallable$m; + var tryToString$3 = tryToString$4; + + var $TypeError$a = TypeError; + + // `Assert: IsCallable(argument) is true` + var aCallable$8 = function (argument) { + if (isCallable$g(argument)) return argument; + throw $TypeError$a(tryToString$3(argument) + ' is not a function'); + }; + + var aCallable$7 = aCallable$8; + var isNullOrUndefined$4 = isNullOrUndefined$6; + + // `GetMethod` abstract operation + // https://tc39.es/ecma262/#sec-getmethod + var getMethod$3 = function (V, P) { + var func = V[P]; + return isNullOrUndefined$4(func) ? undefined : aCallable$7(func); + }; + + var call$c = functionCall; + var isCallable$f = isCallable$m; + var isObject$b = isObject$e; + + var $TypeError$9 = TypeError; + + // `OrdinaryToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-ordinarytoprimitive + var ordinaryToPrimitive$1 = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable$f(fn = input.toString) && !isObject$b(val = call$c(fn, input))) return val; + if (isCallable$f(fn = input.valueOf) && !isObject$b(val = call$c(fn, input))) return val; + if (pref !== 'string' && isCallable$f(fn = input.toString) && !isObject$b(val = call$c(fn, input))) return val; + throw $TypeError$9("Can't convert object to primitive value"); + }; + + var shared$3 = {exports: {}}; + + var store$1 = sharedStore; + + (shared$3.exports = function (key, value) { + return store$1[key] || (store$1[key] = value !== undefined ? value : {}); + })('versions', []).push({ + version: '3.30.2', + mode: 'global', + copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE', + source: 'https://github.com/zloirock/core-js' + }); + + var sharedExports = shared$3.exports; + + var uncurryThis$i = functionUncurryThis; + + var id$2 = 0; + var postfix = Math.random(); + var toString$5 = uncurryThis$i(1.0.toString); + + var uid$3 = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$5(++id$2 + postfix, 36); + }; + + var global$b = global$j; + var shared$2 = sharedExports; + var hasOwn$a = hasOwnProperty_1; + var uid$2 = uid$3; + var NATIVE_SYMBOL = symbolConstructorDetection; + var USE_SYMBOL_AS_UID = useSymbolAsUid; + + var Symbol$1 = global$b.Symbol; + var WellKnownSymbolsStore = shared$2('wks'); + var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1['for'] || Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$2; + + var wellKnownSymbol$f = function (name) { + if (!hasOwn$a(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn$a(Symbol$1, name) + ? Symbol$1[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; + }; + + var call$b = functionCall; + var isObject$a = isObject$e; + var isSymbol$1 = isSymbol$2; + var getMethod$2 = getMethod$3; + var ordinaryToPrimitive = ordinaryToPrimitive$1; + var wellKnownSymbol$e = wellKnownSymbol$f; + + var $TypeError$8 = TypeError; + var TO_PRIMITIVE = wellKnownSymbol$e('toPrimitive'); + + // `ToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-toprimitive + var toPrimitive$1 = function (input, pref) { + if (!isObject$a(input) || isSymbol$1(input)) return input; + var exoticToPrim = getMethod$2(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call$b(exoticToPrim, input, pref); + if (!isObject$a(result) || isSymbol$1(result)) return result; + throw $TypeError$8("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); + }; + + var toPrimitive = toPrimitive$1; + var isSymbol = isSymbol$2; + + // `ToPropertyKey` abstract operation + // https://tc39.es/ecma262/#sec-topropertykey + var toPropertyKey$3 = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; + }; + + var DESCRIPTORS$8 = descriptors; + var IE8_DOM_DEFINE$1 = ie8DomDefine; + var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug; + var anObject$a = anObject$b; + var toPropertyKey$2 = toPropertyKey$3; + + var $TypeError$7 = TypeError; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var $defineProperty = Object.defineProperty; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + var ENUMERABLE = 'enumerable'; + var CONFIGURABLE = 'configurable'; + var WRITABLE = 'writable'; + + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + objectDefineProperty.f = DESCRIPTORS$8 ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) { + anObject$a(O); + P = toPropertyKey$2(P); + anObject$a(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor$1(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); + } : $defineProperty : function defineProperty(O, P, Attributes) { + anObject$a(O); + P = toPropertyKey$2(P); + anObject$a(Attributes); + if (IE8_DOM_DEFINE$1) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw $TypeError$7('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; + }; + + var createPropertyDescriptor$4 = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; + }; + + var DESCRIPTORS$7 = descriptors; + var definePropertyModule$4 = objectDefineProperty; + var createPropertyDescriptor$3 = createPropertyDescriptor$4; + + var createNonEnumerableProperty$5 = DESCRIPTORS$7 ? function (object, key, value) { + return definePropertyModule$4.f(object, key, createPropertyDescriptor$3(1, value)); + } : function (object, key, value) { + object[key] = value; + return object; + }; + + var shared$1 = sharedExports; + var uid$1 = uid$3; + + var keys = shared$1('keys'); + + var sharedKey$3 = function (key) { + return keys[key] || (keys[key] = uid$1(key)); + }; + + var hiddenKeys$5 = {}; + + var NATIVE_WEAK_MAP = weakMapBasicDetection; + var global$a = global$j; + var isObject$9 = isObject$e; + var createNonEnumerableProperty$4 = createNonEnumerableProperty$5; + var hasOwn$9 = hasOwnProperty_1; + var shared = sharedStore; + var sharedKey$2 = sharedKey$3; + var hiddenKeys$4 = hiddenKeys$5; + + var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; + var TypeError$2 = global$a.TypeError; + var WeakMap = global$a.WeakMap; + var set$1, get, has; + + var enforce = function (it) { + return has(it) ? get(it) : set$1(it, {}); + }; + + var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject$9(it) || (state = get(it)).type !== TYPE) { + throw TypeError$2('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; + }; + + if (NATIVE_WEAK_MAP || shared.state) { + var store = shared.state || (shared.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set$1 = function (it, metadata) { + if (store.has(it)) throw TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; + } else { + var STATE = sharedKey$2('state'); + hiddenKeys$4[STATE] = true; + set$1 = function (it, metadata) { + if (hasOwn$9(it, STATE)) throw TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty$4(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn$9(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn$9(it, STATE); + }; + } + + var internalState = { + set: set$1, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor + }; + + var uncurryThis$h = functionUncurryThis; + var fails$d = fails$j; + var isCallable$e = isCallable$m; + var hasOwn$8 = hasOwnProperty_1; + var DESCRIPTORS$6 = descriptors; + var CONFIGURABLE_FUNCTION_NAME$1 = functionName.CONFIGURABLE; + var inspectSource$2 = inspectSource$3; + var InternalStateModule$4 = internalState; + + var enforceInternalState = InternalStateModule$4.enforce; + var getInternalState$2 = InternalStateModule$4.get; + var $String$2 = String; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$6 = Object.defineProperty; + var stringSlice$2 = uncurryThis$h(''.slice); + var replace = uncurryThis$h(''.replace); + var join = uncurryThis$h([].join); + + var CONFIGURABLE_LENGTH = DESCRIPTORS$6 && !fails$d(function () { + return defineProperty$6(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; + }); + + var TEMPLATE = String(String).split('String'); + + var makeBuiltIn$2 = makeBuiltIn$3.exports = function (value, name, options) { + if (stringSlice$2($String$2(name), 0, 7) === 'Symbol(') { + name = '[' + replace($String$2(name), /^Symbol\(([^)]*)\)/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn$8(value, 'name') || (CONFIGURABLE_FUNCTION_NAME$1 && value.name !== name)) { + if (DESCRIPTORS$6) defineProperty$6(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn$8(options, 'arity') && value.length !== options.arity) { + defineProperty$6(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn$8(options, 'constructor') && options.constructor) { + if (DESCRIPTORS$6) defineProperty$6(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn$8(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; + }; + + // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative + // eslint-disable-next-line no-extend-native -- required + Function.prototype.toString = makeBuiltIn$2(function toString() { + return isCallable$e(this) && getInternalState$2(this).source || inspectSource$2(this); + }, 'toString'); + + var makeBuiltInExports = makeBuiltIn$3.exports; + + var makeBuiltIn$1 = makeBuiltInExports; + var defineProperty$5 = objectDefineProperty; + + var defineBuiltInAccessor$2 = function (target, name, descriptor) { + if (descriptor.get) makeBuiltIn$1(descriptor.get, name, { getter: true }); + if (descriptor.set) makeBuiltIn$1(descriptor.set, name, { setter: true }); + return defineProperty$5.f(target, name, descriptor); + }; + + var DESCRIPTORS$5 = descriptors; + var FUNCTION_NAME_EXISTS = functionName.EXISTS; + var uncurryThis$g = functionUncurryThis; + var defineBuiltInAccessor$1 = defineBuiltInAccessor$2; + + var FunctionPrototype$1 = Function.prototype; + var functionToString = uncurryThis$g(FunctionPrototype$1.toString); + var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/; + var regExpExec = uncurryThis$g(nameRE.exec); + var NAME = 'name'; + + // Function instances `.name` property + // https://tc39.es/ecma262/#sec-function-instances-name + if (DESCRIPTORS$5 && !FUNCTION_NAME_EXISTS) { + defineBuiltInAccessor$1(FunctionPrototype$1, NAME, { + configurable: true, + get: function () { + try { + return regExpExec(nameRE, functionToString(this))[1]; + } catch (error) { + return ''; + } + } + }); + } + + var objectGetOwnPropertyDescriptor = {}; + + var objectPropertyIsEnumerable = {}; + + var $propertyIsEnumerable = {}.propertyIsEnumerable; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getOwnPropertyDescriptor$2 = Object.getOwnPropertyDescriptor; + + // Nashorn ~ JDK8 bug + var NASHORN_BUG = getOwnPropertyDescriptor$2 && !$propertyIsEnumerable.call({ 1: 2 }, 1); + + // `Object.prototype.propertyIsEnumerable` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable + objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor$2(this, V); + return !!descriptor && descriptor.enumerable; + } : $propertyIsEnumerable; + + var uncurryThis$f = functionUncurryThis; + + var toString$4 = uncurryThis$f({}.toString); + var stringSlice$1 = uncurryThis$f(''.slice); + + var classofRaw$2 = function (it) { + return stringSlice$1(toString$4(it), 8, -1); + }; + + var uncurryThis$e = functionUncurryThis; + var fails$c = fails$j; + var classof$9 = classofRaw$2; + + var $Object$2 = Object; + var split = uncurryThis$e(''.split); + + // fallback for non-array-like ES3 and non-enumerable old V8 strings + var indexedObject = fails$c(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object$2('z').propertyIsEnumerable(0); + }) ? function (it) { + return classof$9(it) == 'String' ? split(it, '') : $Object$2(it); + } : $Object$2; + + // toObject with fallback for non-array-like ES3 strings + var IndexedObject$3 = indexedObject; + var requireObjectCoercible$1 = requireObjectCoercible$3; + + var toIndexedObject$7 = function (it) { + return IndexedObject$3(requireObjectCoercible$1(it)); + }; + + var DESCRIPTORS$4 = descriptors; + var call$a = functionCall; + var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable; + var createPropertyDescriptor$2 = createPropertyDescriptor$4; + var toIndexedObject$6 = toIndexedObject$7; + var toPropertyKey$1 = toPropertyKey$3; + var hasOwn$7 = hasOwnProperty_1; + var IE8_DOM_DEFINE = ie8DomDefine; + + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor + objectGetOwnPropertyDescriptor.f = DESCRIPTORS$4 ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject$6(O); + P = toPropertyKey$1(P); + if (IE8_DOM_DEFINE) try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (hasOwn$7(O, P)) return createPropertyDescriptor$2(!call$a(propertyIsEnumerableModule$1.f, O, P), O[P]); + }; + + var isCallable$d = isCallable$m; + var definePropertyModule$3 = objectDefineProperty; + var makeBuiltIn = makeBuiltInExports; + var defineGlobalProperty$1 = defineGlobalProperty$3; + + var defineBuiltIn$8 = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable$d(value)) makeBuiltIn(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty$1(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule$3.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; + }; + + var objectGetOwnPropertyNames = {}; + + var ceil = Math.ceil; + var floor = Math.floor; + + // `Math.trunc` method + // https://tc39.es/ecma262/#sec-math.trunc + // eslint-disable-next-line es/no-math-trunc -- safe + var mathTrunc = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor : ceil)(n); + }; + + var trunc = mathTrunc; + + // `ToIntegerOrInfinity` abstract operation + // https://tc39.es/ecma262/#sec-tointegerorinfinity + var toIntegerOrInfinity$3 = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); + }; + + var toIntegerOrInfinity$2 = toIntegerOrInfinity$3; + + var max$1 = Math.max; + var min$1 = Math.min; + + // Helper for a popular repeating case of the spec: + // Let integer be ? ToInteger(index). + // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). + var toAbsoluteIndex$2 = function (index, length) { + var integer = toIntegerOrInfinity$2(index); + return integer < 0 ? max$1(integer + length, 0) : min$1(integer, length); + }; + + var toIntegerOrInfinity$1 = toIntegerOrInfinity$3; + + var min = Math.min; + + // `ToLength` abstract operation + // https://tc39.es/ecma262/#sec-tolength + var toLength$1 = function (argument) { + return argument > 0 ? min(toIntegerOrInfinity$1(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 + }; + + var toLength = toLength$1; + + // `LengthOfArrayLike` abstract operation + // https://tc39.es/ecma262/#sec-lengthofarraylike + var lengthOfArrayLike$4 = function (obj) { + return toLength(obj.length); + }; + + var toIndexedObject$5 = toIndexedObject$7; + var toAbsoluteIndex$1 = toAbsoluteIndex$2; + var lengthOfArrayLike$3 = lengthOfArrayLike$4; + + // `Array.prototype.{ indexOf, includes }` methods implementation + var createMethod$2 = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject$5($this); + var length = lengthOfArrayLike$3(O); + var index = toAbsoluteIndex$1(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; + }; + + var arrayIncludes = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod$2(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod$2(false) + }; + + var uncurryThis$d = functionUncurryThis; + var hasOwn$6 = hasOwnProperty_1; + var toIndexedObject$4 = toIndexedObject$7; + var indexOf = arrayIncludes.indexOf; + var hiddenKeys$3 = hiddenKeys$5; + + var push$1 = uncurryThis$d([].push); + + var objectKeysInternal = function (object, names) { + var O = toIndexedObject$4(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn$6(hiddenKeys$3, key) && hasOwn$6(O, key) && push$1(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn$6(O, key = names[i++])) { + ~indexOf(result, key) || push$1(result, key); + } + return result; + }; + + // IE8- don't enum bug keys + var enumBugKeys$3 = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' + ]; + + var internalObjectKeys$1 = objectKeysInternal; + var enumBugKeys$2 = enumBugKeys$3; + + var hiddenKeys$2 = enumBugKeys$2.concat('length', 'prototype'); + + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + // eslint-disable-next-line es/no-object-getownpropertynames -- safe + objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys$1(O, hiddenKeys$2); + }; + + var objectGetOwnPropertySymbols = {}; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe + objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; + + var getBuiltIn$5 = getBuiltIn$7; + var uncurryThis$c = functionUncurryThis; + var getOwnPropertyNamesModule$1 = objectGetOwnPropertyNames; + var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols; + var anObject$9 = anObject$b; + + var concat$1 = uncurryThis$c([].concat); + + // all object keys, includes non-enumerable and symbols + var ownKeys$1 = getBuiltIn$5('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule$1.f(anObject$9(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f; + return getOwnPropertySymbols ? concat$1(keys, getOwnPropertySymbols(it)) : keys; + }; + + var hasOwn$5 = hasOwnProperty_1; + var ownKeys = ownKeys$1; + var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor; + var definePropertyModule$2 = objectDefineProperty; + + var copyConstructorProperties$1 = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule$2.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn$5(target, key) && !(exceptions && hasOwn$5(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } + }; + + var fails$b = fails$j; + var isCallable$c = isCallable$m; + + var replacement = /#|\.prototype\./; + + var isForced$3 = function (feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true + : value == NATIVE ? false + : isCallable$c(detection) ? fails$b(detection) + : !!detection; + }; + + var normalize = isForced$3.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); + }; + + var data = isForced$3.data = {}; + var NATIVE = isForced$3.NATIVE = 'N'; + var POLYFILL = isForced$3.POLYFILL = 'P'; + + var isForced_1 = isForced$3; + + var global$9 = global$j; + var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f; + var createNonEnumerableProperty$3 = createNonEnumerableProperty$5; + var defineBuiltIn$7 = defineBuiltIn$8; + var defineGlobalProperty = defineGlobalProperty$3; + var copyConstructorProperties = copyConstructorProperties$1; + var isForced$2 = isForced_1; + + /* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key + */ + var _export = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global$9; + } else if (STATIC) { + target = global$9[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = (global$9[TARGET] || {}).prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor$1(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced$2(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty$3(sourceProperty, 'sham', true); + } + defineBuiltIn$7(target, key, sourceProperty, options); + } + }; + + var internalObjectKeys = objectKeysInternal; + var enumBugKeys$1 = enumBugKeys$3; + + // `Object.keys` method + // https://tc39.es/ecma262/#sec-object.keys + // eslint-disable-next-line es/no-object-keys -- safe + var objectKeys$2 = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys$1); + }; + + var DESCRIPTORS$3 = descriptors; + var uncurryThis$b = functionUncurryThis; + var call$9 = functionCall; + var fails$a = fails$j; + var objectKeys$1 = objectKeys$2; + var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols; + var propertyIsEnumerableModule = objectPropertyIsEnumerable; + var toObject$3 = toObject$5; + var IndexedObject$2 = indexedObject; + + // eslint-disable-next-line es/no-object-assign -- safe + var $assign = Object.assign; + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + var defineProperty$4 = Object.defineProperty; + var concat = uncurryThis$b([].concat); + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + var objectAssign = !$assign || fails$a(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS$3 && $assign({ b: 1 }, $assign(defineProperty$4({}, 'a', { + enumerable: true, + get: function () { + defineProperty$4(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol(); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] != 7 || objectKeys$1($assign({}, B)).join('') != alphabet; + }) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject$3(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject$2(arguments[index++]); + var keys = getOwnPropertySymbols ? concat(objectKeys$1(S), getOwnPropertySymbols(S)) : objectKeys$1(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS$3 || call$9(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; + } : $assign; + + var $$b = _export; + var assign = objectAssign; + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + // eslint-disable-next-line es/no-object-assign -- required for testing + $$b({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign + }); + + var wellKnownSymbol$d = wellKnownSymbol$f; + + var TO_STRING_TAG$3 = wellKnownSymbol$d('toStringTag'); + var test = {}; + + test[TO_STRING_TAG$3] = 'z'; + + var toStringTagSupport = String(test) === '[object z]'; + + var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport; + var isCallable$b = isCallable$m; + var classofRaw$1 = classofRaw$2; + var wellKnownSymbol$c = wellKnownSymbol$f; + + var TO_STRING_TAG$2 = wellKnownSymbol$c('toStringTag'); + var $Object$1 = Object; + + // ES3 wrong here + var CORRECT_ARGUMENTS = classofRaw$1(function () { return arguments; }()) == 'Arguments'; + + // fallback for IE11 Script Access Denied error + var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } + }; + + // getting tag from ES6+ `Object.prototype.toString` + var classof$8 = TO_STRING_TAG_SUPPORT$2 ? classofRaw$1 : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object$1(it), TO_STRING_TAG$2)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw$1(O) + // ES3 arguments fallback + : (result = classofRaw$1(O)) == 'Object' && isCallable$b(O.callee) ? 'Arguments' : result; + }; + + var TO_STRING_TAG_SUPPORT$1 = toStringTagSupport; + var classof$7 = classof$8; + + // `Object.prototype.toString` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.tostring + var objectToString = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() { + return '[object ' + classof$7(this) + ']'; + }; + + var TO_STRING_TAG_SUPPORT = toStringTagSupport; + var defineBuiltIn$6 = defineBuiltIn$8; + var toString$3 = objectToString; + + // `Object.prototype.toString` method + // https://tc39.es/ecma262/#sec-object.prototype.tostring + if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn$6(Object.prototype, 'toString', toString$3, { unsafe: true }); + } + + var classof$6 = classofRaw$2; + + var engineIsNode = typeof process != 'undefined' && classof$6(process) == 'process'; + + var uncurryThis$a = functionUncurryThis; + var aCallable$6 = aCallable$8; + + var functionUncurryThisAccessor = function (object, key, method) { + try { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return uncurryThis$a(aCallable$6(Object.getOwnPropertyDescriptor(object, key)[method])); + } catch (error) { /* empty */ } + }; + + var isCallable$a = isCallable$m; + + var $String$1 = String; + var $TypeError$6 = TypeError; + + var aPossiblePrototype$1 = function (argument) { + if (typeof argument == 'object' || isCallable$a(argument)) return argument; + throw $TypeError$6("Can't set " + $String$1(argument) + ' as a prototype'); + }; + + /* eslint-disable no-proto -- safe */ + + var uncurryThisAccessor = functionUncurryThisAccessor; + var anObject$8 = anObject$b; + var aPossiblePrototype = aPossiblePrototype$1; + + // `Object.setPrototypeOf` method + // https://tc39.es/ecma262/#sec-object.setprototypeof + // Works with __proto__ only. Old v8 can't work with null proto objects. + // eslint-disable-next-line es/no-object-setprototypeof -- safe + var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set'); + setter(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + anObject$8(O); + aPossiblePrototype(proto); + if (CORRECT_SETTER) setter(O, proto); + else O.__proto__ = proto; + return O; + }; + }() : undefined); + + var defineProperty$3 = objectDefineProperty.f; + var hasOwn$4 = hasOwnProperty_1; + var wellKnownSymbol$b = wellKnownSymbol$f; + + var TO_STRING_TAG$1 = wellKnownSymbol$b('toStringTag'); + + var setToStringTag$4 = function (target, TAG, STATIC) { + if (target && !STATIC) target = target.prototype; + if (target && !hasOwn$4(target, TO_STRING_TAG$1)) { + defineProperty$3(target, TO_STRING_TAG$1, { configurable: true, value: TAG }); + } + }; + + var getBuiltIn$4 = getBuiltIn$7; + var defineBuiltInAccessor = defineBuiltInAccessor$2; + var wellKnownSymbol$a = wellKnownSymbol$f; + var DESCRIPTORS$2 = descriptors; + + var SPECIES$3 = wellKnownSymbol$a('species'); + + var setSpecies$1 = function (CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn$4(CONSTRUCTOR_NAME); + + if (DESCRIPTORS$2 && Constructor && !Constructor[SPECIES$3]) { + defineBuiltInAccessor(Constructor, SPECIES$3, { + configurable: true, + get: function () { return this; } + }); + } + }; + + var isPrototypeOf$1 = objectIsPrototypeOf; + + var $TypeError$5 = TypeError; + + var anInstance$3 = function (it, Prototype) { + if (isPrototypeOf$1(Prototype, it)) return it; + throw $TypeError$5('Incorrect invocation'); + }; + + var uncurryThis$9 = functionUncurryThis; + var fails$9 = fails$j; + var isCallable$9 = isCallable$m; + var classof$5 = classof$8; + var getBuiltIn$3 = getBuiltIn$7; + var inspectSource$1 = inspectSource$3; + + var noop = function () { /* empty */ }; + var empty = []; + var construct = getBuiltIn$3('Reflect', 'construct'); + var constructorRegExp = /^\s*(?:class|function)\b/; + var exec = uncurryThis$9(constructorRegExp.exec); + var INCORRECT_TO_STRING = !constructorRegExp.exec(noop); + + var isConstructorModern = function isConstructor(argument) { + if (!isCallable$9(argument)) return false; + try { + construct(noop, empty, argument); + return true; + } catch (error) { + return false; + } + }; + + var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable$9(argument)) return false; + switch (classof$5(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource$1(argument)); + } catch (error) { + return true; + } + }; + + isConstructorLegacy.sham = true; + + // `IsConstructor` abstract operation + // https://tc39.es/ecma262/#sec-isconstructor + var isConstructor$2 = !construct || fails$9(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; + }) ? isConstructorLegacy : isConstructorModern; + + var isConstructor$1 = isConstructor$2; + var tryToString$2 = tryToString$4; + + var $TypeError$4 = TypeError; + + // `Assert: IsConstructor(argument) is true` + var aConstructor$1 = function (argument) { + if (isConstructor$1(argument)) return argument; + throw $TypeError$4(tryToString$2(argument) + ' is not a constructor'); + }; + + var anObject$7 = anObject$b; + var aConstructor = aConstructor$1; + var isNullOrUndefined$3 = isNullOrUndefined$6; + var wellKnownSymbol$9 = wellKnownSymbol$f; + + var SPECIES$2 = wellKnownSymbol$9('species'); + + // `SpeciesConstructor` abstract operation + // https://tc39.es/ecma262/#sec-speciesconstructor + var speciesConstructor$1 = function (O, defaultConstructor) { + var C = anObject$7(O).constructor; + var S; + return C === undefined || isNullOrUndefined$3(S = anObject$7(C)[SPECIES$2]) ? defaultConstructor : aConstructor(S); + }; + + var NATIVE_BIND$1 = functionBindNative; + + var FunctionPrototype = Function.prototype; + var apply$1 = FunctionPrototype.apply; + var call$8 = FunctionPrototype.call; + + // eslint-disable-next-line es/no-reflect -- safe + var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND$1 ? call$8.bind(apply$1) : function () { + return call$8.apply(apply$1, arguments); + }); + + var classofRaw = classofRaw$2; + var uncurryThis$8 = functionUncurryThis; + + var functionUncurryThisClause = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis$8(fn); + }; + + var uncurryThis$7 = functionUncurryThisClause; + var aCallable$5 = aCallable$8; + var NATIVE_BIND = functionBindNative; + + var bind$5 = uncurryThis$7(uncurryThis$7.bind); + + // optional / simple context binding + var functionBindContext = function (fn, that) { + aCallable$5(fn); + return that === undefined ? fn : NATIVE_BIND ? bind$5(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; + }; + + var getBuiltIn$2 = getBuiltIn$7; + + var html$2 = getBuiltIn$2('document', 'documentElement'); + + var uncurryThis$6 = functionUncurryThis; + + var arraySlice$2 = uncurryThis$6([].slice); + + var $TypeError$3 = TypeError; + + var validateArgumentsLength$1 = function (passed, required) { + if (passed < required) throw $TypeError$3('Not enough arguments'); + return passed; + }; + + var userAgent$2 = engineUserAgent; + + // eslint-disable-next-line redos/no-vulnerable -- safe + var engineIsIos = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent$2); + + var global$8 = global$j; + var apply = functionApply; + var bind$4 = functionBindContext; + var isCallable$8 = isCallable$m; + var hasOwn$3 = hasOwnProperty_1; + var fails$8 = fails$j; + var html$1 = html$2; + var arraySlice$1 = arraySlice$2; + var createElement = documentCreateElement$2; + var validateArgumentsLength = validateArgumentsLength$1; + var IS_IOS$1 = engineIsIos; + var IS_NODE$3 = engineIsNode; + + var set = global$8.setImmediate; + var clear = global$8.clearImmediate; + var process$3 = global$8.process; + var Dispatch = global$8.Dispatch; + var Function$1 = global$8.Function; + var MessageChannel = global$8.MessageChannel; + var String$1 = global$8.String; + var counter = 0; + var queue$2 = {}; + var ONREADYSTATECHANGE = 'onreadystatechange'; + var $location, defer, channel, port; + + fails$8(function () { + // Deno throws a ReferenceError on `location` access without `--location` flag + $location = global$8.location; + }); + + var run = function (id) { + if (hasOwn$3(queue$2, id)) { + var fn = queue$2[id]; + delete queue$2[id]; + fn(); + } + }; + + var runner = function (id) { + return function () { + run(id); + }; + }; + + var eventListener = function (event) { + run(event.data); + }; + + var globalPostMessageDefer = function (id) { + // old engines have not location.origin + global$8.postMessage(String$1(id), $location.protocol + '//' + $location.host); + }; + + // Node.js 0.9+ & IE10+ has setImmediate, otherwise: + if (!set || !clear) { + set = function setImmediate(handler) { + validateArgumentsLength(arguments.length, 1); + var fn = isCallable$8(handler) ? handler : Function$1(handler); + var args = arraySlice$1(arguments, 1); + queue$2[++counter] = function () { + apply(fn, undefined, args); + }; + defer(counter); + return counter; + }; + clear = function clearImmediate(id) { + delete queue$2[id]; + }; + // Node.js 0.8- + if (IS_NODE$3) { + defer = function (id) { + process$3.nextTick(runner(id)); + }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(runner(id)); + }; + // Browsers with MessageChannel, includes WebWorkers + // except iOS - https://github.com/zloirock/core-js/issues/624 + } else if (MessageChannel && !IS_IOS$1) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = eventListener; + defer = bind$4(port.postMessage, port); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if ( + global$8.addEventListener && + isCallable$8(global$8.postMessage) && + !global$8.importScripts && + $location && $location.protocol !== 'file:' && + !fails$8(globalPostMessageDefer) + ) { + defer = globalPostMessageDefer; + global$8.addEventListener('message', eventListener, false); + // IE8- + } else if (ONREADYSTATECHANGE in createElement('script')) { + defer = function (id) { + html$1.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { + html$1.removeChild(this); + run(id); + }; + }; + // Rest old browsers + } else { + defer = function (id) { + setTimeout(runner(id), 0); + }; + } + } + + var task$1 = { + set: set, + clear: clear + }; + + var Queue$2 = function () { + this.head = null; + this.tail = null; + }; + + Queue$2.prototype = { + add: function (item) { + var entry = { item: item, next: null }; + var tail = this.tail; + if (tail) tail.next = entry; + else this.head = entry; + this.tail = entry; + }, + get: function () { + var entry = this.head; + if (entry) { + var next = this.head = entry.next; + if (next === null) this.tail = null; + return entry.item; + } + } + }; + + var queue$1 = Queue$2; + + var userAgent$1 = engineUserAgent; + + var engineIsIosPebble = /ipad|iphone|ipod/i.test(userAgent$1) && typeof Pebble != 'undefined'; + + var userAgent = engineUserAgent; + + var engineIsWebosWebkit = /web0s(?!.*chrome)/i.test(userAgent); + + var global$7 = global$j; + var bind$3 = functionBindContext; + var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; + var macrotask = task$1.set; + var Queue$1 = queue$1; + var IS_IOS = engineIsIos; + var IS_IOS_PEBBLE = engineIsIosPebble; + var IS_WEBOS_WEBKIT = engineIsWebosWebkit; + var IS_NODE$2 = engineIsNode; + + var MutationObserver = global$7.MutationObserver || global$7.WebKitMutationObserver; + var document$2 = global$7.document; + var process$2 = global$7.process; + var Promise$1 = global$7.Promise; + // Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` + var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global$7, 'queueMicrotask'); + var microtask$1 = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; + var notify$1, toggle, node, promise, then; + + // modern engines have queueMicrotask method + if (!microtask$1) { + var queue = new Queue$1(); + + var flush = function () { + var parent, fn; + if (IS_NODE$2 && (parent = process$2.domain)) parent.exit(); + while (fn = queue.get()) try { + fn(); + } catch (error) { + if (queue.head) notify$1(); + throw error; + } + if (parent) parent.enter(); + }; + + // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 + // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 + if (!IS_IOS && !IS_NODE$2 && !IS_WEBOS_WEBKIT && MutationObserver && document$2) { + toggle = true; + node = document$2.createTextNode(''); + new MutationObserver(flush).observe(node, { characterData: true }); + notify$1 = function () { + node.data = toggle = !toggle; + }; + // environments with maybe non-completely correct, but existent Promise + } else if (!IS_IOS_PEBBLE && Promise$1 && Promise$1.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + promise = Promise$1.resolve(undefined); + // workaround of WebKit ~ iOS Safari 10.1 bug + promise.constructor = Promise$1; + then = bind$3(promise.then, promise); + notify$1 = function () { + then(flush); + }; + // Node.js without promises + } else if (IS_NODE$2) { + notify$1 = function () { + process$2.nextTick(flush); + }; + // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessage + // - onreadystatechange + // - setTimeout + } else { + // `webpack` dev server bug on IE global methods - use bind(fn, global) + macrotask = bind$3(macrotask, global$7); + notify$1 = function () { + macrotask(flush); + }; + } + + microtask$1 = function (fn) { + if (!queue.head) notify$1(); + queue.add(fn); + }; + } + + var microtask_1 = microtask$1; + + var hostReportErrors$1 = function (a, b) { + try { + // eslint-disable-next-line no-console -- safe + arguments.length == 1 ? console.error(a) : console.error(a, b); + } catch (error) { /* empty */ } + }; + + var perform$3 = function (exec) { + try { + return { error: false, value: exec() }; + } catch (error) { + return { error: true, value: error }; + } + }; + + var global$6 = global$j; + + var promiseNativeConstructor = global$6.Promise; + + /* global Deno -- Deno case */ + + var engineIsDeno = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; + + var IS_DENO$1 = engineIsDeno; + var IS_NODE$1 = engineIsNode; + + var engineIsBrowser = !IS_DENO$1 && !IS_NODE$1 + && typeof window == 'object' + && typeof document == 'object'; + + var global$5 = global$j; + var NativePromiseConstructor$3 = promiseNativeConstructor; + var isCallable$7 = isCallable$m; + var isForced$1 = isForced_1; + var inspectSource = inspectSource$3; + var wellKnownSymbol$8 = wellKnownSymbol$f; + var IS_BROWSER = engineIsBrowser; + var IS_DENO = engineIsDeno; + var V8_VERSION = engineV8Version; + + NativePromiseConstructor$3 && NativePromiseConstructor$3.prototype; + var SPECIES$1 = wellKnownSymbol$8('species'); + var SUBCLASSING = false; + var NATIVE_PROMISE_REJECTION_EVENT$1 = isCallable$7(global$5.PromiseRejectionEvent); + + var FORCED_PROMISE_CONSTRUCTOR$5 = isForced$1('Promise', function () { + var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor$3); + var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor$3); + // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // We can't detect it synchronously, so just check versions + if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true; + // We can't use @@species feature detection in V8 since it causes + // deoptimization and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) { + // Detect correctness of subclassing with @@species support + var promise = new NativePromiseConstructor$3(function (resolve) { resolve(1); }); + var FakePromise = function (exec) { + exec(function () { /* empty */ }, function () { /* empty */ }); + }; + var constructor = promise.constructor = {}; + constructor[SPECIES$1] = FakePromise; + SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise; + if (!SUBCLASSING) return true; + // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test + } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT$1; + }); + + var promiseConstructorDetection = { + CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR$5, + REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT$1, + SUBCLASSING: SUBCLASSING + }; + + var newPromiseCapability$2 = {}; + + var aCallable$4 = aCallable$8; + + var $TypeError$2 = TypeError; + + var PromiseCapability = function (C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw $TypeError$2('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aCallable$4(resolve); + this.reject = aCallable$4(reject); + }; + + // `NewPromiseCapability` abstract operation + // https://tc39.es/ecma262/#sec-newpromisecapability + newPromiseCapability$2.f = function (C) { + return new PromiseCapability(C); + }; + + var $$a = _export; + var IS_NODE = engineIsNode; + var global$4 = global$j; + var call$7 = functionCall; + var defineBuiltIn$5 = defineBuiltIn$8; + var setPrototypeOf$2 = objectSetPrototypeOf; + var setToStringTag$3 = setToStringTag$4; + var setSpecies = setSpecies$1; + var aCallable$3 = aCallable$8; + var isCallable$6 = isCallable$m; + var isObject$8 = isObject$e; + var anInstance$2 = anInstance$3; + var speciesConstructor = speciesConstructor$1; + var task = task$1.set; + var microtask = microtask_1; + var hostReportErrors = hostReportErrors$1; + var perform$2 = perform$3; + var Queue = queue$1; + var InternalStateModule$3 = internalState; + var NativePromiseConstructor$2 = promiseNativeConstructor; + var PromiseConstructorDetection = promiseConstructorDetection; + var newPromiseCapabilityModule$3 = newPromiseCapability$2; + + var PROMISE = 'Promise'; + var FORCED_PROMISE_CONSTRUCTOR$4 = PromiseConstructorDetection.CONSTRUCTOR; + var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT; + var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING; + var getInternalPromiseState = InternalStateModule$3.getterFor(PROMISE); + var setInternalState$3 = InternalStateModule$3.set; + var NativePromisePrototype$1 = NativePromiseConstructor$2 && NativePromiseConstructor$2.prototype; + var PromiseConstructor = NativePromiseConstructor$2; + var PromisePrototype = NativePromisePrototype$1; + var TypeError$1 = global$4.TypeError; + var document$1 = global$4.document; + var process$1 = global$4.process; + var newPromiseCapability$1 = newPromiseCapabilityModule$3.f; + var newGenericPromiseCapability = newPromiseCapability$1; + + var DISPATCH_EVENT = !!(document$1 && document$1.createEvent && global$4.dispatchEvent); + var UNHANDLED_REJECTION = 'unhandledrejection'; + var REJECTION_HANDLED = 'rejectionhandled'; + var PENDING = 0; + var FULFILLED = 1; + var REJECTED = 2; + var HANDLED = 1; + var UNHANDLED = 2; + + var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; + + // helpers + var isThenable = function (it) { + var then; + return isObject$8(it) && isCallable$6(then = it.then) ? then : false; + }; + + var callReaction = function (reaction, state) { + var value = state.value; + var ok = state.state == FULFILLED; + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + try { + if (handler) { + if (!ok) { + if (state.rejection === UNHANDLED) onHandleUnhandled(state); + state.rejection = HANDLED; + } + if (handler === true) result = value; + else { + if (domain) domain.enter(); + result = handler(value); // can throw + if (domain) { + domain.exit(); + exited = true; + } + } + if (result === reaction.promise) { + reject(TypeError$1('Promise-chain cycle')); + } else if (then = isThenable(result)) { + call$7(then, result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (error) { + if (domain && !exited) domain.exit(); + reject(error); + } + }; + + var notify = function (state, isReject) { + if (state.notified) return; + state.notified = true; + microtask(function () { + var reactions = state.reactions; + var reaction; + while (reaction = reactions.get()) { + callReaction(reaction, state); + } + state.notified = false; + if (isReject && !state.rejection) onUnhandled(state); + }); + }; + + var dispatchEvent = function (name, promise, reason) { + var event, handler; + if (DISPATCH_EVENT) { + event = document$1.createEvent('Event'); + event.promise = promise; + event.reason = reason; + event.initEvent(name, false, true); + global$4.dispatchEvent(event); + } else event = { promise: promise, reason: reason }; + if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global$4['on' + name])) handler(event); + else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); + }; + + var onUnhandled = function (state) { + call$7(task, global$4, function () { + var promise = state.facade; + var value = state.value; + var IS_UNHANDLED = isUnhandled(state); + var result; + if (IS_UNHANDLED) { + result = perform$2(function () { + if (IS_NODE) { + process$1.emit('unhandledRejection', value, promise); + } else dispatchEvent(UNHANDLED_REJECTION, promise, value); + }); + // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; + if (result.error) throw result.value; + } + }); + }; + + var isUnhandled = function (state) { + return state.rejection !== HANDLED && !state.parent; + }; + + var onHandleUnhandled = function (state) { + call$7(task, global$4, function () { + var promise = state.facade; + if (IS_NODE) { + process$1.emit('rejectionHandled', promise); + } else dispatchEvent(REJECTION_HANDLED, promise, state.value); + }); + }; + + var bind$2 = function (fn, state, unwrap) { + return function (value) { + fn(state, value, unwrap); + }; + }; + + var internalReject = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + state.value = value; + state.state = REJECTED; + notify(state, true); + }; + + var internalResolve = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + try { + if (state.facade === value) throw TypeError$1("Promise can't be resolved itself"); + var then = isThenable(value); + if (then) { + microtask(function () { + var wrapper = { done: false }; + try { + call$7(then, value, + bind$2(internalResolve, wrapper, state), + bind$2(internalReject, wrapper, state) + ); + } catch (error) { + internalReject(wrapper, error, state); + } + }); + } else { + state.value = value; + state.state = FULFILLED; + notify(state, false); + } + } catch (error) { + internalReject({ done: false }, error, state); + } + }; + + // constructor polyfill + if (FORCED_PROMISE_CONSTRUCTOR$4) { + // 25.4.3.1 Promise(executor) + PromiseConstructor = function Promise(executor) { + anInstance$2(this, PromisePrototype); + aCallable$3(executor); + call$7(Internal, this); + var state = getInternalPromiseState(this); + try { + executor(bind$2(internalResolve, state), bind$2(internalReject, state)); + } catch (error) { + internalReject(state, error); + } + }; + + PromisePrototype = PromiseConstructor.prototype; + + // eslint-disable-next-line no-unused-vars -- required for `.length` + Internal = function Promise(executor) { + setInternalState$3(this, { + type: PROMISE, + done: false, + notified: false, + parent: false, + reactions: new Queue(), + rejection: false, + state: PENDING, + value: undefined + }); + }; + + // `Promise.prototype.then` method + // https://tc39.es/ecma262/#sec-promise.prototype.then + Internal.prototype = defineBuiltIn$5(PromisePrototype, 'then', function then(onFulfilled, onRejected) { + var state = getInternalPromiseState(this); + var reaction = newPromiseCapability$1(speciesConstructor(this, PromiseConstructor)); + state.parent = true; + reaction.ok = isCallable$6(onFulfilled) ? onFulfilled : true; + reaction.fail = isCallable$6(onRejected) && onRejected; + reaction.domain = IS_NODE ? process$1.domain : undefined; + if (state.state == PENDING) state.reactions.add(reaction); + else microtask(function () { + callReaction(reaction, state); + }); + return reaction.promise; + }); + + OwnPromiseCapability = function () { + var promise = new Internal(); + var state = getInternalPromiseState(promise); + this.promise = promise; + this.resolve = bind$2(internalResolve, state); + this.reject = bind$2(internalReject, state); + }; + + newPromiseCapabilityModule$3.f = newPromiseCapability$1 = function (C) { + return C === PromiseConstructor || C === PromiseWrapper + ? new OwnPromiseCapability(C) + : newGenericPromiseCapability(C); + }; + + if (isCallable$6(NativePromiseConstructor$2) && NativePromisePrototype$1 !== Object.prototype) { + nativeThen = NativePromisePrototype$1.then; + + if (!NATIVE_PROMISE_SUBCLASSING) { + // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs + defineBuiltIn$5(NativePromisePrototype$1, 'then', function then(onFulfilled, onRejected) { + var that = this; + return new PromiseConstructor(function (resolve, reject) { + call$7(nativeThen, that, resolve, reject); + }).then(onFulfilled, onRejected); + // https://github.com/zloirock/core-js/issues/640 + }, { unsafe: true }); + } + + // make `.constructor === Promise` work for native promise-based APIs + try { + delete NativePromisePrototype$1.constructor; + } catch (error) { /* empty */ } + + // make `instanceof Promise` work for native promise-based APIs + if (setPrototypeOf$2) { + setPrototypeOf$2(NativePromisePrototype$1, PromisePrototype); + } + } + } + + $$a({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR$4 }, { + Promise: PromiseConstructor + }); + + setToStringTag$3(PromiseConstructor, PROMISE, false); + setSpecies(PROMISE); + + var iterators = {}; + + var wellKnownSymbol$7 = wellKnownSymbol$f; + var Iterators$4 = iterators; + + var ITERATOR$5 = wellKnownSymbol$7('iterator'); + var ArrayPrototype$1 = Array.prototype; + + // check on default Array iterator + var isArrayIteratorMethod$1 = function (it) { + return it !== undefined && (Iterators$4.Array === it || ArrayPrototype$1[ITERATOR$5] === it); + }; + + var classof$4 = classof$8; + var getMethod$1 = getMethod$3; + var isNullOrUndefined$2 = isNullOrUndefined$6; + var Iterators$3 = iterators; + var wellKnownSymbol$6 = wellKnownSymbol$f; + + var ITERATOR$4 = wellKnownSymbol$6('iterator'); + + var getIteratorMethod$2 = function (it) { + if (!isNullOrUndefined$2(it)) return getMethod$1(it, ITERATOR$4) + || getMethod$1(it, '@@iterator') + || Iterators$3[classof$4(it)]; + }; + + var call$6 = functionCall; + var aCallable$2 = aCallable$8; + var anObject$6 = anObject$b; + var tryToString$1 = tryToString$4; + var getIteratorMethod$1 = getIteratorMethod$2; + + var $TypeError$1 = TypeError; + + var getIterator$1 = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod$1(argument) : usingIterator; + if (aCallable$2(iteratorMethod)) return anObject$6(call$6(iteratorMethod, argument)); + throw $TypeError$1(tryToString$1(argument) + ' is not iterable'); + }; + + var call$5 = functionCall; + var anObject$5 = anObject$b; + var getMethod = getMethod$3; + + var iteratorClose$1 = function (iterator, kind, value) { + var innerResult, innerError; + anObject$5(iterator); + try { + innerResult = getMethod(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') throw value; + return value; + } + innerResult = call$5(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === 'throw') throw value; + if (innerError) throw innerResult; + anObject$5(innerResult); + return value; + }; + + var bind$1 = functionBindContext; + var call$4 = functionCall; + var anObject$4 = anObject$b; + var tryToString = tryToString$4; + var isArrayIteratorMethod = isArrayIteratorMethod$1; + var lengthOfArrayLike$2 = lengthOfArrayLike$4; + var isPrototypeOf = objectIsPrototypeOf; + var getIterator = getIterator$1; + var getIteratorMethod = getIteratorMethod$2; + var iteratorClose = iteratorClose$1; + + var $TypeError = TypeError; + + var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; + }; + + var ResultPrototype = Result.prototype; + + var iterate$4 = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_RECORD = !!(options && options.IS_RECORD); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind$1(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose(iterator, 'normal', condition); + return new Result(true, condition); + }; + + var callFn = function (value) { + if (AS_ENTRIES) { + anObject$4(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; + + if (IS_RECORD) { + iterator = iterable.iterator; + } else if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod(iterable); + if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = lengthOfArrayLike$2(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + } + iterator = getIterator(iterable, iterFn); + } + + next = IS_RECORD ? iterable.next : iterator.next; + while (!(step = call$4(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } + if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + }; + + var wellKnownSymbol$5 = wellKnownSymbol$f; + + var ITERATOR$3 = wellKnownSymbol$5('iterator'); + var SAFE_CLOSING = false; + + try { + var called = 0; + var iteratorWithReturn = { + next: function () { + return { done: !!called++ }; + }, + 'return': function () { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR$3] = function () { + return this; + }; + // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing + Array.from(iteratorWithReturn, function () { throw 2; }); + } catch (error) { /* empty */ } + + var checkCorrectnessOfIteration$2 = function (exec, SKIP_CLOSING) { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR$3] = function () { + return { + next: function () { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { /* empty */ } + return ITERATION_SUPPORT; + }; + + var NativePromiseConstructor$1 = promiseNativeConstructor; + var checkCorrectnessOfIteration$1 = checkCorrectnessOfIteration$2; + var FORCED_PROMISE_CONSTRUCTOR$3 = promiseConstructorDetection.CONSTRUCTOR; + + var promiseStaticsIncorrectIteration = FORCED_PROMISE_CONSTRUCTOR$3 || !checkCorrectnessOfIteration$1(function (iterable) { + NativePromiseConstructor$1.all(iterable).then(undefined, function () { /* empty */ }); + }); + + var $$9 = _export; + var call$3 = functionCall; + var aCallable$1 = aCallable$8; + var newPromiseCapabilityModule$2 = newPromiseCapability$2; + var perform$1 = perform$3; + var iterate$3 = iterate$4; + var PROMISE_STATICS_INCORRECT_ITERATION$1 = promiseStaticsIncorrectIteration; + + // `Promise.all` method + // https://tc39.es/ecma262/#sec-promise.all + $$9({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$1 }, { + all: function all(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$2.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform$1(function () { + var $promiseResolve = aCallable$1(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate$3(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call$3($promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } + }); + + var $$8 = _export; + var FORCED_PROMISE_CONSTRUCTOR$2 = promiseConstructorDetection.CONSTRUCTOR; + var NativePromiseConstructor = promiseNativeConstructor; + var getBuiltIn$1 = getBuiltIn$7; + var isCallable$5 = isCallable$m; + var defineBuiltIn$4 = defineBuiltIn$8; + + var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + + // `Promise.prototype.catch` method + // https://tc39.es/ecma262/#sec-promise.prototype.catch + $$8({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR$2, real: true }, { + 'catch': function (onRejected) { + return this.then(undefined, onRejected); + } + }); + + // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` + if (isCallable$5(NativePromiseConstructor)) { + var method = getBuiltIn$1('Promise').prototype['catch']; + if (NativePromisePrototype['catch'] !== method) { + defineBuiltIn$4(NativePromisePrototype, 'catch', method, { unsafe: true }); + } + } + + var $$7 = _export; + var call$2 = functionCall; + var aCallable = aCallable$8; + var newPromiseCapabilityModule$1 = newPromiseCapability$2; + var perform = perform$3; + var iterate$2 = iterate$4; + var PROMISE_STATICS_INCORRECT_ITERATION = promiseStaticsIncorrectIteration; + + // `Promise.race` method + // https://tc39.es/ecma262/#sec-promise.race + $$7({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + race: function race(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$1.f(C); + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aCallable(C.resolve); + iterate$2(iterable, function (promise) { + call$2($promiseResolve, C, promise).then(capability.resolve, reject); + }); + }); + if (result.error) reject(result.value); + return capability.promise; + } + }); + + var $$6 = _export; + var call$1 = functionCall; + var newPromiseCapabilityModule = newPromiseCapability$2; + var FORCED_PROMISE_CONSTRUCTOR$1 = promiseConstructorDetection.CONSTRUCTOR; + + // `Promise.reject` method + // https://tc39.es/ecma262/#sec-promise.reject + $$6({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR$1 }, { + reject: function reject(r) { + var capability = newPromiseCapabilityModule.f(this); + call$1(capability.reject, undefined, r); + return capability.promise; + } + }); + + var anObject$3 = anObject$b; + var isObject$7 = isObject$e; + var newPromiseCapability = newPromiseCapability$2; + + var promiseResolve$1 = function (C, x) { + anObject$3(C); + if (isObject$7(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; + }; + + var $$5 = _export; + var getBuiltIn = getBuiltIn$7; + var FORCED_PROMISE_CONSTRUCTOR = promiseConstructorDetection.CONSTRUCTOR; + var promiseResolve = promiseResolve$1; + + getBuiltIn('Promise'); + + // `Promise.resolve` method + // https://tc39.es/ecma262/#sec-promise.resolve + $$5({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + resolve: function resolve(x) { + return promiseResolve(this, x); + } + }); + + var fails$7 = fails$j; + + var arrayMethodIsStrict$2 = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails$7(function () { + // eslint-disable-next-line no-useless-call -- required for testing + method.call(null, argument || function () { return 1; }, 1); + }); + }; + + var $$4 = _export; + var uncurryThis$5 = functionUncurryThis; + var IndexedObject$1 = indexedObject; + var toIndexedObject$3 = toIndexedObject$7; + var arrayMethodIsStrict$1 = arrayMethodIsStrict$2; + + var nativeJoin = uncurryThis$5([].join); + + var ES3_STRINGS = IndexedObject$1 != Object; + var FORCED = ES3_STRINGS || !arrayMethodIsStrict$1('join', ','); + + // `Array.prototype.join` method + // https://tc39.es/ecma262/#sec-array.prototype.join + $$4({ target: 'Array', proto: true, forced: FORCED }, { + join: function join(separator) { + return nativeJoin(toIndexedObject$3(this), separator === undefined ? ',' : separator); + } + }); + + var objectDefineProperties = {}; + + var DESCRIPTORS$1 = descriptors; + var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug; + var definePropertyModule$1 = objectDefineProperty; + var anObject$2 = anObject$b; + var toIndexedObject$2 = toIndexedObject$7; + var objectKeys = objectKeys$2; + + // `Object.defineProperties` method + // https://tc39.es/ecma262/#sec-object.defineproperties + // eslint-disable-next-line es/no-object-defineproperties -- safe + objectDefineProperties.f = DESCRIPTORS$1 && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject$2(O); + var props = toIndexedObject$2(Properties); + var keys = objectKeys(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule$1.f(O, key = keys[index++], props[key]); + return O; + }; + + /* global ActiveXObject -- old IE, WSH */ + + var anObject$1 = anObject$b; + var definePropertiesModule = objectDefineProperties; + var enumBugKeys = enumBugKeys$3; + var hiddenKeys$1 = hiddenKeys$5; + var html = html$2; + var documentCreateElement$1 = documentCreateElement$2; + var sharedKey$1 = sharedKey$3; + + var GT = '>'; + var LT = '<'; + var PROTOTYPE = 'prototype'; + var SCRIPT = 'script'; + var IE_PROTO$1 = sharedKey$1('IE_PROTO'); + + var EmptyConstructor = function () { /* empty */ }; + + var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; + }; + + // Create object with fake `null` prototype: use ActiveX Object with cleared prototype + var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; + }; + + // Create object with fake `null` prototype: use iframe Object with cleared prototype + var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement$1('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; + }; + + // Check for document.domain and active x support + // No need to use active x approach when document.domain is not set + // see https://github.com/es-shims/es5-shim/issues/150 + // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 + // avoid IE GC bug + var activeXDocument; + var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); + }; + + hiddenKeys$1[IE_PROTO$1] = true; + + // `Object.create` method + // https://tc39.es/ecma262/#sec-object.create + // eslint-disable-next-line es/no-object-create -- safe + var objectCreate = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject$1(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO$1] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); + }; + + var wellKnownSymbol$4 = wellKnownSymbol$f; + var create$1 = objectCreate; + var defineProperty$2 = objectDefineProperty.f; + + var UNSCOPABLES = wellKnownSymbol$4('unscopables'); + var ArrayPrototype = Array.prototype; + + // Array.prototype[@@unscopables] + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + if (ArrayPrototype[UNSCOPABLES] == undefined) { + defineProperty$2(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create$1(null) + }); + } + + // add a key to Array.prototype[@@unscopables] + var addToUnscopables$1 = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; + }; + + var fails$6 = fails$j; + + var correctPrototypeGetter = !fails$6(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + // eslint-disable-next-line es/no-object-getprototypeof -- required for testing + return Object.getPrototypeOf(new F()) !== F.prototype; + }); + + var hasOwn$2 = hasOwnProperty_1; + var isCallable$4 = isCallable$m; + var toObject$2 = toObject$5; + var sharedKey = sharedKey$3; + var CORRECT_PROTOTYPE_GETTER = correctPrototypeGetter; + + var IE_PROTO = sharedKey('IE_PROTO'); + var $Object = Object; + var ObjectPrototype = $Object.prototype; + + // `Object.getPrototypeOf` method + // https://tc39.es/ecma262/#sec-object.getprototypeof + // eslint-disable-next-line es/no-object-getprototypeof -- safe + var objectGetPrototypeOf = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { + var object = toObject$2(O); + if (hasOwn$2(object, IE_PROTO)) return object[IE_PROTO]; + var constructor = object.constructor; + if (isCallable$4(constructor) && object instanceof constructor) { + return constructor.prototype; + } return object instanceof $Object ? ObjectPrototype : null; + }; + + var fails$5 = fails$j; + var isCallable$3 = isCallable$m; + var isObject$6 = isObject$e; + var getPrototypeOf$1 = objectGetPrototypeOf; + var defineBuiltIn$3 = defineBuiltIn$8; + var wellKnownSymbol$3 = wellKnownSymbol$f; + + var ITERATOR$2 = wellKnownSymbol$3('iterator'); + var BUGGY_SAFARI_ITERATORS$1 = false; + + // `%IteratorPrototype%` object + // https://tc39.es/ecma262/#sec-%iteratorprototype%-object + var IteratorPrototype$2, PrototypeOfArrayIteratorPrototype, arrayIterator; + + /* eslint-disable es/no-array-prototype-keys -- safe */ + if ([].keys) { + arrayIterator = [].keys(); + // Safari 8 has buggy iterators w/o `next` + if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS$1 = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf$1(getPrototypeOf$1(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype$2 = PrototypeOfArrayIteratorPrototype; + } + } + + var NEW_ITERATOR_PROTOTYPE = !isObject$6(IteratorPrototype$2) || fails$5(function () { + var test = {}; + // FF44- legacy iterators case + return IteratorPrototype$2[ITERATOR$2].call(test) !== test; + }); + + if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype$2 = {}; + + // `%IteratorPrototype%[@@iterator]()` method + // https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator + if (!isCallable$3(IteratorPrototype$2[ITERATOR$2])) { + defineBuiltIn$3(IteratorPrototype$2, ITERATOR$2, function () { + return this; + }); + } + + var iteratorsCore = { + IteratorPrototype: IteratorPrototype$2, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS$1 + }; + + var IteratorPrototype$1 = iteratorsCore.IteratorPrototype; + var create = objectCreate; + var createPropertyDescriptor$1 = createPropertyDescriptor$4; + var setToStringTag$2 = setToStringTag$4; + var Iterators$2 = iterators; + + var returnThis$1 = function () { return this; }; + + var iteratorCreateConstructor = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = create(IteratorPrototype$1, { next: createPropertyDescriptor$1(+!ENUMERABLE_NEXT, next) }); + setToStringTag$2(IteratorConstructor, TO_STRING_TAG, false); + Iterators$2[TO_STRING_TAG] = returnThis$1; + return IteratorConstructor; + }; + + var $$3 = _export; + var call = functionCall; + var FunctionName = functionName; + var isCallable$2 = isCallable$m; + var createIteratorConstructor = iteratorCreateConstructor; + var getPrototypeOf = objectGetPrototypeOf; + var setPrototypeOf$1 = objectSetPrototypeOf; + var setToStringTag$1 = setToStringTag$4; + var createNonEnumerableProperty$2 = createNonEnumerableProperty$5; + var defineBuiltIn$2 = defineBuiltIn$8; + var wellKnownSymbol$2 = wellKnownSymbol$f; + var Iterators$1 = iterators; + var IteratorsCore = iteratorsCore; + + var PROPER_FUNCTION_NAME = FunctionName.PROPER; + var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; + var IteratorPrototype = IteratorsCore.IteratorPrototype; + var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; + var ITERATOR$1 = wellKnownSymbol$2('iterator'); + var KEYS = 'keys'; + var VALUES = 'values'; + var ENTRIES = 'entries'; + + var returnThis = function () { return this; }; + + var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + + var getIterationMethod = function (KIND) { + if (KIND === DEFAULT && defaultIterator) return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; + switch (KIND) { + case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; + case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; + case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; + } return function () { return new IteratorConstructor(this); }; + }; + + var TO_STRING_TAG = NAME + ' Iterator'; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR$1] + || IterablePrototype['@@iterator'] + || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + + // fix native + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf$1) { + setPrototypeOf$1(CurrentIteratorPrototype, IteratorPrototype); + } else if (!isCallable$2(CurrentIteratorPrototype[ITERATOR$1])) { + defineBuiltIn$2(CurrentIteratorPrototype, ITERATOR$1, returnThis); + } + } + // Set @@toStringTag to native iterators + setToStringTag$1(CurrentIteratorPrototype, TO_STRING_TAG, true); + } + } + + // fix Array.prototype.{ values, @@iterator }.name in V8 / FF + if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { + if (CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty$2(IterablePrototype, 'name', VALUES); + } else { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { return call(nativeIterator, this); }; + } + } + + // export additional methods + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + defineBuiltIn$2(IterablePrototype, KEY, methods[KEY]); + } + } else $$3({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + + // define iterator + if (IterablePrototype[ITERATOR$1] !== defaultIterator) { + defineBuiltIn$2(IterablePrototype, ITERATOR$1, defaultIterator, { name: DEFAULT }); + } + Iterators$1[NAME] = defaultIterator; + + return methods; + }; + + // `CreateIterResultObject` abstract operation + // https://tc39.es/ecma262/#sec-createiterresultobject + var createIterResultObject$2 = function (value, done) { + return { value: value, done: done }; + }; + + var toIndexedObject$1 = toIndexedObject$7; + var addToUnscopables = addToUnscopables$1; + var Iterators = iterators; + var InternalStateModule$2 = internalState; + var defineProperty$1 = objectDefineProperty.f; + var defineIterator$1 = iteratorDefine; + var createIterResultObject$1 = createIterResultObject$2; + var DESCRIPTORS = descriptors; + + var ARRAY_ITERATOR = 'Array Iterator'; + var setInternalState$2 = InternalStateModule$2.set; + var getInternalState$1 = InternalStateModule$2.getterFor(ARRAY_ITERATOR); + + // `Array.prototype.entries` method + // https://tc39.es/ecma262/#sec-array.prototype.entries + // `Array.prototype.keys` method + // https://tc39.es/ecma262/#sec-array.prototype.keys + // `Array.prototype.values` method + // https://tc39.es/ecma262/#sec-array.prototype.values + // `Array.prototype[@@iterator]` method + // https://tc39.es/ecma262/#sec-array.prototype-@@iterator + // `CreateArrayIterator` internal method + // https://tc39.es/ecma262/#sec-createarrayiterator + var es_array_iterator = defineIterator$1(Array, 'Array', function (iterated, kind) { + setInternalState$2(this, { + type: ARRAY_ITERATOR, + target: toIndexedObject$1(iterated), // target + index: 0, // next index + kind: kind // kind + }); + // `%ArrayIteratorPrototype%.next` method + // https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next + }, function () { + var state = getInternalState$1(this); + var target = state.target; + var kind = state.kind; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject$1(undefined, true); + } + if (kind == 'keys') return createIterResultObject$1(index, false); + if (kind == 'values') return createIterResultObject$1(target[index], false); + return createIterResultObject$1([index, target[index]], false); + }, 'values'); + + // argumentsList[@@iterator] is %ArrayProto_values% + // https://tc39.es/ecma262/#sec-createunmappedargumentsobject + // https://tc39.es/ecma262/#sec-createmappedargumentsobject + var values = Iterators.Arguments = Iterators.Array; + + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + addToUnscopables('keys'); + addToUnscopables('values'); + addToUnscopables('entries'); + + // V8 ~ Chrome 45- bug + if (DESCRIPTORS && values.name !== 'values') try { + defineProperty$1(values, 'name', { value: 'values' }); + } catch (error) { /* empty */ } + + var classof$3 = classof$8; + + var $String = String; + + var toString$2 = function (argument) { + if (classof$3(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string'); + return $String(argument); + }; + + var uncurryThis$4 = functionUncurryThis; + var toIntegerOrInfinity = toIntegerOrInfinity$3; + var toString$1 = toString$2; + var requireObjectCoercible = requireObjectCoercible$3; + + var charAt$1 = uncurryThis$4(''.charAt); + var charCodeAt = uncurryThis$4(''.charCodeAt); + var stringSlice = uncurryThis$4(''.slice); + + var createMethod$1 = function (CONVERT_TO_STRING) { + return function ($this, pos) { + var S = toString$1(requireObjectCoercible($this)); + var position = toIntegerOrInfinity(pos); + var size = S.length; + var first, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; + first = charCodeAt(S, position); + return first < 0xD800 || first > 0xDBFF || position + 1 === size + || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF + ? CONVERT_TO_STRING + ? charAt$1(S, position) + : first + : CONVERT_TO_STRING + ? stringSlice(S, position, position + 2) + : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; + }; + }; + + var stringMultibyte = { + // `String.prototype.codePointAt` method + // https://tc39.es/ecma262/#sec-string.prototype.codepointat + codeAt: createMethod$1(false), + // `String.prototype.at` method + // https://github.com/mathiasbynens/String.prototype.at + charAt: createMethod$1(true) + }; + + var charAt = stringMultibyte.charAt; + var toString = toString$2; + var InternalStateModule$1 = internalState; + var defineIterator = iteratorDefine; + var createIterResultObject = createIterResultObject$2; + + var STRING_ITERATOR = 'String Iterator'; + var setInternalState$1 = InternalStateModule$1.set; + var getInternalState = InternalStateModule$1.getterFor(STRING_ITERATOR); + + // `String.prototype[@@iterator]` method + // https://tc39.es/ecma262/#sec-string.prototype-@@iterator + defineIterator(String, 'String', function (iterated) { + setInternalState$1(this, { + type: STRING_ITERATOR, + string: toString(iterated), + index: 0 + }); + // `%StringIteratorPrototype%.next` method + // https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next + }, function next() { + var state = getInternalState(this); + var string = state.string; + var index = state.index; + var point; + if (index >= string.length) return createIterResultObject(undefined, true); + point = charAt(string, index); + state.index += point.length; + return createIterResultObject(point, false); + }); + + var internalMetadata = {exports: {}}; + + var objectGetOwnPropertyNamesExternal = {}; + + var toPropertyKey = toPropertyKey$3; + var definePropertyModule = objectDefineProperty; + var createPropertyDescriptor = createPropertyDescriptor$4; + + var createProperty$1 = function (object, key, value) { + var propertyKey = toPropertyKey(key); + if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); + else object[propertyKey] = value; + }; + + var toAbsoluteIndex = toAbsoluteIndex$2; + var lengthOfArrayLike$1 = lengthOfArrayLike$4; + var createProperty = createProperty$1; + + var $Array$1 = Array; + var max = Math.max; + + var arraySliceSimple = function (O, start, end) { + var length = lengthOfArrayLike$1(O); + var k = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + var result = $Array$1(max(fin - k, 0)); + for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]); + result.length = n; + return result; + }; + + /* eslint-disable es/no-object-getownpropertynames -- safe */ + + var classof$2 = classofRaw$2; + var toIndexedObject = toIndexedObject$7; + var $getOwnPropertyNames = objectGetOwnPropertyNames.f; + var arraySlice = arraySliceSimple; + + var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + + var getWindowNames = function (it) { + try { + return $getOwnPropertyNames(it); + } catch (error) { + return arraySlice(windowNames); + } + }; + + // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window + objectGetOwnPropertyNamesExternal.f = function getOwnPropertyNames(it) { + return windowNames && classof$2(it) == 'Window' + ? getWindowNames(it) + : $getOwnPropertyNames(toIndexedObject(it)); + }; + + // FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it + var fails$4 = fails$j; + + var arrayBufferNonExtensible = fails$4(function () { + if (typeof ArrayBuffer == 'function') { + var buffer = new ArrayBuffer(8); + // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe + if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 }); + } + }); + + var fails$3 = fails$j; + var isObject$5 = isObject$e; + var classof$1 = classofRaw$2; + var ARRAY_BUFFER_NON_EXTENSIBLE = arrayBufferNonExtensible; + + // eslint-disable-next-line es/no-object-isextensible -- safe + var $isExtensible = Object.isExtensible; + var FAILS_ON_PRIMITIVES$1 = fails$3(function () { $isExtensible(1); }); + + // `Object.isExtensible` method + // https://tc39.es/ecma262/#sec-object.isextensible + var objectIsExtensible = (FAILS_ON_PRIMITIVES$1 || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) { + if (!isObject$5(it)) return false; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof$1(it) == 'ArrayBuffer') return false; + return $isExtensible ? $isExtensible(it) : true; + } : $isExtensible; + + var fails$2 = fails$j; + + var freezing = !fails$2(function () { + // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing + return Object.isExtensible(Object.preventExtensions({})); + }); + + var $$2 = _export; + var uncurryThis$3 = functionUncurryThis; + var hiddenKeys = hiddenKeys$5; + var isObject$4 = isObject$e; + var hasOwn$1 = hasOwnProperty_1; + var defineProperty = objectDefineProperty.f; + var getOwnPropertyNamesModule = objectGetOwnPropertyNames; + var getOwnPropertyNamesExternalModule = objectGetOwnPropertyNamesExternal; + var isExtensible = objectIsExtensible; + var uid = uid$3; + var FREEZING = freezing; + + var REQUIRED = false; + var METADATA = uid('meta'); + var id$1 = 0; + + var setMetadata = function (it) { + defineProperty(it, METADATA, { value: { + objectID: 'O' + id$1++, // object ID + weakData: {} // weak collections IDs + } }); + }; + + var fastKey = function (it, create) { + // return a primitive with prefix + if (!isObject$4(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!hasOwn$1(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; + // not necessary to add metadata + if (!create) return 'E'; + // add missing metadata + setMetadata(it); + // return object ID + } return it[METADATA].objectID; + }; + + var getWeakData$1 = function (it, create) { + if (!hasOwn$1(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; + // not necessary to add metadata + if (!create) return false; + // add missing metadata + setMetadata(it); + // return the store of weak collections IDs + } return it[METADATA].weakData; + }; + + // add metadata on freeze-family methods calling + var onFreeze = function (it) { + if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn$1(it, METADATA)) setMetadata(it); + return it; + }; + + var enable = function () { + meta.enable = function () { /* empty */ }; + REQUIRED = true; + var getOwnPropertyNames = getOwnPropertyNamesModule.f; + var splice = uncurryThis$3([].splice); + var test = {}; + test[METADATA] = 1; + + // prevent exposing of metadata key + if (getOwnPropertyNames(test).length) { + getOwnPropertyNamesModule.f = function (it) { + var result = getOwnPropertyNames(it); + for (var i = 0, length = result.length; i < length; i++) { + if (result[i] === METADATA) { + splice(result, i, 1); + break; + } + } return result; + }; + + $$2({ target: 'Object', stat: true, forced: true }, { + getOwnPropertyNames: getOwnPropertyNamesExternalModule.f + }); + } + }; + + var meta = internalMetadata.exports = { + enable: enable, + fastKey: fastKey, + getWeakData: getWeakData$1, + onFreeze: onFreeze + }; + + hiddenKeys[METADATA] = true; + + var internalMetadataExports = internalMetadata.exports; + + var isCallable$1 = isCallable$m; + var isObject$3 = isObject$e; + var setPrototypeOf = objectSetPrototypeOf; + + // makes subclassing work correct for wrapped built-ins + var inheritIfRequired$1 = function ($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if ( + // it can work only with native `setPrototypeOf` + setPrototypeOf && + // we haven't completely correct pre-ES6 way for getting `new.target`, so use this + isCallable$1(NewTarget = dummy.constructor) && + NewTarget !== Wrapper && + isObject$3(NewTargetPrototype = NewTarget.prototype) && + NewTargetPrototype !== Wrapper.prototype + ) setPrototypeOf($this, NewTargetPrototype); + return $this; + }; + + var $$1 = _export; + var global$3 = global$j; + var uncurryThis$2 = functionUncurryThis; + var isForced = isForced_1; + var defineBuiltIn$1 = defineBuiltIn$8; + var InternalMetadataModule = internalMetadataExports; + var iterate$1 = iterate$4; + var anInstance$1 = anInstance$3; + var isCallable = isCallable$m; + var isNullOrUndefined$1 = isNullOrUndefined$6; + var isObject$2 = isObject$e; + var fails$1 = fails$j; + var checkCorrectnessOfIteration = checkCorrectnessOfIteration$2; + var setToStringTag = setToStringTag$4; + var inheritIfRequired = inheritIfRequired$1; + + var collection$1 = function (CONSTRUCTOR_NAME, wrapper, common) { + var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; + var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; + var ADDER = IS_MAP ? 'set' : 'add'; + var NativeConstructor = global$3[CONSTRUCTOR_NAME]; + var NativePrototype = NativeConstructor && NativeConstructor.prototype; + var Constructor = NativeConstructor; + var exported = {}; + + var fixMethod = function (KEY) { + var uncurriedNativeMethod = uncurryThis$2(NativePrototype[KEY]); + defineBuiltIn$1(NativePrototype, KEY, + KEY == 'add' ? function add(value) { + uncurriedNativeMethod(this, value === 0 ? 0 : value); + return this; + } : KEY == 'delete' ? function (key) { + return IS_WEAK && !isObject$2(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY == 'get' ? function get(key) { + return IS_WEAK && !isObject$2(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY == 'has' ? function has(key) { + return IS_WEAK && !isObject$2(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : function set(key, value) { + uncurriedNativeMethod(this, key === 0 ? 0 : key, value); + return this; + } + ); + }; + + var REPLACE = isForced( + CONSTRUCTOR_NAME, + !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails$1(function () { + new NativeConstructor().entries().next(); + })) + ); + + if (REPLACE) { + // create collection constructor + Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); + InternalMetadataModule.enable(); + } else if (isForced(CONSTRUCTOR_NAME, true)) { + var instance = new Constructor(); + // early implementations not supports chaining + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; + // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false + var THROWS_ON_PRIMITIVES = fails$1(function () { instance.has(1); }); + // most early implementations doesn't supports iterables, most modern - not close it correctly + // eslint-disable-next-line no-new -- required for testing + var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); }); + // for early implementations -0 and +0 not the same + var BUGGY_ZERO = !IS_WEAK && fails$1(function () { + // V8 ~ Chromium 42- fails only with 5+ elements + var $instance = new NativeConstructor(); + var index = 5; + while (index--) $instance[ADDER](index, index); + return !$instance.has(-0); + }); + + if (!ACCEPT_ITERABLES) { + Constructor = wrapper(function (dummy, iterable) { + anInstance$1(dummy, NativePrototype); + var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); + if (!isNullOrUndefined$1(iterable)) iterate$1(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + return that; + }); + Constructor.prototype = NativePrototype; + NativePrototype.constructor = Constructor; + } + + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); + + // weak collections should not contains .clear method + if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear; + } + + exported[CONSTRUCTOR_NAME] = Constructor; + $$1({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported); + + setToStringTag(Constructor, CONSTRUCTOR_NAME); + + if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); + + return Constructor; + }; + + var defineBuiltIn = defineBuiltIn$8; + + var defineBuiltIns$1 = function (target, src, options) { + for (var key in src) defineBuiltIn(target, key, src[key], options); + return target; + }; + + var classof = classofRaw$2; + + // `IsArray` abstract operation + // https://tc39.es/ecma262/#sec-isarray + // eslint-disable-next-line es/no-array-isarray -- safe + var isArray$1 = Array.isArray || function isArray(argument) { + return classof(argument) == 'Array'; + }; + + var isArray = isArray$1; + var isConstructor = isConstructor$2; + var isObject$1 = isObject$e; + var wellKnownSymbol$1 = wellKnownSymbol$f; + + var SPECIES = wellKnownSymbol$1('species'); + var $Array = Array; + + // a part of `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesConstructor$1 = function (originalArray) { + var C; + if (isArray(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined; + else if (isObject$1(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array : C; + }; + + var arraySpeciesConstructor = arraySpeciesConstructor$1; + + // `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesCreate$1 = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); + }; + + var bind = functionBindContext; + var uncurryThis$1 = functionUncurryThis; + var IndexedObject = indexedObject; + var toObject$1 = toObject$5; + var lengthOfArrayLike = lengthOfArrayLike$4; + var arraySpeciesCreate = arraySpeciesCreate$1; + + var push = uncurryThis$1([].push); + + // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation + var createMethod = function (TYPE) { + var IS_MAP = TYPE == 1; + var IS_FILTER = TYPE == 2; + var IS_SOME = TYPE == 3; + var IS_EVERY = TYPE == 4; + var IS_FIND_INDEX = TYPE == 6; + var IS_FILTER_REJECT = TYPE == 7; + var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject$1($this); + var self = IndexedObject(O); + var boundFunction = bind(callbackfn, that); + var length = lengthOfArrayLike(self); + var index = 0; + var create = specificCreate || arraySpeciesCreate; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push(target, value); // filterReject + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; + }; + + var arrayIteration = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod(7) + }; + + var uncurryThis = functionUncurryThis; + var defineBuiltIns = defineBuiltIns$1; + var getWeakData = internalMetadataExports.getWeakData; + var anInstance = anInstance$3; + var anObject = anObject$b; + var isNullOrUndefined = isNullOrUndefined$6; + var isObject = isObject$e; + var iterate = iterate$4; + var ArrayIterationModule = arrayIteration; + var hasOwn = hasOwnProperty_1; + var InternalStateModule = internalState; + + var setInternalState = InternalStateModule.set; + var internalStateGetterFor = InternalStateModule.getterFor; + var find = ArrayIterationModule.find; + var findIndex = ArrayIterationModule.findIndex; + var splice = uncurryThis([].splice); + var id = 0; + + // fallback for uncaught frozen keys + var uncaughtFrozenStore = function (state) { + return state.frozen || (state.frozen = new UncaughtFrozenStore()); + }; + + var UncaughtFrozenStore = function () { + this.entries = []; + }; + + var findUncaughtFrozen = function (store, key) { + return find(store.entries, function (it) { + return it[0] === key; + }); + }; + + UncaughtFrozenStore.prototype = { + get: function (key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function (key) { + return !!findUncaughtFrozen(this, key); + }, + set: function (key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value; + else this.entries.push([key, value]); + }, + 'delete': function (key) { + var index = findIndex(this.entries, function (it) { + return it[0] === key; + }); + if (~index) splice(this.entries, index, 1); + return !!~index; + } + }; + + var collectionWeak$1 = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + id: id++, + frozen: undefined + }); + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var data = getWeakData(anObject(key), true); + if (data === true) uncaughtFrozenStore(state).set(key, value); + else data[state.id] = value; + return that; + }; + + defineBuiltIns(Prototype, { + // `{ WeakMap, WeakSet }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.delete + // https://tc39.es/ecma262/#sec-weakset.prototype.delete + 'delete': function (key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state)['delete'](key); + return data && hasOwn(data, state.id) && delete data[state.id]; + }, + // `{ WeakMap, WeakSet }.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.has + // https://tc39.es/ecma262/#sec-weakset.prototype.has + has: function has(key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).has(key); + return data && hasOwn(data, state.id); + } + }); + + defineBuiltIns(Prototype, IS_MAP ? { + // `WeakMap.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.get + get: function get(key) { + var state = getInternalState(this); + if (isObject(key)) { + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).get(key); + return data ? data[state.id] : undefined; + } + }, + // `WeakMap.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.set + set: function set(key, value) { + return define(this, key, value); + } + } : { + // `WeakSet.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-weakset.prototype.add + add: function add(value) { + return define(this, value, true); + } + }); + + return Constructor; + } + }; + + var collection = collection$1; + var collectionWeak = collectionWeak$1; + + // `WeakSet` constructor + // https://tc39.es/ecma262/#sec-weakset-constructor + collection('WeakSet', function (init) { + return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); }; + }, collectionWeak); + + // iterable DOM collections + // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods + var domIterables = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 + }; + + // in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList` + var documentCreateElement = documentCreateElement$2; + + var classList = documentCreateElement('span').classList; + var DOMTokenListPrototype$2 = classList && classList.constructor && classList.constructor.prototype; + + var domTokenListPrototype = DOMTokenListPrototype$2 === Object.prototype ? undefined : DOMTokenListPrototype$2; + + var global$2 = global$j; + var DOMIterables$1 = domIterables; + var DOMTokenListPrototype$1 = domTokenListPrototype; + var ArrayIteratorMethods = es_array_iterator; + var createNonEnumerableProperty$1 = createNonEnumerableProperty$5; + var wellKnownSymbol = wellKnownSymbol$f; + + var ITERATOR = wellKnownSymbol('iterator'); + var TO_STRING_TAG = wellKnownSymbol('toStringTag'); + var ArrayValues = ArrayIteratorMethods.values; + + var handlePrototype$1 = function (CollectionPrototype, COLLECTION_NAME) { + if (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[ITERATOR] !== ArrayValues) try { + createNonEnumerableProperty$1(CollectionPrototype, ITERATOR, ArrayValues); + } catch (error) { + CollectionPrototype[ITERATOR] = ArrayValues; + } + if (!CollectionPrototype[TO_STRING_TAG]) { + createNonEnumerableProperty$1(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); + } + if (DOMIterables$1[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { + createNonEnumerableProperty$1(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); + } catch (error) { + CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; + } + } + } + }; + + for (var COLLECTION_NAME$1 in DOMIterables$1) { + handlePrototype$1(global$2[COLLECTION_NAME$1] && global$2[COLLECTION_NAME$1].prototype, COLLECTION_NAME$1); + } + + handlePrototype$1(DOMTokenListPrototype$1, 'DOMTokenList'); + + var $forEach = arrayIteration.forEach; + var arrayMethodIsStrict = arrayMethodIsStrict$2; + + var STRICT_METHOD = arrayMethodIsStrict('forEach'); + + // `Array.prototype.forEach` method implementation + // https://tc39.es/ecma262/#sec-array.prototype.foreach + var arrayForEach = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) { + return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + // eslint-disable-next-line es/no-array-prototype-foreach -- safe + } : [].forEach; + + var global$1 = global$j; + var DOMIterables = domIterables; + var DOMTokenListPrototype = domTokenListPrototype; + var forEach = arrayForEach; + var createNonEnumerableProperty = createNonEnumerableProperty$5; + + var handlePrototype = function (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { + createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach); + } catch (error) { + CollectionPrototype.forEach = forEach; + } + }; + + for (var COLLECTION_NAME in DOMIterables) { + if (DOMIterables[COLLECTION_NAME]) { + handlePrototype(global$1[COLLECTION_NAME] && global$1[COLLECTION_NAME].prototype); + } + } + + handlePrototype(DOMTokenListPrototype); + + var $ = _export; + var toObject = toObject$5; + var nativeKeys = objectKeys$2; + var fails = fails$j; + + var FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); }); + + // `Object.keys` method + // https://tc39.es/ecma262/#sec-object.keys + $({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { + keys: function keys(it) { + return nativeKeys(toObject(it)); + } + }); + + /****************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + /* global Reflect, Promise */ + + + function __classPrivateFieldGet(receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); + } + + var ScrollDirection; + (function (ScrollDirection) { + ScrollDirection[ScrollDirection["SCROLL_NONE"] = 0] = "SCROLL_NONE"; + ScrollDirection[ScrollDirection["SCROLL_BACKWARD"] = 1] = "SCROLL_BACKWARD"; + ScrollDirection[ScrollDirection["SCROLL_FORWARD"] = 2] = "SCROLL_FORWARD"; + })(ScrollDirection || (ScrollDirection = {})); + var Position; + (function (Position) { + Position[Position["TOP"] = 0] = "TOP"; + Position[Position["RIGHT"] = 1] = "RIGHT"; + Position[Position["BOTTOM"] = 2] = "BOTTOM"; + Position[Position["LEFT"] = 3] = "LEFT"; + })(Position || (Position = {})); + + function isHorizontal(position) { + return position === 'left' || position === 'right'; + } + function isVertical(position) { + return position === 'top' || position === 'bottom'; + } + function horizontalPadding(padding) { + return padding[Position.LEFT] + padding[Position.RIGHT]; + } + function verticalPadding(padding) { + return padding[Position.TOP] + padding[Position.BOTTOM]; + } + + var _CalendarLabel_instances, _CalendarLabel_buildComputedOptions, _CalendarLabel_computeDimensions, _CalendarLabel_setRectAttr, _CalendarLabel_setTextAttr, _CalendarLabel_getTextXOffset, _CalendarLabel_getX, _CalendarLabel_getY; + var DEFAULT_SELECTOR = '.ch-plugin-calendar-label'; + var defaultOptions = { + enabled: true, + dimensions: { + width: 0, + height: 0 + }, + position: 'left', + text: function text() { + return []; + }, + padding: [0, 0, 0, 0] + }; + var CalendarLabel = /*#__PURE__*/function () { + function CalendarLabel(calendar) { + _classCallCheck(this, CalendarLabel); + var _a, _b; + _CalendarLabel_instances.add(this); + this.name = 'CalendarLabel'; + var subDomain = (_b = (_a = calendar === null || calendar === void 0 ? void 0 : calendar.options) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.subDomain; + this.calendar = calendar; + this.root = null; + this.shown = false; + this.options = defaultOptions; + this.computedOptions = { + radius: subDomain === null || subDomain === void 0 ? void 0 : subDomain.radius, + width: subDomain === null || subDomain === void 0 ? void 0 : subDomain.width, + height: subDomain === null || subDomain === void 0 ? void 0 : subDomain.height, + gutter: subDomain === null || subDomain === void 0 ? void 0 : subDomain.gutter, + textAlign: 'start' + }; + } + _createClass(CalendarLabel, [{ + key: "setup", + value: function setup(pluginOptions) { + this.options = Object.assign(Object.assign({}, defaultOptions), pluginOptions); + } + }, { + key: "paint", + value: function paint() { + var enabled = this.options.enabled; + if (!enabled) { + return this.destroy(); + } + this.shown = true; + var calendarRoot = this.calendar.calendarPainter.root; + if (!this.root) { + this.root = calendarRoot.append('svg').attr('class', DEFAULT_SELECTOR.slice(1)).attr('data-key', this.options.key).attr('x', 0).attr('y', 0); + } + this.build(); + return Promise.resolve(); + } + }, { + key: "destroy", + value: function destroy() { + if (this.root !== null) { + this.root.remove(); + this.root = null; + } + return Promise.resolve(); + } + }, { + key: "build", + value: function build() { + var _this = this; + __classPrivateFieldGet(this, _CalendarLabel_instances, "m", _CalendarLabel_buildComputedOptions).call(this); + __classPrivateFieldGet(this, _CalendarLabel_instances, "m", _CalendarLabel_computeDimensions).call(this); + this.root.selectAll('g').data(this.options.text).join(function (enter) { + return enter.append('g').call(function (selection) { + return selection.append('rect').attr('class', "".concat(DEFAULT_SELECTOR.slice(1), "-bg")).attr('style', 'fill: transparent').call(function (s) { + return __classPrivateFieldGet(_this, _CalendarLabel_instances, "m", _CalendarLabel_setRectAttr).call(_this, s); + }); + }).call(function (selection) { + return selection.append('text').attr('class', "".concat(DEFAULT_SELECTOR.slice(1), "-text")).attr('dominant-baseline', 'central').attr('text-anchor', 'middle').attr('style', 'fill: currentColor; font-size: 10px').call(function (s) { + return __classPrivateFieldGet(_this, _CalendarLabel_instances, "m", _CalendarLabel_setTextAttr).call(_this, s); + }); + }); + }); + return Promise.resolve(); + } + }]); + return CalendarLabel; + }(); + _CalendarLabel_instances = new WeakSet(), _CalendarLabel_buildComputedOptions = function _CalendarLabel_buildComputedOptions() { + var _this2 = this; + Object.keys(this.computedOptions).forEach(function (key) { + if (typeof _this2.options[key] !== 'undefined') { + // @ts-ignore + _this2.computedOptions[key] = _this2.options[key]; + } + }); + }, _CalendarLabel_computeDimensions = function _CalendarLabel_computeDimensions() { + var _this$computedOptions = this.computedOptions, + width = _this$computedOptions.width, + height = _this$computedOptions.height, + gutter = _this$computedOptions.gutter; + var _this$options = this.options, + text = _this$options.text, + padding = _this$options.padding, + position = _this$options.position; + var labelsCount = text().length; + this.options.dimensions = { + width: width + horizontalPadding(padding), + height: height + verticalPadding(padding) + }; + if (isVertical(position)) { + this.options.dimensions.width += (width + gutter) * (labelsCount - 1); + } else { + this.options.dimensions.height += (height + gutter) * (labelsCount - 1); + } + }, _CalendarLabel_setRectAttr = function _CalendarLabel_setRectAttr(selection) { + var _this3 = this; + var _this$computedOptions2 = this.computedOptions, + width = _this$computedOptions2.width, + height = _this$computedOptions2.height, + radius = _this$computedOptions2.radius; + selection.attr('width', width).attr('height', height).attr('rx', radius && radius > 0 ? radius : null).attr('ry', radius && radius > 0 ? radius : null).attr('x', function (_d, i) { + return __classPrivateFieldGet(_this3, _CalendarLabel_instances, "m", _CalendarLabel_getX).call(_this3, i); + }).attr('y', function (_d, i) { + return __classPrivateFieldGet(_this3, _CalendarLabel_instances, "m", _CalendarLabel_getY).call(_this3, i); + }); + }, _CalendarLabel_setTextAttr = function _CalendarLabel_setTextAttr(selection) { + var _this4 = this; + var _this$computedOptions3 = this.computedOptions, + height = _this$computedOptions3.height, + textAlign = _this$computedOptions3.textAlign; + selection.attr('text-anchor', textAlign).attr('x', function (_d, i) { + return __classPrivateFieldGet(_this4, _CalendarLabel_instances, "m", _CalendarLabel_getTextXOffset).call(_this4) + __classPrivateFieldGet(_this4, _CalendarLabel_instances, "m", _CalendarLabel_getX).call(_this4, i); + }).attr('y', function (_d, i) { + return __classPrivateFieldGet(_this4, _CalendarLabel_instances, "m", _CalendarLabel_getY).call(_this4, i) + height / 2; + }).text(function (data) { + return data; + }); + }, _CalendarLabel_getTextXOffset = function _CalendarLabel_getTextXOffset() { + var _this$computedOptions4 = this.computedOptions, + width = _this$computedOptions4.width, + textAlign = _this$computedOptions4.textAlign; + switch (textAlign) { + case 'start': + return 0; + case 'middle': + return width / 2; + case 'end': + return width; + default: + return 0; + } + }, _CalendarLabel_getX = function _CalendarLabel_getX(index) { + var _this$options2 = this.options, + position = _this$options2.position, + padding = _this$options2.padding; + var _this$computedOptions5 = this.computedOptions, + width = _this$computedOptions5.width, + gutter = _this$computedOptions5.gutter; + if (isHorizontal(position)) { + return padding[Position.LEFT]; + } + return padding[Position.LEFT] + (width + gutter) * index; + }, _CalendarLabel_getY = function _CalendarLabel_getY(index) { + var _this$options3 = this.options, + position = _this$options3.position, + padding = _this$options3.padding; + var _this$computedOptions6 = this.computedOptions, + height = _this$computedOptions6.height, + gutter = _this$computedOptions6.gutter; + if (isVertical(position)) { + return padding[Position.TOP]; + } + return padding[Position.TOP] + (height + gutter) * index; + }; + + return CalendarLabel; + +})); diff --git a/static/javascripts/cal-heatmap/plugins/CalendarLabel.min.esm.js b/static/javascripts/cal-heatmap/plugins/CalendarLabel.min.esm.js new file mode 100644 index 000000000..6a093f875 --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/CalendarLabel.min.esm.js @@ -0,0 +1 @@ +function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,(o=r.key,i=void 0,"symbol"==typeof(i=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(o,"string"))?i:String(i)),r)}var o,i}var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=function(t){try{return!!t()}catch(t){return!0}},r=!n((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),o=!n((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})),i=o,u=Function.prototype,c=u.call,a=i&&u.bind.bind(c,c),f=i?a:function(t){return function(){return c.apply(t,arguments)}},s=function(t){return null==t},l=s,p=TypeError,h=function(t){if(l(t))throw p("Can't call method on "+t);return t},v=h,d=Object,y=function(t){return d(v(t))},g=y,b=f({}.hasOwnProperty),m=Object.hasOwn||function(t,e){return b(g(t),e)},O=r,w=m,S=Function.prototype,j=O&&Object.getOwnPropertyDescriptor,T=w(S,"name"),E={EXISTS:T,PROPER:T&&"something"===function(){}.name,CONFIGURABLE:T&&(!O||O&&j(S,"name").configurable)},P={exports:{}},x="object"==typeof document&&document.all,A={all:x,IS_HTMLDDA:void 0===x&&void 0!==x},R=A.all,L=A.IS_HTMLDDA?function(t){return"function"==typeof t||t===R}:function(t){return"function"==typeof t},C=function(t){return t&&t.Math==Math&&t},I=C("object"==typeof globalThis&&globalThis)||C("object"==typeof window&&window)||C("object"==typeof self&&self)||C("object"==typeof e&&e)||function(){return this}()||e||Function("return this")(),k=I,_=Object.defineProperty,N=function(t,e){try{_(k,t,{value:e,configurable:!0,writable:!0})}catch(n){k[t]=e}return e},D=N,F="__core-js_shared__",M=I[F]||D(F,{}),G=L,B=M,U=f(Function.toString);G(B.inspectSource)||(B.inspectSource=function(t){return U(t)});var W,z,H=B.inspectSource,V=L,K=I.WeakMap,q=V(K)&&/native code/.test(String(K)),X=L,Y=A.all,J=A.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:X(t)||t===Y}:function(t){return"object"==typeof t?null!==t:X(t)},$={},Q=J,Z=I.document,tt=Q(Z)&&Q(Z.createElement),et=function(t){return tt?Z.createElement(t):{}},nt=et,rt=!r&&!n((function(){return 7!=Object.defineProperty(nt("div"),"a",{get:function(){return 7}}).a})),ot=r&&n((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),it=J,ut=String,ct=TypeError,at=function(t){if(it(t))return t;throw ct(ut(t)+" is not an object")},ft=o,st=Function.prototype.call,lt=ft?st.bind(st):function(){return st.apply(st,arguments)},pt=I,ht=L,vt=function(t,e){return arguments.length<2?(n=pt[t],ht(n)?n:void 0):pt[t]&&pt[t][e];var n},dt=f({}.isPrototypeOf),yt="undefined"!=typeof navigator&&String(navigator.userAgent)||"",gt=I,bt=yt,mt=gt.process,Ot=gt.Deno,wt=mt&&mt.versions||Ot&&Ot.version,St=wt&&wt.v8;St&&(z=(W=St.split("."))[0]>0&&W[0]<4?1:+(W[0]+W[1])),!z&&bt&&(!(W=bt.match(/Edge\/(\d+)/))||W[1]>=74)&&(W=bt.match(/Chrome\/(\d+)/))&&(z=+W[1]);var jt=z,Tt=jt,Et=n,Pt=I.String,xt=!!Object.getOwnPropertySymbols&&!Et((function(){var t=Symbol();return!Pt(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&Tt&&Tt<41})),At=xt&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Rt=vt,Lt=L,Ct=dt,It=Object,kt=At?function(t){return"symbol"==typeof t}:function(t){var e=Rt("Symbol");return Lt(e)&&Ct(e.prototype,It(t))},_t=String,Nt=function(t){try{return _t(t)}catch(t){return"Object"}},Dt=L,Ft=Nt,Mt=TypeError,Gt=function(t){if(Dt(t))return t;throw Mt(Ft(t)+" is not a function")},Bt=Gt,Ut=s,Wt=function(t,e){var n=t[e];return Ut(n)?void 0:Bt(n)},zt=lt,Ht=L,Vt=J,Kt=TypeError,qt={exports:{}},Xt=M;(qt.exports=function(t,e){return Xt[t]||(Xt[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.30.2",mode:"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE",source:"https://github.com/zloirock/core-js"});var Yt=qt.exports,Jt=f,$t=0,Qt=Math.random(),Zt=Jt(1..toString),te=function(t){return"Symbol("+(void 0===t?"":t)+")_"+Zt(++$t+Qt,36)},ee=Yt,ne=m,re=te,oe=xt,ie=At,ue=I.Symbol,ce=ee("wks"),ae=ie?ue.for||ue:ue&&ue.withoutSetter||re,fe=function(t){return ne(ce,t)||(ce[t]=oe&&ne(ue,t)?ue[t]:ae("Symbol."+t)),ce[t]},se=lt,le=J,pe=kt,he=Wt,ve=function(t,e){var n,r;if("string"===e&&Ht(n=t.toString)&&!Vt(r=zt(n,t)))return r;if(Ht(n=t.valueOf)&&!Vt(r=zt(n,t)))return r;if("string"!==e&&Ht(n=t.toString)&&!Vt(r=zt(n,t)))return r;throw Kt("Can't convert object to primitive value")},de=TypeError,ye=fe("toPrimitive"),ge=function(t,e){if(!le(t)||pe(t))return t;var n,r=he(t,ye);if(r){if(void 0===e&&(e="default"),n=se(r,t,e),!le(n)||pe(n))return n;throw de("Can't convert object to primitive value")}return void 0===e&&(e="number"),ve(t,e)},be=kt,me=function(t){var e=ge(t,"string");return be(e)?e:e+""},Oe=r,we=rt,Se=ot,je=at,Te=me,Ee=TypeError,Pe=Object.defineProperty,xe=Object.getOwnPropertyDescriptor,Ae="enumerable",Re="configurable",Le="writable";$.f=Oe?Se?function(t,e,n){if(je(t),e=Te(e),je(n),"function"==typeof t&&"prototype"===e&&"value"in n&&Le in n&&!n[Le]){var r=xe(t,e);r&&r[Le]&&(t[e]=n.value,n={configurable:Re in n?n[Re]:r[Re],enumerable:Ae in n?n[Ae]:r[Ae],writable:!1})}return Pe(t,e,n)}:Pe:function(t,e,n){if(je(t),e=Te(e),je(n),we)try{return Pe(t,e,n)}catch(t){}if("get"in n||"set"in n)throw Ee("Accessors not supported");return"value"in n&&(t[e]=n.value),t};var Ce,Ie,ke,_e=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},Ne=$,De=_e,Fe=r?function(t,e,n){return Ne.f(t,e,De(1,n))}:function(t,e,n){return t[e]=n,t},Me=te,Ge=Yt("keys"),Be=function(t){return Ge[t]||(Ge[t]=Me(t))},Ue={},We=q,ze=I,He=J,Ve=Fe,Ke=m,qe=M,Xe=Be,Ye=Ue,Je="Object already initialized",$e=ze.TypeError,Qe=ze.WeakMap;if(We||qe.state){var Ze=qe.state||(qe.state=new Qe);Ze.get=Ze.get,Ze.has=Ze.has,Ze.set=Ze.set,Ce=function(t,e){if(Ze.has(t))throw $e(Je);return e.facade=t,Ze.set(t,e),e},Ie=function(t){return Ze.get(t)||{}},ke=function(t){return Ze.has(t)}}else{var tn=Xe("state");Ye[tn]=!0,Ce=function(t,e){if(Ke(t,tn))throw $e(Je);return e.facade=t,Ve(t,tn,e),e},Ie=function(t){return Ke(t,tn)?t[tn]:{}},ke=function(t){return Ke(t,tn)}}var en={set:Ce,get:Ie,has:ke,enforce:function(t){return ke(t)?Ie(t):Ce(t,{})},getterFor:function(t){return function(e){var n;if(!He(e)||(n=Ie(e)).type!==t)throw $e("Incompatible receiver, "+t+" required");return n}}},nn=f,rn=n,on=L,un=m,cn=r,an=E.CONFIGURABLE,fn=H,sn=en.enforce,ln=en.get,pn=String,hn=Object.defineProperty,vn=nn("".slice),dn=nn("".replace),yn=nn([].join),gn=cn&&!rn((function(){return 8!==hn((function(){}),"length",{value:8}).length})),bn=String(String).split("String"),mn=P.exports=function(t,e,n){"Symbol("===vn(pn(e),0,7)&&(e="["+dn(pn(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!un(t,"name")||an&&t.name!==e)&&(cn?hn(t,"name",{value:e,configurable:!0}):t.name=e),gn&&n&&un(n,"arity")&&t.length!==n.arity&&hn(t,"length",{value:n.arity});try{n&&un(n,"constructor")&&n.constructor?cn&&hn(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=sn(t);return un(r,"source")||(r.source=yn(bn,"string"==typeof e?e:"")),t};Function.prototype.toString=mn((function(){return on(this)&&ln(this).source||fn(this)}),"toString");var On=P.exports,wn=On,Sn=$,jn=function(t,e,n){return n.get&&wn(n.get,e,{getter:!0}),n.set&&wn(n.set,e,{setter:!0}),Sn.f(t,e,n)},Tn=r,En=E.EXISTS,Pn=f,xn=jn,An=Function.prototype,Rn=Pn(An.toString),Ln=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,Cn=Pn(Ln.exec);Tn&&!En&&xn(An,"name",{configurable:!0,get:function(){try{return Cn(Ln,Rn(this))[1]}catch(t){return""}}});var In={},kn={},_n={}.propertyIsEnumerable,Nn=Object.getOwnPropertyDescriptor,Dn=Nn&&!_n.call({1:2},1);kn.f=Dn?function(t){var e=Nn(this,t);return!!e&&e.enumerable}:_n;var Fn=f,Mn=Fn({}.toString),Gn=Fn("".slice),Bn=function(t){return Gn(Mn(t),8,-1)},Un=n,Wn=Bn,zn=Object,Hn=f("".split),Vn=Un((function(){return!zn("z").propertyIsEnumerable(0)}))?function(t){return"String"==Wn(t)?Hn(t,""):zn(t)}:zn,Kn=Vn,qn=h,Xn=function(t){return Kn(qn(t))},Yn=r,Jn=lt,$n=kn,Qn=_e,Zn=Xn,tr=me,er=m,nr=rt,rr=Object.getOwnPropertyDescriptor;In.f=Yn?rr:function(t,e){if(t=Zn(t),e=tr(e),nr)try{return rr(t,e)}catch(t){}if(er(t,e))return Qn(!Jn($n.f,t,e),t[e])};var or=L,ir=$,ur=On,cr=N,ar=function(t,e,n,r){r||(r={});var o=r.enumerable,i=void 0!==r.name?r.name:e;if(or(n)&&ur(n,i,r),r.global)o?t[e]=n:cr(e,n);else{try{r.unsafe?t[e]&&(o=!0):delete t[e]}catch(t){}o?t[e]=n:ir.f(t,e,{value:n,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return t},fr={},sr=Math.ceil,lr=Math.floor,pr=Math.trunc||function(t){var e=+t;return(e>0?lr:sr)(e)},hr=function(t){var e=+t;return e!=e||0===e?0:pr(e)},vr=hr,dr=Math.max,yr=Math.min,gr=function(t,e){var n=vr(t);return n<0?dr(n+e,0):yr(n,e)},br=hr,mr=Math.min,Or=function(t){return t>0?mr(br(t),9007199254740991):0},wr=function(t){return Or(t.length)},Sr=Xn,jr=gr,Tr=wr,Er=function(t){return function(e,n,r){var o,i=Sr(e),u=Tr(i),c=jr(r,u);if(t&&n!=n){for(;u>c;)if((o=i[c++])!=o)return!0}else for(;u>c;c++)if((t||c in i)&&i[c]===n)return t||c||0;return!t&&-1}},Pr={includes:Er(!0),indexOf:Er(!1)},xr=m,Ar=Xn,Rr=Pr.indexOf,Lr=Ue,Cr=f([].push),Ir=function(t,e){var n,r=Ar(t),o=0,i=[];for(n in r)!xr(Lr,n)&&xr(r,n)&&Cr(i,n);for(;e.length>o;)xr(r,n=e[o++])&&(~Rr(i,n)||Cr(i,n));return i},kr=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],_r=Ir,Nr=kr.concat("length","prototype");fr.f=Object.getOwnPropertyNames||function(t){return _r(t,Nr)};var Dr={};Dr.f=Object.getOwnPropertySymbols;var Fr=vt,Mr=fr,Gr=Dr,Br=at,Ur=f([].concat),Wr=Fr("Reflect","ownKeys")||function(t){var e=Mr.f(Br(t)),n=Gr.f;return n?Ur(e,n(t)):e},zr=m,Hr=Wr,Vr=In,Kr=$,qr=n,Xr=L,Yr=/#|\.prototype\./,Jr=function(t,e){var n=Qr[$r(t)];return n==to||n!=Zr&&(Xr(e)?qr(e):!!e)},$r=Jr.normalize=function(t){return String(t).replace(Yr,".").toLowerCase()},Qr=Jr.data={},Zr=Jr.NATIVE="N",to=Jr.POLYFILL="P",eo=Jr,no=I,ro=In.f,oo=Fe,io=ar,uo=N,co=function(t,e,n){for(var r=Hr(e),o=Kr.f,i=Vr.f,u=0;u<r.length;u++){var c=r[u];zr(t,c)||n&&zr(n,c)||o(t,c,i(e,c))}},ao=eo,fo=function(t,e){var n,r,o,i,u,c=t.target,a=t.global,f=t.stat;if(n=a?no:f?no[c]||uo(c,{}):(no[c]||{}).prototype)for(r in e){if(i=e[r],o=t.dontCallGetSet?(u=ro(n,r))&&u.value:n[r],!ao(a?r:c+(f?".":"#")+r,t.forced)&&void 0!==o){if(typeof i==typeof o)continue;co(i,o)}(t.sham||o&&o.sham)&&oo(i,"sham",!0),io(n,r,i,t)}},so=Ir,lo=kr,po=Object.keys||function(t){return so(t,lo)},ho=r,vo=f,yo=lt,go=n,bo=po,mo=Dr,Oo=kn,wo=y,So=Vn,jo=Object.assign,To=Object.defineProperty,Eo=vo([].concat),Po=!jo||go((function(){if(ho&&1!==jo({b:1},jo(To({},"a",{enumerable:!0,get:function(){To(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach((function(t){e[t]=t})),7!=jo({},t)[n]||bo(jo({},e)).join("")!=r}))?function(t,e){for(var n=wo(t),r=arguments.length,o=1,i=mo.f,u=Oo.f;r>o;)for(var c,a=So(arguments[o++]),f=i?Eo(bo(a),i(a)):bo(a),s=f.length,l=0;s>l;)c=f[l++],ho&&!yo(u,a,c)||(n[c]=a[c]);return n}:jo,xo=Po;fo({target:"Object",stat:!0,arity:2,forced:Object.assign!==xo},{assign:xo});var Ao={};Ao[fe("toStringTag")]="z";var Ro="[object z]"===String(Ao),Lo=Ro,Co=L,Io=Bn,ko=fe("toStringTag"),_o=Object,No="Arguments"==Io(function(){return arguments}()),Do=Lo?Io:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=_o(t),ko))?n:No?Io(e):"Object"==(r=Io(e))&&Co(e.callee)?"Arguments":r},Fo=Do,Mo=Ro?{}.toString:function(){return"[object "+Fo(this)+"]"};Ro||ar(Object.prototype,"toString",Mo,{unsafe:!0});var Go="undefined"!=typeof process&&"process"==Bn(process),Bo=f,Uo=Gt,Wo=L,zo=String,Ho=TypeError,Vo=function(t,e,n){try{return Bo(Uo(Object.getOwnPropertyDescriptor(t,e)[n]))}catch(t){}},Ko=at,qo=function(t){if("object"==typeof t||Wo(t))return t;throw Ho("Can't set "+zo(t)+" as a prototype")},Xo=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=Vo(Object.prototype,"__proto__","set"))(n,[]),e=n instanceof Array}catch(t){}return function(n,r){return Ko(n),qo(r),e?t(n,r):n.__proto__=r,n}}():void 0),Yo=$.f,Jo=m,$o=fe("toStringTag"),Qo=function(t,e,n){t&&!n&&(t=t.prototype),t&&!Jo(t,$o)&&Yo(t,$o,{configurable:!0,value:e})},Zo=vt,ti=jn,ei=r,ni=fe("species"),ri=dt,oi=TypeError,ii=function(t,e){if(ri(e,t))return t;throw oi("Incorrect invocation")},ui=f,ci=n,ai=L,fi=Do,si=H,li=function(){},pi=[],hi=vt("Reflect","construct"),vi=/^\s*(?:class|function)\b/,di=ui(vi.exec),yi=!vi.exec(li),gi=function(t){if(!ai(t))return!1;try{return hi(li,pi,t),!0}catch(t){return!1}},bi=function(t){if(!ai(t))return!1;switch(fi(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return yi||!!di(vi,si(t))}catch(t){return!0}};bi.sham=!0;var mi,Oi,wi,Si,ji=!hi||ci((function(){var t;return gi(gi.call)||!gi(Object)||!gi((function(){t=!0}))||t}))?bi:gi,Ti=ji,Ei=Nt,Pi=TypeError,xi=at,Ai=function(t){if(Ti(t))return t;throw Pi(Ei(t)+" is not a constructor")},Ri=s,Li=fe("species"),Ci=o,Ii=Function.prototype,ki=Ii.apply,_i=Ii.call,Ni="object"==typeof Reflect&&Reflect.apply||(Ci?_i.bind(ki):function(){return _i.apply(ki,arguments)}),Di=Bn,Fi=f,Mi=function(t){if("Function"===Di(t))return Fi(t)},Gi=Gt,Bi=o,Ui=Mi(Mi.bind),Wi=function(t,e){return Gi(t),void 0===e?t:Bi?Ui(t,e):function(){return t.apply(e,arguments)}},zi=vt("document","documentElement"),Hi=f([].slice),Vi=TypeError,Ki=/(?:ipad|iphone|ipod).*applewebkit/i.test(yt),qi=I,Xi=Ni,Yi=Wi,Ji=L,$i=m,Qi=n,Zi=zi,tu=Hi,eu=et,nu=function(t,e){if(t<e)throw Vi("Not enough arguments");return t},ru=Ki,ou=Go,iu=qi.setImmediate,uu=qi.clearImmediate,cu=qi.process,au=qi.Dispatch,fu=qi.Function,su=qi.MessageChannel,lu=qi.String,pu=0,hu={},vu="onreadystatechange";Qi((function(){mi=qi.location}));var du=function(t){if($i(hu,t)){var e=hu[t];delete hu[t],e()}},yu=function(t){return function(){du(t)}},gu=function(t){du(t.data)},bu=function(t){qi.postMessage(lu(t),mi.protocol+"//"+mi.host)};iu&&uu||(iu=function(t){nu(arguments.length,1);var e=Ji(t)?t:fu(t),n=tu(arguments,1);return hu[++pu]=function(){Xi(e,void 0,n)},Oi(pu),pu},uu=function(t){delete hu[t]},ou?Oi=function(t){cu.nextTick(yu(t))}:au&&au.now?Oi=function(t){au.now(yu(t))}:su&&!ru?(Si=(wi=new su).port2,wi.port1.onmessage=gu,Oi=Yi(Si.postMessage,Si)):qi.addEventListener&&Ji(qi.postMessage)&&!qi.importScripts&&mi&&"file:"!==mi.protocol&&!Qi(bu)?(Oi=bu,qi.addEventListener("message",gu,!1)):Oi=vu in eu("script")?function(t){Zi.appendChild(eu("script"))[vu]=function(){Zi.removeChild(this),du(t)}}:function(t){setTimeout(yu(t),0)});var mu={set:iu,clear:uu},Ou=function(){this.head=null,this.tail=null};Ou.prototype={add:function(t){var e={item:t,next:null},n=this.tail;n?n.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}};var wu,Su,ju,Tu,Eu,Pu=Ou,xu=/ipad|iphone|ipod/i.test(yt)&&"undefined"!=typeof Pebble,Au=/web0s(?!.*chrome)/i.test(yt),Ru=I,Lu=Wi,Cu=In.f,Iu=mu.set,ku=Pu,_u=Ki,Nu=xu,Du=Au,Fu=Go,Mu=Ru.MutationObserver||Ru.WebKitMutationObserver,Gu=Ru.document,Bu=Ru.process,Uu=Ru.Promise,Wu=Cu(Ru,"queueMicrotask"),zu=Wu&&Wu.value;if(!zu){var Hu=new ku,Vu=function(){var t,e;for(Fu&&(t=Bu.domain)&&t.exit();e=Hu.get();)try{e()}catch(t){throw Hu.head&&wu(),t}t&&t.enter()};_u||Fu||Du||!Mu||!Gu?!Nu&&Uu&&Uu.resolve?((Tu=Uu.resolve(void 0)).constructor=Uu,Eu=Lu(Tu.then,Tu),wu=function(){Eu(Vu)}):Fu?wu=function(){Bu.nextTick(Vu)}:(Iu=Lu(Iu,Ru),wu=function(){Iu(Vu)}):(Su=!0,ju=Gu.createTextNode(""),new Mu(Vu).observe(ju,{characterData:!0}),wu=function(){ju.data=Su=!Su}),zu=function(t){Hu.head||wu(),Hu.add(t)}}var Ku=zu,qu=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},Xu=I.Promise,Yu="object"==typeof Deno&&Deno&&"object"==typeof Deno.version,Ju=!Yu&&!Go&&"object"==typeof window&&"object"==typeof document,$u=I,Qu=Xu,Zu=L,tc=eo,ec=H,nc=fe,rc=Ju,oc=Yu,ic=jt;Qu&&Qu.prototype;var uc=nc("species"),cc=!1,ac=Zu($u.PromiseRejectionEvent),fc=tc("Promise",(function(){var t=ec(Qu),e=t!==String(Qu);if(!e&&66===ic)return!0;if(!ic||ic<51||!/native code/.test(t)){var n=new Qu((function(t){t(1)})),r=function(t){t((function(){}),(function(){}))};if((n.constructor={})[uc]=r,!(cc=n.then((function(){}))instanceof r))return!0}return!e&&(rc||oc)&&!ac})),sc={CONSTRUCTOR:fc,REJECTION_EVENT:ac,SUBCLASSING:cc},lc={},pc=Gt,hc=TypeError,vc=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw hc("Bad Promise constructor");e=t,n=r})),this.resolve=pc(e),this.reject=pc(n)};lc.f=function(t){return new vc(t)};var dc,yc,gc,bc=fo,mc=Go,Oc=I,wc=lt,Sc=ar,jc=Xo,Tc=Qo,Ec=function(t){var e=Zo(t);ei&&e&&!e[ni]&&ti(e,ni,{configurable:!0,get:function(){return this}})},Pc=Gt,xc=L,Ac=J,Rc=ii,Lc=function(t,e){var n,r=xi(t).constructor;return void 0===r||Ri(n=xi(r)[Li])?e:Ai(n)},Cc=mu.set,Ic=Ku,kc=function(t,e){try{1==arguments.length?console.error(t):console.error(t,e)}catch(t){}},_c=qu,Nc=Pu,Dc=en,Fc=Xu,Mc=lc,Gc="Promise",Bc=sc.CONSTRUCTOR,Uc=sc.REJECTION_EVENT,Wc=sc.SUBCLASSING,zc=Dc.getterFor(Gc),Hc=Dc.set,Vc=Fc&&Fc.prototype,Kc=Fc,qc=Vc,Xc=Oc.TypeError,Yc=Oc.document,Jc=Oc.process,$c=Mc.f,Qc=$c,Zc=!!(Yc&&Yc.createEvent&&Oc.dispatchEvent),ta="unhandledrejection",ea=function(t){var e;return!(!Ac(t)||!xc(e=t.then))&&e},na=function(t,e){var n,r,o,i=e.value,u=1==e.state,c=u?t.ok:t.fail,a=t.resolve,f=t.reject,s=t.domain;try{c?(u||(2===e.rejection&&ca(e),e.rejection=1),!0===c?n=i:(s&&s.enter(),n=c(i),s&&(s.exit(),o=!0)),n===t.promise?f(Xc("Promise-chain cycle")):(r=ea(n))?wc(r,n,a,f):a(n)):f(i)}catch(t){s&&!o&&s.exit(),f(t)}},ra=function(t,e){t.notified||(t.notified=!0,Ic((function(){for(var n,r=t.reactions;n=r.get();)na(n,t);t.notified=!1,e&&!t.rejection&&ia(t)})))},oa=function(t,e,n){var r,o;Zc?((r=Yc.createEvent("Event")).promise=e,r.reason=n,r.initEvent(t,!1,!0),Oc.dispatchEvent(r)):r={promise:e,reason:n},!Uc&&(o=Oc["on"+t])?o(r):t===ta&&kc("Unhandled promise rejection",n)},ia=function(t){wc(Cc,Oc,(function(){var e,n=t.facade,r=t.value;if(ua(t)&&(e=_c((function(){mc?Jc.emit("unhandledRejection",r,n):oa(ta,n,r)})),t.rejection=mc||ua(t)?2:1,e.error))throw e.value}))},ua=function(t){return 1!==t.rejection&&!t.parent},ca=function(t){wc(Cc,Oc,(function(){var e=t.facade;mc?Jc.emit("rejectionHandled",e):oa("rejectionhandled",e,t.value)}))},aa=function(t,e,n){return function(r){t(e,r,n)}},fa=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=2,ra(t,!0))},sa=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw Xc("Promise can't be resolved itself");var r=ea(e);r?Ic((function(){var n={done:!1};try{wc(r,e,aa(sa,n,t),aa(fa,n,t))}catch(e){fa(n,e,t)}})):(t.value=e,t.state=1,ra(t,!1))}catch(e){fa({done:!1},e,t)}}};if(Bc&&(qc=(Kc=function(t){Rc(this,qc),Pc(t),wc(dc,this);var e=zc(this);try{t(aa(sa,e),aa(fa,e))}catch(t){fa(e,t)}}).prototype,(dc=function(t){Hc(this,{type:Gc,done:!1,notified:!1,parent:!1,reactions:new Nc,rejection:!1,state:0,value:void 0})}).prototype=Sc(qc,"then",(function(t,e){var n=zc(this),r=$c(Lc(this,Kc));return n.parent=!0,r.ok=!xc(t)||t,r.fail=xc(e)&&e,r.domain=mc?Jc.domain:void 0,0==n.state?n.reactions.add(r):Ic((function(){na(r,n)})),r.promise})),yc=function(){var t=new dc,e=zc(t);this.promise=t,this.resolve=aa(sa,e),this.reject=aa(fa,e)},Mc.f=$c=function(t){return t===Kc||undefined===t?new yc(t):Qc(t)},xc(Fc)&&Vc!==Object.prototype)){gc=Vc.then,Wc||Sc(Vc,"then",(function(t,e){var n=this;return new Kc((function(t,e){wc(gc,n,t,e)})).then(t,e)}),{unsafe:!0});try{delete Vc.constructor}catch(t){}jc&&jc(Vc,qc)}bc({global:!0,constructor:!0,wrap:!0,forced:Bc},{Promise:Kc}),Tc(Kc,Gc,!1),Ec(Gc);var la={},pa=la,ha=fe("iterator"),va=Array.prototype,da=Do,ya=Wt,ga=s,ba=la,ma=fe("iterator"),Oa=function(t){if(!ga(t))return ya(t,ma)||ya(t,"@@iterator")||ba[da(t)]},wa=lt,Sa=Gt,ja=at,Ta=Nt,Ea=Oa,Pa=TypeError,xa=lt,Aa=at,Ra=Wt,La=Wi,Ca=lt,Ia=at,ka=Nt,_a=function(t){return void 0!==t&&(pa.Array===t||va[ha]===t)},Na=wr,Da=dt,Fa=function(t,e){var n=arguments.length<2?Ea(t):e;if(Sa(n))return ja(wa(n,t));throw Pa(Ta(t)+" is not iterable")},Ma=Oa,Ga=function(t,e,n){var r,o;Aa(t);try{if(!(r=Ra(t,"return"))){if("throw"===e)throw n;return n}r=xa(r,t)}catch(t){o=!0,r=t}if("throw"===e)throw n;if(o)throw r;return Aa(r),n},Ba=TypeError,Ua=function(t,e){this.stopped=t,this.result=e},Wa=Ua.prototype,za=function(t,e,n){var r,o,i,u,c,a,f,s=n&&n.that,l=!(!n||!n.AS_ENTRIES),p=!(!n||!n.IS_RECORD),h=!(!n||!n.IS_ITERATOR),v=!(!n||!n.INTERRUPTED),d=La(e,s),y=function(t){return r&&Ga(r,"normal",t),new Ua(!0,t)},g=function(t){return l?(Ia(t),v?d(t[0],t[1],y):d(t[0],t[1])):v?d(t,y):d(t)};if(p)r=t.iterator;else if(h)r=t;else{if(!(o=Ma(t)))throw Ba(ka(t)+" is not iterable");if(_a(o)){for(i=0,u=Na(t);u>i;i++)if((c=g(t[i]))&&Da(Wa,c))return c;return new Ua(!1)}r=Fa(t,o)}for(a=p?t.next:r.next;!(f=Ca(a,r)).done;){try{c=g(f.value)}catch(t){Ga(r,"throw",t)}if("object"==typeof c&&c&&Da(Wa,c))return c}return new Ua(!1)},Ha=fe("iterator"),Va=!1;try{var Ka=0,qa={next:function(){return{done:!!Ka++}},return:function(){Va=!0}};qa[Ha]=function(){return this},Array.from(qa,(function(){throw 2}))}catch(t){}var Xa=function(t,e){if(!e&&!Va)return!1;var n=!1;try{var r={};r[Ha]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(t){}return n},Ya=Xu,Ja=sc.CONSTRUCTOR||!Xa((function(t){Ya.all(t).then(void 0,(function(){}))})),$a=lt,Qa=Gt,Za=lc,tf=qu,ef=za;fo({target:"Promise",stat:!0,forced:Ja},{all:function(t){var e=this,n=Za.f(e),r=n.resolve,o=n.reject,i=tf((function(){var n=Qa(e.resolve),i=[],u=0,c=1;ef(t,(function(t){var a=u++,f=!1;c++,$a(n,e,t).then((function(t){f||(f=!0,i[a]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise}});var nf=fo,rf=sc.CONSTRUCTOR,of=Xu,uf=vt,cf=L,af=ar,ff=of&&of.prototype;if(nf({target:"Promise",proto:!0,forced:rf,real:!0},{catch:function(t){return this.then(void 0,t)}}),cf(of)){var sf=uf("Promise").prototype.catch;ff.catch!==sf&&af(ff,"catch",sf,{unsafe:!0})}var lf=lt,pf=Gt,hf=lc,vf=qu,df=za;fo({target:"Promise",stat:!0,forced:Ja},{race:function(t){var e=this,n=hf.f(e),r=n.reject,o=vf((function(){var o=pf(e.resolve);df(t,(function(t){lf(o,e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}});var yf=lt,gf=lc;fo({target:"Promise",stat:!0,forced:sc.CONSTRUCTOR},{reject:function(t){var e=gf.f(this);return yf(e.reject,void 0,t),e.promise}});var bf=at,mf=J,Of=lc,wf=fo,Sf=sc.CONSTRUCTOR,jf=function(t,e){if(bf(t),mf(e)&&e.constructor===t)return e;var n=Of.f(t);return(0,n.resolve)(e),n.promise};vt("Promise"),wf({target:"Promise",stat:!0,forced:Sf},{resolve:function(t){return jf(this,t)}});var Tf=n,Ef=function(t,e){var n=[][t];return!!n&&Tf((function(){n.call(null,e||function(){return 1},1)}))},Pf=fo,xf=Vn,Af=Xn,Rf=Ef,Lf=f([].join);Pf({target:"Array",proto:!0,forced:xf!=Object||!Rf("join",",")},{join:function(t){return Lf(Af(this),void 0===t?",":t)}});var Cf={},If=r,kf=ot,_f=$,Nf=at,Df=Xn,Ff=po;Cf.f=If&&!kf?Object.defineProperties:function(t,e){Nf(t);for(var n,r=Df(e),o=Ff(e),i=o.length,u=0;i>u;)_f.f(t,n=o[u++],r[n]);return t};var Mf,Gf=at,Bf=Cf,Uf=kr,Wf=Ue,zf=zi,Hf=et,Vf="prototype",Kf="script",qf=Be("IE_PROTO"),Xf=function(){},Yf=function(t){return"<"+Kf+">"+t+"</"+Kf+">"},Jf=function(t){t.write(Yf("")),t.close();var e=t.parentWindow.Object;return t=null,e},$f=function(){try{Mf=new ActiveXObject("htmlfile")}catch(t){}var t,e,n;$f="undefined"!=typeof document?document.domain&&Mf?Jf(Mf):(e=Hf("iframe"),n="java"+Kf+":",e.style.display="none",zf.appendChild(e),e.src=String(n),(t=e.contentWindow.document).open(),t.write(Yf("document.F=Object")),t.close(),t.F):Jf(Mf);for(var r=Uf.length;r--;)delete $f[Vf][Uf[r]];return $f()};Wf[qf]=!0;var Qf=Object.create||function(t,e){var n;return null!==t?(Xf[Vf]=Gf(t),n=new Xf,Xf[Vf]=null,n[qf]=t):n=$f(),void 0===e?n:Bf.f(n,e)},Zf=fe,ts=Qf,es=$.f,ns=Zf("unscopables"),rs=Array.prototype;null==rs[ns]&&es(rs,ns,{configurable:!0,value:ts(null)});var os,is,us,cs=!n((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})),as=m,fs=L,ss=y,ls=cs,ps=Be("IE_PROTO"),hs=Object,vs=hs.prototype,ds=ls?hs.getPrototypeOf:function(t){var e=ss(t);if(as(e,ps))return e[ps];var n=e.constructor;return fs(n)&&e instanceof n?n.prototype:e instanceof hs?vs:null},ys=n,gs=L,bs=J,ms=ds,Os=ar,ws=fe("iterator"),Ss=!1;[].keys&&("next"in(us=[].keys())?(is=ms(ms(us)))!==Object.prototype&&(os=is):Ss=!0);var js=!bs(os)||ys((function(){var t={};return os[ws].call(t)!==t}));js&&(os={}),gs(os[ws])||Os(os,ws,(function(){return this}));var Ts={IteratorPrototype:os,BUGGY_SAFARI_ITERATORS:Ss},Es=Ts.IteratorPrototype,Ps=Qf,xs=_e,As=Qo,Rs=la,Ls=function(){return this},Cs=fo,Is=lt,ks=L,_s=function(t,e,n,r){var o=e+" Iterator";return t.prototype=Ps(Es,{next:xs(+!r,n)}),As(t,o,!1),Rs[o]=Ls,t},Ns=ds,Ds=Xo,Fs=Qo,Ms=Fe,Gs=ar,Bs=la,Us=E.PROPER,Ws=E.CONFIGURABLE,zs=Ts.IteratorPrototype,Hs=Ts.BUGGY_SAFARI_ITERATORS,Vs=fe("iterator"),Ks="keys",qs="values",Xs="entries",Ys=function(){return this},Js=function(t,e,n,r,o,i,u){_s(n,e,r);var c,a,f,s=function(t){if(t===o&&d)return d;if(!Hs&&t in h)return h[t];switch(t){case Ks:case qs:case Xs:return function(){return new n(this,t)}}return function(){return new n(this)}},l=e+" Iterator",p=!1,h=t.prototype,v=h[Vs]||h["@@iterator"]||o&&h[o],d=!Hs&&v||s(o),y="Array"==e&&h.entries||v;if(y&&(c=Ns(y.call(new t)))!==Object.prototype&&c.next&&(Ns(c)!==zs&&(Ds?Ds(c,zs):ks(c[Vs])||Gs(c,Vs,Ys)),Fs(c,l,!0)),Us&&o==qs&&v&&v.name!==qs&&(Ws?Ms(h,"name",qs):(p=!0,d=function(){return Is(v,this)})),o)if(a={values:s(qs),keys:i?d:s(Ks),entries:s(Xs)},u)for(f in a)(Hs||p||!(f in h))&&Gs(h,f,a[f]);else Cs({target:e,proto:!0,forced:Hs||p},a);return h[Vs]!==d&&Gs(h,Vs,d,{name:o}),Bs[e]=d,a},$s=function(t,e){return{value:t,done:e}},Qs=Xn,Zs=function(t){rs[ns][t]=!0},tl=la,el=en,nl=$.f,rl=Js,ol=$s,il=r,ul="Array Iterator",cl=el.set,al=el.getterFor(ul),fl=rl(Array,"Array",(function(t,e){cl(this,{type:ul,target:Qs(t),index:0,kind:e})}),(function(){var t=al(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,ol(void 0,!0)):ol("keys"==n?r:"values"==n?e[r]:[r,e[r]],!1)}),"values"),sl=tl.Arguments=tl.Array;if(Zs("keys"),Zs("values"),Zs("entries"),il&&"values"!==sl.name)try{nl(sl,"name",{value:"values"})}catch(t){}var ll=Do,pl=String,hl=function(t){if("Symbol"===ll(t))throw TypeError("Cannot convert a Symbol value to a string");return pl(t)},vl=f,dl=hr,yl=hl,gl=h,bl=vl("".charAt),ml=vl("".charCodeAt),Ol=vl("".slice),wl=function(t){return function(e,n){var r,o,i=yl(gl(e)),u=dl(n),c=i.length;return u<0||u>=c?t?"":void 0:(r=ml(i,u))<55296||r>56319||u+1===c||(o=ml(i,u+1))<56320||o>57343?t?bl(i,u):r:t?Ol(i,u,u+2):o-56320+(r-55296<<10)+65536}},Sl={codeAt:wl(!1),charAt:wl(!0)}.charAt,jl=hl,Tl=en,El=Js,Pl=$s,xl="String Iterator",Al=Tl.set,Rl=Tl.getterFor(xl);El(String,"String",(function(t){Al(this,{type:xl,string:jl(t),index:0})}),(function(){var t,e=Rl(this),n=e.string,r=e.index;return r>=n.length?Pl(void 0,!0):(t=Sl(n,r),e.index+=t.length,Pl(t,!1))}));var Ll={exports:{}},Cl={},Il=me,kl=$,_l=_e,Nl=gr,Dl=wr,Fl=function(t,e,n){var r=Il(e);r in t?kl.f(t,r,_l(0,n)):t[r]=n},Ml=Array,Gl=Math.max,Bl=Bn,Ul=Xn,Wl=fr.f,zl=function(t,e,n){for(var r=Dl(t),o=Nl(e,r),i=Nl(void 0===n?r:n,r),u=Ml(Gl(i-o,0)),c=0;o<i;o++,c++)Fl(u,c,t[o]);return u.length=c,u},Hl="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];Cl.f=function(t){return Hl&&"Window"==Bl(t)?function(t){try{return Wl(t)}catch(t){return zl(Hl)}}(t):Wl(Ul(t))};var Vl=n((function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}})),Kl=n,ql=J,Xl=Bn,Yl=Vl,Jl=Object.isExtensible,$l=Kl((function(){Jl(1)}))||Yl?function(t){return!!ql(t)&&((!Yl||"ArrayBuffer"!=Xl(t))&&(!Jl||Jl(t)))}:Jl,Ql=!n((function(){return Object.isExtensible(Object.preventExtensions({}))})),Zl=fo,tp=f,ep=Ue,np=J,rp=m,op=$.f,ip=fr,up=Cl,cp=$l,ap=Ql,fp=!1,sp=te("meta"),lp=0,pp=function(t){op(t,sp,{value:{objectID:"O"+lp++,weakData:{}}})},hp=Ll.exports={enable:function(){hp.enable=function(){},fp=!0;var t=ip.f,e=tp([].splice),n={};n[sp]=1,t(n).length&&(ip.f=function(n){for(var r=t(n),o=0,i=r.length;o<i;o++)if(r[o]===sp){e(r,o,1);break}return r},Zl({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:up.f}))},fastKey:function(t,e){if(!np(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!rp(t,sp)){if(!cp(t))return"F";if(!e)return"E";pp(t)}return t[sp].objectID},getWeakData:function(t,e){if(!rp(t,sp)){if(!cp(t))return!0;if(!e)return!1;pp(t)}return t[sp].weakData},onFreeze:function(t){return ap&&fp&&cp(t)&&!rp(t,sp)&&pp(t),t}};ep[sp]=!0;var vp=Ll.exports,dp=L,yp=J,gp=Xo,bp=fo,mp=I,Op=f,wp=eo,Sp=ar,jp=vp,Tp=za,Ep=ii,Pp=L,xp=s,Ap=J,Rp=n,Lp=Xa,Cp=Qo,Ip=function(t,e,n){var r,o;return gp&&dp(r=e.constructor)&&r!==n&&yp(o=r.prototype)&&o!==n.prototype&&gp(t,o),t},kp=ar,_p=Bn,Np=Array.isArray||function(t){return"Array"==_p(t)},Dp=ji,Fp=J,Mp=fe("species"),Gp=Array,Bp=function(t){var e;return Np(t)&&(e=t.constructor,(Dp(e)&&(e===Gp||Np(e.prototype))||Fp(e)&&null===(e=e[Mp]))&&(e=void 0)),void 0===e?Gp:e},Up=Wi,Wp=Vn,zp=y,Hp=wr,Vp=function(t,e){return new(Bp(t))(0===e?0:e)},Kp=f([].push),qp=function(t){var e=1==t,n=2==t,r=3==t,o=4==t,i=6==t,u=7==t,c=5==t||i;return function(a,f,s,l){for(var p,h,v=zp(a),d=Wp(v),y=Up(f,s),g=Hp(d),b=0,m=l||Vp,O=e?m(a,g):n||u?m(a,0):void 0;g>b;b++)if((c||b in d)&&(h=y(p=d[b],b,v),t))if(e)O[b]=h;else if(h)switch(t){case 3:return!0;case 5:return p;case 6:return b;case 2:Kp(O,p)}else switch(t){case 4:return!1;case 7:Kp(O,p)}return i?-1:r||o?o:O}},Xp={forEach:qp(0),map:qp(1),filter:qp(2),some:qp(3),every:qp(4),find:qp(5),findIndex:qp(6),filterReject:qp(7)},Yp=f,Jp=function(t,e,n){for(var r in e)kp(t,r,e[r],n);return t},$p=vp.getWeakData,Qp=ii,Zp=at,th=s,eh=J,nh=za,rh=m,oh=en.set,ih=en.getterFor,uh=Xp.find,ch=Xp.findIndex,ah=Yp([].splice),fh=0,sh=function(t){return t.frozen||(t.frozen=new lh)},lh=function(){this.entries=[]},ph=function(t,e){return uh(t.entries,(function(t){return t[0]===e}))};lh.prototype={get:function(t){var e=ph(this,t);if(e)return e[1]},has:function(t){return!!ph(this,t)},set:function(t,e){var n=ph(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=ch(this.entries,(function(e){return e[0]===t}));return~e&&ah(this.entries,e,1),!!~e}};var hh={getConstructor:function(t,e,n,r){var o=t((function(t,o){Qp(t,i),oh(t,{type:e,id:fh++,frozen:void 0}),th(o)||nh(o,t[r],{that:t,AS_ENTRIES:n})})),i=o.prototype,u=ih(e),c=function(t,e,n){var r=u(t),o=$p(Zp(e),!0);return!0===o?sh(r).set(e,n):o[r.id]=n,t};return Jp(i,{delete:function(t){var e=u(this);if(!eh(t))return!1;var n=$p(t);return!0===n?sh(e).delete(t):n&&rh(n,e.id)&&delete n[e.id]},has:function(t){var e=u(this);if(!eh(t))return!1;var n=$p(t);return!0===n?sh(e).has(t):n&&rh(n,e.id)}}),Jp(i,n?{get:function(t){var e=u(this);if(eh(t)){var n=$p(t);return!0===n?sh(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return c(this,t,e)}}:{add:function(t){return c(this,t,!0)}}),o}};(function(t,e,n){var r=-1!==t.indexOf("Map"),o=-1!==t.indexOf("Weak"),i=r?"set":"add",u=mp[t],c=u&&u.prototype,a=u,f={},s=function(t){var e=Op(c[t]);Sp(c,t,"add"==t?function(t){return e(this,0===t?0:t),this}:"delete"==t?function(t){return!(o&&!Ap(t))&&e(this,0===t?0:t)}:"get"==t?function(t){return o&&!Ap(t)?void 0:e(this,0===t?0:t)}:"has"==t?function(t){return!(o&&!Ap(t))&&e(this,0===t?0:t)}:function(t,n){return e(this,0===t?0:t,n),this})};if(wp(t,!Pp(u)||!(o||c.forEach&&!Rp((function(){(new u).entries().next()})))))a=n.getConstructor(e,t,r,i),jp.enable();else if(wp(t,!0)){var l=new a,p=l[i](o?{}:-0,1)!=l,h=Rp((function(){l.has(1)})),v=Lp((function(t){new u(t)})),d=!o&&Rp((function(){for(var t=new u,e=5;e--;)t[i](e,e);return!t.has(-0)}));v||((a=e((function(t,e){Ep(t,c);var n=Ip(new u,t,a);return xp(e)||Tp(e,n[i],{that:n,AS_ENTRIES:r}),n}))).prototype=c,c.constructor=a),(h||d)&&(s("delete"),s("has"),r&&s("get")),(d||p)&&s(i),o&&c.clear&&delete c.clear}f[t]=a,bp({global:!0,constructor:!0,forced:a!=u},f),Cp(a,t),o||n.setStrong(a,t,r)})("WeakSet",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),hh);var vh={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},dh=et("span").classList,yh=dh&&dh.constructor&&dh.constructor.prototype,gh=yh===Object.prototype?void 0:yh,bh=I,mh=vh,Oh=gh,wh=fl,Sh=Fe,jh=fe,Th=jh("iterator"),Eh=jh("toStringTag"),Ph=wh.values,xh=function(t,e){if(t){if(t[Th]!==Ph)try{Sh(t,Th,Ph)}catch(e){t[Th]=Ph}if(t[Eh]||Sh(t,Eh,e),mh[e])for(var n in wh)if(t[n]!==wh[n])try{Sh(t,n,wh[n])}catch(e){t[n]=wh[n]}}};for(var Ah in mh)xh(bh[Ah]&&bh[Ah].prototype,Ah);xh(Oh,"DOMTokenList");var Rh=Xp.forEach,Lh=I,Ch=vh,Ih=gh,kh=Ef("forEach")?[].forEach:function(t){return Rh(this,t,arguments.length>1?arguments[1]:void 0)},_h=Fe,Nh=function(t){if(t&&t.forEach!==kh)try{_h(t,"forEach",kh)}catch(e){t.forEach=kh}};for(var Dh in Ch)Ch[Dh]&&Nh(Lh[Dh]&&Lh[Dh].prototype);Nh(Ih);var Fh,Mh,Gh,Bh,Uh,Wh,zh,Hh,Vh,Kh,qh=y,Xh=po;function Yh(t,e,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(t):r?r.value:e.get(t)}function Jh(t){return"top"===t||"bottom"===t}function $h(t){return t[Mh.LEFT]+t[Mh.RIGHT]}function Qh(t){return t[Mh.TOP]+t[Mh.BOTTOM]}fo({target:"Object",stat:!0,forced:n((function(){Xh(1)}))},{keys:function(t){return Xh(qh(t))}}),function(t){t[t.SCROLL_NONE=0]="SCROLL_NONE",t[t.SCROLL_BACKWARD=1]="SCROLL_BACKWARD",t[t.SCROLL_FORWARD=2]="SCROLL_FORWARD"}(Fh||(Fh={})),function(t){t[t.TOP=0]="TOP",t[t.RIGHT=1]="RIGHT",t[t.BOTTOM=2]="BOTTOM",t[t.LEFT=3]="LEFT"}(Mh||(Mh={}));var Zh=".ch-plugin-calendar-label",tv={enabled:!0,dimensions:{width:0,height:0},position:"left",text:function(){return[]},padding:[0,0,0,0]},ev=function(){function e(t){var n,r;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),Gh.add(this),this.name="CalendarLabel";var o=null===(r=null===(n=null==t?void 0:t.options)||void 0===n?void 0:n.options)||void 0===r?void 0:r.subDomain;this.calendar=t,this.root=null,this.shown=!1,this.options=tv,this.computedOptions={radius:null==o?void 0:o.radius,width:null==o?void 0:o.width,height:null==o?void 0:o.height,gutter:null==o?void 0:o.gutter,textAlign:"start"}}var n,r,o;return n=e,(r=[{key:"setup",value:function(t){this.options=Object.assign(Object.assign({},tv),t)}},{key:"paint",value:function(){if(!this.options.enabled)return this.destroy();this.shown=!0;var t=this.calendar.calendarPainter.root;return this.root||(this.root=t.append("svg").attr("class",Zh.slice(1)).attr("data-key",this.options.key).attr("x",0).attr("y",0)),this.build(),Promise.resolve()}},{key:"destroy",value:function(){return null!==this.root&&(this.root.remove(),this.root=null),Promise.resolve()}},{key:"build",value:function(){var t=this;return Yh(this,Gh,"m",Bh).call(this),Yh(this,Gh,"m",Uh).call(this),this.root.selectAll("g").data(this.options.text).join((function(e){return e.append("g").call((function(e){return e.append("rect").attr("class","".concat(Zh.slice(1),"-bg")).attr("style","fill: transparent").call((function(e){return Yh(t,Gh,"m",Wh).call(t,e)}))})).call((function(e){return e.append("text").attr("class","".concat(Zh.slice(1),"-text")).attr("dominant-baseline","central").attr("text-anchor","middle").attr("style","fill: currentColor; font-size: 10px").call((function(e){return Yh(t,Gh,"m",zh).call(t,e)}))}))})),Promise.resolve()}}])&&t(n.prototype,r),o&&t(n,o),Object.defineProperty(n,"prototype",{writable:!1}),e}();Gh=new WeakSet,Bh=function(){var t=this;Object.keys(this.computedOptions).forEach((function(e){void 0!==t.options[e]&&(t.computedOptions[e]=t.options[e])}))},Uh=function(){var t=this.computedOptions,e=t.width,n=t.height,r=t.gutter,o=this.options,i=o.text,u=o.padding,c=o.position,a=i().length;this.options.dimensions={width:e+$h(u),height:n+Qh(u)},Jh(c)?this.options.dimensions.width+=(e+r)*(a-1):this.options.dimensions.height+=(n+r)*(a-1)},Wh=function(t){var e=this,n=this.computedOptions,r=n.width,o=n.height,i=n.radius;t.attr("width",r).attr("height",o).attr("rx",i&&i>0?i:null).attr("ry",i&&i>0?i:null).attr("x",(function(t,n){return Yh(e,Gh,"m",Vh).call(e,n)})).attr("y",(function(t,n){return Yh(e,Gh,"m",Kh).call(e,n)}))},zh=function(t){var e=this,n=this.computedOptions,r=n.height,o=n.textAlign;t.attr("text-anchor",o).attr("x",(function(t,n){return Yh(e,Gh,"m",Hh).call(e)+Yh(e,Gh,"m",Vh).call(e,n)})).attr("y",(function(t,n){return Yh(e,Gh,"m",Kh).call(e,n)+r/2})).text((function(t){return t}))},Hh=function(){var t=this.computedOptions,e=t.width;switch(t.textAlign){case"start":default:return 0;case"middle":return e/2;case"end":return e}},Vh=function(t){var e=this.options,n=e.position,r=e.padding,o=this.computedOptions,i=o.width,u=o.gutter;return function(t){return"left"===t||"right"===t}(n)?r[Mh.LEFT]:r[Mh.LEFT]+(i+u)*t},Kh=function(t){var e=this.options,n=e.position,r=e.padding,o=this.computedOptions,i=o.height,u=o.gutter;return Jh(n)?r[Mh.TOP]:r[Mh.TOP]+(i+u)*t};export{ev as default};//# sourceMappingURL=CalendarLabel.min.esm.js.map diff --git a/static/javascripts/cal-heatmap/plugins/CalendarLabel.min.esm.js.map b/static/javascripts/cal-heatmap/plugins/CalendarLabel.min.esm.js.map new file mode 100644 index 000000000..3b93735ca --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/CalendarLabel.min.esm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CalendarLabel.min.esm.js","sources":["../../node_modules/core-js/internals/fails.js","../../node_modules/core-js/internals/descriptors.js","../../node_modules/core-js/internals/function-bind-native.js","../../node_modules/core-js/internals/function-uncurry-this.js","../../node_modules/core-js/internals/is-null-or-undefined.js","../../node_modules/core-js/internals/require-object-coercible.js","../../node_modules/core-js/internals/to-object.js","../../node_modules/core-js/internals/has-own-property.js","../../node_modules/core-js/internals/function-name.js","../../node_modules/core-js/internals/document-all.js","../../node_modules/core-js/internals/is-callable.js","../../node_modules/core-js/internals/global.js","../../node_modules/core-js/internals/define-global-property.js","../../node_modules/core-js/internals/shared-store.js","../../node_modules/core-js/internals/inspect-source.js","../../node_modules/core-js/internals/engine-v8-version.js","../../node_modules/core-js/internals/weak-map-basic-detection.js","../../node_modules/core-js/internals/is-object.js","../../node_modules/core-js/internals/document-create-element.js","../../node_modules/core-js/internals/ie8-dom-define.js","../../node_modules/core-js/internals/v8-prototype-define-bug.js","../../node_modules/core-js/internals/an-object.js","../../node_modules/core-js/internals/function-call.js","../../node_modules/core-js/internals/get-built-in.js","../../node_modules/core-js/internals/object-is-prototype-of.js","../../node_modules/core-js/internals/engine-user-agent.js","../../node_modules/core-js/internals/symbol-constructor-detection.js","../../node_modules/core-js/internals/use-symbol-as-uid.js","../../node_modules/core-js/internals/is-symbol.js","../../node_modules/core-js/internals/try-to-string.js","../../node_modules/core-js/internals/a-callable.js","../../node_modules/core-js/internals/get-method.js","../../node_modules/core-js/internals/ordinary-to-primitive.js","../../node_modules/core-js/internals/shared.js","../../node_modules/core-js/internals/uid.js","../../node_modules/core-js/internals/well-known-symbol.js","../../node_modules/core-js/internals/to-primitive.js","../../node_modules/core-js/internals/to-property-key.js","../../node_modules/core-js/internals/object-define-property.js","../../node_modules/core-js/internals/create-property-descriptor.js","../../node_modules/core-js/internals/internal-state.js","../../node_modules/core-js/internals/create-non-enumerable-property.js","../../node_modules/core-js/internals/shared-key.js","../../node_modules/core-js/internals/hidden-keys.js","../../node_modules/core-js/internals/make-built-in.js","../../node_modules/core-js/internals/define-built-in-accessor.js","../../node_modules/core-js/modules/es.function.name.js","../../node_modules/core-js/internals/object-property-is-enumerable.js","../../node_modules/core-js/internals/classof-raw.js","../../node_modules/core-js/internals/indexed-object.js","../../node_modules/core-js/internals/to-indexed-object.js","../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../node_modules/core-js/internals/define-built-in.js","../../node_modules/core-js/internals/math-trunc.js","../../node_modules/core-js/internals/to-integer-or-infinity.js","../../node_modules/core-js/internals/to-absolute-index.js","../../node_modules/core-js/internals/to-length.js","../../node_modules/core-js/internals/length-of-array-like.js","../../node_modules/core-js/internals/array-includes.js","../../node_modules/core-js/internals/object-keys-internal.js","../../node_modules/core-js/internals/enum-bug-keys.js","../../node_modules/core-js/internals/object-get-own-property-names.js","../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../node_modules/core-js/internals/own-keys.js","../../node_modules/core-js/internals/copy-constructor-properties.js","../../node_modules/core-js/internals/is-forced.js","../../node_modules/core-js/internals/export.js","../../node_modules/core-js/internals/object-keys.js","../../node_modules/core-js/internals/object-assign.js","../../node_modules/core-js/modules/es.object.assign.js","../../node_modules/core-js/internals/to-string-tag-support.js","../../node_modules/core-js/internals/classof.js","../../node_modules/core-js/internals/object-to-string.js","../../node_modules/core-js/modules/es.object.to-string.js","../../node_modules/core-js/internals/engine-is-node.js","../../node_modules/core-js/internals/function-uncurry-this-accessor.js","../../node_modules/core-js/internals/a-possible-prototype.js","../../node_modules/core-js/internals/object-set-prototype-of.js","../../node_modules/core-js/internals/set-to-string-tag.js","../../node_modules/core-js/internals/set-species.js","../../node_modules/core-js/internals/an-instance.js","../../node_modules/core-js/internals/is-constructor.js","../../node_modules/core-js/internals/task.js","../../node_modules/core-js/internals/a-constructor.js","../../node_modules/core-js/internals/species-constructor.js","../../node_modules/core-js/internals/function-apply.js","../../node_modules/core-js/internals/function-uncurry-this-clause.js","../../node_modules/core-js/internals/function-bind-context.js","../../node_modules/core-js/internals/html.js","../../node_modules/core-js/internals/array-slice.js","../../node_modules/core-js/internals/validate-arguments-length.js","../../node_modules/core-js/internals/engine-is-ios.js","../../node_modules/core-js/internals/queue.js","../../node_modules/core-js/internals/microtask.js","../../node_modules/core-js/internals/engine-is-ios-pebble.js","../../node_modules/core-js/internals/engine-is-webos-webkit.js","../../node_modules/core-js/internals/perform.js","../../node_modules/core-js/internals/promise-native-constructor.js","../../node_modules/core-js/internals/engine-is-deno.js","../../node_modules/core-js/internals/engine-is-browser.js","../../node_modules/core-js/internals/promise-constructor-detection.js","../../node_modules/core-js/internals/new-promise-capability.js","../../node_modules/core-js/modules/es.promise.constructor.js","../../node_modules/core-js/internals/host-report-errors.js","../../node_modules/core-js/internals/iterators.js","../../node_modules/core-js/internals/is-array-iterator-method.js","../../node_modules/core-js/internals/get-iterator-method.js","../../node_modules/core-js/internals/get-iterator.js","../../node_modules/core-js/internals/iterator-close.js","../../node_modules/core-js/internals/iterate.js","../../node_modules/core-js/internals/check-correctness-of-iteration.js","../../node_modules/core-js/internals/promise-statics-incorrect-iteration.js","../../node_modules/core-js/modules/es.promise.all.js","../../node_modules/core-js/modules/es.promise.catch.js","../../node_modules/core-js/modules/es.promise.race.js","../../node_modules/core-js/modules/es.promise.reject.js","../../node_modules/core-js/internals/promise-resolve.js","../../node_modules/core-js/modules/es.promise.resolve.js","../../node_modules/core-js/internals/array-method-is-strict.js","../../node_modules/core-js/modules/es.array.join.js","../../node_modules/core-js/internals/object-define-properties.js","../../node_modules/core-js/internals/object-create.js","../../node_modules/core-js/internals/add-to-unscopables.js","../../node_modules/core-js/internals/iterators-core.js","../../node_modules/core-js/internals/correct-prototype-getter.js","../../node_modules/core-js/internals/object-get-prototype-of.js","../../node_modules/core-js/internals/iterator-create-constructor.js","../../node_modules/core-js/internals/iterator-define.js","../../node_modules/core-js/internals/create-iter-result-object.js","../../node_modules/core-js/modules/es.array.iterator.js","../../node_modules/core-js/internals/to-string.js","../../node_modules/core-js/internals/string-multibyte.js","../../node_modules/core-js/modules/es.string.iterator.js","../../node_modules/core-js/internals/create-property.js","../../node_modules/core-js/internals/array-slice-simple.js","../../node_modules/core-js/internals/object-get-own-property-names-external.js","../../node_modules/core-js/internals/array-buffer-non-extensible.js","../../node_modules/core-js/internals/object-is-extensible.js","../../node_modules/core-js/internals/freezing.js","../../node_modules/core-js/internals/internal-metadata.js","../../node_modules/core-js/internals/inherit-if-required.js","../../node_modules/core-js/internals/collection.js","../../node_modules/core-js/internals/define-built-ins.js","../../node_modules/core-js/internals/is-array.js","../../node_modules/core-js/internals/array-species-constructor.js","../../node_modules/core-js/internals/array-species-create.js","../../node_modules/core-js/internals/array-iteration.js","../../node_modules/core-js/internals/collection-weak.js","../../node_modules/core-js/modules/es.weak-set.constructor.js","../../node_modules/core-js/internals/dom-iterables.js","../../node_modules/core-js/internals/dom-token-list-prototype.js","../../node_modules/core-js/modules/web.dom-collections.iterator.js","../../node_modules/core-js/internals/array-for-each.js","../../node_modules/core-js/modules/web.dom-collections.for-each.js","../../node_modules/core-js/modules/es.object.keys.js","../../../src/constant.ts","../../node_modules/tslib/tslib.es6.js","../../../src/helpers/PositionHelper.ts","../../../src/plugins/CalendarLabel.ts"],"sourcesContent":["module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.30.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineBuiltInAccessor(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var classof = require('../internals/classof-raw');\n\nmodule.exports = typeof process != 'undefined' && classof(process) == 'process';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","module.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","module.exports = {};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: FORCED }, {\n join: function join(separator) {\n return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (state) {\n return state.frozen || (state.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) splice(this.entries, index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n defineBuiltIns(Prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && hasOwn(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && hasOwn(data, state.id);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return Constructor;\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.es/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","export enum ScrollDirection {\n SCROLL_NONE,\n SCROLL_BACKWARD,\n SCROLL_FORWARD,\n}\n\nexport enum Position {\n TOP,\n RIGHT,\n BOTTOM,\n LEFT,\n}\n\nexport const OPTIONS_DEFAULT_DOMAIN_TYPE = 'hour';\n\nexport const OPTIONS_DEFAULT_SUBDOMAIN_TYPE = 'minute';\nexport const OPTIONS_DEFAULT_SUBDOMAIN_WIDTH = 10;\nexport const OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT = 10;\nexport const OPTIONS_DEFAULT_SUBDOMAIN_GUTTER = 2;\nexport const OPTIONS_DEFAULT_SUBDOMAIN_RADIUS = 0;\nexport const OPTIONS_DEFAULT_ANIMATION_DURATION = 200;\nexport const OPTIONS_DEFAULT_RANGE = 12;\nexport const OPTIONS_DEFAULT_ITEM_SELECTOR = '#cal-heatmap';\nexport const OPTIONS_DEFAULT_THEME = 'light';\nexport const OPTIONS_DEFAULT_LOCALE = 'en';\n\nexport const SCALE_BASE_OPACITY_COLOR = 'red';\nexport const SCALE_BASE_COLOR_SCHEME = 'YlOrBr';\nexport const SCALE_BASE_COLOR_TYPE = 'quantize';\nexport const SCALE_BASE_COLOR_DOMAIN = [0, 100];\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport default {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __createBinding,\r\n __exportStar,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n __classPrivateFieldIn,\r\n};\r\n","import { Position } from '../constant';\nimport type { Padding } from '../options/Options';\n\nexport function isHorizontal(position: string): boolean {\n return position === 'left' || position === 'right';\n}\n\nexport function isVertical(position: string): boolean {\n return position === 'top' || position === 'bottom';\n}\n\nexport function horizontalPadding(padding: Padding): number {\n return padding[Position.LEFT] + padding[Position.RIGHT];\n}\n\nexport function verticalPadding(padding: Padding): number {\n return padding[Position.TOP] + padding[Position.BOTTOM];\n}\n","import { Position } from '../constant';\nimport {\n isHorizontal,\n isVertical,\n horizontalPadding,\n verticalPadding,\n} from '../helpers/PositionHelper';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport type { IPlugin, PluginOptions } from '../index';\nimport type { TextAlign, Padding } from '../options/Options';\n\ntype ComputedOptions = {\n radius: number;\n width: number;\n height: number;\n gutter: number;\n textAlign: TextAlign;\n};\n\ninterface CalendarLabelOptions extends PluginOptions, Partial<ComputedOptions> {\n enabled: boolean;\n text: () => string[];\n padding: Padding;\n}\n\nconst DEFAULT_SELECTOR = '.ch-plugin-calendar-label';\n\nconst defaultOptions: CalendarLabelOptions = {\n enabled: true,\n\n dimensions: {\n width: 0,\n height: 0,\n },\n\n position: 'left',\n\n text: () => [],\n\n padding: [0, 0, 0, 0],\n};\n\nexport default class CalendarLabel implements IPlugin {\n name = 'CalendarLabel';\n\n calendar: CalHeatmap;\n\n root: any;\n\n shown: boolean;\n\n options: CalendarLabelOptions;\n\n computedOptions: ComputedOptions;\n\n constructor(calendar: CalHeatmap) {\n const subDomain = calendar?.options?.options?.subDomain;\n\n this.calendar = calendar;\n this.root = null;\n this.shown = false;\n this.options = defaultOptions;\n this.computedOptions = {\n radius: subDomain?.radius,\n width: subDomain?.width,\n height: subDomain?.height,\n gutter: subDomain?.gutter,\n textAlign: 'start',\n };\n }\n\n setup(pluginOptions?: Partial<CalendarLabelOptions>): void {\n this.options = { ...defaultOptions, ...pluginOptions };\n }\n\n paint(): Promise<unknown> {\n const { enabled } = this.options;\n\n if (!enabled) {\n return this.destroy();\n }\n\n this.shown = true;\n\n const calendarRoot = this.calendar.calendarPainter.root;\n\n if (!this.root) {\n this.root = calendarRoot\n .append('svg')\n .attr('class', DEFAULT_SELECTOR.slice(1))\n .attr('data-key', this.options.key)\n .attr('x', 0)\n .attr('y', 0);\n }\n\n this.build();\n\n return Promise.resolve();\n }\n\n destroy(): Promise<unknown> {\n if (this.root !== null) {\n this.root.remove();\n this.root = null;\n }\n\n return Promise.resolve();\n }\n\n build() {\n this.#buildComputedOptions();\n this.#computeDimensions();\n\n this.root\n .selectAll('g')\n .data(this.options.text)\n .join((enter: any) => enter\n .append('g')\n .call((selection: any) => selection\n .append('rect')\n .attr('class', `${DEFAULT_SELECTOR.slice(1)}-bg`)\n .attr('style', 'fill: transparent')\n .call((s: any) => this.#setRectAttr(s)))\n .call((selection: any) => selection\n .append('text')\n .attr('class', `${DEFAULT_SELECTOR.slice(1)}-text`)\n .attr('dominant-baseline', 'central')\n .attr('text-anchor', 'middle')\n .attr('style', 'fill: currentColor; font-size: 10px')\n .call((s: any) => this.#setTextAttr(s))));\n\n return Promise.resolve();\n }\n\n #buildComputedOptions() {\n Object.keys(this.computedOptions).forEach((key: string) => {\n if (typeof this.options[key as keyof ComputedOptions] !== 'undefined') {\n // @ts-ignore\n this.computedOptions[key] = this.options[key];\n }\n });\n }\n\n /**\n * Compute the total dimension of the current plugin\n */\n #computeDimensions(): void {\n const { width, height, gutter } = this.computedOptions;\n const { text, padding, position } = this.options;\n const labelsCount = text().length;\n\n this.options.dimensions = {\n width: width + horizontalPadding(padding),\n height: height + verticalPadding(padding),\n };\n\n if (isVertical(position!)) {\n this.options.dimensions.width += (width + gutter) * (labelsCount - 1);\n } else {\n this.options.dimensions.height += (height + gutter) * (labelsCount - 1);\n }\n }\n\n #setRectAttr(selection: any) {\n const { width, height, radius } = this.computedOptions;\n\n selection\n .attr('width', width)\n .attr('height', height)\n .attr('rx', radius && radius > 0 ? radius : null)\n .attr('ry', radius && radius > 0 ? radius : null)\n .attr('x', (_d: string, i: number) => this.#getX(i))\n .attr('y', (_d: string, i: number) => this.#getY(i));\n }\n\n #setTextAttr(selection: any): void {\n const { height, textAlign } = this.computedOptions;\n\n selection\n .attr('text-anchor', textAlign)\n .attr(\n 'x',\n (_d: string, i: number) => this.#getTextXOffset() + this.#getX(i),\n )\n .attr('y', (_d: string, i: number) => this.#getY(i) + height! / 2)\n .text((data: string) => data);\n }\n\n #getTextXOffset() {\n const { width, textAlign } = this.computedOptions;\n\n switch (textAlign) {\n case 'start':\n return 0;\n case 'middle':\n return width / 2;\n case 'end':\n return width;\n default:\n return 0;\n }\n }\n\n #getX(index: number) {\n const { position, padding } = this.options;\n const { width, gutter } = this.computedOptions;\n\n if (isHorizontal(position!)) {\n return padding[Position.LEFT];\n }\n\n return padding[Position.LEFT] + (width + gutter) * index;\n }\n\n #getY(index: number) {\n const { position, padding } = this.options;\n const { height, gutter } = this.computedOptions;\n\n if (isVertical(position!)) {\n return padding[Position.TOP];\n }\n\n return padding[Position.TOP] + (height + gutter) * index;\n }\n}\n"],"names":["fails","exec","error","descriptors","require$$0","Object","defineProperty","get","functionBindNative","test","bind","hasOwnProperty","NATIVE_BIND","FunctionPrototype","Function","prototype","call","uncurryThisWithBind","functionUncurryThis","fn","apply","arguments","isNullOrUndefined","it","$TypeError","TypeError","requireObjectCoercible","$Object","toObject","argument","require$$1","hasOwnProperty_1","hasOwn","key","DESCRIPTORS","getDescriptor","getOwnPropertyDescriptor","EXISTS","functionName","PROPER","name","CONFIGURABLE","configurable","makeBuiltIn$3","exports","documentAll","document","all","documentAll_1","IS_HTMLDDA","undefined","isCallable","check","Math","global","globalThis","window","self","this","defineGlobalProperty","value","writable","SHARED","sharedStore","store","require$$2","functionToString","toString","inspectSource","match","version","WeakMap","weakMapBasicDetection","String","isObject","objectDefineProperty","createElement","documentCreateElement","ie8DomDefine","a","v8PrototypeDefineBug","$String","anObject","functionCall","getBuiltIn","namespace","method","length","objectIsPrototypeOf","isPrototypeOf","engineUserAgent","navigator","userAgent","process","Deno","versions","v8","split","engineV8Version","V8_VERSION","symbolConstructorDetection","getOwnPropertySymbols","symbol","Symbol","sham","useSymbolAsUid","iterator","isSymbol","require$$3","$Symbol","tryToString","aCallable","getMethod","V","P","func","shared$3","sharedModule","push","mode","copyright","license","source","uncurryThis","id","postfix","random","uid","shared","NATIVE_SYMBOL","require$$4","USE_SYMBOL_AS_UID","require$$5","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","wellKnownSymbol","ordinaryToPrimitive","input","pref","val","valueOf","TO_PRIMITIVE","toPrimitive","result","exoticToPrim","toPropertyKey","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","f","O","Attributes","current","enumerable","set","has","createPropertyDescriptor","bitmap","definePropertyModule","createNonEnumerableProperty","object","keys","sharedKey","hiddenKeys","NATIVE_WEAK_MAP","require$$6","require$$7","OBJECT_ALREADY_INITIALIZED","state","metadata","facade","STATE","internalState","enforce","getterFor","TYPE","type","CONFIGURABLE_FUNCTION_NAME","enforceInternalState","getInternalState","stringSlice","slice","replace","join","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","makeBuiltInModule","options","getter","setter","arity","constructor","defineBuiltInAccessor","target","descriptor","FUNCTION_NAME_EXISTS","nameRE","regExpExec","objectGetOwnPropertyDescriptor","objectPropertyIsEnumerable","$propertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","classofRaw","classof","indexedObject","IndexedObject","toIndexedObject","propertyIsEnumerableModule","defineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","ceil","floor","trunc","x","n","toIntegerOrInfinity","number","max","min","toAbsoluteIndex","index","integer","toLength","lengthOfArrayLike","obj","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","includes","indexOf","objectKeysInternal","names","i","enumBugKeys","internalObjectKeys","concat","objectGetOwnPropertyNames","getOwnPropertyNames","objectGetOwnPropertySymbols","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","isForced_1","copyConstructorProperties","exceptions","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","objectKeys","require$$8","$assign","assign","objectAssign","b","A","B","alphabet","forEach","chr","T","argumentsLength","S","j","toStringTagSupport","TO_STRING_TAG_SUPPORT","TO_STRING_TAG","CORRECT_ARGUMENTS","tag","tryGet","callee","engineIsNode","uncurryThisAccessor","aPossiblePrototype","objectSetPrototypeOf","setPrototypeOf","CORRECT_SETTER","Array","proto","__proto__","setToStringTag","TAG","SPECIES","anInstance","Prototype","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","$location","defer","channel","port","isConstructor","called","aConstructor","functionApply","Reflect","functionBindContext","that","html","arraySlice","engineIsIos","validateArgumentsLength","passed","required","IS_IOS","require$$10","IS_NODE","require$$11","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","location","run","runner","eventListener","event","globalPostMessageDefer","postMessage","protocol","host","handler","args","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","appendChild","removeChild","setTimeout","task","Queue","head","tail","add","item","entry","next","notify","toggle","node","promise","then","engineIsIosPebble","Pebble","engineIsWebosWebkit","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","Promise","queueMicrotaskDescriptor","microtask","flush","parent","domain","exit","enter","resolve","createTextNode","observe","characterData","microtask_1","perform","promiseNativeConstructor","engineIsDeno","engineIsBrowser","NativePromiseConstructor","IS_BROWSER","IS_DENO","require$$9","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","promiseConstructorDetection","CONSTRUCTOR","REJECTION_EVENT","newPromiseCapability$2","PromiseCapability","C","reject","$$resolve","$$reject","newPromiseCapability","Internal","OwnPromiseCapability","nativeThen","$","setSpecies","CONSTRUCTOR_NAME","Constructor","require$$12","speciesConstructor","defaultConstructor","require$$14","require$$15","hostReportErrors","console","require$$17","require$$18","InternalStateModule","require$$19","require$$20","newPromiseCapabilityModule","require$$22","PROMISE","require$$21","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","setInternalState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","ok","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","isUnhandled","emit","unwrap","internalReject","done","internalResolve","wrapper","executor","onFulfilled","onRejected","PromiseWrapper","wrap","iterators","Iterators","ITERATOR","ArrayPrototype","getIteratorMethod","isArrayIteratorMethod","getIterator","usingIterator","iteratorMethod","iteratorClose","kind","innerResult","innerError","Result","stopped","ResultPrototype","iterate","iterable","unboundFunction","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","SAFE_CLOSING","iteratorWithReturn","return","from","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","promiseStaticsIncorrectIteration","capability","$promiseResolve","values","remaining","alreadyCalled","real","catch","race","r","promiseResolve","promiseCapability","arrayMethodIsStrict","METHOD_NAME","nativeJoin","separator","objectDefineProperties","defineProperties","Properties","props","activeXDocument","definePropertiesModule","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","style","display","src","contentWindow","open","F","objectCreate","create","UNSCOPABLES","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","correctPrototypeGetter","getPrototypeOf","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","objectGetPrototypeOf","BUGGY_SAFARI_ITERATORS","NEW_ITERATOR_PROTOTYPE","iteratorsCore","returnThis","createIteratorConstructor","IteratorConstructor","NAME","ENUMERABLE_NEXT","PROPER_FUNCTION_NAME","require$$13","KEYS","VALUES","ENTRIES","iteratorDefine","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","createIterResultObject","addToUnscopables","defineIterator","ARRAY_ITERATOR","es_array_iterator","iterated","Arguments","charAt","charCodeAt","CONVERT_TO_STRING","pos","first","second","position","size","codeAt","STRING_ITERATOR","point","internalMetadata","objectGetOwnPropertyNamesExternal","createProperty","propertyKey","$Array","$getOwnPropertyNames","start","end","k","fin","windowNames","getWindowNames","arrayBufferNonExtensible","ArrayBuffer","buffer","isExtensible","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","objectIsExtensible","freezing","preventExtensions","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","meta","internalMetadataModule","enable","splice","fastKey","getWeakData","onFreeze","InternalMetadataModule","inheritIfRequired","dummy","Wrapper","NewTarget","NewTargetPrototype","isArray","arraySpeciesConstructor","originalArray","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","boundFunction","arrayIteration","map","filter","some","every","find","findIndex","filterReject","defineBuiltIns","internalStateGetterFor","uncaughtFrozenStore","frozen","UncaughtFrozenStore","findUncaughtFrozen","delete","collectionWeak","getConstructor","ADDER","define","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setStrong","collection","init","domIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","classList","DOMTokenListPrototype","domTokenListPrototype","DOMIterables","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","$forEach","ScrollDirection","Position","nativeKeys","__classPrivateFieldGet","receiver","isVertical","horizontalPadding","padding","LEFT","RIGHT","verticalPadding","TOP","BOTTOM","DEFAULT_SELECTOR","defaultOptions","enabled","dimensions","width","height","text","CalendarLabel","calendar","_classCallCheck","subDomain","_b","_a","root","shown","computedOptions","radius","gutter","textAlign","pluginOptions","destroy","calendarRoot","calendarPainter","append","attr","build","remove","_this","_CalendarLabel_instances","_CalendarLabel_buildComputedOptions","_CalendarLabel_computeDimensions","selectAll","selection","s","_CalendarLabel_setRectAttr","_CalendarLabel_setTextAttr","_this2","_this$computedOptions","_this$options","labelsCount","_this3","_this$computedOptions2","_d","_CalendarLabel_getX","_this4","_this$computedOptions3","_CalendarLabel_getY","_CalendarLabel_getTextXOffset","_this$computedOptions4","_this$options2","_this$computedOptions5","isHorizontal","_this$options3","_this$computedOptions6"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,156]} \ No newline at end of file diff --git a/static/javascripts/cal-heatmap/plugins/CalendarLabel.min.js b/static/javascripts/cal-heatmap/plugins/CalendarLabel.min.js new file mode 100644 index 000000000..b3f439a85 --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/CalendarLabel.min.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).CalendarLabel=e()}(this,(function(){"use strict";function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,(o=r.key,i=void 0,"symbol"==typeof(i=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(o,"string"))?i:String(i)),r)}var o,i}var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=function(t){try{return!!t()}catch(t){return!0}},r=!n((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),o=!n((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})),i=o,u=Function.prototype,c=u.call,a=i&&u.bind.bind(c,c),f=i?a:function(t){return function(){return c.apply(t,arguments)}},s=function(t){return null==t},l=s,p=TypeError,h=function(t){if(l(t))throw p("Can't call method on "+t);return t},d=h,v=Object,y=function(t){return v(d(t))},g=y,b=f({}.hasOwnProperty),m=Object.hasOwn||function(t,e){return b(g(t),e)},O=r,w=m,S=Function.prototype,j=O&&Object.getOwnPropertyDescriptor,T=w(S,"name"),E={EXISTS:T,PROPER:T&&"something"===function(){}.name,CONFIGURABLE:T&&(!O||O&&j(S,"name").configurable)},P={exports:{}},x="object"==typeof document&&document.all,A={all:x,IS_HTMLDDA:void 0===x&&void 0!==x},L=A.all,R=A.IS_HTMLDDA?function(t){return"function"==typeof t||t===L}:function(t){return"function"==typeof t},C=function(t){return t&&t.Math==Math&&t},I=C("object"==typeof globalThis&&globalThis)||C("object"==typeof window&&window)||C("object"==typeof self&&self)||C("object"==typeof e&&e)||function(){return this}()||e||Function("return this")(),k=I,_=Object.defineProperty,N=function(t,e){try{_(k,t,{value:e,configurable:!0,writable:!0})}catch(n){k[t]=e}return e},D=N,F="__core-js_shared__",M=I[F]||D(F,{}),G=R,B=M,U=f(Function.toString);G(B.inspectSource)||(B.inspectSource=function(t){return U(t)});var W,z,H=B.inspectSource,V=R,K=I.WeakMap,q=V(K)&&/native code/.test(String(K)),X=R,Y=A.all,J=A.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:X(t)||t===Y}:function(t){return"object"==typeof t?null!==t:X(t)},$={},Q=J,Z=I.document,tt=Q(Z)&&Q(Z.createElement),et=function(t){return tt?Z.createElement(t):{}},nt=et,rt=!r&&!n((function(){return 7!=Object.defineProperty(nt("div"),"a",{get:function(){return 7}}).a})),ot=r&&n((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),it=J,ut=String,ct=TypeError,at=function(t){if(it(t))return t;throw ct(ut(t)+" is not an object")},ft=o,st=Function.prototype.call,lt=ft?st.bind(st):function(){return st.apply(st,arguments)},pt=I,ht=R,dt=function(t,e){return arguments.length<2?(n=pt[t],ht(n)?n:void 0):pt[t]&&pt[t][e];var n},vt=f({}.isPrototypeOf),yt="undefined"!=typeof navigator&&String(navigator.userAgent)||"",gt=I,bt=yt,mt=gt.process,Ot=gt.Deno,wt=mt&&mt.versions||Ot&&Ot.version,St=wt&&wt.v8;St&&(z=(W=St.split("."))[0]>0&&W[0]<4?1:+(W[0]+W[1])),!z&&bt&&(!(W=bt.match(/Edge\/(\d+)/))||W[1]>=74)&&(W=bt.match(/Chrome\/(\d+)/))&&(z=+W[1]);var jt=z,Tt=jt,Et=n,Pt=I.String,xt=!!Object.getOwnPropertySymbols&&!Et((function(){var t=Symbol();return!Pt(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&Tt&&Tt<41})),At=xt&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Lt=dt,Rt=R,Ct=vt,It=Object,kt=At?function(t){return"symbol"==typeof t}:function(t){var e=Lt("Symbol");return Rt(e)&&Ct(e.prototype,It(t))},_t=String,Nt=function(t){try{return _t(t)}catch(t){return"Object"}},Dt=R,Ft=Nt,Mt=TypeError,Gt=function(t){if(Dt(t))return t;throw Mt(Ft(t)+" is not a function")},Bt=Gt,Ut=s,Wt=function(t,e){var n=t[e];return Ut(n)?void 0:Bt(n)},zt=lt,Ht=R,Vt=J,Kt=TypeError,qt={exports:{}},Xt=M;(qt.exports=function(t,e){return Xt[t]||(Xt[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.30.2",mode:"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE",source:"https://github.com/zloirock/core-js"});var Yt=qt.exports,Jt=f,$t=0,Qt=Math.random(),Zt=Jt(1..toString),te=function(t){return"Symbol("+(void 0===t?"":t)+")_"+Zt(++$t+Qt,36)},ee=Yt,ne=m,re=te,oe=xt,ie=At,ue=I.Symbol,ce=ee("wks"),ae=ie?ue.for||ue:ue&&ue.withoutSetter||re,fe=function(t){return ne(ce,t)||(ce[t]=oe&&ne(ue,t)?ue[t]:ae("Symbol."+t)),ce[t]},se=lt,le=J,pe=kt,he=Wt,de=function(t,e){var n,r;if("string"===e&&Ht(n=t.toString)&&!Vt(r=zt(n,t)))return r;if(Ht(n=t.valueOf)&&!Vt(r=zt(n,t)))return r;if("string"!==e&&Ht(n=t.toString)&&!Vt(r=zt(n,t)))return r;throw Kt("Can't convert object to primitive value")},ve=TypeError,ye=fe("toPrimitive"),ge=function(t,e){if(!le(t)||pe(t))return t;var n,r=he(t,ye);if(r){if(void 0===e&&(e="default"),n=se(r,t,e),!le(n)||pe(n))return n;throw ve("Can't convert object to primitive value")}return void 0===e&&(e="number"),de(t,e)},be=kt,me=function(t){var e=ge(t,"string");return be(e)?e:e+""},Oe=r,we=rt,Se=ot,je=at,Te=me,Ee=TypeError,Pe=Object.defineProperty,xe=Object.getOwnPropertyDescriptor,Ae="enumerable",Le="configurable",Re="writable";$.f=Oe?Se?function(t,e,n){if(je(t),e=Te(e),je(n),"function"==typeof t&&"prototype"===e&&"value"in n&&Re in n&&!n[Re]){var r=xe(t,e);r&&r[Re]&&(t[e]=n.value,n={configurable:Le in n?n[Le]:r[Le],enumerable:Ae in n?n[Ae]:r[Ae],writable:!1})}return Pe(t,e,n)}:Pe:function(t,e,n){if(je(t),e=Te(e),je(n),we)try{return Pe(t,e,n)}catch(t){}if("get"in n||"set"in n)throw Ee("Accessors not supported");return"value"in n&&(t[e]=n.value),t};var Ce,Ie,ke,_e=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},Ne=$,De=_e,Fe=r?function(t,e,n){return Ne.f(t,e,De(1,n))}:function(t,e,n){return t[e]=n,t},Me=te,Ge=Yt("keys"),Be=function(t){return Ge[t]||(Ge[t]=Me(t))},Ue={},We=q,ze=I,He=J,Ve=Fe,Ke=m,qe=M,Xe=Be,Ye=Ue,Je="Object already initialized",$e=ze.TypeError,Qe=ze.WeakMap;if(We||qe.state){var Ze=qe.state||(qe.state=new Qe);Ze.get=Ze.get,Ze.has=Ze.has,Ze.set=Ze.set,Ce=function(t,e){if(Ze.has(t))throw $e(Je);return e.facade=t,Ze.set(t,e),e},Ie=function(t){return Ze.get(t)||{}},ke=function(t){return Ze.has(t)}}else{var tn=Xe("state");Ye[tn]=!0,Ce=function(t,e){if(Ke(t,tn))throw $e(Je);return e.facade=t,Ve(t,tn,e),e},Ie=function(t){return Ke(t,tn)?t[tn]:{}},ke=function(t){return Ke(t,tn)}}var en={set:Ce,get:Ie,has:ke,enforce:function(t){return ke(t)?Ie(t):Ce(t,{})},getterFor:function(t){return function(e){var n;if(!He(e)||(n=Ie(e)).type!==t)throw $e("Incompatible receiver, "+t+" required");return n}}},nn=f,rn=n,on=R,un=m,cn=r,an=E.CONFIGURABLE,fn=H,sn=en.enforce,ln=en.get,pn=String,hn=Object.defineProperty,dn=nn("".slice),vn=nn("".replace),yn=nn([].join),gn=cn&&!rn((function(){return 8!==hn((function(){}),"length",{value:8}).length})),bn=String(String).split("String"),mn=P.exports=function(t,e,n){"Symbol("===dn(pn(e),0,7)&&(e="["+vn(pn(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!un(t,"name")||an&&t.name!==e)&&(cn?hn(t,"name",{value:e,configurable:!0}):t.name=e),gn&&n&&un(n,"arity")&&t.length!==n.arity&&hn(t,"length",{value:n.arity});try{n&&un(n,"constructor")&&n.constructor?cn&&hn(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=sn(t);return un(r,"source")||(r.source=yn(bn,"string"==typeof e?e:"")),t};Function.prototype.toString=mn((function(){return on(this)&&ln(this).source||fn(this)}),"toString");var On=P.exports,wn=On,Sn=$,jn=function(t,e,n){return n.get&&wn(n.get,e,{getter:!0}),n.set&&wn(n.set,e,{setter:!0}),Sn.f(t,e,n)},Tn=r,En=E.EXISTS,Pn=f,xn=jn,An=Function.prototype,Ln=Pn(An.toString),Rn=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,Cn=Pn(Rn.exec);Tn&&!En&&xn(An,"name",{configurable:!0,get:function(){try{return Cn(Rn,Ln(this))[1]}catch(t){return""}}});var In={},kn={},_n={}.propertyIsEnumerable,Nn=Object.getOwnPropertyDescriptor,Dn=Nn&&!_n.call({1:2},1);kn.f=Dn?function(t){var e=Nn(this,t);return!!e&&e.enumerable}:_n;var Fn=f,Mn=Fn({}.toString),Gn=Fn("".slice),Bn=function(t){return Gn(Mn(t),8,-1)},Un=n,Wn=Bn,zn=Object,Hn=f("".split),Vn=Un((function(){return!zn("z").propertyIsEnumerable(0)}))?function(t){return"String"==Wn(t)?Hn(t,""):zn(t)}:zn,Kn=Vn,qn=h,Xn=function(t){return Kn(qn(t))},Yn=r,Jn=lt,$n=kn,Qn=_e,Zn=Xn,tr=me,er=m,nr=rt,rr=Object.getOwnPropertyDescriptor;In.f=Yn?rr:function(t,e){if(t=Zn(t),e=tr(e),nr)try{return rr(t,e)}catch(t){}if(er(t,e))return Qn(!Jn($n.f,t,e),t[e])};var or=R,ir=$,ur=On,cr=N,ar=function(t,e,n,r){r||(r={});var o=r.enumerable,i=void 0!==r.name?r.name:e;if(or(n)&&ur(n,i,r),r.global)o?t[e]=n:cr(e,n);else{try{r.unsafe?t[e]&&(o=!0):delete t[e]}catch(t){}o?t[e]=n:ir.f(t,e,{value:n,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return t},fr={},sr=Math.ceil,lr=Math.floor,pr=Math.trunc||function(t){var e=+t;return(e>0?lr:sr)(e)},hr=function(t){var e=+t;return e!=e||0===e?0:pr(e)},dr=hr,vr=Math.max,yr=Math.min,gr=function(t,e){var n=dr(t);return n<0?vr(n+e,0):yr(n,e)},br=hr,mr=Math.min,Or=function(t){return t>0?mr(br(t),9007199254740991):0},wr=function(t){return Or(t.length)},Sr=Xn,jr=gr,Tr=wr,Er=function(t){return function(e,n,r){var o,i=Sr(e),u=Tr(i),c=jr(r,u);if(t&&n!=n){for(;u>c;)if((o=i[c++])!=o)return!0}else for(;u>c;c++)if((t||c in i)&&i[c]===n)return t||c||0;return!t&&-1}},Pr={includes:Er(!0),indexOf:Er(!1)},xr=m,Ar=Xn,Lr=Pr.indexOf,Rr=Ue,Cr=f([].push),Ir=function(t,e){var n,r=Ar(t),o=0,i=[];for(n in r)!xr(Rr,n)&&xr(r,n)&&Cr(i,n);for(;e.length>o;)xr(r,n=e[o++])&&(~Lr(i,n)||Cr(i,n));return i},kr=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],_r=Ir,Nr=kr.concat("length","prototype");fr.f=Object.getOwnPropertyNames||function(t){return _r(t,Nr)};var Dr={};Dr.f=Object.getOwnPropertySymbols;var Fr=dt,Mr=fr,Gr=Dr,Br=at,Ur=f([].concat),Wr=Fr("Reflect","ownKeys")||function(t){var e=Mr.f(Br(t)),n=Gr.f;return n?Ur(e,n(t)):e},zr=m,Hr=Wr,Vr=In,Kr=$,qr=n,Xr=R,Yr=/#|\.prototype\./,Jr=function(t,e){var n=Qr[$r(t)];return n==to||n!=Zr&&(Xr(e)?qr(e):!!e)},$r=Jr.normalize=function(t){return String(t).replace(Yr,".").toLowerCase()},Qr=Jr.data={},Zr=Jr.NATIVE="N",to=Jr.POLYFILL="P",eo=Jr,no=I,ro=In.f,oo=Fe,io=ar,uo=N,co=function(t,e,n){for(var r=Hr(e),o=Kr.f,i=Vr.f,u=0;u<r.length;u++){var c=r[u];zr(t,c)||n&&zr(n,c)||o(t,c,i(e,c))}},ao=eo,fo=function(t,e){var n,r,o,i,u,c=t.target,a=t.global,f=t.stat;if(n=a?no:f?no[c]||uo(c,{}):(no[c]||{}).prototype)for(r in e){if(i=e[r],o=t.dontCallGetSet?(u=ro(n,r))&&u.value:n[r],!ao(a?r:c+(f?".":"#")+r,t.forced)&&void 0!==o){if(typeof i==typeof o)continue;co(i,o)}(t.sham||o&&o.sham)&&oo(i,"sham",!0),io(n,r,i,t)}},so=Ir,lo=kr,po=Object.keys||function(t){return so(t,lo)},ho=r,vo=f,yo=lt,go=n,bo=po,mo=Dr,Oo=kn,wo=y,So=Vn,jo=Object.assign,To=Object.defineProperty,Eo=vo([].concat),Po=!jo||go((function(){if(ho&&1!==jo({b:1},jo(To({},"a",{enumerable:!0,get:function(){To(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach((function(t){e[t]=t})),7!=jo({},t)[n]||bo(jo({},e)).join("")!=r}))?function(t,e){for(var n=wo(t),r=arguments.length,o=1,i=mo.f,u=Oo.f;r>o;)for(var c,a=So(arguments[o++]),f=i?Eo(bo(a),i(a)):bo(a),s=f.length,l=0;s>l;)c=f[l++],ho&&!yo(u,a,c)||(n[c]=a[c]);return n}:jo,xo=Po;fo({target:"Object",stat:!0,arity:2,forced:Object.assign!==xo},{assign:xo});var Ao={};Ao[fe("toStringTag")]="z";var Lo="[object z]"===String(Ao),Ro=Lo,Co=R,Io=Bn,ko=fe("toStringTag"),_o=Object,No="Arguments"==Io(function(){return arguments}()),Do=Ro?Io:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=_o(t),ko))?n:No?Io(e):"Object"==(r=Io(e))&&Co(e.callee)?"Arguments":r},Fo=Do,Mo=Lo?{}.toString:function(){return"[object "+Fo(this)+"]"};Lo||ar(Object.prototype,"toString",Mo,{unsafe:!0});var Go="undefined"!=typeof process&&"process"==Bn(process),Bo=f,Uo=Gt,Wo=R,zo=String,Ho=TypeError,Vo=function(t,e,n){try{return Bo(Uo(Object.getOwnPropertyDescriptor(t,e)[n]))}catch(t){}},Ko=at,qo=function(t){if("object"==typeof t||Wo(t))return t;throw Ho("Can't set "+zo(t)+" as a prototype")},Xo=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=Vo(Object.prototype,"__proto__","set"))(n,[]),e=n instanceof Array}catch(t){}return function(n,r){return Ko(n),qo(r),e?t(n,r):n.__proto__=r,n}}():void 0),Yo=$.f,Jo=m,$o=fe("toStringTag"),Qo=function(t,e,n){t&&!n&&(t=t.prototype),t&&!Jo(t,$o)&&Yo(t,$o,{configurable:!0,value:e})},Zo=dt,ti=jn,ei=r,ni=fe("species"),ri=vt,oi=TypeError,ii=function(t,e){if(ri(e,t))return t;throw oi("Incorrect invocation")},ui=f,ci=n,ai=R,fi=Do,si=H,li=function(){},pi=[],hi=dt("Reflect","construct"),di=/^\s*(?:class|function)\b/,vi=ui(di.exec),yi=!di.exec(li),gi=function(t){if(!ai(t))return!1;try{return hi(li,pi,t),!0}catch(t){return!1}},bi=function(t){if(!ai(t))return!1;switch(fi(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return yi||!!vi(di,si(t))}catch(t){return!0}};bi.sham=!0;var mi,Oi,wi,Si,ji=!hi||ci((function(){var t;return gi(gi.call)||!gi(Object)||!gi((function(){t=!0}))||t}))?bi:gi,Ti=ji,Ei=Nt,Pi=TypeError,xi=at,Ai=function(t){if(Ti(t))return t;throw Pi(Ei(t)+" is not a constructor")},Li=s,Ri=fe("species"),Ci=o,Ii=Function.prototype,ki=Ii.apply,_i=Ii.call,Ni="object"==typeof Reflect&&Reflect.apply||(Ci?_i.bind(ki):function(){return _i.apply(ki,arguments)}),Di=Bn,Fi=f,Mi=function(t){if("Function"===Di(t))return Fi(t)},Gi=Gt,Bi=o,Ui=Mi(Mi.bind),Wi=function(t,e){return Gi(t),void 0===e?t:Bi?Ui(t,e):function(){return t.apply(e,arguments)}},zi=dt("document","documentElement"),Hi=f([].slice),Vi=TypeError,Ki=/(?:ipad|iphone|ipod).*applewebkit/i.test(yt),qi=I,Xi=Ni,Yi=Wi,Ji=R,$i=m,Qi=n,Zi=zi,tu=Hi,eu=et,nu=function(t,e){if(t<e)throw Vi("Not enough arguments");return t},ru=Ki,ou=Go,iu=qi.setImmediate,uu=qi.clearImmediate,cu=qi.process,au=qi.Dispatch,fu=qi.Function,su=qi.MessageChannel,lu=qi.String,pu=0,hu={},du="onreadystatechange";Qi((function(){mi=qi.location}));var vu=function(t){if($i(hu,t)){var e=hu[t];delete hu[t],e()}},yu=function(t){return function(){vu(t)}},gu=function(t){vu(t.data)},bu=function(t){qi.postMessage(lu(t),mi.protocol+"//"+mi.host)};iu&&uu||(iu=function(t){nu(arguments.length,1);var e=Ji(t)?t:fu(t),n=tu(arguments,1);return hu[++pu]=function(){Xi(e,void 0,n)},Oi(pu),pu},uu=function(t){delete hu[t]},ou?Oi=function(t){cu.nextTick(yu(t))}:au&&au.now?Oi=function(t){au.now(yu(t))}:su&&!ru?(Si=(wi=new su).port2,wi.port1.onmessage=gu,Oi=Yi(Si.postMessage,Si)):qi.addEventListener&&Ji(qi.postMessage)&&!qi.importScripts&&mi&&"file:"!==mi.protocol&&!Qi(bu)?(Oi=bu,qi.addEventListener("message",gu,!1)):Oi=du in eu("script")?function(t){Zi.appendChild(eu("script"))[du]=function(){Zi.removeChild(this),vu(t)}}:function(t){setTimeout(yu(t),0)});var mu={set:iu,clear:uu},Ou=function(){this.head=null,this.tail=null};Ou.prototype={add:function(t){var e={item:t,next:null},n=this.tail;n?n.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}};var wu,Su,ju,Tu,Eu,Pu=Ou,xu=/ipad|iphone|ipod/i.test(yt)&&"undefined"!=typeof Pebble,Au=/web0s(?!.*chrome)/i.test(yt),Lu=I,Ru=Wi,Cu=In.f,Iu=mu.set,ku=Pu,_u=Ki,Nu=xu,Du=Au,Fu=Go,Mu=Lu.MutationObserver||Lu.WebKitMutationObserver,Gu=Lu.document,Bu=Lu.process,Uu=Lu.Promise,Wu=Cu(Lu,"queueMicrotask"),zu=Wu&&Wu.value;if(!zu){var Hu=new ku,Vu=function(){var t,e;for(Fu&&(t=Bu.domain)&&t.exit();e=Hu.get();)try{e()}catch(t){throw Hu.head&&wu(),t}t&&t.enter()};_u||Fu||Du||!Mu||!Gu?!Nu&&Uu&&Uu.resolve?((Tu=Uu.resolve(void 0)).constructor=Uu,Eu=Ru(Tu.then,Tu),wu=function(){Eu(Vu)}):Fu?wu=function(){Bu.nextTick(Vu)}:(Iu=Ru(Iu,Lu),wu=function(){Iu(Vu)}):(Su=!0,ju=Gu.createTextNode(""),new Mu(Vu).observe(ju,{characterData:!0}),wu=function(){ju.data=Su=!Su}),zu=function(t){Hu.head||wu(),Hu.add(t)}}var Ku=zu,qu=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},Xu=I.Promise,Yu="object"==typeof Deno&&Deno&&"object"==typeof Deno.version,Ju=!Yu&&!Go&&"object"==typeof window&&"object"==typeof document,$u=I,Qu=Xu,Zu=R,tc=eo,ec=H,nc=fe,rc=Ju,oc=Yu,ic=jt;Qu&&Qu.prototype;var uc=nc("species"),cc=!1,ac=Zu($u.PromiseRejectionEvent),fc=tc("Promise",(function(){var t=ec(Qu),e=t!==String(Qu);if(!e&&66===ic)return!0;if(!ic||ic<51||!/native code/.test(t)){var n=new Qu((function(t){t(1)})),r=function(t){t((function(){}),(function(){}))};if((n.constructor={})[uc]=r,!(cc=n.then((function(){}))instanceof r))return!0}return!e&&(rc||oc)&&!ac})),sc={CONSTRUCTOR:fc,REJECTION_EVENT:ac,SUBCLASSING:cc},lc={},pc=Gt,hc=TypeError,dc=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw hc("Bad Promise constructor");e=t,n=r})),this.resolve=pc(e),this.reject=pc(n)};lc.f=function(t){return new dc(t)};var vc,yc,gc,bc=fo,mc=Go,Oc=I,wc=lt,Sc=ar,jc=Xo,Tc=Qo,Ec=function(t){var e=Zo(t);ei&&e&&!e[ni]&&ti(e,ni,{configurable:!0,get:function(){return this}})},Pc=Gt,xc=R,Ac=J,Lc=ii,Rc=function(t,e){var n,r=xi(t).constructor;return void 0===r||Li(n=xi(r)[Ri])?e:Ai(n)},Cc=mu.set,Ic=Ku,kc=function(t,e){try{1==arguments.length?console.error(t):console.error(t,e)}catch(t){}},_c=qu,Nc=Pu,Dc=en,Fc=Xu,Mc=lc,Gc="Promise",Bc=sc.CONSTRUCTOR,Uc=sc.REJECTION_EVENT,Wc=sc.SUBCLASSING,zc=Dc.getterFor(Gc),Hc=Dc.set,Vc=Fc&&Fc.prototype,Kc=Fc,qc=Vc,Xc=Oc.TypeError,Yc=Oc.document,Jc=Oc.process,$c=Mc.f,Qc=$c,Zc=!!(Yc&&Yc.createEvent&&Oc.dispatchEvent),ta="unhandledrejection",ea=function(t){var e;return!(!Ac(t)||!xc(e=t.then))&&e},na=function(t,e){var n,r,o,i=e.value,u=1==e.state,c=u?t.ok:t.fail,a=t.resolve,f=t.reject,s=t.domain;try{c?(u||(2===e.rejection&&ca(e),e.rejection=1),!0===c?n=i:(s&&s.enter(),n=c(i),s&&(s.exit(),o=!0)),n===t.promise?f(Xc("Promise-chain cycle")):(r=ea(n))?wc(r,n,a,f):a(n)):f(i)}catch(t){s&&!o&&s.exit(),f(t)}},ra=function(t,e){t.notified||(t.notified=!0,Ic((function(){for(var n,r=t.reactions;n=r.get();)na(n,t);t.notified=!1,e&&!t.rejection&&ia(t)})))},oa=function(t,e,n){var r,o;Zc?((r=Yc.createEvent("Event")).promise=e,r.reason=n,r.initEvent(t,!1,!0),Oc.dispatchEvent(r)):r={promise:e,reason:n},!Uc&&(o=Oc["on"+t])?o(r):t===ta&&kc("Unhandled promise rejection",n)},ia=function(t){wc(Cc,Oc,(function(){var e,n=t.facade,r=t.value;if(ua(t)&&(e=_c((function(){mc?Jc.emit("unhandledRejection",r,n):oa(ta,n,r)})),t.rejection=mc||ua(t)?2:1,e.error))throw e.value}))},ua=function(t){return 1!==t.rejection&&!t.parent},ca=function(t){wc(Cc,Oc,(function(){var e=t.facade;mc?Jc.emit("rejectionHandled",e):oa("rejectionhandled",e,t.value)}))},aa=function(t,e,n){return function(r){t(e,r,n)}},fa=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=2,ra(t,!0))},sa=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw Xc("Promise can't be resolved itself");var r=ea(e);r?Ic((function(){var n={done:!1};try{wc(r,e,aa(sa,n,t),aa(fa,n,t))}catch(e){fa(n,e,t)}})):(t.value=e,t.state=1,ra(t,!1))}catch(e){fa({done:!1},e,t)}}};if(Bc&&(qc=(Kc=function(t){Lc(this,qc),Pc(t),wc(vc,this);var e=zc(this);try{t(aa(sa,e),aa(fa,e))}catch(t){fa(e,t)}}).prototype,(vc=function(t){Hc(this,{type:Gc,done:!1,notified:!1,parent:!1,reactions:new Nc,rejection:!1,state:0,value:void 0})}).prototype=Sc(qc,"then",(function(t,e){var n=zc(this),r=$c(Rc(this,Kc));return n.parent=!0,r.ok=!xc(t)||t,r.fail=xc(e)&&e,r.domain=mc?Jc.domain:void 0,0==n.state?n.reactions.add(r):Ic((function(){na(r,n)})),r.promise})),yc=function(){var t=new vc,e=zc(t);this.promise=t,this.resolve=aa(sa,e),this.reject=aa(fa,e)},Mc.f=$c=function(t){return t===Kc||undefined===t?new yc(t):Qc(t)},xc(Fc)&&Vc!==Object.prototype)){gc=Vc.then,Wc||Sc(Vc,"then",(function(t,e){var n=this;return new Kc((function(t,e){wc(gc,n,t,e)})).then(t,e)}),{unsafe:!0});try{delete Vc.constructor}catch(t){}jc&&jc(Vc,qc)}bc({global:!0,constructor:!0,wrap:!0,forced:Bc},{Promise:Kc}),Tc(Kc,Gc,!1),Ec(Gc);var la={},pa=la,ha=fe("iterator"),da=Array.prototype,va=Do,ya=Wt,ga=s,ba=la,ma=fe("iterator"),Oa=function(t){if(!ga(t))return ya(t,ma)||ya(t,"@@iterator")||ba[va(t)]},wa=lt,Sa=Gt,ja=at,Ta=Nt,Ea=Oa,Pa=TypeError,xa=lt,Aa=at,La=Wt,Ra=Wi,Ca=lt,Ia=at,ka=Nt,_a=function(t){return void 0!==t&&(pa.Array===t||da[ha]===t)},Na=wr,Da=vt,Fa=function(t,e){var n=arguments.length<2?Ea(t):e;if(Sa(n))return ja(wa(n,t));throw Pa(Ta(t)+" is not iterable")},Ma=Oa,Ga=function(t,e,n){var r,o;Aa(t);try{if(!(r=La(t,"return"))){if("throw"===e)throw n;return n}r=xa(r,t)}catch(t){o=!0,r=t}if("throw"===e)throw n;if(o)throw r;return Aa(r),n},Ba=TypeError,Ua=function(t,e){this.stopped=t,this.result=e},Wa=Ua.prototype,za=function(t,e,n){var r,o,i,u,c,a,f,s=n&&n.that,l=!(!n||!n.AS_ENTRIES),p=!(!n||!n.IS_RECORD),h=!(!n||!n.IS_ITERATOR),d=!(!n||!n.INTERRUPTED),v=Ra(e,s),y=function(t){return r&&Ga(r,"normal",t),new Ua(!0,t)},g=function(t){return l?(Ia(t),d?v(t[0],t[1],y):v(t[0],t[1])):d?v(t,y):v(t)};if(p)r=t.iterator;else if(h)r=t;else{if(!(o=Ma(t)))throw Ba(ka(t)+" is not iterable");if(_a(o)){for(i=0,u=Na(t);u>i;i++)if((c=g(t[i]))&&Da(Wa,c))return c;return new Ua(!1)}r=Fa(t,o)}for(a=p?t.next:r.next;!(f=Ca(a,r)).done;){try{c=g(f.value)}catch(t){Ga(r,"throw",t)}if("object"==typeof c&&c&&Da(Wa,c))return c}return new Ua(!1)},Ha=fe("iterator"),Va=!1;try{var Ka=0,qa={next:function(){return{done:!!Ka++}},return:function(){Va=!0}};qa[Ha]=function(){return this},Array.from(qa,(function(){throw 2}))}catch(t){}var Xa=function(t,e){if(!e&&!Va)return!1;var n=!1;try{var r={};r[Ha]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(t){}return n},Ya=Xu,Ja=sc.CONSTRUCTOR||!Xa((function(t){Ya.all(t).then(void 0,(function(){}))})),$a=lt,Qa=Gt,Za=lc,tf=qu,ef=za;fo({target:"Promise",stat:!0,forced:Ja},{all:function(t){var e=this,n=Za.f(e),r=n.resolve,o=n.reject,i=tf((function(){var n=Qa(e.resolve),i=[],u=0,c=1;ef(t,(function(t){var a=u++,f=!1;c++,$a(n,e,t).then((function(t){f||(f=!0,i[a]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise}});var nf=fo,rf=sc.CONSTRUCTOR,of=Xu,uf=dt,cf=R,af=ar,ff=of&&of.prototype;if(nf({target:"Promise",proto:!0,forced:rf,real:!0},{catch:function(t){return this.then(void 0,t)}}),cf(of)){var sf=uf("Promise").prototype.catch;ff.catch!==sf&&af(ff,"catch",sf,{unsafe:!0})}var lf=lt,pf=Gt,hf=lc,df=qu,vf=za;fo({target:"Promise",stat:!0,forced:Ja},{race:function(t){var e=this,n=hf.f(e),r=n.reject,o=df((function(){var o=pf(e.resolve);vf(t,(function(t){lf(o,e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}});var yf=lt,gf=lc;fo({target:"Promise",stat:!0,forced:sc.CONSTRUCTOR},{reject:function(t){var e=gf.f(this);return yf(e.reject,void 0,t),e.promise}});var bf=at,mf=J,Of=lc,wf=fo,Sf=sc.CONSTRUCTOR,jf=function(t,e){if(bf(t),mf(e)&&e.constructor===t)return e;var n=Of.f(t);return(0,n.resolve)(e),n.promise};dt("Promise"),wf({target:"Promise",stat:!0,forced:Sf},{resolve:function(t){return jf(this,t)}});var Tf=n,Ef=function(t,e){var n=[][t];return!!n&&Tf((function(){n.call(null,e||function(){return 1},1)}))},Pf=fo,xf=Vn,Af=Xn,Lf=Ef,Rf=f([].join);Pf({target:"Array",proto:!0,forced:xf!=Object||!Lf("join",",")},{join:function(t){return Rf(Af(this),void 0===t?",":t)}});var Cf={},If=r,kf=ot,_f=$,Nf=at,Df=Xn,Ff=po;Cf.f=If&&!kf?Object.defineProperties:function(t,e){Nf(t);for(var n,r=Df(e),o=Ff(e),i=o.length,u=0;i>u;)_f.f(t,n=o[u++],r[n]);return t};var Mf,Gf=at,Bf=Cf,Uf=kr,Wf=Ue,zf=zi,Hf=et,Vf="prototype",Kf="script",qf=Be("IE_PROTO"),Xf=function(){},Yf=function(t){return"<"+Kf+">"+t+"</"+Kf+">"},Jf=function(t){t.write(Yf("")),t.close();var e=t.parentWindow.Object;return t=null,e},$f=function(){try{Mf=new ActiveXObject("htmlfile")}catch(t){}var t,e,n;$f="undefined"!=typeof document?document.domain&&Mf?Jf(Mf):(e=Hf("iframe"),n="java"+Kf+":",e.style.display="none",zf.appendChild(e),e.src=String(n),(t=e.contentWindow.document).open(),t.write(Yf("document.F=Object")),t.close(),t.F):Jf(Mf);for(var r=Uf.length;r--;)delete $f[Vf][Uf[r]];return $f()};Wf[qf]=!0;var Qf=Object.create||function(t,e){var n;return null!==t?(Xf[Vf]=Gf(t),n=new Xf,Xf[Vf]=null,n[qf]=t):n=$f(),void 0===e?n:Bf.f(n,e)},Zf=fe,ts=Qf,es=$.f,ns=Zf("unscopables"),rs=Array.prototype;null==rs[ns]&&es(rs,ns,{configurable:!0,value:ts(null)});var os,is,us,cs=!n((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})),as=m,fs=R,ss=y,ls=cs,ps=Be("IE_PROTO"),hs=Object,ds=hs.prototype,vs=ls?hs.getPrototypeOf:function(t){var e=ss(t);if(as(e,ps))return e[ps];var n=e.constructor;return fs(n)&&e instanceof n?n.prototype:e instanceof hs?ds:null},ys=n,gs=R,bs=J,ms=vs,Os=ar,ws=fe("iterator"),Ss=!1;[].keys&&("next"in(us=[].keys())?(is=ms(ms(us)))!==Object.prototype&&(os=is):Ss=!0);var js=!bs(os)||ys((function(){var t={};return os[ws].call(t)!==t}));js&&(os={}),gs(os[ws])||Os(os,ws,(function(){return this}));var Ts={IteratorPrototype:os,BUGGY_SAFARI_ITERATORS:Ss},Es=Ts.IteratorPrototype,Ps=Qf,xs=_e,As=Qo,Ls=la,Rs=function(){return this},Cs=fo,Is=lt,ks=R,_s=function(t,e,n,r){var o=e+" Iterator";return t.prototype=Ps(Es,{next:xs(+!r,n)}),As(t,o,!1),Ls[o]=Rs,t},Ns=vs,Ds=Xo,Fs=Qo,Ms=Fe,Gs=ar,Bs=la,Us=E.PROPER,Ws=E.CONFIGURABLE,zs=Ts.IteratorPrototype,Hs=Ts.BUGGY_SAFARI_ITERATORS,Vs=fe("iterator"),Ks="keys",qs="values",Xs="entries",Ys=function(){return this},Js=function(t,e,n,r,o,i,u){_s(n,e,r);var c,a,f,s=function(t){if(t===o&&v)return v;if(!Hs&&t in h)return h[t];switch(t){case Ks:case qs:case Xs:return function(){return new n(this,t)}}return function(){return new n(this)}},l=e+" Iterator",p=!1,h=t.prototype,d=h[Vs]||h["@@iterator"]||o&&h[o],v=!Hs&&d||s(o),y="Array"==e&&h.entries||d;if(y&&(c=Ns(y.call(new t)))!==Object.prototype&&c.next&&(Ns(c)!==zs&&(Ds?Ds(c,zs):ks(c[Vs])||Gs(c,Vs,Ys)),Fs(c,l,!0)),Us&&o==qs&&d&&d.name!==qs&&(Ws?Ms(h,"name",qs):(p=!0,v=function(){return Is(d,this)})),o)if(a={values:s(qs),keys:i?v:s(Ks),entries:s(Xs)},u)for(f in a)(Hs||p||!(f in h))&&Gs(h,f,a[f]);else Cs({target:e,proto:!0,forced:Hs||p},a);return h[Vs]!==v&&Gs(h,Vs,v,{name:o}),Bs[e]=v,a},$s=function(t,e){return{value:t,done:e}},Qs=Xn,Zs=function(t){rs[ns][t]=!0},tl=la,el=en,nl=$.f,rl=Js,ol=$s,il=r,ul="Array Iterator",cl=el.set,al=el.getterFor(ul),fl=rl(Array,"Array",(function(t,e){cl(this,{type:ul,target:Qs(t),index:0,kind:e})}),(function(){var t=al(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,ol(void 0,!0)):ol("keys"==n?r:"values"==n?e[r]:[r,e[r]],!1)}),"values"),sl=tl.Arguments=tl.Array;if(Zs("keys"),Zs("values"),Zs("entries"),il&&"values"!==sl.name)try{nl(sl,"name",{value:"values"})}catch(t){}var ll=Do,pl=String,hl=function(t){if("Symbol"===ll(t))throw TypeError("Cannot convert a Symbol value to a string");return pl(t)},dl=f,vl=hr,yl=hl,gl=h,bl=dl("".charAt),ml=dl("".charCodeAt),Ol=dl("".slice),wl=function(t){return function(e,n){var r,o,i=yl(gl(e)),u=vl(n),c=i.length;return u<0||u>=c?t?"":void 0:(r=ml(i,u))<55296||r>56319||u+1===c||(o=ml(i,u+1))<56320||o>57343?t?bl(i,u):r:t?Ol(i,u,u+2):o-56320+(r-55296<<10)+65536}},Sl={codeAt:wl(!1),charAt:wl(!0)}.charAt,jl=hl,Tl=en,El=Js,Pl=$s,xl="String Iterator",Al=Tl.set,Ll=Tl.getterFor(xl);El(String,"String",(function(t){Al(this,{type:xl,string:jl(t),index:0})}),(function(){var t,e=Ll(this),n=e.string,r=e.index;return r>=n.length?Pl(void 0,!0):(t=Sl(n,r),e.index+=t.length,Pl(t,!1))}));var Rl={exports:{}},Cl={},Il=me,kl=$,_l=_e,Nl=gr,Dl=wr,Fl=function(t,e,n){var r=Il(e);r in t?kl.f(t,r,_l(0,n)):t[r]=n},Ml=Array,Gl=Math.max,Bl=Bn,Ul=Xn,Wl=fr.f,zl=function(t,e,n){for(var r=Dl(t),o=Nl(e,r),i=Nl(void 0===n?r:n,r),u=Ml(Gl(i-o,0)),c=0;o<i;o++,c++)Fl(u,c,t[o]);return u.length=c,u},Hl="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];Cl.f=function(t){return Hl&&"Window"==Bl(t)?function(t){try{return Wl(t)}catch(t){return zl(Hl)}}(t):Wl(Ul(t))};var Vl=n((function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}})),Kl=n,ql=J,Xl=Bn,Yl=Vl,Jl=Object.isExtensible,$l=Kl((function(){Jl(1)}))||Yl?function(t){return!!ql(t)&&((!Yl||"ArrayBuffer"!=Xl(t))&&(!Jl||Jl(t)))}:Jl,Ql=!n((function(){return Object.isExtensible(Object.preventExtensions({}))})),Zl=fo,tp=f,ep=Ue,np=J,rp=m,op=$.f,ip=fr,up=Cl,cp=$l,ap=Ql,fp=!1,sp=te("meta"),lp=0,pp=function(t){op(t,sp,{value:{objectID:"O"+lp++,weakData:{}}})},hp=Rl.exports={enable:function(){hp.enable=function(){},fp=!0;var t=ip.f,e=tp([].splice),n={};n[sp]=1,t(n).length&&(ip.f=function(n){for(var r=t(n),o=0,i=r.length;o<i;o++)if(r[o]===sp){e(r,o,1);break}return r},Zl({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:up.f}))},fastKey:function(t,e){if(!np(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!rp(t,sp)){if(!cp(t))return"F";if(!e)return"E";pp(t)}return t[sp].objectID},getWeakData:function(t,e){if(!rp(t,sp)){if(!cp(t))return!0;if(!e)return!1;pp(t)}return t[sp].weakData},onFreeze:function(t){return ap&&fp&&cp(t)&&!rp(t,sp)&&pp(t),t}};ep[sp]=!0;var dp=Rl.exports,vp=R,yp=J,gp=Xo,bp=fo,mp=I,Op=f,wp=eo,Sp=ar,jp=dp,Tp=za,Ep=ii,Pp=R,xp=s,Ap=J,Lp=n,Rp=Xa,Cp=Qo,Ip=function(t,e,n){var r,o;return gp&&vp(r=e.constructor)&&r!==n&&yp(o=r.prototype)&&o!==n.prototype&&gp(t,o),t},kp=ar,_p=Bn,Np=Array.isArray||function(t){return"Array"==_p(t)},Dp=ji,Fp=J,Mp=fe("species"),Gp=Array,Bp=function(t){var e;return Np(t)&&(e=t.constructor,(Dp(e)&&(e===Gp||Np(e.prototype))||Fp(e)&&null===(e=e[Mp]))&&(e=void 0)),void 0===e?Gp:e},Up=Wi,Wp=Vn,zp=y,Hp=wr,Vp=function(t,e){return new(Bp(t))(0===e?0:e)},Kp=f([].push),qp=function(t){var e=1==t,n=2==t,r=3==t,o=4==t,i=6==t,u=7==t,c=5==t||i;return function(a,f,s,l){for(var p,h,d=zp(a),v=Wp(d),y=Up(f,s),g=Hp(v),b=0,m=l||Vp,O=e?m(a,g):n||u?m(a,0):void 0;g>b;b++)if((c||b in v)&&(h=y(p=v[b],b,d),t))if(e)O[b]=h;else if(h)switch(t){case 3:return!0;case 5:return p;case 6:return b;case 2:Kp(O,p)}else switch(t){case 4:return!1;case 7:Kp(O,p)}return i?-1:r||o?o:O}},Xp={forEach:qp(0),map:qp(1),filter:qp(2),some:qp(3),every:qp(4),find:qp(5),findIndex:qp(6),filterReject:qp(7)},Yp=f,Jp=function(t,e,n){for(var r in e)kp(t,r,e[r],n);return t},$p=dp.getWeakData,Qp=ii,Zp=at,th=s,eh=J,nh=za,rh=m,oh=en.set,ih=en.getterFor,uh=Xp.find,ch=Xp.findIndex,ah=Yp([].splice),fh=0,sh=function(t){return t.frozen||(t.frozen=new lh)},lh=function(){this.entries=[]},ph=function(t,e){return uh(t.entries,(function(t){return t[0]===e}))};lh.prototype={get:function(t){var e=ph(this,t);if(e)return e[1]},has:function(t){return!!ph(this,t)},set:function(t,e){var n=ph(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=ch(this.entries,(function(e){return e[0]===t}));return~e&&ah(this.entries,e,1),!!~e}};var hh={getConstructor:function(t,e,n,r){var o=t((function(t,o){Qp(t,i),oh(t,{type:e,id:fh++,frozen:void 0}),th(o)||nh(o,t[r],{that:t,AS_ENTRIES:n})})),i=o.prototype,u=ih(e),c=function(t,e,n){var r=u(t),o=$p(Zp(e),!0);return!0===o?sh(r).set(e,n):o[r.id]=n,t};return Jp(i,{delete:function(t){var e=u(this);if(!eh(t))return!1;var n=$p(t);return!0===n?sh(e).delete(t):n&&rh(n,e.id)&&delete n[e.id]},has:function(t){var e=u(this);if(!eh(t))return!1;var n=$p(t);return!0===n?sh(e).has(t):n&&rh(n,e.id)}}),Jp(i,n?{get:function(t){var e=u(this);if(eh(t)){var n=$p(t);return!0===n?sh(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return c(this,t,e)}}:{add:function(t){return c(this,t,!0)}}),o}};(function(t,e,n){var r=-1!==t.indexOf("Map"),o=-1!==t.indexOf("Weak"),i=r?"set":"add",u=mp[t],c=u&&u.prototype,a=u,f={},s=function(t){var e=Op(c[t]);Sp(c,t,"add"==t?function(t){return e(this,0===t?0:t),this}:"delete"==t?function(t){return!(o&&!Ap(t))&&e(this,0===t?0:t)}:"get"==t?function(t){return o&&!Ap(t)?void 0:e(this,0===t?0:t)}:"has"==t?function(t){return!(o&&!Ap(t))&&e(this,0===t?0:t)}:function(t,n){return e(this,0===t?0:t,n),this})};if(wp(t,!Pp(u)||!(o||c.forEach&&!Lp((function(){(new u).entries().next()})))))a=n.getConstructor(e,t,r,i),jp.enable();else if(wp(t,!0)){var l=new a,p=l[i](o?{}:-0,1)!=l,h=Lp((function(){l.has(1)})),d=Rp((function(t){new u(t)})),v=!o&&Lp((function(){for(var t=new u,e=5;e--;)t[i](e,e);return!t.has(-0)}));d||((a=e((function(t,e){Ep(t,c);var n=Ip(new u,t,a);return xp(e)||Tp(e,n[i],{that:n,AS_ENTRIES:r}),n}))).prototype=c,c.constructor=a),(h||v)&&(s("delete"),s("has"),r&&s("get")),(v||p)&&s(i),o&&c.clear&&delete c.clear}f[t]=a,bp({global:!0,constructor:!0,forced:a!=u},f),Cp(a,t),o||n.setStrong(a,t,r)})("WeakSet",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),hh);var dh={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},vh=et("span").classList,yh=vh&&vh.constructor&&vh.constructor.prototype,gh=yh===Object.prototype?void 0:yh,bh=I,mh=dh,Oh=gh,wh=fl,Sh=Fe,jh=fe,Th=jh("iterator"),Eh=jh("toStringTag"),Ph=wh.values,xh=function(t,e){if(t){if(t[Th]!==Ph)try{Sh(t,Th,Ph)}catch(e){t[Th]=Ph}if(t[Eh]||Sh(t,Eh,e),mh[e])for(var n in wh)if(t[n]!==wh[n])try{Sh(t,n,wh[n])}catch(e){t[n]=wh[n]}}};for(var Ah in mh)xh(bh[Ah]&&bh[Ah].prototype,Ah);xh(Oh,"DOMTokenList");var Lh=Xp.forEach,Rh=Ef("forEach")?[].forEach:function(t){return Lh(this,t,arguments.length>1?arguments[1]:void 0)},Ch=I,Ih=dh,kh=gh,_h=Rh,Nh=Fe,Dh=function(t){if(t&&t.forEach!==_h)try{Nh(t,"forEach",_h)}catch(e){t.forEach=_h}};for(var Fh in Ih)Ih[Fh]&&Dh(Ch[Fh]&&Ch[Fh].prototype);Dh(kh);var Mh,Gh,Bh,Uh,Wh,zh,Hh,Vh,Kh,qh,Xh=y,Yh=po;function Jh(t,e,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(t):r?r.value:e.get(t)}function $h(t){return"top"===t||"bottom"===t}function Qh(t){return t[Gh.LEFT]+t[Gh.RIGHT]}function Zh(t){return t[Gh.TOP]+t[Gh.BOTTOM]}fo({target:"Object",stat:!0,forced:n((function(){Yh(1)}))},{keys:function(t){return Yh(Xh(t))}}),function(t){t[t.SCROLL_NONE=0]="SCROLL_NONE",t[t.SCROLL_BACKWARD=1]="SCROLL_BACKWARD",t[t.SCROLL_FORWARD=2]="SCROLL_FORWARD"}(Mh||(Mh={})),function(t){t[t.TOP=0]="TOP",t[t.RIGHT=1]="RIGHT",t[t.BOTTOM=2]="BOTTOM",t[t.LEFT=3]="LEFT"}(Gh||(Gh={}));var td=".ch-plugin-calendar-label",ed={enabled:!0,dimensions:{width:0,height:0},position:"left",text:function(){return[]},padding:[0,0,0,0]},nd=function(){function e(t){var n,r;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),Bh.add(this),this.name="CalendarLabel";var o=null===(r=null===(n=null==t?void 0:t.options)||void 0===n?void 0:n.options)||void 0===r?void 0:r.subDomain;this.calendar=t,this.root=null,this.shown=!1,this.options=ed,this.computedOptions={radius:null==o?void 0:o.radius,width:null==o?void 0:o.width,height:null==o?void 0:o.height,gutter:null==o?void 0:o.gutter,textAlign:"start"}}var n,r,o;return n=e,(r=[{key:"setup",value:function(t){this.options=Object.assign(Object.assign({},ed),t)}},{key:"paint",value:function(){if(!this.options.enabled)return this.destroy();this.shown=!0;var t=this.calendar.calendarPainter.root;return this.root||(this.root=t.append("svg").attr("class",td.slice(1)).attr("data-key",this.options.key).attr("x",0).attr("y",0)),this.build(),Promise.resolve()}},{key:"destroy",value:function(){return null!==this.root&&(this.root.remove(),this.root=null),Promise.resolve()}},{key:"build",value:function(){var t=this;return Jh(this,Bh,"m",Uh).call(this),Jh(this,Bh,"m",Wh).call(this),this.root.selectAll("g").data(this.options.text).join((function(e){return e.append("g").call((function(e){return e.append("rect").attr("class","".concat(td.slice(1),"-bg")).attr("style","fill: transparent").call((function(e){return Jh(t,Bh,"m",zh).call(t,e)}))})).call((function(e){return e.append("text").attr("class","".concat(td.slice(1),"-text")).attr("dominant-baseline","central").attr("text-anchor","middle").attr("style","fill: currentColor; font-size: 10px").call((function(e){return Jh(t,Bh,"m",Hh).call(t,e)}))}))})),Promise.resolve()}}])&&t(n.prototype,r),o&&t(n,o),Object.defineProperty(n,"prototype",{writable:!1}),e}();return Bh=new WeakSet,Uh=function(){var t=this;Object.keys(this.computedOptions).forEach((function(e){void 0!==t.options[e]&&(t.computedOptions[e]=t.options[e])}))},Wh=function(){var t=this.computedOptions,e=t.width,n=t.height,r=t.gutter,o=this.options,i=o.text,u=o.padding,c=o.position,a=i().length;this.options.dimensions={width:e+Qh(u),height:n+Zh(u)},$h(c)?this.options.dimensions.width+=(e+r)*(a-1):this.options.dimensions.height+=(n+r)*(a-1)},zh=function(t){var e=this,n=this.computedOptions,r=n.width,o=n.height,i=n.radius;t.attr("width",r).attr("height",o).attr("rx",i&&i>0?i:null).attr("ry",i&&i>0?i:null).attr("x",(function(t,n){return Jh(e,Bh,"m",Kh).call(e,n)})).attr("y",(function(t,n){return Jh(e,Bh,"m",qh).call(e,n)}))},Hh=function(t){var e=this,n=this.computedOptions,r=n.height,o=n.textAlign;t.attr("text-anchor",o).attr("x",(function(t,n){return Jh(e,Bh,"m",Vh).call(e)+Jh(e,Bh,"m",Kh).call(e,n)})).attr("y",(function(t,n){return Jh(e,Bh,"m",qh).call(e,n)+r/2})).text((function(t){return t}))},Vh=function(){var t=this.computedOptions,e=t.width;switch(t.textAlign){case"start":default:return 0;case"middle":return e/2;case"end":return e}},Kh=function(t){var e=this.options,n=e.position,r=e.padding,o=this.computedOptions,i=o.width,u=o.gutter;return function(t){return"left"===t||"right"===t}(n)?r[Gh.LEFT]:r[Gh.LEFT]+(i+u)*t},qh=function(t){var e=this.options,n=e.position,r=e.padding,o=this.computedOptions,i=o.height,u=o.gutter;return $h(n)?r[Gh.TOP]:r[Gh.TOP]+(i+u)*t},nd}));//# sourceMappingURL=CalendarLabel.min.js.map diff --git a/static/javascripts/cal-heatmap/plugins/CalendarLabel.min.js.map b/static/javascripts/cal-heatmap/plugins/CalendarLabel.min.js.map new file mode 100644 index 000000000..fc541c274 --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/CalendarLabel.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CalendarLabel.min.js","sources":["../../node_modules/core-js/internals/fails.js","../../node_modules/core-js/internals/descriptors.js","../../node_modules/core-js/internals/function-bind-native.js","../../node_modules/core-js/internals/function-uncurry-this.js","../../node_modules/core-js/internals/is-null-or-undefined.js","../../node_modules/core-js/internals/require-object-coercible.js","../../node_modules/core-js/internals/to-object.js","../../node_modules/core-js/internals/has-own-property.js","../../node_modules/core-js/internals/function-name.js","../../node_modules/core-js/internals/document-all.js","../../node_modules/core-js/internals/is-callable.js","../../node_modules/core-js/internals/global.js","../../node_modules/core-js/internals/define-global-property.js","../../node_modules/core-js/internals/shared-store.js","../../node_modules/core-js/internals/inspect-source.js","../../node_modules/core-js/internals/engine-v8-version.js","../../node_modules/core-js/internals/weak-map-basic-detection.js","../../node_modules/core-js/internals/is-object.js","../../node_modules/core-js/internals/document-create-element.js","../../node_modules/core-js/internals/ie8-dom-define.js","../../node_modules/core-js/internals/v8-prototype-define-bug.js","../../node_modules/core-js/internals/an-object.js","../../node_modules/core-js/internals/function-call.js","../../node_modules/core-js/internals/get-built-in.js","../../node_modules/core-js/internals/object-is-prototype-of.js","../../node_modules/core-js/internals/engine-user-agent.js","../../node_modules/core-js/internals/symbol-constructor-detection.js","../../node_modules/core-js/internals/use-symbol-as-uid.js","../../node_modules/core-js/internals/is-symbol.js","../../node_modules/core-js/internals/try-to-string.js","../../node_modules/core-js/internals/a-callable.js","../../node_modules/core-js/internals/get-method.js","../../node_modules/core-js/internals/ordinary-to-primitive.js","../../node_modules/core-js/internals/shared.js","../../node_modules/core-js/internals/uid.js","../../node_modules/core-js/internals/well-known-symbol.js","../../node_modules/core-js/internals/to-primitive.js","../../node_modules/core-js/internals/to-property-key.js","../../node_modules/core-js/internals/object-define-property.js","../../node_modules/core-js/internals/create-property-descriptor.js","../../node_modules/core-js/internals/internal-state.js","../../node_modules/core-js/internals/create-non-enumerable-property.js","../../node_modules/core-js/internals/shared-key.js","../../node_modules/core-js/internals/hidden-keys.js","../../node_modules/core-js/internals/make-built-in.js","../../node_modules/core-js/internals/define-built-in-accessor.js","../../node_modules/core-js/modules/es.function.name.js","../../node_modules/core-js/internals/object-property-is-enumerable.js","../../node_modules/core-js/internals/classof-raw.js","../../node_modules/core-js/internals/indexed-object.js","../../node_modules/core-js/internals/to-indexed-object.js","../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../node_modules/core-js/internals/define-built-in.js","../../node_modules/core-js/internals/math-trunc.js","../../node_modules/core-js/internals/to-integer-or-infinity.js","../../node_modules/core-js/internals/to-absolute-index.js","../../node_modules/core-js/internals/to-length.js","../../node_modules/core-js/internals/length-of-array-like.js","../../node_modules/core-js/internals/array-includes.js","../../node_modules/core-js/internals/object-keys-internal.js","../../node_modules/core-js/internals/enum-bug-keys.js","../../node_modules/core-js/internals/object-get-own-property-names.js","../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../node_modules/core-js/internals/own-keys.js","../../node_modules/core-js/internals/copy-constructor-properties.js","../../node_modules/core-js/internals/is-forced.js","../../node_modules/core-js/internals/export.js","../../node_modules/core-js/internals/object-keys.js","../../node_modules/core-js/internals/object-assign.js","../../node_modules/core-js/modules/es.object.assign.js","../../node_modules/core-js/internals/to-string-tag-support.js","../../node_modules/core-js/internals/classof.js","../../node_modules/core-js/internals/object-to-string.js","../../node_modules/core-js/modules/es.object.to-string.js","../../node_modules/core-js/internals/engine-is-node.js","../../node_modules/core-js/internals/function-uncurry-this-accessor.js","../../node_modules/core-js/internals/a-possible-prototype.js","../../node_modules/core-js/internals/object-set-prototype-of.js","../../node_modules/core-js/internals/set-to-string-tag.js","../../node_modules/core-js/internals/set-species.js","../../node_modules/core-js/internals/an-instance.js","../../node_modules/core-js/internals/is-constructor.js","../../node_modules/core-js/internals/task.js","../../node_modules/core-js/internals/a-constructor.js","../../node_modules/core-js/internals/species-constructor.js","../../node_modules/core-js/internals/function-apply.js","../../node_modules/core-js/internals/function-uncurry-this-clause.js","../../node_modules/core-js/internals/function-bind-context.js","../../node_modules/core-js/internals/html.js","../../node_modules/core-js/internals/array-slice.js","../../node_modules/core-js/internals/validate-arguments-length.js","../../node_modules/core-js/internals/engine-is-ios.js","../../node_modules/core-js/internals/queue.js","../../node_modules/core-js/internals/microtask.js","../../node_modules/core-js/internals/engine-is-ios-pebble.js","../../node_modules/core-js/internals/engine-is-webos-webkit.js","../../node_modules/core-js/internals/perform.js","../../node_modules/core-js/internals/promise-native-constructor.js","../../node_modules/core-js/internals/engine-is-deno.js","../../node_modules/core-js/internals/engine-is-browser.js","../../node_modules/core-js/internals/promise-constructor-detection.js","../../node_modules/core-js/internals/new-promise-capability.js","../../node_modules/core-js/modules/es.promise.constructor.js","../../node_modules/core-js/internals/host-report-errors.js","../../node_modules/core-js/internals/iterators.js","../../node_modules/core-js/internals/is-array-iterator-method.js","../../node_modules/core-js/internals/get-iterator-method.js","../../node_modules/core-js/internals/get-iterator.js","../../node_modules/core-js/internals/iterator-close.js","../../node_modules/core-js/internals/iterate.js","../../node_modules/core-js/internals/check-correctness-of-iteration.js","../../node_modules/core-js/internals/promise-statics-incorrect-iteration.js","../../node_modules/core-js/modules/es.promise.all.js","../../node_modules/core-js/modules/es.promise.catch.js","../../node_modules/core-js/modules/es.promise.race.js","../../node_modules/core-js/modules/es.promise.reject.js","../../node_modules/core-js/internals/promise-resolve.js","../../node_modules/core-js/modules/es.promise.resolve.js","../../node_modules/core-js/internals/array-method-is-strict.js","../../node_modules/core-js/modules/es.array.join.js","../../node_modules/core-js/internals/object-define-properties.js","../../node_modules/core-js/internals/object-create.js","../../node_modules/core-js/internals/add-to-unscopables.js","../../node_modules/core-js/internals/iterators-core.js","../../node_modules/core-js/internals/correct-prototype-getter.js","../../node_modules/core-js/internals/object-get-prototype-of.js","../../node_modules/core-js/internals/iterator-create-constructor.js","../../node_modules/core-js/internals/iterator-define.js","../../node_modules/core-js/internals/create-iter-result-object.js","../../node_modules/core-js/modules/es.array.iterator.js","../../node_modules/core-js/internals/to-string.js","../../node_modules/core-js/internals/string-multibyte.js","../../node_modules/core-js/modules/es.string.iterator.js","../../node_modules/core-js/internals/create-property.js","../../node_modules/core-js/internals/array-slice-simple.js","../../node_modules/core-js/internals/object-get-own-property-names-external.js","../../node_modules/core-js/internals/array-buffer-non-extensible.js","../../node_modules/core-js/internals/object-is-extensible.js","../../node_modules/core-js/internals/freezing.js","../../node_modules/core-js/internals/internal-metadata.js","../../node_modules/core-js/internals/inherit-if-required.js","../../node_modules/core-js/internals/collection.js","../../node_modules/core-js/internals/define-built-ins.js","../../node_modules/core-js/internals/is-array.js","../../node_modules/core-js/internals/array-species-constructor.js","../../node_modules/core-js/internals/array-species-create.js","../../node_modules/core-js/internals/array-iteration.js","../../node_modules/core-js/internals/collection-weak.js","../../node_modules/core-js/modules/es.weak-set.constructor.js","../../node_modules/core-js/internals/dom-iterables.js","../../node_modules/core-js/internals/dom-token-list-prototype.js","../../node_modules/core-js/modules/web.dom-collections.iterator.js","../../node_modules/core-js/internals/array-for-each.js","../../node_modules/core-js/modules/web.dom-collections.for-each.js","../../node_modules/core-js/modules/es.object.keys.js","../../../src/constant.ts","../../node_modules/tslib/tslib.es6.js","../../../src/helpers/PositionHelper.ts","../../../src/plugins/CalendarLabel.ts"],"sourcesContent":["module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.30.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineBuiltInAccessor(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var classof = require('../internals/classof-raw');\n\nmodule.exports = typeof process != 'undefined' && classof(process) == 'process';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","module.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","module.exports = {};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: FORCED }, {\n join: function join(separator) {\n return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (state) {\n return state.frozen || (state.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) splice(this.entries, index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n defineBuiltIns(Prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && hasOwn(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && hasOwn(data, state.id);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return Constructor;\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.es/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","export enum ScrollDirection {\n SCROLL_NONE,\n SCROLL_BACKWARD,\n SCROLL_FORWARD,\n}\n\nexport enum Position {\n TOP,\n RIGHT,\n BOTTOM,\n LEFT,\n}\n\nexport const OPTIONS_DEFAULT_DOMAIN_TYPE = 'hour';\n\nexport const OPTIONS_DEFAULT_SUBDOMAIN_TYPE = 'minute';\nexport const OPTIONS_DEFAULT_SUBDOMAIN_WIDTH = 10;\nexport const OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT = 10;\nexport const OPTIONS_DEFAULT_SUBDOMAIN_GUTTER = 2;\nexport const OPTIONS_DEFAULT_SUBDOMAIN_RADIUS = 0;\nexport const OPTIONS_DEFAULT_ANIMATION_DURATION = 200;\nexport const OPTIONS_DEFAULT_RANGE = 12;\nexport const OPTIONS_DEFAULT_ITEM_SELECTOR = '#cal-heatmap';\nexport const OPTIONS_DEFAULT_THEME = 'light';\nexport const OPTIONS_DEFAULT_LOCALE = 'en';\n\nexport const SCALE_BASE_OPACITY_COLOR = 'red';\nexport const SCALE_BASE_COLOR_SCHEME = 'YlOrBr';\nexport const SCALE_BASE_COLOR_TYPE = 'quantize';\nexport const SCALE_BASE_COLOR_DOMAIN = [0, 100];\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport default {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __createBinding,\r\n __exportStar,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n __classPrivateFieldIn,\r\n};\r\n","import { Position } from '../constant';\nimport type { Padding } from '../options/Options';\n\nexport function isHorizontal(position: string): boolean {\n return position === 'left' || position === 'right';\n}\n\nexport function isVertical(position: string): boolean {\n return position === 'top' || position === 'bottom';\n}\n\nexport function horizontalPadding(padding: Padding): number {\n return padding[Position.LEFT] + padding[Position.RIGHT];\n}\n\nexport function verticalPadding(padding: Padding): number {\n return padding[Position.TOP] + padding[Position.BOTTOM];\n}\n","import { Position } from '../constant';\nimport {\n isHorizontal,\n isVertical,\n horizontalPadding,\n verticalPadding,\n} from '../helpers/PositionHelper';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport type { IPlugin, PluginOptions } from '../index';\nimport type { TextAlign, Padding } from '../options/Options';\n\ntype ComputedOptions = {\n radius: number;\n width: number;\n height: number;\n gutter: number;\n textAlign: TextAlign;\n};\n\ninterface CalendarLabelOptions extends PluginOptions, Partial<ComputedOptions> {\n enabled: boolean;\n text: () => string[];\n padding: Padding;\n}\n\nconst DEFAULT_SELECTOR = '.ch-plugin-calendar-label';\n\nconst defaultOptions: CalendarLabelOptions = {\n enabled: true,\n\n dimensions: {\n width: 0,\n height: 0,\n },\n\n position: 'left',\n\n text: () => [],\n\n padding: [0, 0, 0, 0],\n};\n\nexport default class CalendarLabel implements IPlugin {\n name = 'CalendarLabel';\n\n calendar: CalHeatmap;\n\n root: any;\n\n shown: boolean;\n\n options: CalendarLabelOptions;\n\n computedOptions: ComputedOptions;\n\n constructor(calendar: CalHeatmap) {\n const subDomain = calendar?.options?.options?.subDomain;\n\n this.calendar = calendar;\n this.root = null;\n this.shown = false;\n this.options = defaultOptions;\n this.computedOptions = {\n radius: subDomain?.radius,\n width: subDomain?.width,\n height: subDomain?.height,\n gutter: subDomain?.gutter,\n textAlign: 'start',\n };\n }\n\n setup(pluginOptions?: Partial<CalendarLabelOptions>): void {\n this.options = { ...defaultOptions, ...pluginOptions };\n }\n\n paint(): Promise<unknown> {\n const { enabled } = this.options;\n\n if (!enabled) {\n return this.destroy();\n }\n\n this.shown = true;\n\n const calendarRoot = this.calendar.calendarPainter.root;\n\n if (!this.root) {\n this.root = calendarRoot\n .append('svg')\n .attr('class', DEFAULT_SELECTOR.slice(1))\n .attr('data-key', this.options.key)\n .attr('x', 0)\n .attr('y', 0);\n }\n\n this.build();\n\n return Promise.resolve();\n }\n\n destroy(): Promise<unknown> {\n if (this.root !== null) {\n this.root.remove();\n this.root = null;\n }\n\n return Promise.resolve();\n }\n\n build() {\n this.#buildComputedOptions();\n this.#computeDimensions();\n\n this.root\n .selectAll('g')\n .data(this.options.text)\n .join((enter: any) => enter\n .append('g')\n .call((selection: any) => selection\n .append('rect')\n .attr('class', `${DEFAULT_SELECTOR.slice(1)}-bg`)\n .attr('style', 'fill: transparent')\n .call((s: any) => this.#setRectAttr(s)))\n .call((selection: any) => selection\n .append('text')\n .attr('class', `${DEFAULT_SELECTOR.slice(1)}-text`)\n .attr('dominant-baseline', 'central')\n .attr('text-anchor', 'middle')\n .attr('style', 'fill: currentColor; font-size: 10px')\n .call((s: any) => this.#setTextAttr(s))));\n\n return Promise.resolve();\n }\n\n #buildComputedOptions() {\n Object.keys(this.computedOptions).forEach((key: string) => {\n if (typeof this.options[key as keyof ComputedOptions] !== 'undefined') {\n // @ts-ignore\n this.computedOptions[key] = this.options[key];\n }\n });\n }\n\n /**\n * Compute the total dimension of the current plugin\n */\n #computeDimensions(): void {\n const { width, height, gutter } = this.computedOptions;\n const { text, padding, position } = this.options;\n const labelsCount = text().length;\n\n this.options.dimensions = {\n width: width + horizontalPadding(padding),\n height: height + verticalPadding(padding),\n };\n\n if (isVertical(position!)) {\n this.options.dimensions.width += (width + gutter) * (labelsCount - 1);\n } else {\n this.options.dimensions.height += (height + gutter) * (labelsCount - 1);\n }\n }\n\n #setRectAttr(selection: any) {\n const { width, height, radius } = this.computedOptions;\n\n selection\n .attr('width', width)\n .attr('height', height)\n .attr('rx', radius && radius > 0 ? radius : null)\n .attr('ry', radius && radius > 0 ? radius : null)\n .attr('x', (_d: string, i: number) => this.#getX(i))\n .attr('y', (_d: string, i: number) => this.#getY(i));\n }\n\n #setTextAttr(selection: any): void {\n const { height, textAlign } = this.computedOptions;\n\n selection\n .attr('text-anchor', textAlign)\n .attr(\n 'x',\n (_d: string, i: number) => this.#getTextXOffset() + this.#getX(i),\n )\n .attr('y', (_d: string, i: number) => this.#getY(i) + height! / 2)\n .text((data: string) => data);\n }\n\n #getTextXOffset() {\n const { width, textAlign } = this.computedOptions;\n\n switch (textAlign) {\n case 'start':\n return 0;\n case 'middle':\n return width / 2;\n case 'end':\n return width;\n default:\n return 0;\n }\n }\n\n #getX(index: number) {\n const { position, padding } = this.options;\n const { width, gutter } = this.computedOptions;\n\n if (isHorizontal(position!)) {\n return padding[Position.LEFT];\n }\n\n return padding[Position.LEFT] + (width + gutter) * index;\n }\n\n #getY(index: number) {\n const { position, padding } = this.options;\n const { height, gutter } = this.computedOptions;\n\n if (isVertical(position!)) {\n return padding[Position.TOP];\n }\n\n return padding[Position.TOP] + (height + gutter) * index;\n }\n}\n"],"names":["fails","exec","error","descriptors","require$$0","Object","defineProperty","get","functionBindNative","test","bind","hasOwnProperty","NATIVE_BIND","FunctionPrototype","Function","prototype","call","uncurryThisWithBind","functionUncurryThis","fn","apply","arguments","isNullOrUndefined","it","$TypeError","TypeError","requireObjectCoercible","$Object","toObject","argument","require$$1","hasOwnProperty_1","hasOwn","key","DESCRIPTORS","getDescriptor","getOwnPropertyDescriptor","EXISTS","functionName","PROPER","name","CONFIGURABLE","configurable","makeBuiltIn$3","exports","documentAll","document","all","documentAll_1","IS_HTMLDDA","undefined","isCallable","check","Math","global","globalThis","window","self","this","defineGlobalProperty","value","writable","SHARED","sharedStore","store","require$$2","functionToString","toString","inspectSource","match","version","WeakMap","weakMapBasicDetection","String","isObject","objectDefineProperty","createElement","documentCreateElement","ie8DomDefine","a","v8PrototypeDefineBug","$String","anObject","functionCall","getBuiltIn","namespace","method","length","objectIsPrototypeOf","isPrototypeOf","engineUserAgent","navigator","userAgent","process","Deno","versions","v8","split","engineV8Version","V8_VERSION","symbolConstructorDetection","getOwnPropertySymbols","symbol","Symbol","sham","useSymbolAsUid","iterator","isSymbol","require$$3","$Symbol","tryToString","aCallable","getMethod","V","P","func","shared$3","sharedModule","push","mode","copyright","license","source","uncurryThis","id","postfix","random","uid","shared","NATIVE_SYMBOL","require$$4","USE_SYMBOL_AS_UID","require$$5","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","wellKnownSymbol","ordinaryToPrimitive","input","pref","val","valueOf","TO_PRIMITIVE","toPrimitive","result","exoticToPrim","toPropertyKey","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","f","O","Attributes","current","enumerable","set","has","createPropertyDescriptor","bitmap","definePropertyModule","createNonEnumerableProperty","object","keys","sharedKey","hiddenKeys","NATIVE_WEAK_MAP","require$$6","require$$7","OBJECT_ALREADY_INITIALIZED","state","metadata","facade","STATE","internalState","enforce","getterFor","TYPE","type","CONFIGURABLE_FUNCTION_NAME","enforceInternalState","getInternalState","stringSlice","slice","replace","join","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","makeBuiltInModule","options","getter","setter","arity","constructor","defineBuiltInAccessor","target","descriptor","FUNCTION_NAME_EXISTS","nameRE","regExpExec","objectGetOwnPropertyDescriptor","objectPropertyIsEnumerable","$propertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","classofRaw","classof","indexedObject","IndexedObject","toIndexedObject","propertyIsEnumerableModule","defineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","ceil","floor","trunc","x","n","toIntegerOrInfinity","number","max","min","toAbsoluteIndex","index","integer","toLength","lengthOfArrayLike","obj","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","includes","indexOf","objectKeysInternal","names","i","enumBugKeys","internalObjectKeys","concat","objectGetOwnPropertyNames","getOwnPropertyNames","objectGetOwnPropertySymbols","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","isForced_1","copyConstructorProperties","exceptions","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","objectKeys","require$$8","$assign","assign","objectAssign","b","A","B","alphabet","forEach","chr","T","argumentsLength","S","j","toStringTagSupport","TO_STRING_TAG_SUPPORT","TO_STRING_TAG","CORRECT_ARGUMENTS","tag","tryGet","callee","engineIsNode","uncurryThisAccessor","aPossiblePrototype","objectSetPrototypeOf","setPrototypeOf","CORRECT_SETTER","Array","proto","__proto__","setToStringTag","TAG","SPECIES","anInstance","Prototype","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","$location","defer","channel","port","isConstructor","called","aConstructor","functionApply","Reflect","functionBindContext","that","html","arraySlice","engineIsIos","validateArgumentsLength","passed","required","IS_IOS","require$$10","IS_NODE","require$$11","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","location","run","runner","eventListener","event","globalPostMessageDefer","postMessage","protocol","host","handler","args","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","appendChild","removeChild","setTimeout","task","Queue","head","tail","add","item","entry","next","notify","toggle","node","promise","then","engineIsIosPebble","Pebble","engineIsWebosWebkit","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","Promise","queueMicrotaskDescriptor","microtask","flush","parent","domain","exit","enter","resolve","createTextNode","observe","characterData","microtask_1","perform","promiseNativeConstructor","engineIsDeno","engineIsBrowser","NativePromiseConstructor","IS_BROWSER","IS_DENO","require$$9","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","promiseConstructorDetection","CONSTRUCTOR","REJECTION_EVENT","newPromiseCapability$2","PromiseCapability","C","reject","$$resolve","$$reject","newPromiseCapability","Internal","OwnPromiseCapability","nativeThen","$","setSpecies","CONSTRUCTOR_NAME","Constructor","require$$12","speciesConstructor","defaultConstructor","require$$14","require$$15","hostReportErrors","console","require$$17","require$$18","InternalStateModule","require$$19","require$$20","newPromiseCapabilityModule","require$$22","PROMISE","require$$21","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","setInternalState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","ok","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","isUnhandled","emit","unwrap","internalReject","done","internalResolve","wrapper","executor","onFulfilled","onRejected","PromiseWrapper","wrap","iterators","Iterators","ITERATOR","ArrayPrototype","getIteratorMethod","isArrayIteratorMethod","getIterator","usingIterator","iteratorMethod","iteratorClose","kind","innerResult","innerError","Result","stopped","ResultPrototype","iterate","iterable","unboundFunction","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","SAFE_CLOSING","iteratorWithReturn","return","from","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","promiseStaticsIncorrectIteration","capability","$promiseResolve","values","remaining","alreadyCalled","real","catch","race","r","promiseResolve","promiseCapability","arrayMethodIsStrict","METHOD_NAME","nativeJoin","separator","objectDefineProperties","defineProperties","Properties","props","activeXDocument","definePropertiesModule","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","style","display","src","contentWindow","open","F","objectCreate","create","UNSCOPABLES","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","correctPrototypeGetter","getPrototypeOf","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","objectGetPrototypeOf","BUGGY_SAFARI_ITERATORS","NEW_ITERATOR_PROTOTYPE","iteratorsCore","returnThis","createIteratorConstructor","IteratorConstructor","NAME","ENUMERABLE_NEXT","PROPER_FUNCTION_NAME","require$$13","KEYS","VALUES","ENTRIES","iteratorDefine","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","createIterResultObject","addToUnscopables","defineIterator","ARRAY_ITERATOR","es_array_iterator","iterated","Arguments","charAt","charCodeAt","CONVERT_TO_STRING","pos","first","second","position","size","codeAt","STRING_ITERATOR","point","internalMetadata","objectGetOwnPropertyNamesExternal","createProperty","propertyKey","$Array","$getOwnPropertyNames","start","end","k","fin","windowNames","getWindowNames","arrayBufferNonExtensible","ArrayBuffer","buffer","isExtensible","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","objectIsExtensible","freezing","preventExtensions","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","meta","internalMetadataModule","enable","splice","fastKey","getWeakData","onFreeze","InternalMetadataModule","inheritIfRequired","dummy","Wrapper","NewTarget","NewTargetPrototype","isArray","arraySpeciesConstructor","originalArray","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","boundFunction","arrayIteration","map","filter","some","every","find","findIndex","filterReject","defineBuiltIns","internalStateGetterFor","uncaughtFrozenStore","frozen","UncaughtFrozenStore","findUncaughtFrozen","delete","collectionWeak","getConstructor","ADDER","define","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setStrong","collection","init","domIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","classList","DOMTokenListPrototype","domTokenListPrototype","DOMIterables","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","$forEach","arrayForEach","ScrollDirection","Position","nativeKeys","__classPrivateFieldGet","receiver","isVertical","horizontalPadding","padding","LEFT","RIGHT","verticalPadding","TOP","BOTTOM","DEFAULT_SELECTOR","defaultOptions","enabled","dimensions","width","height","text","CalendarLabel","calendar","_classCallCheck","subDomain","_b","_a","root","shown","computedOptions","radius","gutter","textAlign","pluginOptions","destroy","calendarRoot","calendarPainter","append","attr","build","remove","_this","_CalendarLabel_instances","_CalendarLabel_buildComputedOptions","_CalendarLabel_computeDimensions","selectAll","selection","s","_CalendarLabel_setRectAttr","_CalendarLabel_setTextAttr","_this2","_this$computedOptions","_this$options","labelsCount","_this3","_this$computedOptions2","_d","_CalendarLabel_getX","_this4","_this$computedOptions3","_CalendarLabel_getY","_CalendarLabel_getTextXOffset","_this$computedOptions4","_this$options2","_this$computedOptions5","isHorizontal","_this$options3","_this$computedOptions6"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,156]} \ No newline at end of file diff --git a/static/javascripts/cal-heatmap/plugins/Legend.esm.js b/static/javascripts/cal-heatmap/plugins/Legend.esm.js new file mode 100644 index 000000000..04a919d2c --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/Legend.esm.js @@ -0,0 +1,4521 @@ +import { select as select$1 } from 'd3-selection'; +import { ascending, timeSecond, timeMinute, timeHour, timeDay, timeWeek, timeMonth, timeYear, timeMonday, timeTuesday, timeWednesday, timeThursday, timeFriday, timeSaturday, timeSunday, utcSecond, utcMinute, utcHour, utcDay, utcWeek, utcMonth, utcYear, utcMonday, utcTuesday, utcWednesday, utcThursday, utcFriday, utcSaturday, utcSunday, color as color$1, descending, range, symbolAsterisk, symbolCircle, symbolCross, symbolDiamond, symbolDiamond2, symbolPlus, symbolSquare, symbolSquare2, symbolStar, symbolTimes, symbolTriangle, symbolTriangle2, symbolWye, geoPath, geoTransform, geoClipRectangle, geoTransverseMercator, geoStereographic, geoOrthographic, geoMercator, geoGnomonic, geoEquirectangular, geoEqualEarth, geoAzimuthalEquidistant, geoAzimuthalEqualArea, geoAlbersUsa, geoConicEquidistant, geoConicEqualArea, geoConicConformal, geoAlbers, select, creator, schemeAccent, schemeCategory10, schemeDark2, schemePaired, schemePastel1, schemePastel2, schemeSet1, schemeSet2, schemeSet3, schemeTableau10, quantize, interpolateBrBG, interpolatePRGn, interpolatePiYG, interpolatePuOr, interpolateRdBu, interpolateRdGy, interpolateRdYlBu, interpolateRdYlGn, interpolateSpectral, interpolateBlues, interpolateGreens, interpolateGreys, interpolatePurples, interpolateReds, interpolateOranges, interpolateTurbo, interpolateViridis, interpolateMagma, interpolateInferno, interpolatePlasma, interpolateCividis, interpolateCubehelixDefault, interpolateWarm, interpolateCool, interpolateBuGn, interpolateBuPu, interpolateGnBu, interpolateOrRd, interpolatePuBuGn, interpolatePuBu, interpolatePuRd, interpolateRdPu, interpolateYlGnBu, interpolateYlGn, interpolateYlOrBr, interpolateYlOrRd, interpolateRainbow, interpolateSinebow, schemeBrBG, schemePRGn, schemePiYG, schemePuOr, schemeRdBu, schemeRdGy, schemeRdYlBu, schemeRdYlGn, schemeSpectral, schemeBlues, schemeGreens, schemeGreys, schemeOranges, schemePurples, schemeReds, schemeBuGn, schemeBuPu, schemeGnBu, schemeOrRd, schemePuBu, schemePuBuGn, schemePuRd, schemeRdPu, schemeYlGn, schemeYlGnBu, schemeYlOrBr, schemeYlOrRd, interpolateNumber, interpolateRgb, interpolateHsl, interpolateHcl, interpolateLab, scaleLinear, scalePow, scaleLog, scaleSymlog, scaleQuantile, extent, ticks, reverse, scaleThreshold, scaleIdentity, max as max$1, interpolateRound, min as min$2, quantile, median, scaleDiverging, scaleDivergingPow, scaleDivergingLog, scaleDivergingSymlog, piecewise, scaleTime, scaleUtc, scaleImplicit, scaleOrdinal, scalePoint, scaleBand, InternSet, sort, symbolsStroke, symbolsFill, utcFormat, format as format$1, axisBottom, pathRound, rgb } from 'd3'; + +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); + } +} +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function _toPrimitive(input, hint) { + if (typeof input !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (typeof res !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} +function _toPropertyKey(arg) { + var key = _toPrimitive(arg, "string"); + return typeof key === "symbol" ? key : String(key); +} + +var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +var fails$b = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } +}; + +var fails$a = fails$b; + +// Detect IE8's incomplete defineProperty implementation +var descriptors = !fails$a(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; +}); + +var fails$9 = fails$b; + +var functionBindNative = !fails$9(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); +}); + +var NATIVE_BIND$3 = functionBindNative; + +var FunctionPrototype$3 = Function.prototype; +var call$d = FunctionPrototype$3.call; +var uncurryThisWithBind = NATIVE_BIND$3 && FunctionPrototype$3.bind.bind(call$d, call$d); + +var functionUncurryThis = NATIVE_BIND$3 ? uncurryThisWithBind : function (fn) { + return function () { + return call$d.apply(fn, arguments); + }; +}; + +// we can't use just `it == null` since of `document.all` special case +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec +var isNullOrUndefined$4 = function (it) { + return it === null || it === undefined; +}; + +var isNullOrUndefined$3 = isNullOrUndefined$4; + +var $TypeError$c = TypeError; + +// `RequireObjectCoercible` abstract operation +// https://tc39.es/ecma262/#sec-requireobjectcoercible +var requireObjectCoercible$2 = function (it) { + if (isNullOrUndefined$3(it)) throw $TypeError$c("Can't call method on " + it); + return it; +}; + +var requireObjectCoercible$1 = requireObjectCoercible$2; + +var $Object$3 = Object; + +// `ToObject` abstract operation +// https://tc39.es/ecma262/#sec-toobject +var toObject$2 = function (argument) { + return $Object$3(requireObjectCoercible$1(argument)); +}; + +var uncurryThis$f = functionUncurryThis; +var toObject$1 = toObject$2; + +var hasOwnProperty = uncurryThis$f({}.hasOwnProperty); + +// `HasOwnProperty` abstract operation +// https://tc39.es/ecma262/#sec-hasownproperty +// eslint-disable-next-line es/no-object-hasown -- safe +var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject$1(it), key); +}; + +var DESCRIPTORS$9 = descriptors; +var hasOwn$8 = hasOwnProperty_1; + +var FunctionPrototype$2 = Function.prototype; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getDescriptor = DESCRIPTORS$9 && Object.getOwnPropertyDescriptor; + +var EXISTS$1 = hasOwn$8(FunctionPrototype$2, 'name'); +// additional protection from minified / mangled / dropped function names +var PROPER = EXISTS$1 && (function something() { /* empty */ }).name === 'something'; +var CONFIGURABLE$1 = EXISTS$1 && (!DESCRIPTORS$9 || (DESCRIPTORS$9 && getDescriptor(FunctionPrototype$2, 'name').configurable)); + +var functionName = { + EXISTS: EXISTS$1, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE$1 +}; + +var makeBuiltIn$3 = {exports: {}}; + +var documentAll$2 = typeof document == 'object' && document.all; + +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot +// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing +var IS_HTMLDDA = typeof documentAll$2 == 'undefined' && documentAll$2 !== undefined; + +var documentAll_1 = { + all: documentAll$2, + IS_HTMLDDA: IS_HTMLDDA +}; + +var $documentAll$1 = documentAll_1; + +var documentAll$1 = $documentAll$1.all; + +// `IsCallable` abstract operation +// https://tc39.es/ecma262/#sec-iscallable +var isCallable$h = $documentAll$1.IS_HTMLDDA ? function (argument) { + return typeof argument == 'function' || argument === documentAll$1; +} : function (argument) { + return typeof argument == 'function'; +}; + +var check = function (it) { + return it && it.Math == Math && it; +}; + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +var global$g = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || commonjsGlobal || Function('return this')(); + +var global$f = global$g; + +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty$4 = Object.defineProperty; + +var defineGlobalProperty$3 = function (key, value) { + try { + defineProperty$4(global$f, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global$f[key] = value; + } return value; +}; + +var global$e = global$g; +var defineGlobalProperty$2 = defineGlobalProperty$3; + +var SHARED = '__core-js_shared__'; +var store$3 = global$e[SHARED] || defineGlobalProperty$2(SHARED, {}); + +var sharedStore = store$3; + +var uncurryThis$e = functionUncurryThis; +var isCallable$g = isCallable$h; +var store$2 = sharedStore; + +var functionToString$1 = uncurryThis$e(Function.toString); + +// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper +if (!isCallable$g(store$2.inspectSource)) { + store$2.inspectSource = function (it) { + return functionToString$1(it); + }; +} + +var inspectSource$3 = store$2.inspectSource; + +var global$d = global$g; +var isCallable$f = isCallable$h; + +var WeakMap$1 = global$d.WeakMap; + +var weakMapBasicDetection = isCallable$f(WeakMap$1) && /native code/.test(String(WeakMap$1)); + +var isCallable$e = isCallable$h; +var $documentAll = documentAll_1; + +var documentAll = $documentAll.all; + +var isObject$8 = $documentAll.IS_HTMLDDA ? function (it) { + return typeof it == 'object' ? it !== null : isCallable$e(it) || it === documentAll; +} : function (it) { + return typeof it == 'object' ? it !== null : isCallable$e(it); +}; + +var objectDefineProperty = {}; + +var global$c = global$g; +var isObject$7 = isObject$8; + +var document$3 = global$c.document; +// typeof document.createElement is 'object' in old IE +var EXISTS = isObject$7(document$3) && isObject$7(document$3.createElement); + +var documentCreateElement = function (it) { + return EXISTS ? document$3.createElement(it) : {}; +}; + +var DESCRIPTORS$8 = descriptors; +var fails$8 = fails$b; +var createElement$1 = documentCreateElement; + +// Thanks to IE8 for its funny defineProperty +var ie8DomDefine = !DESCRIPTORS$8 && !fails$8(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement$1('div'), 'a', { + get: function () { return 7; } + }).a != 7; +}); + +var DESCRIPTORS$7 = descriptors; +var fails$7 = fails$b; + +// V8 ~ Chrome 36- +// https://bugs.chromium.org/p/v8/issues/detail?id=3334 +var v8PrototypeDefineBug = DESCRIPTORS$7 && fails$7(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype != 42; +}); + +var isObject$6 = isObject$8; + +var $String$4 = String; +var $TypeError$b = TypeError; + +// `Assert: Type(argument) is Object` +var anObject$8 = function (argument) { + if (isObject$6(argument)) return argument; + throw $TypeError$b($String$4(argument) + ' is not an object'); +}; + +var NATIVE_BIND$2 = functionBindNative; + +var call$c = Function.prototype.call; + +var functionCall = NATIVE_BIND$2 ? call$c.bind(call$c) : function () { + return call$c.apply(call$c, arguments); +}; + +var global$b = global$g; +var isCallable$d = isCallable$h; + +var aFunction = function (argument) { + return isCallable$d(argument) ? argument : undefined; +}; + +var getBuiltIn$7 = function (namespace, method) { + return arguments.length < 2 ? aFunction(global$b[namespace]) : global$b[namespace] && global$b[namespace][method]; +}; + +var uncurryThis$d = functionUncurryThis; + +var objectIsPrototypeOf = uncurryThis$d({}.isPrototypeOf); + +var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + +var global$a = global$g; +var userAgent$3 = engineUserAgent; + +var process$4 = global$a.process; +var Deno$1 = global$a.Deno; +var versions = process$4 && process$4.versions || Deno$1 && Deno$1.version; +var v8 = versions && versions.v8; +var match, version; + +if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); +} + +// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` +// so check `userAgent` even if `.v8` exists, but 0 +if (!version && userAgent$3) { + match = userAgent$3.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent$3.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } +} + +var engineV8Version = version; + +/* eslint-disable es/no-symbol -- required for testing */ + +var V8_VERSION$1 = engineV8Version; +var fails$6 = fails$b; +var global$9 = global$g; + +var $String$3 = global$9.String; + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing +var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$6(function () { + var symbol = Symbol(); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String$3(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION$1 && V8_VERSION$1 < 41; +}); + +/* eslint-disable es/no-symbol -- required for testing */ + +var NATIVE_SYMBOL$1 = symbolConstructorDetection; + +var useSymbolAsUid = NATIVE_SYMBOL$1 + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + +var getBuiltIn$6 = getBuiltIn$7; +var isCallable$c = isCallable$h; +var isPrototypeOf$2 = objectIsPrototypeOf; +var USE_SYMBOL_AS_UID$1 = useSymbolAsUid; + +var $Object$2 = Object; + +var isSymbol$2 = USE_SYMBOL_AS_UID$1 ? function (it) { + return typeof it == 'symbol'; +} : function (it) { + var $Symbol = getBuiltIn$6('Symbol'); + return isCallable$c($Symbol) && isPrototypeOf$2($Symbol.prototype, $Object$2(it)); +}; + +var $String$2 = String; + +var tryToString$4 = function (argument) { + try { + return $String$2(argument); + } catch (error) { + return 'Object'; + } +}; + +var isCallable$b = isCallable$h; +var tryToString$3 = tryToString$4; + +var $TypeError$a = TypeError; + +// `Assert: IsCallable(argument) is true` +var aCallable$8 = function (argument) { + if (isCallable$b(argument)) return argument; + throw $TypeError$a(tryToString$3(argument) + ' is not a function'); +}; + +var aCallable$7 = aCallable$8; +var isNullOrUndefined$2 = isNullOrUndefined$4; + +// `GetMethod` abstract operation +// https://tc39.es/ecma262/#sec-getmethod +var getMethod$3 = function (V, P) { + var func = V[P]; + return isNullOrUndefined$2(func) ? undefined : aCallable$7(func); +}; + +var call$b = functionCall; +var isCallable$a = isCallable$h; +var isObject$5 = isObject$8; + +var $TypeError$9 = TypeError; + +// `OrdinaryToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-ordinarytoprimitive +var ordinaryToPrimitive$1 = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable$a(fn = input.toString) && !isObject$5(val = call$b(fn, input))) return val; + if (isCallable$a(fn = input.valueOf) && !isObject$5(val = call$b(fn, input))) return val; + if (pref !== 'string' && isCallable$a(fn = input.toString) && !isObject$5(val = call$b(fn, input))) return val; + throw $TypeError$9("Can't convert object to primitive value"); +}; + +var shared$3 = {exports: {}}; + +var store$1 = sharedStore; + +(shared$3.exports = function (key, value) { + return store$1[key] || (store$1[key] = value !== undefined ? value : {}); +})('versions', []).push({ + version: '3.30.2', + mode: 'global', + copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE', + source: 'https://github.com/zloirock/core-js' +}); + +var sharedExports = shared$3.exports; + +var uncurryThis$c = functionUncurryThis; + +var id = 0; +var postfix = Math.random(); +var toString$2 = uncurryThis$c(1.0.toString); + +var uid$2 = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$2(++id + postfix, 36); +}; + +var global$8 = global$g; +var shared$2 = sharedExports; +var hasOwn$7 = hasOwnProperty_1; +var uid$1 = uid$2; +var NATIVE_SYMBOL = symbolConstructorDetection; +var USE_SYMBOL_AS_UID = useSymbolAsUid; + +var Symbol$1 = global$8.Symbol; +var WellKnownSymbolsStore = shared$2('wks'); +var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1['for'] || Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$1; + +var wellKnownSymbol$a = function (name) { + if (!hasOwn$7(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn$7(Symbol$1, name) + ? Symbol$1[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; +}; + +var call$a = functionCall; +var isObject$4 = isObject$8; +var isSymbol$1 = isSymbol$2; +var getMethod$2 = getMethod$3; +var ordinaryToPrimitive = ordinaryToPrimitive$1; +var wellKnownSymbol$9 = wellKnownSymbol$a; + +var $TypeError$8 = TypeError; +var TO_PRIMITIVE = wellKnownSymbol$9('toPrimitive'); + +// `ToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-toprimitive +var toPrimitive$1 = function (input, pref) { + if (!isObject$4(input) || isSymbol$1(input)) return input; + var exoticToPrim = getMethod$2(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call$a(exoticToPrim, input, pref); + if (!isObject$4(result) || isSymbol$1(result)) return result; + throw $TypeError$8("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); +}; + +var toPrimitive = toPrimitive$1; +var isSymbol = isSymbol$2; + +// `ToPropertyKey` abstract operation +// https://tc39.es/ecma262/#sec-topropertykey +var toPropertyKey$2 = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; +}; + +var DESCRIPTORS$6 = descriptors; +var IE8_DOM_DEFINE$1 = ie8DomDefine; +var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug; +var anObject$7 = anObject$8; +var toPropertyKey$1 = toPropertyKey$2; + +var $TypeError$7 = TypeError; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var $defineProperty = Object.defineProperty; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; +var ENUMERABLE = 'enumerable'; +var CONFIGURABLE = 'configurable'; +var WRITABLE = 'writable'; + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +objectDefineProperty.f = DESCRIPTORS$6 ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) { + anObject$7(O); + P = toPropertyKey$1(P); + anObject$7(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor$1(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); +} : $defineProperty : function defineProperty(O, P, Attributes) { + anObject$7(O); + P = toPropertyKey$1(P); + anObject$7(Attributes); + if (IE8_DOM_DEFINE$1) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw $TypeError$7('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + +var createPropertyDescriptor$2 = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + +var DESCRIPTORS$5 = descriptors; +var definePropertyModule$2 = objectDefineProperty; +var createPropertyDescriptor$1 = createPropertyDescriptor$2; + +var createNonEnumerableProperty$2 = DESCRIPTORS$5 ? function (object, key, value) { + return definePropertyModule$2.f(object, key, createPropertyDescriptor$1(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + +var shared$1 = sharedExports; +var uid = uid$2; + +var keys = shared$1('keys'); + +var sharedKey$1 = function (key) { + return keys[key] || (keys[key] = uid(key)); +}; + +var hiddenKeys$3 = {}; + +var NATIVE_WEAK_MAP = weakMapBasicDetection; +var global$7 = global$g; +var isObject$3 = isObject$8; +var createNonEnumerableProperty$1 = createNonEnumerableProperty$2; +var hasOwn$6 = hasOwnProperty_1; +var shared = sharedStore; +var sharedKey = sharedKey$1; +var hiddenKeys$2 = hiddenKeys$3; + +var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; +var TypeError$2 = global$7.TypeError; +var WeakMap = global$7.WeakMap; +var set$1, get, has; + +var enforce = function (it) { + return has(it) ? get(it) : set$1(it, {}); +}; + +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject$3(it) || (state = get(it)).type !== TYPE) { + throw TypeError$2('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; +}; + +if (NATIVE_WEAK_MAP || shared.state) { + var store = shared.state || (shared.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set$1 = function (it, metadata) { + if (store.has(it)) throw TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; +} else { + var STATE = sharedKey('state'); + hiddenKeys$2[STATE] = true; + set$1 = function (it, metadata) { + if (hasOwn$6(it, STATE)) throw TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty$1(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn$6(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn$6(it, STATE); + }; +} + +var internalState = { + set: set$1, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor +}; + +var uncurryThis$b = functionUncurryThis; +var fails$5 = fails$b; +var isCallable$9 = isCallable$h; +var hasOwn$5 = hasOwnProperty_1; +var DESCRIPTORS$4 = descriptors; +var CONFIGURABLE_FUNCTION_NAME = functionName.CONFIGURABLE; +var inspectSource$2 = inspectSource$3; +var InternalStateModule$1 = internalState; + +var enforceInternalState = InternalStateModule$1.enforce; +var getInternalState = InternalStateModule$1.get; +var $String$1 = String; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty$3 = Object.defineProperty; +var stringSlice$1 = uncurryThis$b(''.slice); +var replace = uncurryThis$b(''.replace); +var join = uncurryThis$b([].join); + +var CONFIGURABLE_LENGTH = DESCRIPTORS$4 && !fails$5(function () { + return defineProperty$3(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; +}); + +var TEMPLATE = String(String).split('String'); + +var makeBuiltIn$2 = makeBuiltIn$3.exports = function (value, name, options) { + if (stringSlice$1($String$1(name), 0, 7) === 'Symbol(') { + name = '[' + replace($String$1(name), /^Symbol\(([^)]*)\)/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn$5(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { + if (DESCRIPTORS$4) defineProperty$3(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn$5(options, 'arity') && value.length !== options.arity) { + defineProperty$3(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn$5(options, 'constructor') && options.constructor) { + if (DESCRIPTORS$4) defineProperty$3(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn$5(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; +}; + +// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative +// eslint-disable-next-line no-extend-native -- required +Function.prototype.toString = makeBuiltIn$2(function toString() { + return isCallable$9(this) && getInternalState(this).source || inspectSource$2(this); +}, 'toString'); + +var makeBuiltInExports = makeBuiltIn$3.exports; + +var makeBuiltIn$1 = makeBuiltInExports; +var defineProperty$2 = objectDefineProperty; + +var defineBuiltInAccessor$2 = function (target, name, descriptor) { + if (descriptor.get) makeBuiltIn$1(descriptor.get, name, { getter: true }); + if (descriptor.set) makeBuiltIn$1(descriptor.set, name, { setter: true }); + return defineProperty$2.f(target, name, descriptor); +}; + +var DESCRIPTORS$3 = descriptors; +var FUNCTION_NAME_EXISTS = functionName.EXISTS; +var uncurryThis$a = functionUncurryThis; +var defineBuiltInAccessor$1 = defineBuiltInAccessor$2; + +var FunctionPrototype$1 = Function.prototype; +var functionToString = uncurryThis$a(FunctionPrototype$1.toString); +var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/; +var regExpExec = uncurryThis$a(nameRE.exec); +var NAME = 'name'; + +// Function instances `.name` property +// https://tc39.es/ecma262/#sec-function-instances-name +if (DESCRIPTORS$3 && !FUNCTION_NAME_EXISTS) { + defineBuiltInAccessor$1(FunctionPrototype$1, NAME, { + configurable: true, + get: function () { + try { + return regExpExec(nameRE, functionToString(this))[1]; + } catch (error) { + return ''; + } + } + }); +} + +var objectGetOwnPropertyDescriptor = {}; + +var objectPropertyIsEnumerable = {}; + +var $propertyIsEnumerable = {}.propertyIsEnumerable; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor$2 = Object.getOwnPropertyDescriptor; + +// Nashorn ~ JDK8 bug +var NASHORN_BUG = getOwnPropertyDescriptor$2 && !$propertyIsEnumerable.call({ 1: 2 }, 1); + +// `Object.prototype.propertyIsEnumerable` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable +objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor$2(this, V); + return !!descriptor && descriptor.enumerable; +} : $propertyIsEnumerable; + +var uncurryThis$9 = functionUncurryThis; + +var toString$1 = uncurryThis$9({}.toString); +var stringSlice = uncurryThis$9(''.slice); + +var classofRaw$2 = function (it) { + return stringSlice(toString$1(it), 8, -1); +}; + +var uncurryThis$8 = functionUncurryThis; +var fails$4 = fails$b; +var classof$5 = classofRaw$2; + +var $Object$1 = Object; +var split = uncurryThis$8(''.split); + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +var indexedObject = fails$4(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object$1('z').propertyIsEnumerable(0); +}) ? function (it) { + return classof$5(it) == 'String' ? split(it, '') : $Object$1(it); +} : $Object$1; + +// toObject with fallback for non-array-like ES3 strings +var IndexedObject$1 = indexedObject; +var requireObjectCoercible = requireObjectCoercible$2; + +var toIndexedObject$3 = function (it) { + return IndexedObject$1(requireObjectCoercible(it)); +}; + +var DESCRIPTORS$2 = descriptors; +var call$9 = functionCall; +var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable; +var createPropertyDescriptor = createPropertyDescriptor$2; +var toIndexedObject$2 = toIndexedObject$3; +var toPropertyKey = toPropertyKey$2; +var hasOwn$4 = hasOwnProperty_1; +var IE8_DOM_DEFINE = ie8DomDefine; + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +objectGetOwnPropertyDescriptor.f = DESCRIPTORS$2 ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject$2(O); + P = toPropertyKey(P); + if (IE8_DOM_DEFINE) try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (hasOwn$4(O, P)) return createPropertyDescriptor(!call$9(propertyIsEnumerableModule$1.f, O, P), O[P]); +}; + +var isCallable$8 = isCallable$h; +var definePropertyModule$1 = objectDefineProperty; +var makeBuiltIn = makeBuiltInExports; +var defineGlobalProperty$1 = defineGlobalProperty$3; + +var defineBuiltIn$4 = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable$8(value)) makeBuiltIn(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty$1(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule$1.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; +}; + +var objectGetOwnPropertyNames = {}; + +var ceil = Math.ceil; +var floor = Math.floor; + +// `Math.trunc` method +// https://tc39.es/ecma262/#sec-math.trunc +// eslint-disable-next-line es/no-math-trunc -- safe +var mathTrunc = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor : ceil)(n); +}; + +var trunc = mathTrunc; + +// `ToIntegerOrInfinity` abstract operation +// https://tc39.es/ecma262/#sec-tointegerorinfinity +var toIntegerOrInfinity$2 = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); +}; + +var toIntegerOrInfinity$1 = toIntegerOrInfinity$2; + +var max = Math.max; +var min$1 = Math.min; + +// Helper for a popular repeating case of the spec: +// Let integer be ? ToInteger(index). +// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). +var toAbsoluteIndex$1 = function (index, length) { + var integer = toIntegerOrInfinity$1(index); + return integer < 0 ? max(integer + length, 0) : min$1(integer, length); +}; + +var toIntegerOrInfinity = toIntegerOrInfinity$2; + +var min = Math.min; + +// `ToLength` abstract operation +// https://tc39.es/ecma262/#sec-tolength +var toLength$1 = function (argument) { + return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 +}; + +var toLength = toLength$1; + +// `LengthOfArrayLike` abstract operation +// https://tc39.es/ecma262/#sec-lengthofarraylike +var lengthOfArrayLike$2 = function (obj) { + return toLength(obj.length); +}; + +var toIndexedObject$1 = toIndexedObject$3; +var toAbsoluteIndex = toAbsoluteIndex$1; +var lengthOfArrayLike$1 = lengthOfArrayLike$2; + +// `Array.prototype.{ indexOf, includes }` methods implementation +var createMethod = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject$1($this); + var length = lengthOfArrayLike$1(O); + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + +var arrayIncludes = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod(false) +}; + +var uncurryThis$7 = functionUncurryThis; +var hasOwn$3 = hasOwnProperty_1; +var toIndexedObject = toIndexedObject$3; +var indexOf = arrayIncludes.indexOf; +var hiddenKeys$1 = hiddenKeys$3; + +var push = uncurryThis$7([].push); + +var objectKeysInternal = function (object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn$3(hiddenKeys$1, key) && hasOwn$3(O, key) && push(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn$3(O, key = names[i++])) { + ~indexOf(result, key) || push(result, key); + } + return result; +}; + +// IE8- don't enum bug keys +var enumBugKeys$2 = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; + +var internalObjectKeys$1 = objectKeysInternal; +var enumBugKeys$1 = enumBugKeys$2; + +var hiddenKeys = enumBugKeys$1.concat('length', 'prototype'); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +// eslint-disable-next-line es/no-object-getownpropertynames -- safe +objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys$1(O, hiddenKeys); +}; + +var objectGetOwnPropertySymbols = {}; + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe +objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; + +var getBuiltIn$5 = getBuiltIn$7; +var uncurryThis$6 = functionUncurryThis; +var getOwnPropertyNamesModule = objectGetOwnPropertyNames; +var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols; +var anObject$6 = anObject$8; + +var concat$1 = uncurryThis$6([].concat); + +// all object keys, includes non-enumerable and symbols +var ownKeys$1 = getBuiltIn$5('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject$6(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f; + return getOwnPropertySymbols ? concat$1(keys, getOwnPropertySymbols(it)) : keys; +}; + +var hasOwn$2 = hasOwnProperty_1; +var ownKeys = ownKeys$1; +var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor; +var definePropertyModule = objectDefineProperty; + +var copyConstructorProperties$1 = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn$2(target, key) && !(exceptions && hasOwn$2(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } +}; + +var fails$3 = fails$b; +var isCallable$7 = isCallable$h; + +var replacement = /#|\.prototype\./; + +var isForced$2 = function (feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true + : value == NATIVE ? false + : isCallable$7(detection) ? fails$3(detection) + : !!detection; +}; + +var normalize = isForced$2.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); +}; + +var data = isForced$2.data = {}; +var NATIVE = isForced$2.NATIVE = 'N'; +var POLYFILL = isForced$2.POLYFILL = 'P'; + +var isForced_1 = isForced$2; + +var global$6 = global$g; +var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f; +var createNonEnumerableProperty = createNonEnumerableProperty$2; +var defineBuiltIn$3 = defineBuiltIn$4; +var defineGlobalProperty = defineGlobalProperty$3; +var copyConstructorProperties = copyConstructorProperties$1; +var isForced$1 = isForced_1; + +/* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key +*/ +var _export = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global$6; + } else if (STATIC) { + target = global$6[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = (global$6[TARGET] || {}).prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor$1(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced$1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty(sourceProperty, 'sham', true); + } + defineBuiltIn$3(target, key, sourceProperty, options); + } +}; + +var internalObjectKeys = objectKeysInternal; +var enumBugKeys = enumBugKeys$2; + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +// eslint-disable-next-line es/no-object-keys -- safe +var objectKeys$1 = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys); +}; + +var DESCRIPTORS$1 = descriptors; +var uncurryThis$5 = functionUncurryThis; +var call$8 = functionCall; +var fails$2 = fails$b; +var objectKeys = objectKeys$1; +var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols; +var propertyIsEnumerableModule = objectPropertyIsEnumerable; +var toObject = toObject$2; +var IndexedObject = indexedObject; + +// eslint-disable-next-line es/no-object-assign -- safe +var $assign = Object.assign; +// eslint-disable-next-line es/no-object-defineproperty -- required for testing +var defineProperty$1 = Object.defineProperty; +var concat = uncurryThis$5([].concat); + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +var objectAssign = !$assign || fails$2(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS$1 && $assign({ b: 1 }, $assign(defineProperty$1({}, 'a', { + enumerable: true, + get: function () { + defineProperty$1(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol(); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet; +}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject(arguments[index++]); + var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS$1 || call$8(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; +} : $assign; + +var $$6 = _export; +var assign = objectAssign; + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +// eslint-disable-next-line es/no-object-assign -- required for testing +$$6({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign +}); + +var wellKnownSymbol$8 = wellKnownSymbol$a; + +var TO_STRING_TAG$2 = wellKnownSymbol$8('toStringTag'); +var test = {}; + +test[TO_STRING_TAG$2] = 'z'; + +var toStringTagSupport = String(test) === '[object z]'; + +var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport; +var isCallable$6 = isCallable$h; +var classofRaw$1 = classofRaw$2; +var wellKnownSymbol$7 = wellKnownSymbol$a; + +var TO_STRING_TAG$1 = wellKnownSymbol$7('toStringTag'); +var $Object = Object; + +// ES3 wrong here +var CORRECT_ARGUMENTS = classofRaw$1(function () { return arguments; }()) == 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } +}; + +// getting tag from ES6+ `Object.prototype.toString` +var classof$4 = TO_STRING_TAG_SUPPORT$2 ? classofRaw$1 : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG$1)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw$1(O) + // ES3 arguments fallback + : (result = classofRaw$1(O)) == 'Object' && isCallable$6(O.callee) ? 'Arguments' : result; +}; + +var TO_STRING_TAG_SUPPORT$1 = toStringTagSupport; +var classof$3 = classof$4; + +// `Object.prototype.toString` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.tostring +var objectToString$1 = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() { + return '[object ' + classof$3(this) + ']'; +}; + +var TO_STRING_TAG_SUPPORT = toStringTagSupport; +var defineBuiltIn$2 = defineBuiltIn$4; +var toString = objectToString$1; + +// `Object.prototype.toString` method +// https://tc39.es/ecma262/#sec-object.prototype.tostring +if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn$2(Object.prototype, 'toString', toString, { unsafe: true }); +} + +var classof$2 = classofRaw$2; + +var engineIsNode = typeof process != 'undefined' && classof$2(process) == 'process'; + +var uncurryThis$4 = functionUncurryThis; +var aCallable$6 = aCallable$8; + +var functionUncurryThisAccessor = function (object, key, method) { + try { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return uncurryThis$4(aCallable$6(Object.getOwnPropertyDescriptor(object, key)[method])); + } catch (error) { /* empty */ } +}; + +var isCallable$5 = isCallable$h; + +var $String = String; +var $TypeError$6 = TypeError; + +var aPossiblePrototype$1 = function (argument) { + if (typeof argument == 'object' || isCallable$5(argument)) return argument; + throw $TypeError$6("Can't set " + $String(argument) + ' as a prototype'); +}; + +/* eslint-disable no-proto -- safe */ + +var uncurryThisAccessor = functionUncurryThisAccessor; +var anObject$5 = anObject$8; +var aPossiblePrototype = aPossiblePrototype$1; + +// `Object.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.setprototypeof +// Works with __proto__ only. Old v8 can't work with null proto objects. +// eslint-disable-next-line es/no-object-setprototypeof -- safe +var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set'); + setter(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + anObject$5(O); + aPossiblePrototype(proto); + if (CORRECT_SETTER) setter(O, proto); + else O.__proto__ = proto; + return O; + }; +}() : undefined); + +var defineProperty = objectDefineProperty.f; +var hasOwn$1 = hasOwnProperty_1; +var wellKnownSymbol$6 = wellKnownSymbol$a; + +var TO_STRING_TAG = wellKnownSymbol$6('toStringTag'); + +var setToStringTag$1 = function (target, TAG, STATIC) { + if (target && !STATIC) target = target.prototype; + if (target && !hasOwn$1(target, TO_STRING_TAG)) { + defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG }); + } +}; + +var getBuiltIn$4 = getBuiltIn$7; +var defineBuiltInAccessor = defineBuiltInAccessor$2; +var wellKnownSymbol$5 = wellKnownSymbol$a; +var DESCRIPTORS = descriptors; + +var SPECIES$2 = wellKnownSymbol$5('species'); + +var setSpecies$1 = function (CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn$4(CONSTRUCTOR_NAME); + + if (DESCRIPTORS && Constructor && !Constructor[SPECIES$2]) { + defineBuiltInAccessor(Constructor, SPECIES$2, { + configurable: true, + get: function () { return this; } + }); + } +}; + +var isPrototypeOf$1 = objectIsPrototypeOf; + +var $TypeError$5 = TypeError; + +var anInstance$1 = function (it, Prototype) { + if (isPrototypeOf$1(Prototype, it)) return it; + throw $TypeError$5('Incorrect invocation'); +}; + +var uncurryThis$3 = functionUncurryThis; +var fails$1 = fails$b; +var isCallable$4 = isCallable$h; +var classof$1 = classof$4; +var getBuiltIn$3 = getBuiltIn$7; +var inspectSource$1 = inspectSource$3; + +var noop = function () { /* empty */ }; +var empty = []; +var construct = getBuiltIn$3('Reflect', 'construct'); +var constructorRegExp = /^\s*(?:class|function)\b/; +var exec = uncurryThis$3(constructorRegExp.exec); +var INCORRECT_TO_STRING = !constructorRegExp.exec(noop); + +var isConstructorModern = function isConstructor(argument) { + if (!isCallable$4(argument)) return false; + try { + construct(noop, empty, argument); + return true; + } catch (error) { + return false; + } +}; + +var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable$4(argument)) return false; + switch (classof$1(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource$1(argument)); + } catch (error) { + return true; + } +}; + +isConstructorLegacy.sham = true; + +// `IsConstructor` abstract operation +// https://tc39.es/ecma262/#sec-isconstructor +var isConstructor$1 = !construct || fails$1(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; +}) ? isConstructorLegacy : isConstructorModern; + +var isConstructor = isConstructor$1; +var tryToString$2 = tryToString$4; + +var $TypeError$4 = TypeError; + +// `Assert: IsConstructor(argument) is true` +var aConstructor$1 = function (argument) { + if (isConstructor(argument)) return argument; + throw $TypeError$4(tryToString$2(argument) + ' is not a constructor'); +}; + +var anObject$4 = anObject$8; +var aConstructor = aConstructor$1; +var isNullOrUndefined$1 = isNullOrUndefined$4; +var wellKnownSymbol$4 = wellKnownSymbol$a; + +var SPECIES$1 = wellKnownSymbol$4('species'); + +// `SpeciesConstructor` abstract operation +// https://tc39.es/ecma262/#sec-speciesconstructor +var speciesConstructor$1 = function (O, defaultConstructor) { + var C = anObject$4(O).constructor; + var S; + return C === undefined || isNullOrUndefined$1(S = anObject$4(C)[SPECIES$1]) ? defaultConstructor : aConstructor(S); +}; + +var NATIVE_BIND$1 = functionBindNative; + +var FunctionPrototype = Function.prototype; +var apply$1 = FunctionPrototype.apply; +var call$7 = FunctionPrototype.call; + +// eslint-disable-next-line es/no-reflect -- safe +var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND$1 ? call$7.bind(apply$1) : function () { + return call$7.apply(apply$1, arguments); +}); + +var classofRaw = classofRaw$2; +var uncurryThis$2 = functionUncurryThis; + +var functionUncurryThisClause = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis$2(fn); +}; + +var uncurryThis$1 = functionUncurryThisClause; +var aCallable$5 = aCallable$8; +var NATIVE_BIND = functionBindNative; + +var bind$4 = uncurryThis$1(uncurryThis$1.bind); + +// optional / simple context binding +var functionBindContext = function (fn, that) { + aCallable$5(fn); + return that === undefined ? fn : NATIVE_BIND ? bind$4(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; + +var getBuiltIn$2 = getBuiltIn$7; + +var html$1 = getBuiltIn$2('document', 'documentElement'); + +var uncurryThis = functionUncurryThis; + +var arraySlice$1 = uncurryThis([].slice); + +var $TypeError$3 = TypeError; + +var validateArgumentsLength$1 = function (passed, required) { + if (passed < required) throw $TypeError$3('Not enough arguments'); + return passed; +}; + +var userAgent$2 = engineUserAgent; + +// eslint-disable-next-line redos/no-vulnerable -- safe +var engineIsIos = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent$2); + +var global$5 = global$g; +var apply = functionApply; +var bind$3 = functionBindContext; +var isCallable$3 = isCallable$h; +var hasOwn = hasOwnProperty_1; +var fails = fails$b; +var html = html$1; +var arraySlice = arraySlice$1; +var createElement = documentCreateElement; +var validateArgumentsLength = validateArgumentsLength$1; +var IS_IOS$1 = engineIsIos; +var IS_NODE$3 = engineIsNode; + +var set = global$5.setImmediate; +var clear = global$5.clearImmediate; +var process$3 = global$5.process; +var Dispatch = global$5.Dispatch; +var Function$1 = global$5.Function; +var MessageChannel = global$5.MessageChannel; +var String$1 = global$5.String; +var counter = 0; +var queue$2 = {}; +var ONREADYSTATECHANGE = 'onreadystatechange'; +var $location, defer, channel, port; + +fails(function () { + // Deno throws a ReferenceError on `location` access without `--location` flag + $location = global$5.location; +}); + +var run = function (id) { + if (hasOwn(queue$2, id)) { + var fn = queue$2[id]; + delete queue$2[id]; + fn(); + } +}; + +var runner = function (id) { + return function () { + run(id); + }; +}; + +var eventListener = function (event) { + run(event.data); +}; + +var globalPostMessageDefer = function (id) { + // old engines have not location.origin + global$5.postMessage(String$1(id), $location.protocol + '//' + $location.host); +}; + +// Node.js 0.9+ & IE10+ has setImmediate, otherwise: +if (!set || !clear) { + set = function setImmediate(handler) { + validateArgumentsLength(arguments.length, 1); + var fn = isCallable$3(handler) ? handler : Function$1(handler); + var args = arraySlice(arguments, 1); + queue$2[++counter] = function () { + apply(fn, undefined, args); + }; + defer(counter); + return counter; + }; + clear = function clearImmediate(id) { + delete queue$2[id]; + }; + // Node.js 0.8- + if (IS_NODE$3) { + defer = function (id) { + process$3.nextTick(runner(id)); + }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(runner(id)); + }; + // Browsers with MessageChannel, includes WebWorkers + // except iOS - https://github.com/zloirock/core-js/issues/624 + } else if (MessageChannel && !IS_IOS$1) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = eventListener; + defer = bind$3(port.postMessage, port); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if ( + global$5.addEventListener && + isCallable$3(global$5.postMessage) && + !global$5.importScripts && + $location && $location.protocol !== 'file:' && + !fails(globalPostMessageDefer) + ) { + defer = globalPostMessageDefer; + global$5.addEventListener('message', eventListener, false); + // IE8- + } else if (ONREADYSTATECHANGE in createElement('script')) { + defer = function (id) { + html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { + html.removeChild(this); + run(id); + }; + }; + // Rest old browsers + } else { + defer = function (id) { + setTimeout(runner(id), 0); + }; + } +} + +var task$1 = { + set: set, + clear: clear +}; + +var Queue$2 = function () { + this.head = null; + this.tail = null; +}; + +Queue$2.prototype = { + add: function (item) { + var entry = { item: item, next: null }; + var tail = this.tail; + if (tail) tail.next = entry; + else this.head = entry; + this.tail = entry; + }, + get: function () { + var entry = this.head; + if (entry) { + var next = this.head = entry.next; + if (next === null) this.tail = null; + return entry.item; + } + } +}; + +var queue$1 = Queue$2; + +var userAgent$1 = engineUserAgent; + +var engineIsIosPebble = /ipad|iphone|ipod/i.test(userAgent$1) && typeof Pebble != 'undefined'; + +var userAgent = engineUserAgent; + +var engineIsWebosWebkit = /web0s(?!.*chrome)/i.test(userAgent); + +var global$4 = global$g; +var bind$2 = functionBindContext; +var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; +var macrotask = task$1.set; +var Queue$1 = queue$1; +var IS_IOS = engineIsIos; +var IS_IOS_PEBBLE = engineIsIosPebble; +var IS_WEBOS_WEBKIT = engineIsWebosWebkit; +var IS_NODE$2 = engineIsNode; + +var MutationObserver = global$4.MutationObserver || global$4.WebKitMutationObserver; +var document$2 = global$4.document; +var process$2 = global$4.process; +var Promise$1 = global$4.Promise; +// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` +var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global$4, 'queueMicrotask'); +var microtask$1 = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; +var notify$1, toggle, node, promise, then; + +// modern engines have queueMicrotask method +if (!microtask$1) { + var queue = new Queue$1(); + + var flush = function () { + var parent, fn; + if (IS_NODE$2 && (parent = process$2.domain)) parent.exit(); + while (fn = queue.get()) try { + fn(); + } catch (error) { + if (queue.head) notify$1(); + throw error; + } + if (parent) parent.enter(); + }; + + // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 + // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 + if (!IS_IOS && !IS_NODE$2 && !IS_WEBOS_WEBKIT && MutationObserver && document$2) { + toggle = true; + node = document$2.createTextNode(''); + new MutationObserver(flush).observe(node, { characterData: true }); + notify$1 = function () { + node.data = toggle = !toggle; + }; + // environments with maybe non-completely correct, but existent Promise + } else if (!IS_IOS_PEBBLE && Promise$1 && Promise$1.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + promise = Promise$1.resolve(undefined); + // workaround of WebKit ~ iOS Safari 10.1 bug + promise.constructor = Promise$1; + then = bind$2(promise.then, promise); + notify$1 = function () { + then(flush); + }; + // Node.js without promises + } else if (IS_NODE$2) { + notify$1 = function () { + process$2.nextTick(flush); + }; + // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessage + // - onreadystatechange + // - setTimeout + } else { + // `webpack` dev server bug on IE global methods - use bind(fn, global) + macrotask = bind$2(macrotask, global$4); + notify$1 = function () { + macrotask(flush); + }; + } + + microtask$1 = function (fn) { + if (!queue.head) notify$1(); + queue.add(fn); + }; +} + +var microtask_1 = microtask$1; + +var hostReportErrors$1 = function (a, b) { + try { + // eslint-disable-next-line no-console -- safe + arguments.length == 1 ? console.error(a) : console.error(a, b); + } catch (error) { /* empty */ } +}; + +var perform$3 = function (exec) { + try { + return { error: false, value: exec() }; + } catch (error) { + return { error: true, value: error }; + } +}; + +var global$3 = global$g; + +var promiseNativeConstructor = global$3.Promise; + +/* global Deno -- Deno case */ + +var engineIsDeno = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; + +var IS_DENO$1 = engineIsDeno; +var IS_NODE$1 = engineIsNode; + +var engineIsBrowser = !IS_DENO$1 && !IS_NODE$1 + && typeof window == 'object' + && typeof document == 'object'; + +var global$2 = global$g; +var NativePromiseConstructor$3 = promiseNativeConstructor; +var isCallable$2 = isCallable$h; +var isForced = isForced_1; +var inspectSource = inspectSource$3; +var wellKnownSymbol$3 = wellKnownSymbol$a; +var IS_BROWSER = engineIsBrowser; +var IS_DENO = engineIsDeno; +var V8_VERSION = engineV8Version; + +NativePromiseConstructor$3 && NativePromiseConstructor$3.prototype; +var SPECIES = wellKnownSymbol$3('species'); +var SUBCLASSING = false; +var NATIVE_PROMISE_REJECTION_EVENT$1 = isCallable$2(global$2.PromiseRejectionEvent); + +var FORCED_PROMISE_CONSTRUCTOR$5 = isForced('Promise', function () { + var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor$3); + var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor$3); + // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // We can't detect it synchronously, so just check versions + if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true; + // We can't use @@species feature detection in V8 since it causes + // deoptimization and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) { + // Detect correctness of subclassing with @@species support + var promise = new NativePromiseConstructor$3(function (resolve) { resolve(1); }); + var FakePromise = function (exec) { + exec(function () { /* empty */ }, function () { /* empty */ }); + }; + var constructor = promise.constructor = {}; + constructor[SPECIES] = FakePromise; + SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise; + if (!SUBCLASSING) return true; + // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test + } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT$1; +}); + +var promiseConstructorDetection = { + CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR$5, + REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT$1, + SUBCLASSING: SUBCLASSING +}; + +var newPromiseCapability$2 = {}; + +var aCallable$4 = aCallable$8; + +var $TypeError$2 = TypeError; + +var PromiseCapability = function (C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw $TypeError$2('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aCallable$4(resolve); + this.reject = aCallable$4(reject); +}; + +// `NewPromiseCapability` abstract operation +// https://tc39.es/ecma262/#sec-newpromisecapability +newPromiseCapability$2.f = function (C) { + return new PromiseCapability(C); +}; + +var $$5 = _export; +var IS_NODE = engineIsNode; +var global$1 = global$g; +var call$6 = functionCall; +var defineBuiltIn$1 = defineBuiltIn$4; +var setPrototypeOf = objectSetPrototypeOf; +var setToStringTag = setToStringTag$1; +var setSpecies = setSpecies$1; +var aCallable$3 = aCallable$8; +var isCallable$1 = isCallable$h; +var isObject$2 = isObject$8; +var anInstance = anInstance$1; +var speciesConstructor = speciesConstructor$1; +var task = task$1.set; +var microtask = microtask_1; +var hostReportErrors = hostReportErrors$1; +var perform$2 = perform$3; +var Queue = queue$1; +var InternalStateModule = internalState; +var NativePromiseConstructor$2 = promiseNativeConstructor; +var PromiseConstructorDetection = promiseConstructorDetection; +var newPromiseCapabilityModule$3 = newPromiseCapability$2; + +var PROMISE = 'Promise'; +var FORCED_PROMISE_CONSTRUCTOR$4 = PromiseConstructorDetection.CONSTRUCTOR; +var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT; +var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING; +var getInternalPromiseState = InternalStateModule.getterFor(PROMISE); +var setInternalState = InternalStateModule.set; +var NativePromisePrototype$1 = NativePromiseConstructor$2 && NativePromiseConstructor$2.prototype; +var PromiseConstructor = NativePromiseConstructor$2; +var PromisePrototype = NativePromisePrototype$1; +var TypeError$1 = global$1.TypeError; +var document$1 = global$1.document; +var process$1 = global$1.process; +var newPromiseCapability$1 = newPromiseCapabilityModule$3.f; +var newGenericPromiseCapability = newPromiseCapability$1; + +var DISPATCH_EVENT = !!(document$1 && document$1.createEvent && global$1.dispatchEvent); +var UNHANDLED_REJECTION = 'unhandledrejection'; +var REJECTION_HANDLED = 'rejectionhandled'; +var PENDING = 0; +var FULFILLED = 1; +var REJECTED = 2; +var HANDLED = 1; +var UNHANDLED = 2; + +var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; + +// helpers +var isThenable = function (it) { + var then; + return isObject$2(it) && isCallable$1(then = it.then) ? then : false; +}; + +var callReaction = function (reaction, state) { + var value = state.value; + var ok = state.state == FULFILLED; + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + try { + if (handler) { + if (!ok) { + if (state.rejection === UNHANDLED) onHandleUnhandled(state); + state.rejection = HANDLED; + } + if (handler === true) result = value; + else { + if (domain) domain.enter(); + result = handler(value); // can throw + if (domain) { + domain.exit(); + exited = true; + } + } + if (result === reaction.promise) { + reject(TypeError$1('Promise-chain cycle')); + } else if (then = isThenable(result)) { + call$6(then, result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (error) { + if (domain && !exited) domain.exit(); + reject(error); + } +}; + +var notify = function (state, isReject) { + if (state.notified) return; + state.notified = true; + microtask(function () { + var reactions = state.reactions; + var reaction; + while (reaction = reactions.get()) { + callReaction(reaction, state); + } + state.notified = false; + if (isReject && !state.rejection) onUnhandled(state); + }); +}; + +var dispatchEvent = function (name, promise, reason) { + var event, handler; + if (DISPATCH_EVENT) { + event = document$1.createEvent('Event'); + event.promise = promise; + event.reason = reason; + event.initEvent(name, false, true); + global$1.dispatchEvent(event); + } else event = { promise: promise, reason: reason }; + if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global$1['on' + name])) handler(event); + else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); +}; + +var onUnhandled = function (state) { + call$6(task, global$1, function () { + var promise = state.facade; + var value = state.value; + var IS_UNHANDLED = isUnhandled(state); + var result; + if (IS_UNHANDLED) { + result = perform$2(function () { + if (IS_NODE) { + process$1.emit('unhandledRejection', value, promise); + } else dispatchEvent(UNHANDLED_REJECTION, promise, value); + }); + // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; + if (result.error) throw result.value; + } + }); +}; + +var isUnhandled = function (state) { + return state.rejection !== HANDLED && !state.parent; +}; + +var onHandleUnhandled = function (state) { + call$6(task, global$1, function () { + var promise = state.facade; + if (IS_NODE) { + process$1.emit('rejectionHandled', promise); + } else dispatchEvent(REJECTION_HANDLED, promise, state.value); + }); +}; + +var bind$1 = function (fn, state, unwrap) { + return function (value) { + fn(state, value, unwrap); + }; +}; + +var internalReject = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + state.value = value; + state.state = REJECTED; + notify(state, true); +}; + +var internalResolve = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + try { + if (state.facade === value) throw TypeError$1("Promise can't be resolved itself"); + var then = isThenable(value); + if (then) { + microtask(function () { + var wrapper = { done: false }; + try { + call$6(then, value, + bind$1(internalResolve, wrapper, state), + bind$1(internalReject, wrapper, state) + ); + } catch (error) { + internalReject(wrapper, error, state); + } + }); + } else { + state.value = value; + state.state = FULFILLED; + notify(state, false); + } + } catch (error) { + internalReject({ done: false }, error, state); + } +}; + +// constructor polyfill +if (FORCED_PROMISE_CONSTRUCTOR$4) { + // 25.4.3.1 Promise(executor) + PromiseConstructor = function Promise(executor) { + anInstance(this, PromisePrototype); + aCallable$3(executor); + call$6(Internal, this); + var state = getInternalPromiseState(this); + try { + executor(bind$1(internalResolve, state), bind$1(internalReject, state)); + } catch (error) { + internalReject(state, error); + } + }; + + PromisePrototype = PromiseConstructor.prototype; + + // eslint-disable-next-line no-unused-vars -- required for `.length` + Internal = function Promise(executor) { + setInternalState(this, { + type: PROMISE, + done: false, + notified: false, + parent: false, + reactions: new Queue(), + rejection: false, + state: PENDING, + value: undefined + }); + }; + + // `Promise.prototype.then` method + // https://tc39.es/ecma262/#sec-promise.prototype.then + Internal.prototype = defineBuiltIn$1(PromisePrototype, 'then', function then(onFulfilled, onRejected) { + var state = getInternalPromiseState(this); + var reaction = newPromiseCapability$1(speciesConstructor(this, PromiseConstructor)); + state.parent = true; + reaction.ok = isCallable$1(onFulfilled) ? onFulfilled : true; + reaction.fail = isCallable$1(onRejected) && onRejected; + reaction.domain = IS_NODE ? process$1.domain : undefined; + if (state.state == PENDING) state.reactions.add(reaction); + else microtask(function () { + callReaction(reaction, state); + }); + return reaction.promise; + }); + + OwnPromiseCapability = function () { + var promise = new Internal(); + var state = getInternalPromiseState(promise); + this.promise = promise; + this.resolve = bind$1(internalResolve, state); + this.reject = bind$1(internalReject, state); + }; + + newPromiseCapabilityModule$3.f = newPromiseCapability$1 = function (C) { + return C === PromiseConstructor || C === PromiseWrapper + ? new OwnPromiseCapability(C) + : newGenericPromiseCapability(C); + }; + + if (isCallable$1(NativePromiseConstructor$2) && NativePromisePrototype$1 !== Object.prototype) { + nativeThen = NativePromisePrototype$1.then; + + if (!NATIVE_PROMISE_SUBCLASSING) { + // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs + defineBuiltIn$1(NativePromisePrototype$1, 'then', function then(onFulfilled, onRejected) { + var that = this; + return new PromiseConstructor(function (resolve, reject) { + call$6(nativeThen, that, resolve, reject); + }).then(onFulfilled, onRejected); + // https://github.com/zloirock/core-js/issues/640 + }, { unsafe: true }); + } + + // make `.constructor === Promise` work for native promise-based APIs + try { + delete NativePromisePrototype$1.constructor; + } catch (error) { /* empty */ } + + // make `instanceof Promise` work for native promise-based APIs + if (setPrototypeOf) { + setPrototypeOf(NativePromisePrototype$1, PromisePrototype); + } + } +} + +$$5({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR$4 }, { + Promise: PromiseConstructor +}); + +setToStringTag(PromiseConstructor, PROMISE, false); +setSpecies(PROMISE); + +var iterators = {}; + +var wellKnownSymbol$2 = wellKnownSymbol$a; +var Iterators$1 = iterators; + +var ITERATOR$2 = wellKnownSymbol$2('iterator'); +var ArrayPrototype = Array.prototype; + +// check on default Array iterator +var isArrayIteratorMethod$1 = function (it) { + return it !== undefined && (Iterators$1.Array === it || ArrayPrototype[ITERATOR$2] === it); +}; + +var classof = classof$4; +var getMethod$1 = getMethod$3; +var isNullOrUndefined = isNullOrUndefined$4; +var Iterators = iterators; +var wellKnownSymbol$1 = wellKnownSymbol$a; + +var ITERATOR$1 = wellKnownSymbol$1('iterator'); + +var getIteratorMethod$2 = function (it) { + if (!isNullOrUndefined(it)) return getMethod$1(it, ITERATOR$1) + || getMethod$1(it, '@@iterator') + || Iterators[classof(it)]; +}; + +var call$5 = functionCall; +var aCallable$2 = aCallable$8; +var anObject$3 = anObject$8; +var tryToString$1 = tryToString$4; +var getIteratorMethod$1 = getIteratorMethod$2; + +var $TypeError$1 = TypeError; + +var getIterator$1 = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod$1(argument) : usingIterator; + if (aCallable$2(iteratorMethod)) return anObject$3(call$5(iteratorMethod, argument)); + throw $TypeError$1(tryToString$1(argument) + ' is not iterable'); +}; + +var call$4 = functionCall; +var anObject$2 = anObject$8; +var getMethod = getMethod$3; + +var iteratorClose$1 = function (iterator, kind, value) { + var innerResult, innerError; + anObject$2(iterator); + try { + innerResult = getMethod(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') throw value; + return value; + } + innerResult = call$4(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === 'throw') throw value; + if (innerError) throw innerResult; + anObject$2(innerResult); + return value; +}; + +var bind = functionBindContext; +var call$3 = functionCall; +var anObject$1 = anObject$8; +var tryToString = tryToString$4; +var isArrayIteratorMethod = isArrayIteratorMethod$1; +var lengthOfArrayLike = lengthOfArrayLike$2; +var isPrototypeOf = objectIsPrototypeOf; +var getIterator = getIterator$1; +var getIteratorMethod = getIteratorMethod$2; +var iteratorClose = iteratorClose$1; + +var $TypeError = TypeError; + +var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; +}; + +var ResultPrototype = Result.prototype; + +var iterate$2 = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_RECORD = !!(options && options.IS_RECORD); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose(iterator, 'normal', condition); + return new Result(true, condition); + }; + + var callFn = function (value) { + if (AS_ENTRIES) { + anObject$1(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; + + if (IS_RECORD) { + iterator = iterable.iterator; + } else if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod(iterable); + if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + } + iterator = getIterator(iterable, iterFn); + } + + next = IS_RECORD ? iterable.next : iterator.next; + while (!(step = call$3(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } + if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); +}; + +var wellKnownSymbol = wellKnownSymbol$a; + +var ITERATOR = wellKnownSymbol('iterator'); +var SAFE_CLOSING = false; + +try { + var called = 0; + var iteratorWithReturn = { + next: function () { + return { done: !!called++ }; + }, + 'return': function () { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR] = function () { + return this; + }; + // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing + Array.from(iteratorWithReturn, function () { throw 2; }); +} catch (error) { /* empty */ } + +var checkCorrectnessOfIteration$1 = function (exec, SKIP_CLOSING) { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR] = function () { + return { + next: function () { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { /* empty */ } + return ITERATION_SUPPORT; +}; + +var NativePromiseConstructor$1 = promiseNativeConstructor; +var checkCorrectnessOfIteration = checkCorrectnessOfIteration$1; +var FORCED_PROMISE_CONSTRUCTOR$3 = promiseConstructorDetection.CONSTRUCTOR; + +var promiseStaticsIncorrectIteration = FORCED_PROMISE_CONSTRUCTOR$3 || !checkCorrectnessOfIteration(function (iterable) { + NativePromiseConstructor$1.all(iterable).then(undefined, function () { /* empty */ }); +}); + +var $$4 = _export; +var call$2 = functionCall; +var aCallable$1 = aCallable$8; +var newPromiseCapabilityModule$2 = newPromiseCapability$2; +var perform$1 = perform$3; +var iterate$1 = iterate$2; +var PROMISE_STATICS_INCORRECT_ITERATION$1 = promiseStaticsIncorrectIteration; + +// `Promise.all` method +// https://tc39.es/ecma262/#sec-promise.all +$$4({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$1 }, { + all: function all(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$2.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform$1(function () { + var $promiseResolve = aCallable$1(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate$1(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call$2($promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + +var $$3 = _export; +var FORCED_PROMISE_CONSTRUCTOR$2 = promiseConstructorDetection.CONSTRUCTOR; +var NativePromiseConstructor = promiseNativeConstructor; +var getBuiltIn$1 = getBuiltIn$7; +var isCallable = isCallable$h; +var defineBuiltIn = defineBuiltIn$4; + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + +// `Promise.prototype.catch` method +// https://tc39.es/ecma262/#sec-promise.prototype.catch +$$3({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR$2, real: true }, { + 'catch': function (onRejected) { + return this.then(undefined, onRejected); + } +}); + +// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` +if (isCallable(NativePromiseConstructor)) { + var method = getBuiltIn$1('Promise').prototype['catch']; + if (NativePromisePrototype['catch'] !== method) { + defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true }); + } +} + +var $$2 = _export; +var call$1 = functionCall; +var aCallable = aCallable$8; +var newPromiseCapabilityModule$1 = newPromiseCapability$2; +var perform = perform$3; +var iterate = iterate$2; +var PROMISE_STATICS_INCORRECT_ITERATION = promiseStaticsIncorrectIteration; + +// `Promise.race` method +// https://tc39.es/ecma262/#sec-promise.race +$$2({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + race: function race(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$1.f(C); + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aCallable(C.resolve); + iterate(iterable, function (promise) { + call$1($promiseResolve, C, promise).then(capability.resolve, reject); + }); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + +var $$1 = _export; +var call = functionCall; +var newPromiseCapabilityModule = newPromiseCapability$2; +var FORCED_PROMISE_CONSTRUCTOR$1 = promiseConstructorDetection.CONSTRUCTOR; + +// `Promise.reject` method +// https://tc39.es/ecma262/#sec-promise.reject +$$1({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR$1 }, { + reject: function reject(r) { + var capability = newPromiseCapabilityModule.f(this); + call(capability.reject, undefined, r); + return capability.promise; + } +}); + +var anObject = anObject$8; +var isObject$1 = isObject$8; +var newPromiseCapability = newPromiseCapability$2; + +var promiseResolve$1 = function (C, x) { + anObject(C); + if (isObject$1(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; +}; + +var $ = _export; +var getBuiltIn = getBuiltIn$7; +var FORCED_PROMISE_CONSTRUCTOR = promiseConstructorDetection.CONSTRUCTOR; +var promiseResolve = promiseResolve$1; + +getBuiltIn('Promise'); + +// `Promise.resolve` method +// https://tc39.es/ecma262/#sec-promise.resolve +$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + resolve: function resolve(x) { + return promiseResolve(this, x); + } +}); + +function defined(x) { + return x != null && !Number.isNaN(x); +} + +function ascendingDefined(a, b) { + return +defined(b) - +defined(a) || ascending(a, b); +} + +function finite(x) { + return isFinite(x) ? x : NaN; +} + +function positive(x) { + return x > 0 && isFinite(x) ? x : NaN; +} + +function negative(x) { + return x < 0 && isFinite(x) ? x : NaN; +} + +function format(date, fallback) { + if (!(date instanceof Date)) date = new Date(+date); + if (isNaN(date)) return typeof fallback === "function" ? fallback(date) : fallback; + const hours = date.getUTCHours(); + const minutes = date.getUTCMinutes(); + const seconds = date.getUTCSeconds(); + const milliseconds = date.getUTCMilliseconds(); + return `${formatYear(date.getUTCFullYear())}-${pad(date.getUTCMonth() + 1, 2)}-${pad(date.getUTCDate(), 2)}${ + hours || minutes || seconds || milliseconds ? `T${pad(hours, 2)}:${pad(minutes, 2)}${ + seconds || milliseconds ? `:${pad(seconds, 2)}${ + milliseconds ? `.${pad(milliseconds, 3)}` : `` + }` : `` + }Z` : `` + }`; +} + +function formatYear(year) { + return year < 0 ? `-${pad(-year, 6)}` + : year > 9999 ? `+${pad(year, 6)}` + : pad(year, 4); +} + +function pad(value, width) { + return `${value}`.padStart(width, "0"); +} + +const re = /^(?:[-+]\d{2})?\d{4}(?:-\d{2}(?:-\d{2})?)?(?:T\d{2}:\d{2}(?::\d{2}(?:\.\d{3})?)?(?:Z|[-+]\d{2}:?\d{2})?)?$/; + +function parse(string, fallback) { + if (!re.test(string += "")) return typeof fallback === "function" ? fallback(string) : fallback; + return new Date(string); +} + +const timeIntervals = new Map([ + ["second", timeSecond], + ["minute", timeMinute], + ["hour", timeHour], + ["day", timeDay], + ["week", timeWeek], + ["month", timeMonth], + ["quarter", timeMonth.every(3)], + ["half", timeMonth.every(6)], + ["year", timeYear], + ["monday", timeMonday], + ["tuesday", timeTuesday], + ["wednesday", timeWednesday], + ["thursday", timeThursday], + ["friday", timeFriday], + ["saturday", timeSaturday], + ["sunday", timeSunday] +]); + +const utcIntervals = new Map([ + ["second", utcSecond], + ["minute", utcMinute], + ["hour", utcHour], + ["day", utcDay], + ["week", utcWeek], + ["month", utcMonth], + ["quarter", utcMonth.every(3)], + ["half", utcMonth.every(6)], + ["year", utcYear], + ["monday", utcMonday], + ["tuesday", utcTuesday], + ["wednesday", utcWednesday], + ["thursday", utcThursday], + ["friday", utcFriday], + ["saturday", utcSaturday], + ["sunday", utcSunday] +]); + +function maybeTimeInterval(interval) { + const i = timeIntervals.get(`${interval}`.toLowerCase()); + if (!i) throw new Error(`unknown interval: ${interval}`); + return i; +} + +function maybeUtcInterval(interval) { + const i = utcIntervals.get(`${interval}`.toLowerCase()); + if (!i) throw new Error(`unknown interval: ${interval}`); + return i; +} + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray +const TypedArray = Object.getPrototypeOf(Uint8Array); +const objectToString = Object.prototype.toString; +const string = (x) => (x == null ? x : `${x}`); +const constant = (x) => () => x; + +// If the values are specified as a typed array, no coercion is required. +function coerceNumbers(values) { + return values instanceof TypedArray ? values : map(values, coerceNumber, Float64Array); +} + +// Unlike Mark’s number, here we want to convert null and undefined to NaN since +// the result will be stored in a Float64Array and we don’t want null to be +// coerced to zero. We use Number instead of unary + to allow BigInt coercion. +function coerceNumber(x) { + return x == null ? NaN : Number(x); +} + +function coerceDates(values) { + return map(values, coerceDate); +} + +// When coercing strings to dates, we only want to allow the ISO 8601 format +// since the built-in string parsing of the Date constructor varies across +// browsers. (In the future, this could be made more liberal if desired, though +// it is still generally preferable to do date parsing yourself explicitly, +// rather than rely on Plot.) Any non-string values are coerced to number first +// and treated as milliseconds since UNIX epoch. +function coerceDate(x) { + return x instanceof Date && !isNaN(x) + ? x + : typeof x === "string" + ? parse(x) + : x == null || isNaN((x = +x)) + ? undefined + : new Date(x); +} + +// Some channels may allow a string constant to be specified; to differentiate +// string constants (e.g., "red") from named fields (e.g., "date"), this +// function tests whether the given value is a CSS color string and returns a +// tuple [channel, constant] where one of the two is undefined, and the other is +// the given value. If you wish to reference a named field that is also a valid +// CSS color, use an accessor (d => d.red) instead. +function maybeColorChannel(value, defaultValue) { + if (value === undefined) value = defaultValue; + return value === null ? [undefined, "none"] : isColor(value) ? [undefined, value] : [value, undefined]; +} + +// Similar to maybeColorChannel, this tests whether the given value is a number +// indicating a constant, and otherwise assumes that it’s a channel value. +function maybeNumberChannel(value, defaultValue) { + if (value === undefined) value = defaultValue; + return value === null || typeof value === "number" ? [undefined, value] : [value, undefined]; +} + +// Promotes the specified data to an array as needed. +function arrayify(data) { + return data == null || data instanceof Array || data instanceof TypedArray ? data : Array.from(data); +} + +// An optimization of type.from(values, f): if the given values are already an +// instanceof the desired array type, the faster values.map method is used. +function map(values, f, type = Array) { + return values == null ? values : values instanceof type ? values.map(f) : type.from(values, f); +} + +// An optimization of type.from(values): if the given values are already an +// instanceof the desired array type, the faster values.slice method is used. +function slice(values, type = Array) { + return values instanceof type ? values.slice() : type.from(values); +} + +// Disambiguates an options object (e.g., {y: "x2"}) from a primitive value. +function isObject(option) { + return option?.toString === objectToString; +} + +// Disambiguates a scale options object (e.g., {color: {type: "linear"}}) from +// some other option (e.g., {color: "red"}). When creating standalone legends, +// this is used to test whether a scale is defined; this should be consistent +// with inferScaleType when there are no channels associated with the scale, and +// if this returns true, then normalizeScale must return non-null. +function isScaleOptions(option) { + return isObject(option) && (option.type !== undefined || option.domain !== undefined); +} + +// If interval is not nullish, converts interval shorthand such as a number (for +// multiples) or a time interval name (such as “dayâ€) to a {floor, offset, +// range} object similar to a D3 time interval. +function maybeInterval(interval, type) { + if (interval == null) return; + if (typeof interval === "number") { + if (0 < interval && interval < 1 && Number.isInteger(1 / interval)) interval = -1 / interval; + const n = Math.abs(interval); + return interval < 0 + ? { + floor: (d) => Math.floor(d * n) / n, + offset: (d) => (d * n + 1) / n, // note: no optional step for simplicity + range: (lo, hi) => range(Math.ceil(lo * n), hi * n).map((x) => x / n) + } + : { + floor: (d) => Math.floor(d / n) * n, + offset: (d) => d + n, // note: no optional step for simplicity + range: (lo, hi) => range(Math.ceil(lo / n), hi / n).map((x) => x * n) + }; + } + if (typeof interval === "string") return (type === "time" ? maybeTimeInterval : maybeUtcInterval)(interval); + if (typeof interval.floor !== "function") throw new Error("invalid interval; missing floor method"); + if (typeof interval.offset !== "function") throw new Error("invalid interval; missing offset method"); + return interval; +} + +// Like maybeInterval, but requires a range method too. +function maybeRangeInterval(interval, type) { + interval = maybeInterval(interval, type); + if (interval && typeof interval.range !== "function") throw new Error("invalid interval: missing range method"); + return interval; +} + +// Like maybeRangeInterval, but requires a ceil method too. +function maybeNiceInterval(interval, type) { + interval = maybeRangeInterval(interval, type); + if (interval && typeof interval.ceil !== "function") throw new Error("invalid interval: missing ceil method"); + return interval; +} + +function isOrdinal(values) { + for (const value of values) { + if (value == null) continue; + const type = typeof value; + return type === "string" || type === "boolean"; + } +} + +function isTemporal(values) { + for (const value of values) { + if (value == null) continue; + return value instanceof Date; + } +} + +// Are these strings that might represent dates? This is stricter than ISO 8601 +// because we want to ignore false positives on numbers; for example, the string +// "1192" is more likely to represent a number than a date even though it is +// valid ISO 8601 representing 1192-01-01. +function isTemporalString(values) { + for (const value of values) { + if (value == null) continue; + return typeof value === "string" && isNaN(value) && parse(value); + } +} + +// Are these strings that might represent numbers? This is stricter than +// coercion because we want to ignore false positives on e.g. empty strings. +function isNumericString(values) { + for (const value of values) { + if (value == null) continue; + if (typeof value !== "string") return false; + if (!value.trim()) continue; + return !isNaN(value); + } +} + +// Mostly relies on d3-color, with a few extra color keywords. Currently this +// strictly requires that the value be a string; we might want to apply string +// coercion here, though note that d3-color instances would need to support +// valueOf to work correctly with InternMap. +// https://www.w3.org/TR/SVG11/painting.html#SpecifyingPaint +function isColor(value) { + if (typeof value !== "string") return false; + value = value.toLowerCase().trim(); + return ( + value === "none" || + value === "currentcolor" || + (value.startsWith("url(") && value.endsWith(")")) || // <funciri>, e.g. pattern or gradient + (value.startsWith("var(") && value.endsWith(")")) || // CSS variable + color$1(value) !== null + ); +} + +function isNoneish(value) { + return value == null || isNone(value); +} + +function isNone(value) { + return /^\s*none\s*$/i.test(value); +} + +// Like a sort comparator, returns a positive value if the given array of values +// is in ascending order, a negative value if the values are in descending +// order. Assumes monotonicity; only tests the first and last values. +function orderof(values) { + if (values == null) return; + const first = values[0]; + const last = values[values.length - 1]; + return descending(first, last); +} + +// Unlike {...defaults, ...options}, this ensures that any undefined (but +// present) properties in options inherit the given default value. +function inherit(options = {}, ...rest) { + let o = options; + for (const defaults of rest) { + for (const key in defaults) { + if (o[key] === undefined) { + const value = defaults[key]; + if (o === options) o = {...o, [key]: value}; + else o[key] = value; + } + } + } + return o; +} + +// Positional scales have associated axes, and for ordinal data, a point or band +// scale is used instead of an ordinal scale. +const position = Symbol("position"); + +// Color scales default to the turbo interpolator for quantitative data, and to +// the Tableau10 scheme for ordinal data. Color scales may also have an +// associated legend. +const color = Symbol("color"); + +// Radius scales default to the sqrt type, have a default range of [0, 3], and a +// default domain from 0 to the median first quartile of associated channels. +const radius = Symbol("radius"); + +// Length scales default to the linear type, have a default range of [0, 12], +// and a default domain from 0 to the median median of associated channels. +const length = Symbol("length"); + +// Opacity scales have a default range of [0, 1], and a default domain from 0 to +// the maximum value of associated channels. +const opacity = Symbol("opacity"); + +// Symbol scales have a default range of categorical symbols. +const symbol = Symbol("symbol"); + +// TODO Rather than hard-coding the list of known scale names, collect the names +// and categories for each plot specification, so that custom marks can register +// custom scales. +const registry = new Map([ + ["x", position], + ["y", position], + ["fx", position], + ["fy", position], + ["r", radius], + ["color", color], + ["opacity", opacity], + ["symbol", symbol], + ["length", length] +]); + +const sqrt3 = Math.sqrt(3); +const sqrt4_3 = 2 / sqrt3; + +const symbolHexagon = { + draw(context, size) { + const rx = Math.sqrt(size / Math.PI), + ry = rx * sqrt4_3, + hy = ry / 2; + context.moveTo(0, ry); + context.lineTo(rx, hy); + context.lineTo(rx, -hy); + context.lineTo(0, -ry); + context.lineTo(-rx, -hy); + context.lineTo(-rx, hy); + context.closePath(); + } +}; + +const symbols = new Map([ + ["asterisk", symbolAsterisk], + ["circle", symbolCircle], + ["cross", symbolCross], + ["diamond", symbolDiamond], + ["diamond2", symbolDiamond2], + ["hexagon", symbolHexagon], + ["plus", symbolPlus], + ["square", symbolSquare], + ["square2", symbolSquare2], + ["star", symbolStar], + ["times", symbolTimes], + ["triangle", symbolTriangle], + ["triangle2", symbolTriangle2], + ["wye", symbolWye] +]); + +function isSymbolObject(value) { + return value && typeof value.draw === "function"; +} + +function maybeSymbol(symbol) { + if (symbol == null || isSymbolObject(symbol)) return symbol; + const value = symbols.get(`${symbol}`.toLowerCase()); + if (value) return value; + throw new Error(`invalid symbol: ${symbol}`); +} + +function warn(message) { + console.warn(message); +} + +const pi = Math.PI; +const tau = 2 * pi; + +function createProjection( + { + projection, + inset: globalInset = 0, + insetTop = globalInset, + insetRight = globalInset, + insetBottom = globalInset, + insetLeft = globalInset + } = {}, + dimensions +) { + if (projection == null) return; + if (typeof projection.stream === "function") return projection; // d3 projection + let options; + let domain; + let clip = "frame"; + + // If the projection was specified as an object with additional options, + // extract those. The order of precedence for insetTop (and other insets) is: + // projection.insetTop, projection.inset, (global) insetTop, (global) inset. + // Any other options on this object will be passed through to the initializer. + if (isObject(projection)) { + let inset; + ({ + type: projection, + domain, + inset, + insetTop = inset !== undefined ? inset : insetTop, + insetRight = inset !== undefined ? inset : insetRight, + insetBottom = inset !== undefined ? inset : insetBottom, + insetLeft = inset !== undefined ? inset : insetLeft, + clip = clip, + ...options + } = projection); + if (projection == null) return; + } + + // For named projections, retrieve the corresponding projection initializer. + if (typeof projection !== "function") ({type: projection} = namedProjection(projection)); + + // Compute the frame dimensions and invoke the projection initializer. + const {width, height, marginLeft, marginRight, marginTop, marginBottom} = dimensions; + const dx = width - marginLeft - marginRight - insetLeft - insetRight; + const dy = height - marginTop - marginBottom - insetTop - insetBottom; + projection = projection?.({width: dx, height: dy, clip, ...options}); + + // The projection initializer might decide to not use a projection. + if (projection == null) return; + clip = maybePostClip(clip, marginLeft, marginTop, width - marginRight, height - marginBottom); + + // Translate the origin to the top-left corner, respecting margins and insets. + let tx = marginLeft + insetLeft; + let ty = marginTop + insetTop; + let transform; + + // If a domain is specified, fit the projection to the frame. + if (domain != null) { + const [[x0, y0], [x1, y1]] = geoPath(projection).bounds(domain); + const k = Math.min(dx / (x1 - x0), dy / (y1 - y0)); + if (k > 0) { + tx -= (k * (x0 + x1) - dx) / 2; + ty -= (k * (y0 + y1) - dy) / 2; + transform = geoTransform({ + point(x, y) { + this.stream.point(x * k + tx, y * k + ty); + } + }); + } else { + warn(`Warning: the projection could not be fit to the specified domain; using the default scale.`); + } + } + + transform ??= + tx === 0 && ty === 0 + ? identity() + : geoTransform({ + point(x, y) { + this.stream.point(x + tx, y + ty); + } + }); + + return {stream: (s) => projection.stream(transform.stream(clip(s)))}; +} + +function namedProjection(projection) { + switch (`${projection}`.toLowerCase()) { + case "albers-usa": + return scaleProjection(geoAlbersUsa, 0.7463, 0.4673); + case "albers": + return conicProjection(geoAlbers, 0.7463, 0.4673); + case "azimuthal-equal-area": + return scaleProjection(geoAzimuthalEqualArea, 4, 4); + case "azimuthal-equidistant": + return scaleProjection(geoAzimuthalEquidistant, tau, tau); + case "conic-conformal": + return conicProjection(geoConicConformal, tau, tau); + case "conic-equal-area": + return conicProjection(geoConicEqualArea, 6.1702, 2.9781); + case "conic-equidistant": + return conicProjection(geoConicEquidistant, 7.312, 3.6282); + case "equal-earth": + return scaleProjection(geoEqualEarth, 5.4133, 2.6347); + case "equirectangular": + return scaleProjection(geoEquirectangular, tau, pi); + case "gnomonic": + return scaleProjection(geoGnomonic, 3.4641, 3.4641); + case "identity": + return {type: identity}; + case "reflect-y": + return {type: reflectY}; + case "mercator": + return scaleProjection(geoMercator, tau, tau); + case "orthographic": + return scaleProjection(geoOrthographic, 2, 2); + case "stereographic": + return scaleProjection(geoStereographic, 2, 2); + case "transverse-mercator": + return scaleProjection(geoTransverseMercator, tau, tau); + default: + throw new Error(`unknown projection type: ${projection}`); + } +} + +function maybePostClip(clip, x1, y1, x2, y2) { + if (clip === false || clip == null || typeof clip === "number") return (s) => s; + if (clip === true) clip = "frame"; + switch (`${clip}`.toLowerCase()) { + case "frame": + return geoClipRectangle(x1, y1, x2, y2); + default: + throw new Error(`unknown projection clip type: ${clip}`); + } +} + +function scaleProjection(createProjection, kx, ky) { + return { + type: ({width, height, rotate, precision = 0.15, clip}) => { + const projection = createProjection(); + if (precision != null) projection.precision?.(precision); + if (rotate != null) projection.rotate?.(rotate); + if (typeof clip === "number") projection.clipAngle?.(clip); + projection.scale(Math.min(width / kx, height / ky)); + projection.translate([width / 2, height / 2]); + return projection; + }, + aspectRatio: ky / kx + }; +} + +function conicProjection(createProjection, kx, ky) { + const {type, aspectRatio} = scaleProjection(createProjection, kx, ky); + return { + type: (options) => { + const {parallels, domain, width, height} = options; + const projection = type(options); + if (parallels != null) { + projection.parallels(parallels); + if (domain === undefined) { + projection.fitSize([width, height], {type: "Sphere"}); + } + } + return projection; + }, + aspectRatio + }; +} + +const identity = constant({stream: (stream) => stream}); + +const reflectY = constant( + geoTransform({ + point(x, y) { + this.stream.point(x, -y); + } + }) +); + +function createContext(options = {}, dimensions, className) { + const {document = typeof window !== "undefined" ? window.document : undefined} = options; + return {document, className, projection: createProjection(options, dimensions)}; +} + +function create(name, {document}) { + return select(creator(name).call(document.documentElement)); +} + +const ordinalSchemes = new Map([ + // categorical + ["accent", schemeAccent], + ["category10", schemeCategory10], + ["dark2", schemeDark2], + ["paired", schemePaired], + ["pastel1", schemePastel1], + ["pastel2", schemePastel2], + ["set1", schemeSet1], + ["set2", schemeSet2], + ["set3", schemeSet3], + ["tableau10", schemeTableau10], + + // diverging + ["brbg", scheme11(schemeBrBG, interpolateBrBG)], + ["prgn", scheme11(schemePRGn, interpolatePRGn)], + ["piyg", scheme11(schemePiYG, interpolatePiYG)], + ["puor", scheme11(schemePuOr, interpolatePuOr)], + ["rdbu", scheme11(schemeRdBu, interpolateRdBu)], + ["rdgy", scheme11(schemeRdGy, interpolateRdGy)], + ["rdylbu", scheme11(schemeRdYlBu, interpolateRdYlBu)], + ["rdylgn", scheme11(schemeRdYlGn, interpolateRdYlGn)], + ["spectral", scheme11(schemeSpectral, interpolateSpectral)], + + // reversed diverging (for temperature data) + ["burd", scheme11r(schemeRdBu, interpolateRdBu)], + ["buylrd", scheme11r(schemeRdYlBu, interpolateRdYlBu)], + + // sequential (single-hue) + ["blues", scheme9(schemeBlues, interpolateBlues)], + ["greens", scheme9(schemeGreens, interpolateGreens)], + ["greys", scheme9(schemeGreys, interpolateGreys)], + ["oranges", scheme9(schemeOranges, interpolateOranges)], + ["purples", scheme9(schemePurples, interpolatePurples)], + ["reds", scheme9(schemeReds, interpolateReds)], + + // sequential (multi-hue) + ["turbo", schemei(interpolateTurbo)], + ["viridis", schemei(interpolateViridis)], + ["magma", schemei(interpolateMagma)], + ["inferno", schemei(interpolateInferno)], + ["plasma", schemei(interpolatePlasma)], + ["cividis", schemei(interpolateCividis)], + ["cubehelix", schemei(interpolateCubehelixDefault)], + ["warm", schemei(interpolateWarm)], + ["cool", schemei(interpolateCool)], + ["bugn", scheme9(schemeBuGn, interpolateBuGn)], + ["bupu", scheme9(schemeBuPu, interpolateBuPu)], + ["gnbu", scheme9(schemeGnBu, interpolateGnBu)], + ["orrd", scheme9(schemeOrRd, interpolateOrRd)], + ["pubu", scheme9(schemePuBu, interpolatePuBu)], + ["pubugn", scheme9(schemePuBuGn, interpolatePuBuGn)], + ["purd", scheme9(schemePuRd, interpolatePuRd)], + ["rdpu", scheme9(schemeRdPu, interpolateRdPu)], + ["ylgn", scheme9(schemeYlGn, interpolateYlGn)], + ["ylgnbu", scheme9(schemeYlGnBu, interpolateYlGnBu)], + ["ylorbr", scheme9(schemeYlOrBr, interpolateYlOrBr)], + ["ylorrd", scheme9(schemeYlOrRd, interpolateYlOrRd)], + + // cyclical + ["rainbow", schemeicyclical(interpolateRainbow)], + ["sinebow", schemeicyclical(interpolateSinebow)] +]); + +function scheme9(scheme, interpolate) { + return ({length: n}) => { + if (n === 1) return [scheme[3][1]]; // favor midpoint + if (n === 2) return [scheme[3][1], scheme[3][2]]; // favor darker + n = Math.max(3, Math.floor(n)); + return n > 9 ? quantize(interpolate, n) : scheme[n]; + }; +} + +function scheme11(scheme, interpolate) { + return ({length: n}) => { + if (n === 2) return [scheme[3][0], scheme[3][2]]; // favor diverging extrema + n = Math.max(3, Math.floor(n)); + return n > 11 ? quantize(interpolate, n) : scheme[n]; + }; +} + +function scheme11r(scheme, interpolate) { + return ({length: n}) => { + if (n === 2) return [scheme[3][2], scheme[3][0]]; // favor diverging extrema + n = Math.max(3, Math.floor(n)); + return n > 11 ? quantize((t) => interpolate(1 - t), n) : scheme[n].slice().reverse(); + }; +} + +function schemei(interpolate) { + return ({length: n}) => quantize(interpolate, Math.max(2, Math.floor(n))); +} + +function schemeicyclical(interpolate) { + return ({length: n}) => quantize(interpolate, Math.floor(n) + 1).slice(0, -1); +} + +function ordinalScheme(scheme) { + const s = `${scheme}`.toLowerCase(); + if (!ordinalSchemes.has(s)) throw new Error(`unknown ordinal scheme: ${s}`); + return ordinalSchemes.get(s); +} + +function ordinalRange(scheme, length) { + const s = ordinalScheme(scheme); + const r = typeof s === "function" ? s({length}) : s; + return r.length !== length ? r.slice(0, length) : r; +} + +// If the specified domain contains only booleans (ignoring null and undefined), +// returns a corresponding range where false is mapped to the low color and true +// is mapped to the high color of the specified scheme. +function maybeBooleanRange(domain, scheme = "greys") { + const range = new Set(); + const [f, t] = ordinalRange(scheme, 2); + for (const value of domain) { + if (value == null) continue; + if (value === true) range.add(t); + else if (value === false) range.add(f); + else return; + } + return [...range]; +} + +const quantitativeSchemes = new Map([ + // diverging + ["brbg", interpolateBrBG], + ["prgn", interpolatePRGn], + ["piyg", interpolatePiYG], + ["puor", interpolatePuOr], + ["rdbu", interpolateRdBu], + ["rdgy", interpolateRdGy], + ["rdylbu", interpolateRdYlBu], + ["rdylgn", interpolateRdYlGn], + ["spectral", interpolateSpectral], + + // reversed diverging (for temperature data) + ["burd", (t) => interpolateRdBu(1 - t)], + ["buylrd", (t) => interpolateRdYlBu(1 - t)], + + // sequential (single-hue) + ["blues", interpolateBlues], + ["greens", interpolateGreens], + ["greys", interpolateGreys], + ["purples", interpolatePurples], + ["reds", interpolateReds], + ["oranges", interpolateOranges], + + // sequential (multi-hue) + ["turbo", interpolateTurbo], + ["viridis", interpolateViridis], + ["magma", interpolateMagma], + ["inferno", interpolateInferno], + ["plasma", interpolatePlasma], + ["cividis", interpolateCividis], + ["cubehelix", interpolateCubehelixDefault], + ["warm", interpolateWarm], + ["cool", interpolateCool], + ["bugn", interpolateBuGn], + ["bupu", interpolateBuPu], + ["gnbu", interpolateGnBu], + ["orrd", interpolateOrRd], + ["pubugn", interpolatePuBuGn], + ["pubu", interpolatePuBu], + ["purd", interpolatePuRd], + ["rdpu", interpolateRdPu], + ["ylgnbu", interpolateYlGnBu], + ["ylgn", interpolateYlGn], + ["ylorbr", interpolateYlOrBr], + ["ylorrd", interpolateYlOrRd], + + // cyclical + ["rainbow", interpolateRainbow], + ["sinebow", interpolateSinebow] +]); + +function quantitativeScheme(scheme) { + const s = `${scheme}`.toLowerCase(); + if (!quantitativeSchemes.has(s)) throw new Error(`unknown quantitative scheme: ${s}`); + return quantitativeSchemes.get(s); +} + +const divergingSchemes = new Set([ + "brbg", + "prgn", + "piyg", + "puor", + "rdbu", + "rdgy", + "rdylbu", + "rdylgn", + "spectral", + "burd", + "buylrd" +]); + +function isDivergingScheme(scheme) { + return scheme != null && divergingSchemes.has(`${scheme}`.toLowerCase()); +} + +const flip = (i) => (t) => i(1 - t); +const unit = [0, 1]; + +const interpolators = new Map([ + // numbers + ["number", interpolateNumber], + + // color spaces + ["rgb", interpolateRgb], + ["hsl", interpolateHsl], + ["hcl", interpolateHcl], + ["lab", interpolateLab] +]); + +function maybeInterpolator(interpolate) { + const i = `${interpolate}`.toLowerCase(); + if (!interpolators.has(i)) throw new Error(`unknown interpolator: ${i}`); + return interpolators.get(i); +} + +function createScaleQ( + key, + scale, + channels, + { + type, + nice, + clamp, + zero, + domain = inferAutoDomain(key, channels), + unknown, + round, + scheme, + interval, + range = registry.get(key) === radius + ? inferRadialRange(channels, domain) + : registry.get(key) === length + ? inferLengthRange(channels, domain) + : registry.get(key) === opacity + ? unit + : undefined, + interpolate = registry.get(key) === color + ? scheme == null && range !== undefined + ? interpolateRgb + : quantitativeScheme(scheme !== undefined ? scheme : type === "cyclical" ? "rainbow" : "turbo") + : round + ? interpolateRound + : interpolateNumber, + reverse: reverse$1 + } +) { + interval = maybeRangeInterval(interval, type); + if (type === "cyclical" || type === "sequential") type = "linear"; // shorthand for color schemes + reverse$1 = !!reverse$1; + + // Sometimes interpolate is a named interpolator, such as "lab" for Lab color + // space. Other times interpolate is a function that takes two arguments and + // is used in conjunction with the range. And other times the interpolate + // function is a “fixed†interpolator on the [0, 1] interval, as when a + // color scheme such as interpolateRdBu is used. + if (typeof interpolate !== "function") { + interpolate = maybeInterpolator(interpolate); + } + if (interpolate.length === 1) { + if (reverse$1) { + interpolate = flip(interpolate); + reverse$1 = false; + } + if (range === undefined) { + range = Float64Array.from(domain, (_, i) => i / (domain.length - 1)); + if (range.length === 2) range = unit; // optimize common case of [0, 1] + } + scale.interpolate((range === unit ? constant : interpolatePiecewise)(interpolate)); + } else { + scale.interpolate(interpolate); + } + + // If a zero option is specified, we assume that the domain is numeric, and we + // want to ensure that the domain crosses zero. However, note that the domain + // may be reversed (descending) so we shouldn’t assume that the first value is + // smaller than the last; and also it’s possible that the domain has more than + // two values for a “poly†scale. And lastly be careful not to mutate input! + if (zero) { + const [min, max] = extent(domain); + if (min > 0 || max < 0) { + domain = slice(domain); + if (orderof(domain) !== Math.sign(min)) domain[domain.length - 1] = 0; + // [2, 1] or [-2, -1] + else domain[0] = 0; // [1, 2] or [-1, -2] + } + } + + if (reverse$1) domain = reverse(domain); + scale.domain(domain).unknown(unknown); + if (nice) scale.nice(maybeNice(nice, type)), (domain = scale.domain()); + if (range !== undefined) scale.range(range); + if (clamp) scale.clamp(clamp); + return {type, domain, range, scale, interpolate, interval}; +} + +function maybeNice(nice, type) { + return nice === true ? undefined : typeof nice === "number" ? nice : maybeNiceInterval(nice, type); +} + +function createScaleLinear(key, channels, options) { + return createScaleQ(key, scaleLinear(), channels, options); +} + +function createScaleSqrt(key, channels, options) { + return createScalePow(key, channels, {...options, exponent: 0.5}); +} + +function createScalePow(key, channels, {exponent = 1, ...options}) { + return createScaleQ(key, scalePow().exponent(exponent), channels, {...options, type: "pow"}); +} + +function createScaleLog(key, channels, {base = 10, domain = inferLogDomain(channels), ...options}) { + return createScaleQ(key, scaleLog().base(base), channels, {...options, domain}); +} + +function createScaleSymlog(key, channels, {constant = 1, ...options}) { + return createScaleQ(key, scaleSymlog().constant(constant), channels, options); +} + +function createScaleQuantile( + key, + channels, + { + range, + quantiles = range === undefined ? 5 : (range = [...range]).length, // deprecated; use n instead + n = quantiles, + scheme = "rdylbu", + domain = inferQuantileDomain(channels), + unknown, + interpolate, + reverse + } +) { + if (range === undefined) { + range = + interpolate !== undefined + ? quantize(interpolate, n) + : registry.get(key) === color + ? ordinalRange(scheme, n) + : undefined; + } + if (domain.length > 0) { + domain = scaleQuantile(domain, range === undefined ? {length: n} : range).quantiles(); + } + return createScaleThreshold(key, channels, {domain, range, reverse, unknown}); +} + +function createScaleQuantize( + key, + channels, + { + range, + n = range === undefined ? 5 : (range = [...range]).length, + scheme = "rdylbu", + domain = inferAutoDomain(key, channels), + unknown, + interpolate, + reverse + } +) { + const [min, max] = extent(domain); + let thresholds; + if (range === undefined) { + thresholds = ticks(min, max, n); // approximate number of nice, round thresholds + if (thresholds[0] <= min) thresholds.splice(0, 1); // drop exact lower bound + if (thresholds[thresholds.length - 1] >= max) thresholds.pop(); // drop exact upper bound + n = thresholds.length + 1; + range = + interpolate !== undefined + ? quantize(interpolate, n) + : registry.get(key) === color + ? ordinalRange(scheme, n) + : undefined; + } else { + thresholds = quantize(interpolateNumber(min, max), n + 1).slice(1, -1); // exactly n - 1 thresholds to match range + if (min instanceof Date) thresholds = thresholds.map((x) => new Date(x)); // preserve date types + } + if (orderof(arrayify(domain)) < 0) thresholds.reverse(); // preserve descending domain + return createScaleThreshold(key, channels, {domain: thresholds, range, reverse, unknown}); +} + +function createScaleThreshold( + key, + channels, + { + domain = [0], // explicit thresholds in ascending order + unknown, + scheme = "rdylbu", + interpolate, + range = interpolate !== undefined + ? quantize(interpolate, domain.length + 1) + : registry.get(key) === color + ? ordinalRange(scheme, domain.length + 1) + : undefined, + reverse: reverse$1 + } +) { + domain = arrayify(domain); + const sign = orderof(domain); // preserve descending domain + if (!isNaN(sign) && !isOrdered(domain, sign)) throw new Error(`the ${key} scale has a non-monotonic domain`); + if (reverse$1) range = reverse(range); // domain ascending, so reverse range + return { + type: "threshold", + scale: scaleThreshold(sign < 0 ? reverse(domain) : domain, range === undefined ? [] : range).unknown(unknown), + domain, + range + }; +} + +function isOrdered(domain, sign) { + for (let i = 1, n = domain.length, d = domain[0]; i < n; ++i) { + const s = descending(d, (d = domain[i])); + if (s !== 0 && s !== sign) return false; + } + return true; +} + +function createScaleIdentity() { + return {type: "identity", scale: scaleIdentity()}; +} + +function inferDomain$1(channels, f = finite) { + return channels.length + ? [ + min$2(channels, ({value}) => (value === undefined ? value : min$2(value, f))), + max$1(channels, ({value}) => (value === undefined ? value : max$1(value, f))) + ] + : [0, 1]; +} + +function inferAutoDomain(key, channels) { + const type = registry.get(key); + return (type === radius || type === opacity || type === length ? inferZeroDomain : inferDomain$1)(channels); +} + +function inferZeroDomain(channels) { + return [0, channels.length ? max$1(channels, ({value}) => (value === undefined ? value : max$1(value, finite))) : 1]; +} + +// We don’t want the upper bound of the radial domain to be zero, as this would +// be degenerate, so we ignore nonpositive values. We also don’t want the +// maximum default radius to exceed 30px. +function inferRadialRange(channels, domain) { + const hint = channels.find(({radius}) => radius !== undefined); + if (hint !== undefined) return [0, hint.radius]; // a natural maximum radius, e.g. hexbins + const h25 = quantile(channels, 0.5, ({value}) => (value === undefined ? NaN : quantile(value, 0.25, positive))); + const range = domain.map((d) => 3 * Math.sqrt(d / h25)); + const k = 30 / max$1(range); + return k < 1 ? range.map((r) => r * k) : range; +} + +// We want a length scale’s domain to go from zero to a positive value, and to +// treat negative lengths if any as inverted vectors of equivalent magnitude. We +// also don’t want the maximum default length to exceed 60px. +function inferLengthRange(channels, domain) { + const h50 = median(channels, ({value}) => (value === undefined ? NaN : median(value, Math.abs))); + const range = domain.map((d) => (12 * d) / h50); + const k = 60 / max$1(range); + return k < 1 ? range.map((r) => r * k) : range; +} + +function inferLogDomain(channels) { + for (const {value} of channels) { + if (value !== undefined) { + for (let v of value) { + if (v > 0) return inferDomain$1(channels, positive); + if (v < 0) return inferDomain$1(channels, negative); + } + } + } + return [1, 10]; +} + +function inferQuantileDomain(channels) { + const domain = []; + for (const {value} of channels) { + if (value === undefined) continue; + for (const v of value) domain.push(v); + } + return domain; +} + +function interpolatePiecewise(interpolate) { + return (i, j) => (t) => interpolate(i + t * (j - i)); +} + +function createScaleD( + key, + scale, + transform, + channels, + { + type, + nice, + clamp, + domain = inferDomain$1(channels), + unknown, + pivot = 0, + scheme, + range, + symmetric = true, + interpolate = registry.get(key) === color + ? scheme == null && range !== undefined + ? interpolateRgb + : quantitativeScheme(scheme !== undefined ? scheme : "rdbu") + : interpolateNumber, + reverse + } +) { + pivot = +pivot; + let [min, max] = domain; + if (descending(min, max) < 0) ([min, max] = [max, min]), (reverse = !reverse); + min = Math.min(min, pivot); + max = Math.max(max, pivot); + + // Sometimes interpolate is a named interpolator, such as "lab" for Lab color + // space. Other times interpolate is a function that takes two arguments and + // is used in conjunction with the range. And other times the interpolate + // function is a “fixed†interpolator on the [0, 1] interval, as when a + // color scheme such as interpolateRdBu is used. + if (typeof interpolate !== "function") { + interpolate = maybeInterpolator(interpolate); + } + + // If an explicit range is specified, promote it to a piecewise interpolator. + if (range !== undefined) { + interpolate = + interpolate.length === 1 ? interpolatePiecewise(interpolate)(...range) : piecewise(interpolate, range); + } + + // Reverse before normalization. + if (reverse) interpolate = flip(interpolate); + + // Normalize the interpolator for symmetric difference around the pivot. + if (symmetric) { + const mid = transform.apply(pivot); + const mindelta = mid - transform.apply(min); + const maxdelta = transform.apply(max) - mid; + if (mindelta < maxdelta) min = transform.invert(mid - maxdelta); + else if (mindelta > maxdelta) max = transform.invert(mid + mindelta); + } + + scale.domain([min, pivot, max]).unknown(unknown).interpolator(interpolate); + if (clamp) scale.clamp(clamp); + if (nice) scale.nice(nice); + return {type, domain: [min, max], pivot, interpolate, scale}; +} + +function createScaleDiverging(key, channels, options) { + return createScaleD(key, scaleDiverging(), transformIdentity, channels, options); +} + +function createScaleDivergingSqrt(key, channels, options) { + return createScaleDivergingPow(key, channels, {...options, exponent: 0.5}); +} + +function createScaleDivergingPow(key, channels, {exponent = 1, ...options}) { + return createScaleD(key, scaleDivergingPow().exponent((exponent = +exponent)), transformPow(exponent), channels, { + ...options, + type: "diverging-pow" + }); +} + +function createScaleDivergingLog( + key, + channels, + {base = 10, pivot = 1, domain = inferDomain$1(channels, pivot < 0 ? negative : positive), ...options} +) { + return createScaleD(key, scaleDivergingLog().base((base = +base)), transformLog, channels, { + domain, + pivot, + ...options + }); +} + +function createScaleDivergingSymlog(key, channels, {constant = 1, ...options}) { + return createScaleD( + key, + scaleDivergingSymlog().constant((constant = +constant)), + transformSymlog(constant), + channels, + options + ); +} + +const transformIdentity = { + apply(x) { + return x; + }, + invert(x) { + return x; + } +}; + +const transformLog = { + apply: Math.log, + invert: Math.exp +}; + +const transformSqrt = { + apply(x) { + return Math.sign(x) * Math.sqrt(Math.abs(x)); + }, + invert(x) { + return Math.sign(x) * (x * x); + } +}; + +function transformPow(exponent) { + return exponent === 0.5 + ? transformSqrt + : { + apply(x) { + return Math.sign(x) * Math.pow(Math.abs(x), exponent); + }, + invert(x) { + return Math.sign(x) * Math.pow(Math.abs(x), 1 / exponent); + } + }; +} + +function transformSymlog(constant) { + return { + apply(x) { + return Math.sign(x) * Math.log1p(Math.abs(x / constant)); + }, + invert(x) { + return Math.sign(x) * Math.expm1(Math.abs(x)) * constant; + } + }; +} + +function createScaleT(key, scale, channels, options) { + return createScaleQ(key, scale, channels, options); +} + +function createScaleTime(key, channels, options) { + return createScaleT(key, scaleTime(), channels, options); +} + +function createScaleUtc(key, channels, options) { + return createScaleT(key, scaleUtc(), channels, options); +} + +// This denotes an implicitly ordinal color scale: the scale type was not set, +// but the associated values are strings or booleans. If the associated defined +// values are entirely boolean, the range will default to greys. You can opt out +// of this by setting the type explicitly. +const ordinalImplicit = Symbol("ordinal"); + +function createScaleO(key, scale, channels, {type, interval, domain, range, reverse: reverse$1, hint}) { + interval = maybeRangeInterval(interval, type); + if (domain === undefined) domain = inferDomain(channels, interval, key); + if (type === "categorical" || type === ordinalImplicit) type = "ordinal"; // shorthand for color schemes + if (reverse$1) domain = reverse(domain); + scale.domain(domain); + if (range !== undefined) { + // If the range is specified as a function, pass it the domain. + if (typeof range === "function") range = range(domain); + scale.range(range); + } + return {type, domain, range, scale, hint, interval}; +} + +function createScaleOrdinal(key, channels, {type, interval, domain, range, scheme, unknown, ...options}) { + interval = maybeRangeInterval(interval, type); + if (domain === undefined) domain = inferDomain(channels, interval, key); + let hint; + if (registry.get(key) === symbol) { + hint = inferSymbolHint(channels); + range = range === undefined ? inferSymbolRange(hint) : map(range, maybeSymbol); + } else if (registry.get(key) === color) { + if (range === undefined && (type === "ordinal" || type === ordinalImplicit)) { + range = maybeBooleanRange(domain, scheme); + if (range !== undefined) scheme = undefined; // Don’t re-apply scheme. + } + if (scheme === undefined && range === undefined) { + scheme = type === "ordinal" ? "turbo" : "tableau10"; + } + if (scheme !== undefined) { + if (range !== undefined) { + const interpolate = quantitativeScheme(scheme); + const t0 = range[0], + d = range[1] - range[0]; + range = ({length: n}) => quantize((t) => interpolate(t0 + d * t), n); + } else { + range = ordinalScheme(scheme); + } + } + } + if (unknown === scaleImplicit) { + throw new Error(`implicit unknown on ${key} scale is not supported`); + } + return createScaleO(key, scaleOrdinal().unknown(unknown), channels, {...options, type, domain, range, hint}); +} + +function createScalePoint(key, channels, {align = 0.5, padding = 0.5, ...options}) { + return maybeRound(scalePoint().align(align).padding(padding), channels, options, key); +} + +function createScaleBand( + key, + channels, + { + align = 0.5, + padding = 0.1, + paddingInner = padding, + paddingOuter = key === "fx" || key === "fy" ? 0 : padding, + ...options + } +) { + return maybeRound( + scaleBand().align(align).paddingInner(paddingInner).paddingOuter(paddingOuter), + channels, + options, + key + ); +} + +function maybeRound(scale, channels, options, key) { + let {round} = options; + if (round !== undefined) scale.round((round = !!round)); + scale = createScaleO(key, scale, channels, options); + scale.round = round; // preserve for autoScaleRound + return scale; +} + +function inferDomain(channels, interval, key) { + const values = new InternSet(); + for (const {value, domain} of channels) { + if (domain !== undefined) return domain(); // see channelDomain + if (value === undefined) continue; + for (const v of value) values.add(v); + } + if (interval !== undefined) { + const [min, max] = extent(values).map(interval.floor, interval); + return interval.range(min, interval.offset(max)); + } + if (values.size > 10e3 && registry.get(key) === position) { + throw new Error(`implicit ordinal domain of ${key} scale has more than 10,000 values`); + } + return sort(values, ascendingDefined); +} + +// If all channels provide a consistent hint, propagate it to the scale. +function inferHint(channels, key) { + let value; + for (const {hint} of channels) { + const candidate = hint?.[key]; + if (candidate === undefined) continue; // no hint here + if (value === undefined) value = candidate; + // first hint + else if (value !== candidate) return; // inconsistent hint + } + return value; +} + +function inferSymbolHint(channels) { + return { + fill: inferHint(channels, "fill"), + stroke: inferHint(channels, "stroke") + }; +} + +function inferSymbolRange(hint) { + return isNoneish(hint.fill) ? symbolsStroke : symbolsFill; +} + +function normalizeScale(key, scale, hint) { + return createScale(key, hint === undefined ? undefined : [{hint}], {...scale}); +} + +function createScale(key, channels = [], options = {}) { + const type = inferScaleType(key, channels, options); + + // Warn for common misuses of implicit ordinal scales. We disable this test if + // you specify a scale interval or if you set the domain or range explicitly, + // since setting the domain or range (typically with a cardinality of more than + // two) is another indication that you intended for the scale to be ordinal; we + // also disable it for facet scales since these are always band scales. + if ( + options.type === undefined && + options.domain === undefined && + options.range === undefined && + options.interval == null && + key !== "fx" && + key !== "fy" && + isOrdinalScale({type}) + ) { + const values = channels.map(({value}) => value).filter((value) => value !== undefined); + if (values.some(isTemporal)) + warn( + `Warning: some data associated with the ${key} scale are dates. Dates are typically associated with a "utc" or "time" scale rather than a "${formatScaleType( + type + )}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., d3.utcDay), or you can suppress this warning by setting the type of the ${key} scale to "${formatScaleType( + type + )}".` + ); + else if (values.some(isTemporalString)) + warn( + `Warning: some data associated with the ${key} scale are strings that appear to be dates (e.g., YYYY-MM-DD). If these strings represent dates, you should parse them to Date objects. Dates are typically associated with a "utc" or "time" scale rather than a "${formatScaleType( + type + )}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can suppress this warning by setting the type of the ${key} scale to "${formatScaleType( + type + )}".` + ); + else if (values.some(isNumericString)) + warn( + `Warning: some data associated with the ${key} scale are strings that appear to be numbers. If these strings represent numbers, you should parse or coerce them to numbers. Numbers are typically associated with a "linear" scale rather than a "${formatScaleType( + type + )}" scale. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., 1 for integers), or you can suppress this warning by setting the type of the ${key} scale to "${formatScaleType( + type + )}".` + ); + } + + options.type = type; // Mutates input! + + // Once the scale type is known, coerce the associated channel values and any + // explicitly-specified domain to the expected type. + switch (type) { + case "diverging": + case "diverging-sqrt": + case "diverging-pow": + case "diverging-log": + case "diverging-symlog": + case "cyclical": + case "sequential": + case "linear": + case "sqrt": + case "threshold": + case "quantile": + case "pow": + case "log": + case "symlog": + options = coerceType(channels, options, coerceNumbers); + break; + case "identity": + switch (registry.get(key)) { + case position: + options = coerceType(channels, options, coerceNumbers); + break; + case symbol: + options = coerceType(channels, options, coerceSymbols); + break; + } + break; + case "utc": + case "time": + options = coerceType(channels, options, coerceDates); + break; + } + + switch (type) { + case "diverging": + return createScaleDiverging(key, channels, options); + case "diverging-sqrt": + return createScaleDivergingSqrt(key, channels, options); + case "diverging-pow": + return createScaleDivergingPow(key, channels, options); + case "diverging-log": + return createScaleDivergingLog(key, channels, options); + case "diverging-symlog": + return createScaleDivergingSymlog(key, channels, options); + case "categorical": + case "ordinal": + case ordinalImplicit: + return createScaleOrdinal(key, channels, options); + case "cyclical": + case "sequential": + case "linear": + return createScaleLinear(key, channels, options); + case "sqrt": + return createScaleSqrt(key, channels, options); + case "threshold": + return createScaleThreshold(key, channels, options); + case "quantile": + return createScaleQuantile(key, channels, options); + case "quantize": + return createScaleQuantize(key, channels, options); + case "pow": + return createScalePow(key, channels, options); + case "log": + return createScaleLog(key, channels, options); + case "symlog": + return createScaleSymlog(key, channels, options); + case "utc": + return createScaleUtc(key, channels, options); + case "time": + return createScaleTime(key, channels, options); + case "point": + return createScalePoint(key, channels, options); + case "band": + return createScaleBand(key, channels, options); + case "identity": + return registry.get(key) === position ? createScaleIdentity() : {type: "identity"}; + case undefined: + return; + default: + throw new Error(`unknown scale type: ${type}`); + } +} + +function formatScaleType(type) { + return typeof type === "symbol" ? type.description : type; +} + +// A special type symbol when the x and y scales are replaced with a projection. +const typeProjection = {toString: () => "projection"}; + +function inferScaleType(key, channels, {type, domain, range, scheme, pivot, projection}) { + // The facet scales are always band scales; this cannot be changed. + if (key === "fx" || key === "fy") return "band"; + + // If a projection is specified, the x- and y-scales are disabled; these + // channels will be projected rather than scaled. (But still check that none + // of the associated channels are incompatible with a projection.) + if ((key === "x" || key === "y") && projection != null) type = typeProjection; + + // If a channel dictates a scale type, make sure that it is consistent with + // the user-specified scale type (if any) and all other channels. For example, + // barY requires x to be a band scale and disallows any other scale type. + for (const {type: t} of channels) { + if (t === undefined) continue; + else if (type === undefined) type = t; + else if (type !== t) throw new Error(`scale incompatible with channel: ${type} !== ${t}`); + } + + // If the scale, a channel, or user specified a (consistent) type, return it. + if (type === typeProjection) return; + if (type !== undefined) return type; + + // If there’s no data (and no type) associated with this scale, don’t create a scale. + if (domain === undefined && !channels.some(({value}) => value !== undefined)) return; + + // Some scales have default types. + const kind = registry.get(key); + if (kind === radius) return "sqrt"; + if (kind === opacity || kind === length) return "linear"; + if (kind === symbol) return "ordinal"; + + // If the domain or range has more than two values, assume it’s ordinal. You + // can still use a “piecewise†(or “polylinearâ€) scale, but you must set the + // type explicitly. + if ((domain || range || []).length > 2) return asOrdinalType(kind); + + // Otherwise, infer the scale type from the data! Prefer the domain, if + // present, over channels. (The domain and channels should be consistently + // typed, and the domain is more explicit and typically much smaller.) We only + // check the first defined value for expedience and simplicity; we expect + // that the types are consistent. + if (domain !== undefined) { + if (isOrdinal(domain)) return asOrdinalType(kind); + if (isTemporal(domain)) return "utc"; + if (kind === color && (pivot != null || isDivergingScheme(scheme))) return "diverging"; + return "linear"; + } + + // If any channel is ordinal or temporal, it takes priority. + const values = channels.map(({value}) => value).filter((value) => value !== undefined); + if (values.some(isOrdinal)) return asOrdinalType(kind); + if (values.some(isTemporal)) return "utc"; + if (kind === color && (pivot != null || isDivergingScheme(scheme))) return "diverging"; + return "linear"; +} + +// Positional scales default to a point scale instead of an ordinal scale. +function asOrdinalType(kind) { + switch (kind) { + case position: + return "point"; + case color: + return ordinalImplicit; + default: + return "ordinal"; + } +} + +function isOrdinalScale({type}) { + return type === "ordinal" || type === "point" || type === "band" || type === ordinalImplicit; +} + +function isThresholdScale({type}) { + return type === "threshold"; +} + +// Mutates channel.value! +function coerceType(channels, {domain, ...options}, coerceValues) { + for (const c of channels) { + if (c.value !== undefined) { + c.value = coerceValues(c.value); + } + } + return { + domain: domain === undefined ? domain : coerceValues(domain), + ...options + }; +} + +function coerceSymbols(values) { + return map(values, maybeSymbol); +} + +function memoize1(compute) { + let cacheValue, cacheKeys; + return (...keys) => { + if (cacheKeys?.length !== keys.length || cacheKeys.some((k, i) => k !== keys[i])) { + cacheKeys = keys; + cacheValue = compute(...keys); + } + return cacheValue; + }; +} + +const numberFormat = memoize1((locale) => { + return new Intl.NumberFormat(locale); +}); + +function formatNumber(locale = "en-US") { + const format = numberFormat(locale); + return (i) => (i != null && !isNaN(i) ? format.format(i) : undefined); +} + +function formatIsoDate(date) { + return format(date, "Invalid Date"); +} + +function formatAuto(locale = "en-US") { + const number = formatNumber(locale); + return (v) => (v instanceof Date ? formatIsoDate : typeof v === "number" ? number : string)(v); +} + +// TODO When Plot supports a top-level locale option, this should be removed +// because it lacks context to know which locale to use; formatAuto should be +// used instead whenever possible. +formatAuto(); + +function impliedString(value, impliedValue) { + if ((value = string(value)) !== impliedValue) return value; +} + +// https://www.w3.org/TR/CSS21/grammar.html +const validClassName = + /^-?([_a-z]|[\240-\377]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])([_a-z0-9-]|[\240-\377]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*$/i; + +function maybeClassName(name) { + // The default should be changed whenever the default styles are changed, so + // as to avoid conflict when multiple versions of Plot are on the page. + if (name === undefined) return "plot-d6a7b5"; + name = `${name}`; + if (!validClassName.test(name)) throw new Error(`invalid class name: ${name}`); + return name; +} + +function applyInlineStyles(selection, style) { + if (typeof style === "string") { + selection.property("style", style); + } else if (style != null) { + for (const element of selection) { + Object.assign(element.style, style); + } + } +} + +function inferFontVariant(scale) { + return isOrdinalScale(scale) && scale.interval === undefined ? undefined : "tabular-nums"; +} + +// D3 doesn’t provide a tick format for ordinal scales; we want shorthand when +// an ordinal domain is numbers or dates, and we want null to mean the empty +// string, not the default identity format. TODO Remove this in favor of the +// axis mark’s inferTickFormat. +function maybeAutoTickFormat(tickFormat, domain) { + return tickFormat === undefined + ? isTemporal(domain) + ? formatIsoDate + : string + : typeof tickFormat === "function" + ? tickFormat + : (typeof tickFormat === "string" ? (isTemporal(domain) ? utcFormat : format$1) : constant)(tickFormat); +} + +function legendRamp(color, options) { + let { + label = color.label, + tickSize = 6, + width = 240, + height = 44 + tickSize, + marginTop = 18, + marginRight = 0, + marginBottom = 16 + tickSize, + marginLeft = 0, + style, + ticks = (width - marginLeft - marginRight) / 64, + tickFormat, + fontVariant = inferFontVariant(color), + round = true, + opacity, + className + } = options; + const context = createContext(options); + className = maybeClassName(className); + opacity = maybeNumberChannel(opacity)[1]; + if (tickFormat === null) tickFormat = () => null; + + const svg = create("svg", context) + .attr("class", `${className}-ramp`) + .attr("font-family", "system-ui, sans-serif") + .attr("font-size", 10) + .attr("width", width) + .attr("height", height) + .attr("viewBox", `0 0 ${width} ${height}`) + .call((svg) => + // Warning: if you edit this, change defaultClassName. + svg.append("style").text( + `.${className}-ramp { + display: block; + background: white; + height: auto; + height: intrinsic; + max-width: 100%; + overflow: visible; +} +.${className}-ramp text { + white-space: pre; +}` + ) + ) + .call(applyInlineStyles, style); + + let tickAdjust = (g) => g.selectAll(".tick line").attr("y1", marginTop + marginBottom - height); + + let x; + + // Some D3 scales use scale.interpolate, some scale.interpolator, and some + // scale.round; this normalizes the API so it works with all scale types. + const applyRange = round ? (x, range) => x.rangeRound(range) : (x, range) => x.range(range); + + const {type, domain, range, interpolate, scale, pivot} = color; + + // Continuous + if (interpolate) { + // Often interpolate is a “fixed†interpolator on the [0, 1] interval, as + // with a built-in color scheme, but sometimes it is a function that takes + // two arguments and is used in conjunction with the range. + const interpolator = + range === undefined + ? interpolate + : piecewise(interpolate.length === 1 ? interpolatePiecewise(interpolate) : interpolate, range); + + // Construct a D3 scale of the same type, but with a range that evenly + // divides the horizontal extent of the legend. (In the common case, the + // domain.length is two, and so the range is simply the extent.) For a + // diverging scale, we need an extra point in the range for the pivot such + // that the pivot is always drawn in the middle. + x = applyRange( + scale.copy(), + quantize( + interpolateNumber(marginLeft, width - marginRight), + Math.min(domain.length + (pivot !== undefined), range === undefined ? Infinity : range.length) + ) + ); + + // Construct a 256×1 canvas, filling each pixel using the interpolator. + const n = 256; + const canvas = context.document.createElement("canvas"); + canvas.width = n; + canvas.height = 1; + const context2 = canvas.getContext("2d"); + for (let i = 0, j = n - 1; i < n; ++i) { + context2.fillStyle = interpolator(i / j); + context2.fillRect(i, 0, 1, 1); + } + + svg + .append("image") + .attr("opacity", opacity) + .attr("x", marginLeft) + .attr("y", marginTop) + .attr("width", width - marginLeft - marginRight) + .attr("height", height - marginTop - marginBottom) + .attr("preserveAspectRatio", "none") + .attr("xlink:href", canvas.toDataURL()); + } + + // Threshold + else if (type === "threshold") { + const thresholds = domain; + + const thresholdFormat = + tickFormat === undefined ? (d) => d : typeof tickFormat === "string" ? format$1(tickFormat) : tickFormat; + + // Construct a linear scale with evenly-spaced ticks for each of the + // thresholds; the domain extends one beyond the threshold extent. + x = applyRange(scaleLinear().domain([-1, range.length - 1]), [marginLeft, width - marginRight]); + + svg + .append("g") + .attr("fill-opacity", opacity) + .selectAll() + .data(range) + .enter() + .append("rect") + .attr("x", (d, i) => x(i - 1)) + .attr("y", marginTop) + .attr("width", (d, i) => x(i) - x(i - 1)) + .attr("height", height - marginTop - marginBottom) + .attr("fill", (d) => d); + + ticks = map(thresholds, (_, i) => i); + tickFormat = (i) => thresholdFormat(thresholds[i], i); + } + + // Ordinal (hopefully!) + else { + x = applyRange(scaleBand().domain(domain), [marginLeft, width - marginRight]); + + svg + .append("g") + .attr("fill-opacity", opacity) + .selectAll() + .data(domain) + .enter() + .append("rect") + .attr("x", x) + .attr("y", marginTop) + .attr("width", Math.max(0, x.bandwidth() - 1)) + .attr("height", height - marginTop - marginBottom) + .attr("fill", scale); + + tickAdjust = () => {}; + } + + svg + .append("g") + .attr("transform", `translate(0,${height - marginBottom})`) + .call( + axisBottom(x) + .ticks(Array.isArray(ticks) ? null : ticks, typeof tickFormat === "string" ? tickFormat : undefined) + .tickFormat(typeof tickFormat === "function" ? tickFormat : undefined) + .tickSize(tickSize) + .tickValues(Array.isArray(ticks) ? ticks : null) + ) + .attr("font-size", null) + .attr("font-family", null) + .attr("font-variant", impliedString(fontVariant, "normal")) + .call(tickAdjust) + .call((g) => g.select(".domain").remove()); + + if (label !== undefined) { + svg + .append("text") + .attr("x", marginLeft) + .attr("y", marginTop - 6) + .attr("fill", "currentColor") // TODO move to stylesheet? + .attr("font-weight", "bold") + .text(label); + } + + return svg.node(); +} + +function maybeScale(scale, key) { + if (key == null) return key; + const s = scale(key); + if (!s) throw new Error(`scale not found: ${key}`); + return s; +} + +function legendSwatches(color, {opacity, ...options} = {}) { + if (!isOrdinalScale(color) && !isThresholdScale(color)) + throw new Error(`swatches legend requires ordinal or threshold color scale (not ${color.type})`); + return legendItems(color, options, (selection, scale, width, height) => + selection + .append("svg") + .attr("width", width) + .attr("height", height) + .attr("fill", scale.scale) + .attr("fill-opacity", maybeNumberChannel(opacity)[1]) + .append("rect") + .attr("width", "100%") + .attr("height", "100%") + ); +} + +function legendSymbols( + symbol, + { + fill = symbol.hint?.fill !== undefined ? symbol.hint.fill : "none", + fillOpacity = 1, + stroke = symbol.hint?.stroke !== undefined ? symbol.hint.stroke : isNoneish(fill) ? "currentColor" : "none", + strokeOpacity = 1, + strokeWidth = 1.5, + r = 4.5, + ...options + } = {}, + scale +) { + const [vf, cf] = maybeColorChannel(fill); + const [vs, cs] = maybeColorChannel(stroke); + const sf = maybeScale(scale, vf); + const ss = maybeScale(scale, vs); + const size = r * r * Math.PI; + fillOpacity = maybeNumberChannel(fillOpacity)[1]; + strokeOpacity = maybeNumberChannel(strokeOpacity)[1]; + strokeWidth = maybeNumberChannel(strokeWidth)[1]; + return legendItems(symbol, options, (selection, scale, width, height) => + selection + .append("svg") + .attr("viewBox", "-8 -8 16 16") + .attr("width", width) + .attr("height", height) + .attr("fill", vf === "color" ? (d) => sf.scale(d) : cf) + .attr("fill-opacity", fillOpacity) + .attr("stroke", vs === "color" ? (d) => ss.scale(d) : cs) + .attr("stroke-opacity", strokeOpacity) + .attr("stroke-width", strokeWidth) + .append("path") + .attr("d", (d) => { + const p = pathRound(); + symbol.scale(d).draw(p, size); + return p; + }) + ); +} + +function legendItems(scale, options = {}, swatch) { + let { + columns, + tickFormat, + fontVariant = inferFontVariant(scale), + // TODO label, + swatchSize = 15, + swatchWidth = swatchSize, + swatchHeight = swatchSize, + marginLeft = 0, + className, + style, + width + } = options; + const context = createContext(options); + className = maybeClassName(className); + tickFormat = maybeAutoTickFormat(tickFormat, scale.domain); + + const swatches = create("div", context).attr( + "class", + `${className}-swatches ${className}-swatches-${columns != null ? "columns" : "wrap"}` + ); + + let extraStyle; + + if (columns != null) { + extraStyle = `.${className}-swatches-columns .${className}-swatch { + display: flex; + align-items: center; + break-inside: avoid; + padding-bottom: 1px; +} +.${className}-swatches-columns .${className}-swatch::before { + flex-shrink: 0; +} +.${className}-swatches-columns .${className}-swatch-label { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +}`; + + swatches + .style("columns", columns) + .selectAll() + .data(scale.domain) + .enter() + .append("div") + .attr("class", `${className}-swatch`) + .call(swatch, scale, swatchWidth, swatchHeight) + .call((item) => + item.append("div").attr("class", `${className}-swatch-label`).attr("title", tickFormat).text(tickFormat) + ); + } else { + extraStyle = `.${className}-swatches-wrap { + display: flex; + align-items: center; + min-height: 33px; + flex-wrap: wrap; +} +.${className}-swatches-wrap .${className}-swatch { + display: inline-flex; + align-items: center; + margin-right: 1em; +}`; + + swatches + .selectAll() + .data(scale.domain) + .enter() + .append("span") + .attr("class", `${className}-swatch`) + .call(swatch, scale, swatchWidth, swatchHeight) + .append(function () { + return this.ownerDocument.createTextNode(tickFormat.apply(this, arguments)); + }); + } + + return swatches + .call((div) => + div.insert("style", "*").text( + `.${className}-swatches { + font-family: system-ui, sans-serif; + font-size: 10px; + margin-bottom: 0.5em; +} +.${className}-swatch > svg { + margin-right: 0.5em; + overflow: visible; +} +${extraStyle}` + ) + ) + .style("margin-left", marginLeft ? `${+marginLeft}px` : null) + .style("width", width === undefined ? null : `${+width}px`) + .style("font-variant", impliedString(fontVariant, "normal")) + .call(applyInlineStyles, style) + .node(); +} + +const legendRegistry = new Map([ + ["symbol", legendSymbols], + ["color", legendColor], + ["opacity", legendOpacity] +]); + +function legend(options = {}) { + for (const [key, value] of legendRegistry) { + const scale = options[key]; + if (isScaleOptions(scale)) { + // e.g., ignore {color: "red"} + const context = createContext(options); + let hint; + // For symbol legends, pass a hint to the symbol scale. + if (key === "symbol") { + const {fill, stroke = fill === undefined && isScaleOptions(options.color) ? "color" : undefined} = options; + hint = {fill, stroke}; + } + return value(normalizeScale(key, scale, hint), legendOptions(context, scale, options), (key) => + isScaleOptions(options[key]) ? normalizeScale(key, options[key]) : null + ); + } + } + throw new Error("unknown legend type; no scale found"); +} + +function legendOptions({className, ...context}, {label, ticks, tickFormat} = {}, options) { + return inherit(options, {className, ...context}, {label, ticks, tickFormat}); +} + +function legendColor(color, {legend = true, ...options}) { + if (legend === true) legend = color.type === "ordinal" ? "swatches" : "ramp"; + if (color.domain === undefined) return; + switch (`${legend}`.toLowerCase()) { + case "swatches": + return legendSwatches(color, options); + case "ramp": + return legendRamp(color, options); + default: + throw new Error(`unknown legend type: ${legend}`); + } +} + +function legendOpacity({type, interpolate, ...scale}, {legend = true, color = rgb(0, 0, 0), ...options}) { + if (!interpolate) throw new Error(`${type} opacity scales are not supported`); + if (legend === true) legend = "ramp"; + if (`${legend}`.toLowerCase() !== "ramp") throw new Error(`${legend} opacity legends are not supported`); + return legendColor({type, ...scale, interpolate: interpolateOpacity(color)}, {legend, ...options}); +} + +function interpolateOpacity(color) { + const {r, g, b} = rgb(color) || rgb(0, 0, 0); // treat invalid color as black + return (t) => `rgba(${r},${g},${b},${t})`; +} + +var DEFAULT_SELECTOR = '#ch-plugin-legend'; +var defaultOptions = { + // Whether to display the legend + enabled: true, + itemSelector: null, + label: null, + width: 130 +}; +var Legend = /*#__PURE__*/function () { + function Legend(calendar) { + _classCallCheck(this, Legend); + this.name = 'Legend'; + this.calendar = calendar; + this.root = null; + this.shown = false; + this.options = defaultOptions; + } + _createClass(Legend, [{ + key: "setup", + value: function setup(pluginOptions) { + this.options = Object.assign(Object.assign({}, defaultOptions), pluginOptions); + } + }, { + key: "paint", + value: function paint() { + var scaleOptions = this.calendar.options.options.scale; + var _this$options = this.options, + enabled = _this$options.enabled, + itemSelector = _this$options.itemSelector; + if (!enabled || itemSelector && select$1(itemSelector).empty()) { + return this.destroy(); + } + this.shown = true; + this.root = select$1(itemSelector || this.calendar.options.options.itemSelector); + if (this.root.select(DEFAULT_SELECTOR).empty()) { + this.root = this.root.append('div').attr('id', DEFAULT_SELECTOR.slice(1)); + } else { + this.root = this.root.select(DEFAULT_SELECTOR); + } + // @ts-ignore + var node = legend(Object.assign(Object.assign({}, scaleOptions), this.options)); + this.root.selectAll('*').remove(); + this.root.append(function () { + return node; + }); + return Promise.resolve(); + } + }, { + key: "destroy", + value: function destroy() { + if (this.root !== null) { + this.root.remove(); + this.root = null; + } + return Promise.resolve(); + } + }]); + return Legend; +}(); + +export { Legend as default }; diff --git a/static/javascripts/cal-heatmap/plugins/Legend.js b/static/javascripts/cal-heatmap/plugins/Legend.js new file mode 100644 index 000000000..7ffa3d5ab --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/Legend.js @@ -0,0 +1,4526 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('d3-selection'), require('d3')) : + typeof define === 'function' && define.amd ? define(['d3-selection', 'd3'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Legend = factory(global.d3, global.d3)); +})(this, (function (d3Selection, d3) { 'use strict'; + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _toPrimitive(input, hint) { + if (typeof input !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (typeof res !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); + } + function _toPropertyKey(arg) { + var key = _toPrimitive(arg, "string"); + return typeof key === "symbol" ? key : String(key); + } + + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + var fails$b = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } + }; + + var fails$a = fails$b; + + // Detect IE8's incomplete defineProperty implementation + var descriptors = !fails$a(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; + }); + + var fails$9 = fails$b; + + var functionBindNative = !fails$9(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); + }); + + var NATIVE_BIND$3 = functionBindNative; + + var FunctionPrototype$3 = Function.prototype; + var call$d = FunctionPrototype$3.call; + var uncurryThisWithBind = NATIVE_BIND$3 && FunctionPrototype$3.bind.bind(call$d, call$d); + + var functionUncurryThis = NATIVE_BIND$3 ? uncurryThisWithBind : function (fn) { + return function () { + return call$d.apply(fn, arguments); + }; + }; + + // we can't use just `it == null` since of `document.all` special case + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec + var isNullOrUndefined$4 = function (it) { + return it === null || it === undefined; + }; + + var isNullOrUndefined$3 = isNullOrUndefined$4; + + var $TypeError$c = TypeError; + + // `RequireObjectCoercible` abstract operation + // https://tc39.es/ecma262/#sec-requireobjectcoercible + var requireObjectCoercible$2 = function (it) { + if (isNullOrUndefined$3(it)) throw $TypeError$c("Can't call method on " + it); + return it; + }; + + var requireObjectCoercible$1 = requireObjectCoercible$2; + + var $Object$3 = Object; + + // `ToObject` abstract operation + // https://tc39.es/ecma262/#sec-toobject + var toObject$2 = function (argument) { + return $Object$3(requireObjectCoercible$1(argument)); + }; + + var uncurryThis$f = functionUncurryThis; + var toObject$1 = toObject$2; + + var hasOwnProperty = uncurryThis$f({}.hasOwnProperty); + + // `HasOwnProperty` abstract operation + // https://tc39.es/ecma262/#sec-hasownproperty + // eslint-disable-next-line es/no-object-hasown -- safe + var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject$1(it), key); + }; + + var DESCRIPTORS$9 = descriptors; + var hasOwn$8 = hasOwnProperty_1; + + var FunctionPrototype$2 = Function.prototype; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getDescriptor = DESCRIPTORS$9 && Object.getOwnPropertyDescriptor; + + var EXISTS$1 = hasOwn$8(FunctionPrototype$2, 'name'); + // additional protection from minified / mangled / dropped function names + var PROPER = EXISTS$1 && (function something() { /* empty */ }).name === 'something'; + var CONFIGURABLE$1 = EXISTS$1 && (!DESCRIPTORS$9 || (DESCRIPTORS$9 && getDescriptor(FunctionPrototype$2, 'name').configurable)); + + var functionName = { + EXISTS: EXISTS$1, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE$1 + }; + + var makeBuiltIn$3 = {exports: {}}; + + var documentAll$2 = typeof document == 'object' && document.all; + + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + // eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing + var IS_HTMLDDA = typeof documentAll$2 == 'undefined' && documentAll$2 !== undefined; + + var documentAll_1 = { + all: documentAll$2, + IS_HTMLDDA: IS_HTMLDDA + }; + + var $documentAll$1 = documentAll_1; + + var documentAll$1 = $documentAll$1.all; + + // `IsCallable` abstract operation + // https://tc39.es/ecma262/#sec-iscallable + var isCallable$h = $documentAll$1.IS_HTMLDDA ? function (argument) { + return typeof argument == 'function' || argument === documentAll$1; + } : function (argument) { + return typeof argument == 'function'; + }; + + var check = function (it) { + return it && it.Math == Math && it; + }; + + // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 + var global$g = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || commonjsGlobal || Function('return this')(); + + var global$f = global$g; + + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$4 = Object.defineProperty; + + var defineGlobalProperty$3 = function (key, value) { + try { + defineProperty$4(global$f, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global$f[key] = value; + } return value; + }; + + var global$e = global$g; + var defineGlobalProperty$2 = defineGlobalProperty$3; + + var SHARED = '__core-js_shared__'; + var store$3 = global$e[SHARED] || defineGlobalProperty$2(SHARED, {}); + + var sharedStore = store$3; + + var uncurryThis$e = functionUncurryThis; + var isCallable$g = isCallable$h; + var store$2 = sharedStore; + + var functionToString$1 = uncurryThis$e(Function.toString); + + // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper + if (!isCallable$g(store$2.inspectSource)) { + store$2.inspectSource = function (it) { + return functionToString$1(it); + }; + } + + var inspectSource$3 = store$2.inspectSource; + + var global$d = global$g; + var isCallable$f = isCallable$h; + + var WeakMap$1 = global$d.WeakMap; + + var weakMapBasicDetection = isCallable$f(WeakMap$1) && /native code/.test(String(WeakMap$1)); + + var isCallable$e = isCallable$h; + var $documentAll = documentAll_1; + + var documentAll = $documentAll.all; + + var isObject$8 = $documentAll.IS_HTMLDDA ? function (it) { + return typeof it == 'object' ? it !== null : isCallable$e(it) || it === documentAll; + } : function (it) { + return typeof it == 'object' ? it !== null : isCallable$e(it); + }; + + var objectDefineProperty = {}; + + var global$c = global$g; + var isObject$7 = isObject$8; + + var document$3 = global$c.document; + // typeof document.createElement is 'object' in old IE + var EXISTS = isObject$7(document$3) && isObject$7(document$3.createElement); + + var documentCreateElement = function (it) { + return EXISTS ? document$3.createElement(it) : {}; + }; + + var DESCRIPTORS$8 = descriptors; + var fails$8 = fails$b; + var createElement$1 = documentCreateElement; + + // Thanks to IE8 for its funny defineProperty + var ie8DomDefine = !DESCRIPTORS$8 && !fails$8(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement$1('div'), 'a', { + get: function () { return 7; } + }).a != 7; + }); + + var DESCRIPTORS$7 = descriptors; + var fails$7 = fails$b; + + // V8 ~ Chrome 36- + // https://bugs.chromium.org/p/v8/issues/detail?id=3334 + var v8PrototypeDefineBug = DESCRIPTORS$7 && fails$7(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype != 42; + }); + + var isObject$6 = isObject$8; + + var $String$4 = String; + var $TypeError$b = TypeError; + + // `Assert: Type(argument) is Object` + var anObject$8 = function (argument) { + if (isObject$6(argument)) return argument; + throw $TypeError$b($String$4(argument) + ' is not an object'); + }; + + var NATIVE_BIND$2 = functionBindNative; + + var call$c = Function.prototype.call; + + var functionCall = NATIVE_BIND$2 ? call$c.bind(call$c) : function () { + return call$c.apply(call$c, arguments); + }; + + var global$b = global$g; + var isCallable$d = isCallable$h; + + var aFunction = function (argument) { + return isCallable$d(argument) ? argument : undefined; + }; + + var getBuiltIn$7 = function (namespace, method) { + return arguments.length < 2 ? aFunction(global$b[namespace]) : global$b[namespace] && global$b[namespace][method]; + }; + + var uncurryThis$d = functionUncurryThis; + + var objectIsPrototypeOf = uncurryThis$d({}.isPrototypeOf); + + var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + + var global$a = global$g; + var userAgent$3 = engineUserAgent; + + var process$4 = global$a.process; + var Deno$1 = global$a.Deno; + var versions = process$4 && process$4.versions || Deno$1 && Deno$1.version; + var v8 = versions && versions.v8; + var match, version; + + if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); + } + + // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` + // so check `userAgent` even if `.v8` exists, but 0 + if (!version && userAgent$3) { + match = userAgent$3.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent$3.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } + } + + var engineV8Version = version; + + /* eslint-disable es/no-symbol -- required for testing */ + + var V8_VERSION$1 = engineV8Version; + var fails$6 = fails$b; + var global$9 = global$g; + + var $String$3 = global$9.String; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing + var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$6(function () { + var symbol = Symbol(); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String$3(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION$1 && V8_VERSION$1 < 41; + }); + + /* eslint-disable es/no-symbol -- required for testing */ + + var NATIVE_SYMBOL$1 = symbolConstructorDetection; + + var useSymbolAsUid = NATIVE_SYMBOL$1 + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + + var getBuiltIn$6 = getBuiltIn$7; + var isCallable$c = isCallable$h; + var isPrototypeOf$2 = objectIsPrototypeOf; + var USE_SYMBOL_AS_UID$1 = useSymbolAsUid; + + var $Object$2 = Object; + + var isSymbol$2 = USE_SYMBOL_AS_UID$1 ? function (it) { + return typeof it == 'symbol'; + } : function (it) { + var $Symbol = getBuiltIn$6('Symbol'); + return isCallable$c($Symbol) && isPrototypeOf$2($Symbol.prototype, $Object$2(it)); + }; + + var $String$2 = String; + + var tryToString$4 = function (argument) { + try { + return $String$2(argument); + } catch (error) { + return 'Object'; + } + }; + + var isCallable$b = isCallable$h; + var tryToString$3 = tryToString$4; + + var $TypeError$a = TypeError; + + // `Assert: IsCallable(argument) is true` + var aCallable$8 = function (argument) { + if (isCallable$b(argument)) return argument; + throw $TypeError$a(tryToString$3(argument) + ' is not a function'); + }; + + var aCallable$7 = aCallable$8; + var isNullOrUndefined$2 = isNullOrUndefined$4; + + // `GetMethod` abstract operation + // https://tc39.es/ecma262/#sec-getmethod + var getMethod$3 = function (V, P) { + var func = V[P]; + return isNullOrUndefined$2(func) ? undefined : aCallable$7(func); + }; + + var call$b = functionCall; + var isCallable$a = isCallable$h; + var isObject$5 = isObject$8; + + var $TypeError$9 = TypeError; + + // `OrdinaryToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-ordinarytoprimitive + var ordinaryToPrimitive$1 = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable$a(fn = input.toString) && !isObject$5(val = call$b(fn, input))) return val; + if (isCallable$a(fn = input.valueOf) && !isObject$5(val = call$b(fn, input))) return val; + if (pref !== 'string' && isCallable$a(fn = input.toString) && !isObject$5(val = call$b(fn, input))) return val; + throw $TypeError$9("Can't convert object to primitive value"); + }; + + var shared$3 = {exports: {}}; + + var store$1 = sharedStore; + + (shared$3.exports = function (key, value) { + return store$1[key] || (store$1[key] = value !== undefined ? value : {}); + })('versions', []).push({ + version: '3.30.2', + mode: 'global', + copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE', + source: 'https://github.com/zloirock/core-js' + }); + + var sharedExports = shared$3.exports; + + var uncurryThis$c = functionUncurryThis; + + var id = 0; + var postfix = Math.random(); + var toString$2 = uncurryThis$c(1.0.toString); + + var uid$2 = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$2(++id + postfix, 36); + }; + + var global$8 = global$g; + var shared$2 = sharedExports; + var hasOwn$7 = hasOwnProperty_1; + var uid$1 = uid$2; + var NATIVE_SYMBOL = symbolConstructorDetection; + var USE_SYMBOL_AS_UID = useSymbolAsUid; + + var Symbol$1 = global$8.Symbol; + var WellKnownSymbolsStore = shared$2('wks'); + var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1['for'] || Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$1; + + var wellKnownSymbol$a = function (name) { + if (!hasOwn$7(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn$7(Symbol$1, name) + ? Symbol$1[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; + }; + + var call$a = functionCall; + var isObject$4 = isObject$8; + var isSymbol$1 = isSymbol$2; + var getMethod$2 = getMethod$3; + var ordinaryToPrimitive = ordinaryToPrimitive$1; + var wellKnownSymbol$9 = wellKnownSymbol$a; + + var $TypeError$8 = TypeError; + var TO_PRIMITIVE = wellKnownSymbol$9('toPrimitive'); + + // `ToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-toprimitive + var toPrimitive$1 = function (input, pref) { + if (!isObject$4(input) || isSymbol$1(input)) return input; + var exoticToPrim = getMethod$2(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call$a(exoticToPrim, input, pref); + if (!isObject$4(result) || isSymbol$1(result)) return result; + throw $TypeError$8("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); + }; + + var toPrimitive = toPrimitive$1; + var isSymbol = isSymbol$2; + + // `ToPropertyKey` abstract operation + // https://tc39.es/ecma262/#sec-topropertykey + var toPropertyKey$2 = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; + }; + + var DESCRIPTORS$6 = descriptors; + var IE8_DOM_DEFINE$1 = ie8DomDefine; + var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug; + var anObject$7 = anObject$8; + var toPropertyKey$1 = toPropertyKey$2; + + var $TypeError$7 = TypeError; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var $defineProperty = Object.defineProperty; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + var ENUMERABLE = 'enumerable'; + var CONFIGURABLE = 'configurable'; + var WRITABLE = 'writable'; + + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + objectDefineProperty.f = DESCRIPTORS$6 ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) { + anObject$7(O); + P = toPropertyKey$1(P); + anObject$7(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor$1(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); + } : $defineProperty : function defineProperty(O, P, Attributes) { + anObject$7(O); + P = toPropertyKey$1(P); + anObject$7(Attributes); + if (IE8_DOM_DEFINE$1) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw $TypeError$7('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; + }; + + var createPropertyDescriptor$2 = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; + }; + + var DESCRIPTORS$5 = descriptors; + var definePropertyModule$2 = objectDefineProperty; + var createPropertyDescriptor$1 = createPropertyDescriptor$2; + + var createNonEnumerableProperty$2 = DESCRIPTORS$5 ? function (object, key, value) { + return definePropertyModule$2.f(object, key, createPropertyDescriptor$1(1, value)); + } : function (object, key, value) { + object[key] = value; + return object; + }; + + var shared$1 = sharedExports; + var uid = uid$2; + + var keys = shared$1('keys'); + + var sharedKey$1 = function (key) { + return keys[key] || (keys[key] = uid(key)); + }; + + var hiddenKeys$3 = {}; + + var NATIVE_WEAK_MAP = weakMapBasicDetection; + var global$7 = global$g; + var isObject$3 = isObject$8; + var createNonEnumerableProperty$1 = createNonEnumerableProperty$2; + var hasOwn$6 = hasOwnProperty_1; + var shared = sharedStore; + var sharedKey = sharedKey$1; + var hiddenKeys$2 = hiddenKeys$3; + + var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; + var TypeError$2 = global$7.TypeError; + var WeakMap = global$7.WeakMap; + var set$1, get, has; + + var enforce = function (it) { + return has(it) ? get(it) : set$1(it, {}); + }; + + var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject$3(it) || (state = get(it)).type !== TYPE) { + throw TypeError$2('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; + }; + + if (NATIVE_WEAK_MAP || shared.state) { + var store = shared.state || (shared.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set$1 = function (it, metadata) { + if (store.has(it)) throw TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; + } else { + var STATE = sharedKey('state'); + hiddenKeys$2[STATE] = true; + set$1 = function (it, metadata) { + if (hasOwn$6(it, STATE)) throw TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty$1(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn$6(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn$6(it, STATE); + }; + } + + var internalState = { + set: set$1, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor + }; + + var uncurryThis$b = functionUncurryThis; + var fails$5 = fails$b; + var isCallable$9 = isCallable$h; + var hasOwn$5 = hasOwnProperty_1; + var DESCRIPTORS$4 = descriptors; + var CONFIGURABLE_FUNCTION_NAME = functionName.CONFIGURABLE; + var inspectSource$2 = inspectSource$3; + var InternalStateModule$1 = internalState; + + var enforceInternalState = InternalStateModule$1.enforce; + var getInternalState = InternalStateModule$1.get; + var $String$1 = String; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$3 = Object.defineProperty; + var stringSlice$1 = uncurryThis$b(''.slice); + var replace = uncurryThis$b(''.replace); + var join = uncurryThis$b([].join); + + var CONFIGURABLE_LENGTH = DESCRIPTORS$4 && !fails$5(function () { + return defineProperty$3(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; + }); + + var TEMPLATE = String(String).split('String'); + + var makeBuiltIn$2 = makeBuiltIn$3.exports = function (value, name, options) { + if (stringSlice$1($String$1(name), 0, 7) === 'Symbol(') { + name = '[' + replace($String$1(name), /^Symbol\(([^)]*)\)/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn$5(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { + if (DESCRIPTORS$4) defineProperty$3(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn$5(options, 'arity') && value.length !== options.arity) { + defineProperty$3(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn$5(options, 'constructor') && options.constructor) { + if (DESCRIPTORS$4) defineProperty$3(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn$5(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; + }; + + // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative + // eslint-disable-next-line no-extend-native -- required + Function.prototype.toString = makeBuiltIn$2(function toString() { + return isCallable$9(this) && getInternalState(this).source || inspectSource$2(this); + }, 'toString'); + + var makeBuiltInExports = makeBuiltIn$3.exports; + + var makeBuiltIn$1 = makeBuiltInExports; + var defineProperty$2 = objectDefineProperty; + + var defineBuiltInAccessor$2 = function (target, name, descriptor) { + if (descriptor.get) makeBuiltIn$1(descriptor.get, name, { getter: true }); + if (descriptor.set) makeBuiltIn$1(descriptor.set, name, { setter: true }); + return defineProperty$2.f(target, name, descriptor); + }; + + var DESCRIPTORS$3 = descriptors; + var FUNCTION_NAME_EXISTS = functionName.EXISTS; + var uncurryThis$a = functionUncurryThis; + var defineBuiltInAccessor$1 = defineBuiltInAccessor$2; + + var FunctionPrototype$1 = Function.prototype; + var functionToString = uncurryThis$a(FunctionPrototype$1.toString); + var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/; + var regExpExec = uncurryThis$a(nameRE.exec); + var NAME = 'name'; + + // Function instances `.name` property + // https://tc39.es/ecma262/#sec-function-instances-name + if (DESCRIPTORS$3 && !FUNCTION_NAME_EXISTS) { + defineBuiltInAccessor$1(FunctionPrototype$1, NAME, { + configurable: true, + get: function () { + try { + return regExpExec(nameRE, functionToString(this))[1]; + } catch (error) { + return ''; + } + } + }); + } + + var objectGetOwnPropertyDescriptor = {}; + + var objectPropertyIsEnumerable = {}; + + var $propertyIsEnumerable = {}.propertyIsEnumerable; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getOwnPropertyDescriptor$2 = Object.getOwnPropertyDescriptor; + + // Nashorn ~ JDK8 bug + var NASHORN_BUG = getOwnPropertyDescriptor$2 && !$propertyIsEnumerable.call({ 1: 2 }, 1); + + // `Object.prototype.propertyIsEnumerable` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable + objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor$2(this, V); + return !!descriptor && descriptor.enumerable; + } : $propertyIsEnumerable; + + var uncurryThis$9 = functionUncurryThis; + + var toString$1 = uncurryThis$9({}.toString); + var stringSlice = uncurryThis$9(''.slice); + + var classofRaw$2 = function (it) { + return stringSlice(toString$1(it), 8, -1); + }; + + var uncurryThis$8 = functionUncurryThis; + var fails$4 = fails$b; + var classof$5 = classofRaw$2; + + var $Object$1 = Object; + var split = uncurryThis$8(''.split); + + // fallback for non-array-like ES3 and non-enumerable old V8 strings + var indexedObject = fails$4(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object$1('z').propertyIsEnumerable(0); + }) ? function (it) { + return classof$5(it) == 'String' ? split(it, '') : $Object$1(it); + } : $Object$1; + + // toObject with fallback for non-array-like ES3 strings + var IndexedObject$1 = indexedObject; + var requireObjectCoercible = requireObjectCoercible$2; + + var toIndexedObject$3 = function (it) { + return IndexedObject$1(requireObjectCoercible(it)); + }; + + var DESCRIPTORS$2 = descriptors; + var call$9 = functionCall; + var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable; + var createPropertyDescriptor = createPropertyDescriptor$2; + var toIndexedObject$2 = toIndexedObject$3; + var toPropertyKey = toPropertyKey$2; + var hasOwn$4 = hasOwnProperty_1; + var IE8_DOM_DEFINE = ie8DomDefine; + + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor + objectGetOwnPropertyDescriptor.f = DESCRIPTORS$2 ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject$2(O); + P = toPropertyKey(P); + if (IE8_DOM_DEFINE) try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (hasOwn$4(O, P)) return createPropertyDescriptor(!call$9(propertyIsEnumerableModule$1.f, O, P), O[P]); + }; + + var isCallable$8 = isCallable$h; + var definePropertyModule$1 = objectDefineProperty; + var makeBuiltIn = makeBuiltInExports; + var defineGlobalProperty$1 = defineGlobalProperty$3; + + var defineBuiltIn$4 = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable$8(value)) makeBuiltIn(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty$1(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule$1.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; + }; + + var objectGetOwnPropertyNames = {}; + + var ceil = Math.ceil; + var floor = Math.floor; + + // `Math.trunc` method + // https://tc39.es/ecma262/#sec-math.trunc + // eslint-disable-next-line es/no-math-trunc -- safe + var mathTrunc = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor : ceil)(n); + }; + + var trunc = mathTrunc; + + // `ToIntegerOrInfinity` abstract operation + // https://tc39.es/ecma262/#sec-tointegerorinfinity + var toIntegerOrInfinity$2 = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); + }; + + var toIntegerOrInfinity$1 = toIntegerOrInfinity$2; + + var max = Math.max; + var min$1 = Math.min; + + // Helper for a popular repeating case of the spec: + // Let integer be ? ToInteger(index). + // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). + var toAbsoluteIndex$1 = function (index, length) { + var integer = toIntegerOrInfinity$1(index); + return integer < 0 ? max(integer + length, 0) : min$1(integer, length); + }; + + var toIntegerOrInfinity = toIntegerOrInfinity$2; + + var min = Math.min; + + // `ToLength` abstract operation + // https://tc39.es/ecma262/#sec-tolength + var toLength$1 = function (argument) { + return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 + }; + + var toLength = toLength$1; + + // `LengthOfArrayLike` abstract operation + // https://tc39.es/ecma262/#sec-lengthofarraylike + var lengthOfArrayLike$2 = function (obj) { + return toLength(obj.length); + }; + + var toIndexedObject$1 = toIndexedObject$3; + var toAbsoluteIndex = toAbsoluteIndex$1; + var lengthOfArrayLike$1 = lengthOfArrayLike$2; + + // `Array.prototype.{ indexOf, includes }` methods implementation + var createMethod = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject$1($this); + var length = lengthOfArrayLike$1(O); + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; + }; + + var arrayIncludes = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod(false) + }; + + var uncurryThis$7 = functionUncurryThis; + var hasOwn$3 = hasOwnProperty_1; + var toIndexedObject = toIndexedObject$3; + var indexOf = arrayIncludes.indexOf; + var hiddenKeys$1 = hiddenKeys$3; + + var push = uncurryThis$7([].push); + + var objectKeysInternal = function (object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn$3(hiddenKeys$1, key) && hasOwn$3(O, key) && push(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn$3(O, key = names[i++])) { + ~indexOf(result, key) || push(result, key); + } + return result; + }; + + // IE8- don't enum bug keys + var enumBugKeys$2 = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' + ]; + + var internalObjectKeys$1 = objectKeysInternal; + var enumBugKeys$1 = enumBugKeys$2; + + var hiddenKeys = enumBugKeys$1.concat('length', 'prototype'); + + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + // eslint-disable-next-line es/no-object-getownpropertynames -- safe + objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys$1(O, hiddenKeys); + }; + + var objectGetOwnPropertySymbols = {}; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe + objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; + + var getBuiltIn$5 = getBuiltIn$7; + var uncurryThis$6 = functionUncurryThis; + var getOwnPropertyNamesModule = objectGetOwnPropertyNames; + var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols; + var anObject$6 = anObject$8; + + var concat$1 = uncurryThis$6([].concat); + + // all object keys, includes non-enumerable and symbols + var ownKeys$1 = getBuiltIn$5('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject$6(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f; + return getOwnPropertySymbols ? concat$1(keys, getOwnPropertySymbols(it)) : keys; + }; + + var hasOwn$2 = hasOwnProperty_1; + var ownKeys = ownKeys$1; + var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor; + var definePropertyModule = objectDefineProperty; + + var copyConstructorProperties$1 = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn$2(target, key) && !(exceptions && hasOwn$2(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } + }; + + var fails$3 = fails$b; + var isCallable$7 = isCallable$h; + + var replacement = /#|\.prototype\./; + + var isForced$2 = function (feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true + : value == NATIVE ? false + : isCallable$7(detection) ? fails$3(detection) + : !!detection; + }; + + var normalize = isForced$2.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); + }; + + var data = isForced$2.data = {}; + var NATIVE = isForced$2.NATIVE = 'N'; + var POLYFILL = isForced$2.POLYFILL = 'P'; + + var isForced_1 = isForced$2; + + var global$6 = global$g; + var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f; + var createNonEnumerableProperty = createNonEnumerableProperty$2; + var defineBuiltIn$3 = defineBuiltIn$4; + var defineGlobalProperty = defineGlobalProperty$3; + var copyConstructorProperties = copyConstructorProperties$1; + var isForced$1 = isForced_1; + + /* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key + */ + var _export = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global$6; + } else if (STATIC) { + target = global$6[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = (global$6[TARGET] || {}).prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor$1(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced$1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty(sourceProperty, 'sham', true); + } + defineBuiltIn$3(target, key, sourceProperty, options); + } + }; + + var internalObjectKeys = objectKeysInternal; + var enumBugKeys = enumBugKeys$2; + + // `Object.keys` method + // https://tc39.es/ecma262/#sec-object.keys + // eslint-disable-next-line es/no-object-keys -- safe + var objectKeys$1 = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys); + }; + + var DESCRIPTORS$1 = descriptors; + var uncurryThis$5 = functionUncurryThis; + var call$8 = functionCall; + var fails$2 = fails$b; + var objectKeys = objectKeys$1; + var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols; + var propertyIsEnumerableModule = objectPropertyIsEnumerable; + var toObject = toObject$2; + var IndexedObject = indexedObject; + + // eslint-disable-next-line es/no-object-assign -- safe + var $assign = Object.assign; + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + var defineProperty$1 = Object.defineProperty; + var concat = uncurryThis$5([].concat); + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + var objectAssign = !$assign || fails$2(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS$1 && $assign({ b: 1 }, $assign(defineProperty$1({}, 'a', { + enumerable: true, + get: function () { + defineProperty$1(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol(); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet; + }) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject(arguments[index++]); + var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS$1 || call$8(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; + } : $assign; + + var $$6 = _export; + var assign = objectAssign; + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + // eslint-disable-next-line es/no-object-assign -- required for testing + $$6({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign + }); + + var wellKnownSymbol$8 = wellKnownSymbol$a; + + var TO_STRING_TAG$2 = wellKnownSymbol$8('toStringTag'); + var test = {}; + + test[TO_STRING_TAG$2] = 'z'; + + var toStringTagSupport = String(test) === '[object z]'; + + var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport; + var isCallable$6 = isCallable$h; + var classofRaw$1 = classofRaw$2; + var wellKnownSymbol$7 = wellKnownSymbol$a; + + var TO_STRING_TAG$1 = wellKnownSymbol$7('toStringTag'); + var $Object = Object; + + // ES3 wrong here + var CORRECT_ARGUMENTS = classofRaw$1(function () { return arguments; }()) == 'Arguments'; + + // fallback for IE11 Script Access Denied error + var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } + }; + + // getting tag from ES6+ `Object.prototype.toString` + var classof$4 = TO_STRING_TAG_SUPPORT$2 ? classofRaw$1 : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG$1)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw$1(O) + // ES3 arguments fallback + : (result = classofRaw$1(O)) == 'Object' && isCallable$6(O.callee) ? 'Arguments' : result; + }; + + var TO_STRING_TAG_SUPPORT$1 = toStringTagSupport; + var classof$3 = classof$4; + + // `Object.prototype.toString` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.tostring + var objectToString$1 = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() { + return '[object ' + classof$3(this) + ']'; + }; + + var TO_STRING_TAG_SUPPORT = toStringTagSupport; + var defineBuiltIn$2 = defineBuiltIn$4; + var toString = objectToString$1; + + // `Object.prototype.toString` method + // https://tc39.es/ecma262/#sec-object.prototype.tostring + if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn$2(Object.prototype, 'toString', toString, { unsafe: true }); + } + + var classof$2 = classofRaw$2; + + var engineIsNode = typeof process != 'undefined' && classof$2(process) == 'process'; + + var uncurryThis$4 = functionUncurryThis; + var aCallable$6 = aCallable$8; + + var functionUncurryThisAccessor = function (object, key, method) { + try { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return uncurryThis$4(aCallable$6(Object.getOwnPropertyDescriptor(object, key)[method])); + } catch (error) { /* empty */ } + }; + + var isCallable$5 = isCallable$h; + + var $String = String; + var $TypeError$6 = TypeError; + + var aPossiblePrototype$1 = function (argument) { + if (typeof argument == 'object' || isCallable$5(argument)) return argument; + throw $TypeError$6("Can't set " + $String(argument) + ' as a prototype'); + }; + + /* eslint-disable no-proto -- safe */ + + var uncurryThisAccessor = functionUncurryThisAccessor; + var anObject$5 = anObject$8; + var aPossiblePrototype = aPossiblePrototype$1; + + // `Object.setPrototypeOf` method + // https://tc39.es/ecma262/#sec-object.setprototypeof + // Works with __proto__ only. Old v8 can't work with null proto objects. + // eslint-disable-next-line es/no-object-setprototypeof -- safe + var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set'); + setter(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + anObject$5(O); + aPossiblePrototype(proto); + if (CORRECT_SETTER) setter(O, proto); + else O.__proto__ = proto; + return O; + }; + }() : undefined); + + var defineProperty = objectDefineProperty.f; + var hasOwn$1 = hasOwnProperty_1; + var wellKnownSymbol$6 = wellKnownSymbol$a; + + var TO_STRING_TAG = wellKnownSymbol$6('toStringTag'); + + var setToStringTag$1 = function (target, TAG, STATIC) { + if (target && !STATIC) target = target.prototype; + if (target && !hasOwn$1(target, TO_STRING_TAG)) { + defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG }); + } + }; + + var getBuiltIn$4 = getBuiltIn$7; + var defineBuiltInAccessor = defineBuiltInAccessor$2; + var wellKnownSymbol$5 = wellKnownSymbol$a; + var DESCRIPTORS = descriptors; + + var SPECIES$2 = wellKnownSymbol$5('species'); + + var setSpecies$1 = function (CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn$4(CONSTRUCTOR_NAME); + + if (DESCRIPTORS && Constructor && !Constructor[SPECIES$2]) { + defineBuiltInAccessor(Constructor, SPECIES$2, { + configurable: true, + get: function () { return this; } + }); + } + }; + + var isPrototypeOf$1 = objectIsPrototypeOf; + + var $TypeError$5 = TypeError; + + var anInstance$1 = function (it, Prototype) { + if (isPrototypeOf$1(Prototype, it)) return it; + throw $TypeError$5('Incorrect invocation'); + }; + + var uncurryThis$3 = functionUncurryThis; + var fails$1 = fails$b; + var isCallable$4 = isCallable$h; + var classof$1 = classof$4; + var getBuiltIn$3 = getBuiltIn$7; + var inspectSource$1 = inspectSource$3; + + var noop = function () { /* empty */ }; + var empty = []; + var construct = getBuiltIn$3('Reflect', 'construct'); + var constructorRegExp = /^\s*(?:class|function)\b/; + var exec = uncurryThis$3(constructorRegExp.exec); + var INCORRECT_TO_STRING = !constructorRegExp.exec(noop); + + var isConstructorModern = function isConstructor(argument) { + if (!isCallable$4(argument)) return false; + try { + construct(noop, empty, argument); + return true; + } catch (error) { + return false; + } + }; + + var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable$4(argument)) return false; + switch (classof$1(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource$1(argument)); + } catch (error) { + return true; + } + }; + + isConstructorLegacy.sham = true; + + // `IsConstructor` abstract operation + // https://tc39.es/ecma262/#sec-isconstructor + var isConstructor$1 = !construct || fails$1(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; + }) ? isConstructorLegacy : isConstructorModern; + + var isConstructor = isConstructor$1; + var tryToString$2 = tryToString$4; + + var $TypeError$4 = TypeError; + + // `Assert: IsConstructor(argument) is true` + var aConstructor$1 = function (argument) { + if (isConstructor(argument)) return argument; + throw $TypeError$4(tryToString$2(argument) + ' is not a constructor'); + }; + + var anObject$4 = anObject$8; + var aConstructor = aConstructor$1; + var isNullOrUndefined$1 = isNullOrUndefined$4; + var wellKnownSymbol$4 = wellKnownSymbol$a; + + var SPECIES$1 = wellKnownSymbol$4('species'); + + // `SpeciesConstructor` abstract operation + // https://tc39.es/ecma262/#sec-speciesconstructor + var speciesConstructor$1 = function (O, defaultConstructor) { + var C = anObject$4(O).constructor; + var S; + return C === undefined || isNullOrUndefined$1(S = anObject$4(C)[SPECIES$1]) ? defaultConstructor : aConstructor(S); + }; + + var NATIVE_BIND$1 = functionBindNative; + + var FunctionPrototype = Function.prototype; + var apply$1 = FunctionPrototype.apply; + var call$7 = FunctionPrototype.call; + + // eslint-disable-next-line es/no-reflect -- safe + var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND$1 ? call$7.bind(apply$1) : function () { + return call$7.apply(apply$1, arguments); + }); + + var classofRaw = classofRaw$2; + var uncurryThis$2 = functionUncurryThis; + + var functionUncurryThisClause = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis$2(fn); + }; + + var uncurryThis$1 = functionUncurryThisClause; + var aCallable$5 = aCallable$8; + var NATIVE_BIND = functionBindNative; + + var bind$4 = uncurryThis$1(uncurryThis$1.bind); + + // optional / simple context binding + var functionBindContext = function (fn, that) { + aCallable$5(fn); + return that === undefined ? fn : NATIVE_BIND ? bind$4(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; + }; + + var getBuiltIn$2 = getBuiltIn$7; + + var html$1 = getBuiltIn$2('document', 'documentElement'); + + var uncurryThis = functionUncurryThis; + + var arraySlice$1 = uncurryThis([].slice); + + var $TypeError$3 = TypeError; + + var validateArgumentsLength$1 = function (passed, required) { + if (passed < required) throw $TypeError$3('Not enough arguments'); + return passed; + }; + + var userAgent$2 = engineUserAgent; + + // eslint-disable-next-line redos/no-vulnerable -- safe + var engineIsIos = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent$2); + + var global$5 = global$g; + var apply = functionApply; + var bind$3 = functionBindContext; + var isCallable$3 = isCallable$h; + var hasOwn = hasOwnProperty_1; + var fails = fails$b; + var html = html$1; + var arraySlice = arraySlice$1; + var createElement = documentCreateElement; + var validateArgumentsLength = validateArgumentsLength$1; + var IS_IOS$1 = engineIsIos; + var IS_NODE$3 = engineIsNode; + + var set = global$5.setImmediate; + var clear = global$5.clearImmediate; + var process$3 = global$5.process; + var Dispatch = global$5.Dispatch; + var Function$1 = global$5.Function; + var MessageChannel = global$5.MessageChannel; + var String$1 = global$5.String; + var counter = 0; + var queue$2 = {}; + var ONREADYSTATECHANGE = 'onreadystatechange'; + var $location, defer, channel, port; + + fails(function () { + // Deno throws a ReferenceError on `location` access without `--location` flag + $location = global$5.location; + }); + + var run = function (id) { + if (hasOwn(queue$2, id)) { + var fn = queue$2[id]; + delete queue$2[id]; + fn(); + } + }; + + var runner = function (id) { + return function () { + run(id); + }; + }; + + var eventListener = function (event) { + run(event.data); + }; + + var globalPostMessageDefer = function (id) { + // old engines have not location.origin + global$5.postMessage(String$1(id), $location.protocol + '//' + $location.host); + }; + + // Node.js 0.9+ & IE10+ has setImmediate, otherwise: + if (!set || !clear) { + set = function setImmediate(handler) { + validateArgumentsLength(arguments.length, 1); + var fn = isCallable$3(handler) ? handler : Function$1(handler); + var args = arraySlice(arguments, 1); + queue$2[++counter] = function () { + apply(fn, undefined, args); + }; + defer(counter); + return counter; + }; + clear = function clearImmediate(id) { + delete queue$2[id]; + }; + // Node.js 0.8- + if (IS_NODE$3) { + defer = function (id) { + process$3.nextTick(runner(id)); + }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(runner(id)); + }; + // Browsers with MessageChannel, includes WebWorkers + // except iOS - https://github.com/zloirock/core-js/issues/624 + } else if (MessageChannel && !IS_IOS$1) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = eventListener; + defer = bind$3(port.postMessage, port); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if ( + global$5.addEventListener && + isCallable$3(global$5.postMessage) && + !global$5.importScripts && + $location && $location.protocol !== 'file:' && + !fails(globalPostMessageDefer) + ) { + defer = globalPostMessageDefer; + global$5.addEventListener('message', eventListener, false); + // IE8- + } else if (ONREADYSTATECHANGE in createElement('script')) { + defer = function (id) { + html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { + html.removeChild(this); + run(id); + }; + }; + // Rest old browsers + } else { + defer = function (id) { + setTimeout(runner(id), 0); + }; + } + } + + var task$1 = { + set: set, + clear: clear + }; + + var Queue$2 = function () { + this.head = null; + this.tail = null; + }; + + Queue$2.prototype = { + add: function (item) { + var entry = { item: item, next: null }; + var tail = this.tail; + if (tail) tail.next = entry; + else this.head = entry; + this.tail = entry; + }, + get: function () { + var entry = this.head; + if (entry) { + var next = this.head = entry.next; + if (next === null) this.tail = null; + return entry.item; + } + } + }; + + var queue$1 = Queue$2; + + var userAgent$1 = engineUserAgent; + + var engineIsIosPebble = /ipad|iphone|ipod/i.test(userAgent$1) && typeof Pebble != 'undefined'; + + var userAgent = engineUserAgent; + + var engineIsWebosWebkit = /web0s(?!.*chrome)/i.test(userAgent); + + var global$4 = global$g; + var bind$2 = functionBindContext; + var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; + var macrotask = task$1.set; + var Queue$1 = queue$1; + var IS_IOS = engineIsIos; + var IS_IOS_PEBBLE = engineIsIosPebble; + var IS_WEBOS_WEBKIT = engineIsWebosWebkit; + var IS_NODE$2 = engineIsNode; + + var MutationObserver = global$4.MutationObserver || global$4.WebKitMutationObserver; + var document$2 = global$4.document; + var process$2 = global$4.process; + var Promise$1 = global$4.Promise; + // Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` + var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global$4, 'queueMicrotask'); + var microtask$1 = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; + var notify$1, toggle, node, promise, then; + + // modern engines have queueMicrotask method + if (!microtask$1) { + var queue = new Queue$1(); + + var flush = function () { + var parent, fn; + if (IS_NODE$2 && (parent = process$2.domain)) parent.exit(); + while (fn = queue.get()) try { + fn(); + } catch (error) { + if (queue.head) notify$1(); + throw error; + } + if (parent) parent.enter(); + }; + + // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 + // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 + if (!IS_IOS && !IS_NODE$2 && !IS_WEBOS_WEBKIT && MutationObserver && document$2) { + toggle = true; + node = document$2.createTextNode(''); + new MutationObserver(flush).observe(node, { characterData: true }); + notify$1 = function () { + node.data = toggle = !toggle; + }; + // environments with maybe non-completely correct, but existent Promise + } else if (!IS_IOS_PEBBLE && Promise$1 && Promise$1.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + promise = Promise$1.resolve(undefined); + // workaround of WebKit ~ iOS Safari 10.1 bug + promise.constructor = Promise$1; + then = bind$2(promise.then, promise); + notify$1 = function () { + then(flush); + }; + // Node.js without promises + } else if (IS_NODE$2) { + notify$1 = function () { + process$2.nextTick(flush); + }; + // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessage + // - onreadystatechange + // - setTimeout + } else { + // `webpack` dev server bug on IE global methods - use bind(fn, global) + macrotask = bind$2(macrotask, global$4); + notify$1 = function () { + macrotask(flush); + }; + } + + microtask$1 = function (fn) { + if (!queue.head) notify$1(); + queue.add(fn); + }; + } + + var microtask_1 = microtask$1; + + var hostReportErrors$1 = function (a, b) { + try { + // eslint-disable-next-line no-console -- safe + arguments.length == 1 ? console.error(a) : console.error(a, b); + } catch (error) { /* empty */ } + }; + + var perform$3 = function (exec) { + try { + return { error: false, value: exec() }; + } catch (error) { + return { error: true, value: error }; + } + }; + + var global$3 = global$g; + + var promiseNativeConstructor = global$3.Promise; + + /* global Deno -- Deno case */ + + var engineIsDeno = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; + + var IS_DENO$1 = engineIsDeno; + var IS_NODE$1 = engineIsNode; + + var engineIsBrowser = !IS_DENO$1 && !IS_NODE$1 + && typeof window == 'object' + && typeof document == 'object'; + + var global$2 = global$g; + var NativePromiseConstructor$3 = promiseNativeConstructor; + var isCallable$2 = isCallable$h; + var isForced = isForced_1; + var inspectSource = inspectSource$3; + var wellKnownSymbol$3 = wellKnownSymbol$a; + var IS_BROWSER = engineIsBrowser; + var IS_DENO = engineIsDeno; + var V8_VERSION = engineV8Version; + + NativePromiseConstructor$3 && NativePromiseConstructor$3.prototype; + var SPECIES = wellKnownSymbol$3('species'); + var SUBCLASSING = false; + var NATIVE_PROMISE_REJECTION_EVENT$1 = isCallable$2(global$2.PromiseRejectionEvent); + + var FORCED_PROMISE_CONSTRUCTOR$5 = isForced('Promise', function () { + var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor$3); + var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor$3); + // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // We can't detect it synchronously, so just check versions + if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true; + // We can't use @@species feature detection in V8 since it causes + // deoptimization and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) { + // Detect correctness of subclassing with @@species support + var promise = new NativePromiseConstructor$3(function (resolve) { resolve(1); }); + var FakePromise = function (exec) { + exec(function () { /* empty */ }, function () { /* empty */ }); + }; + var constructor = promise.constructor = {}; + constructor[SPECIES] = FakePromise; + SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise; + if (!SUBCLASSING) return true; + // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test + } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT$1; + }); + + var promiseConstructorDetection = { + CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR$5, + REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT$1, + SUBCLASSING: SUBCLASSING + }; + + var newPromiseCapability$2 = {}; + + var aCallable$4 = aCallable$8; + + var $TypeError$2 = TypeError; + + var PromiseCapability = function (C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw $TypeError$2('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aCallable$4(resolve); + this.reject = aCallable$4(reject); + }; + + // `NewPromiseCapability` abstract operation + // https://tc39.es/ecma262/#sec-newpromisecapability + newPromiseCapability$2.f = function (C) { + return new PromiseCapability(C); + }; + + var $$5 = _export; + var IS_NODE = engineIsNode; + var global$1 = global$g; + var call$6 = functionCall; + var defineBuiltIn$1 = defineBuiltIn$4; + var setPrototypeOf = objectSetPrototypeOf; + var setToStringTag = setToStringTag$1; + var setSpecies = setSpecies$1; + var aCallable$3 = aCallable$8; + var isCallable$1 = isCallable$h; + var isObject$2 = isObject$8; + var anInstance = anInstance$1; + var speciesConstructor = speciesConstructor$1; + var task = task$1.set; + var microtask = microtask_1; + var hostReportErrors = hostReportErrors$1; + var perform$2 = perform$3; + var Queue = queue$1; + var InternalStateModule = internalState; + var NativePromiseConstructor$2 = promiseNativeConstructor; + var PromiseConstructorDetection = promiseConstructorDetection; + var newPromiseCapabilityModule$3 = newPromiseCapability$2; + + var PROMISE = 'Promise'; + var FORCED_PROMISE_CONSTRUCTOR$4 = PromiseConstructorDetection.CONSTRUCTOR; + var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT; + var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING; + var getInternalPromiseState = InternalStateModule.getterFor(PROMISE); + var setInternalState = InternalStateModule.set; + var NativePromisePrototype$1 = NativePromiseConstructor$2 && NativePromiseConstructor$2.prototype; + var PromiseConstructor = NativePromiseConstructor$2; + var PromisePrototype = NativePromisePrototype$1; + var TypeError$1 = global$1.TypeError; + var document$1 = global$1.document; + var process$1 = global$1.process; + var newPromiseCapability$1 = newPromiseCapabilityModule$3.f; + var newGenericPromiseCapability = newPromiseCapability$1; + + var DISPATCH_EVENT = !!(document$1 && document$1.createEvent && global$1.dispatchEvent); + var UNHANDLED_REJECTION = 'unhandledrejection'; + var REJECTION_HANDLED = 'rejectionhandled'; + var PENDING = 0; + var FULFILLED = 1; + var REJECTED = 2; + var HANDLED = 1; + var UNHANDLED = 2; + + var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; + + // helpers + var isThenable = function (it) { + var then; + return isObject$2(it) && isCallable$1(then = it.then) ? then : false; + }; + + var callReaction = function (reaction, state) { + var value = state.value; + var ok = state.state == FULFILLED; + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + try { + if (handler) { + if (!ok) { + if (state.rejection === UNHANDLED) onHandleUnhandled(state); + state.rejection = HANDLED; + } + if (handler === true) result = value; + else { + if (domain) domain.enter(); + result = handler(value); // can throw + if (domain) { + domain.exit(); + exited = true; + } + } + if (result === reaction.promise) { + reject(TypeError$1('Promise-chain cycle')); + } else if (then = isThenable(result)) { + call$6(then, result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (error) { + if (domain && !exited) domain.exit(); + reject(error); + } + }; + + var notify = function (state, isReject) { + if (state.notified) return; + state.notified = true; + microtask(function () { + var reactions = state.reactions; + var reaction; + while (reaction = reactions.get()) { + callReaction(reaction, state); + } + state.notified = false; + if (isReject && !state.rejection) onUnhandled(state); + }); + }; + + var dispatchEvent = function (name, promise, reason) { + var event, handler; + if (DISPATCH_EVENT) { + event = document$1.createEvent('Event'); + event.promise = promise; + event.reason = reason; + event.initEvent(name, false, true); + global$1.dispatchEvent(event); + } else event = { promise: promise, reason: reason }; + if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global$1['on' + name])) handler(event); + else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); + }; + + var onUnhandled = function (state) { + call$6(task, global$1, function () { + var promise = state.facade; + var value = state.value; + var IS_UNHANDLED = isUnhandled(state); + var result; + if (IS_UNHANDLED) { + result = perform$2(function () { + if (IS_NODE) { + process$1.emit('unhandledRejection', value, promise); + } else dispatchEvent(UNHANDLED_REJECTION, promise, value); + }); + // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; + if (result.error) throw result.value; + } + }); + }; + + var isUnhandled = function (state) { + return state.rejection !== HANDLED && !state.parent; + }; + + var onHandleUnhandled = function (state) { + call$6(task, global$1, function () { + var promise = state.facade; + if (IS_NODE) { + process$1.emit('rejectionHandled', promise); + } else dispatchEvent(REJECTION_HANDLED, promise, state.value); + }); + }; + + var bind$1 = function (fn, state, unwrap) { + return function (value) { + fn(state, value, unwrap); + }; + }; + + var internalReject = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + state.value = value; + state.state = REJECTED; + notify(state, true); + }; + + var internalResolve = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + try { + if (state.facade === value) throw TypeError$1("Promise can't be resolved itself"); + var then = isThenable(value); + if (then) { + microtask(function () { + var wrapper = { done: false }; + try { + call$6(then, value, + bind$1(internalResolve, wrapper, state), + bind$1(internalReject, wrapper, state) + ); + } catch (error) { + internalReject(wrapper, error, state); + } + }); + } else { + state.value = value; + state.state = FULFILLED; + notify(state, false); + } + } catch (error) { + internalReject({ done: false }, error, state); + } + }; + + // constructor polyfill + if (FORCED_PROMISE_CONSTRUCTOR$4) { + // 25.4.3.1 Promise(executor) + PromiseConstructor = function Promise(executor) { + anInstance(this, PromisePrototype); + aCallable$3(executor); + call$6(Internal, this); + var state = getInternalPromiseState(this); + try { + executor(bind$1(internalResolve, state), bind$1(internalReject, state)); + } catch (error) { + internalReject(state, error); + } + }; + + PromisePrototype = PromiseConstructor.prototype; + + // eslint-disable-next-line no-unused-vars -- required for `.length` + Internal = function Promise(executor) { + setInternalState(this, { + type: PROMISE, + done: false, + notified: false, + parent: false, + reactions: new Queue(), + rejection: false, + state: PENDING, + value: undefined + }); + }; + + // `Promise.prototype.then` method + // https://tc39.es/ecma262/#sec-promise.prototype.then + Internal.prototype = defineBuiltIn$1(PromisePrototype, 'then', function then(onFulfilled, onRejected) { + var state = getInternalPromiseState(this); + var reaction = newPromiseCapability$1(speciesConstructor(this, PromiseConstructor)); + state.parent = true; + reaction.ok = isCallable$1(onFulfilled) ? onFulfilled : true; + reaction.fail = isCallable$1(onRejected) && onRejected; + reaction.domain = IS_NODE ? process$1.domain : undefined; + if (state.state == PENDING) state.reactions.add(reaction); + else microtask(function () { + callReaction(reaction, state); + }); + return reaction.promise; + }); + + OwnPromiseCapability = function () { + var promise = new Internal(); + var state = getInternalPromiseState(promise); + this.promise = promise; + this.resolve = bind$1(internalResolve, state); + this.reject = bind$1(internalReject, state); + }; + + newPromiseCapabilityModule$3.f = newPromiseCapability$1 = function (C) { + return C === PromiseConstructor || C === PromiseWrapper + ? new OwnPromiseCapability(C) + : newGenericPromiseCapability(C); + }; + + if (isCallable$1(NativePromiseConstructor$2) && NativePromisePrototype$1 !== Object.prototype) { + nativeThen = NativePromisePrototype$1.then; + + if (!NATIVE_PROMISE_SUBCLASSING) { + // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs + defineBuiltIn$1(NativePromisePrototype$1, 'then', function then(onFulfilled, onRejected) { + var that = this; + return new PromiseConstructor(function (resolve, reject) { + call$6(nativeThen, that, resolve, reject); + }).then(onFulfilled, onRejected); + // https://github.com/zloirock/core-js/issues/640 + }, { unsafe: true }); + } + + // make `.constructor === Promise` work for native promise-based APIs + try { + delete NativePromisePrototype$1.constructor; + } catch (error) { /* empty */ } + + // make `instanceof Promise` work for native promise-based APIs + if (setPrototypeOf) { + setPrototypeOf(NativePromisePrototype$1, PromisePrototype); + } + } + } + + $$5({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR$4 }, { + Promise: PromiseConstructor + }); + + setToStringTag(PromiseConstructor, PROMISE, false); + setSpecies(PROMISE); + + var iterators = {}; + + var wellKnownSymbol$2 = wellKnownSymbol$a; + var Iterators$1 = iterators; + + var ITERATOR$2 = wellKnownSymbol$2('iterator'); + var ArrayPrototype = Array.prototype; + + // check on default Array iterator + var isArrayIteratorMethod$1 = function (it) { + return it !== undefined && (Iterators$1.Array === it || ArrayPrototype[ITERATOR$2] === it); + }; + + var classof = classof$4; + var getMethod$1 = getMethod$3; + var isNullOrUndefined = isNullOrUndefined$4; + var Iterators = iterators; + var wellKnownSymbol$1 = wellKnownSymbol$a; + + var ITERATOR$1 = wellKnownSymbol$1('iterator'); + + var getIteratorMethod$2 = function (it) { + if (!isNullOrUndefined(it)) return getMethod$1(it, ITERATOR$1) + || getMethod$1(it, '@@iterator') + || Iterators[classof(it)]; + }; + + var call$5 = functionCall; + var aCallable$2 = aCallable$8; + var anObject$3 = anObject$8; + var tryToString$1 = tryToString$4; + var getIteratorMethod$1 = getIteratorMethod$2; + + var $TypeError$1 = TypeError; + + var getIterator$1 = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod$1(argument) : usingIterator; + if (aCallable$2(iteratorMethod)) return anObject$3(call$5(iteratorMethod, argument)); + throw $TypeError$1(tryToString$1(argument) + ' is not iterable'); + }; + + var call$4 = functionCall; + var anObject$2 = anObject$8; + var getMethod = getMethod$3; + + var iteratorClose$1 = function (iterator, kind, value) { + var innerResult, innerError; + anObject$2(iterator); + try { + innerResult = getMethod(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') throw value; + return value; + } + innerResult = call$4(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === 'throw') throw value; + if (innerError) throw innerResult; + anObject$2(innerResult); + return value; + }; + + var bind = functionBindContext; + var call$3 = functionCall; + var anObject$1 = anObject$8; + var tryToString = tryToString$4; + var isArrayIteratorMethod = isArrayIteratorMethod$1; + var lengthOfArrayLike = lengthOfArrayLike$2; + var isPrototypeOf = objectIsPrototypeOf; + var getIterator = getIterator$1; + var getIteratorMethod = getIteratorMethod$2; + var iteratorClose = iteratorClose$1; + + var $TypeError = TypeError; + + var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; + }; + + var ResultPrototype = Result.prototype; + + var iterate$2 = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_RECORD = !!(options && options.IS_RECORD); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose(iterator, 'normal', condition); + return new Result(true, condition); + }; + + var callFn = function (value) { + if (AS_ENTRIES) { + anObject$1(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; + + if (IS_RECORD) { + iterator = iterable.iterator; + } else if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod(iterable); + if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + } + iterator = getIterator(iterable, iterFn); + } + + next = IS_RECORD ? iterable.next : iterator.next; + while (!(step = call$3(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } + if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + }; + + var wellKnownSymbol = wellKnownSymbol$a; + + var ITERATOR = wellKnownSymbol('iterator'); + var SAFE_CLOSING = false; + + try { + var called = 0; + var iteratorWithReturn = { + next: function () { + return { done: !!called++ }; + }, + 'return': function () { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR] = function () { + return this; + }; + // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing + Array.from(iteratorWithReturn, function () { throw 2; }); + } catch (error) { /* empty */ } + + var checkCorrectnessOfIteration$1 = function (exec, SKIP_CLOSING) { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR] = function () { + return { + next: function () { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { /* empty */ } + return ITERATION_SUPPORT; + }; + + var NativePromiseConstructor$1 = promiseNativeConstructor; + var checkCorrectnessOfIteration = checkCorrectnessOfIteration$1; + var FORCED_PROMISE_CONSTRUCTOR$3 = promiseConstructorDetection.CONSTRUCTOR; + + var promiseStaticsIncorrectIteration = FORCED_PROMISE_CONSTRUCTOR$3 || !checkCorrectnessOfIteration(function (iterable) { + NativePromiseConstructor$1.all(iterable).then(undefined, function () { /* empty */ }); + }); + + var $$4 = _export; + var call$2 = functionCall; + var aCallable$1 = aCallable$8; + var newPromiseCapabilityModule$2 = newPromiseCapability$2; + var perform$1 = perform$3; + var iterate$1 = iterate$2; + var PROMISE_STATICS_INCORRECT_ITERATION$1 = promiseStaticsIncorrectIteration; + + // `Promise.all` method + // https://tc39.es/ecma262/#sec-promise.all + $$4({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$1 }, { + all: function all(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$2.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform$1(function () { + var $promiseResolve = aCallable$1(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate$1(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call$2($promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } + }); + + var $$3 = _export; + var FORCED_PROMISE_CONSTRUCTOR$2 = promiseConstructorDetection.CONSTRUCTOR; + var NativePromiseConstructor = promiseNativeConstructor; + var getBuiltIn$1 = getBuiltIn$7; + var isCallable = isCallable$h; + var defineBuiltIn = defineBuiltIn$4; + + var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + + // `Promise.prototype.catch` method + // https://tc39.es/ecma262/#sec-promise.prototype.catch + $$3({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR$2, real: true }, { + 'catch': function (onRejected) { + return this.then(undefined, onRejected); + } + }); + + // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` + if (isCallable(NativePromiseConstructor)) { + var method = getBuiltIn$1('Promise').prototype['catch']; + if (NativePromisePrototype['catch'] !== method) { + defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true }); + } + } + + var $$2 = _export; + var call$1 = functionCall; + var aCallable = aCallable$8; + var newPromiseCapabilityModule$1 = newPromiseCapability$2; + var perform = perform$3; + var iterate = iterate$2; + var PROMISE_STATICS_INCORRECT_ITERATION = promiseStaticsIncorrectIteration; + + // `Promise.race` method + // https://tc39.es/ecma262/#sec-promise.race + $$2({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + race: function race(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$1.f(C); + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aCallable(C.resolve); + iterate(iterable, function (promise) { + call$1($promiseResolve, C, promise).then(capability.resolve, reject); + }); + }); + if (result.error) reject(result.value); + return capability.promise; + } + }); + + var $$1 = _export; + var call = functionCall; + var newPromiseCapabilityModule = newPromiseCapability$2; + var FORCED_PROMISE_CONSTRUCTOR$1 = promiseConstructorDetection.CONSTRUCTOR; + + // `Promise.reject` method + // https://tc39.es/ecma262/#sec-promise.reject + $$1({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR$1 }, { + reject: function reject(r) { + var capability = newPromiseCapabilityModule.f(this); + call(capability.reject, undefined, r); + return capability.promise; + } + }); + + var anObject = anObject$8; + var isObject$1 = isObject$8; + var newPromiseCapability = newPromiseCapability$2; + + var promiseResolve$1 = function (C, x) { + anObject(C); + if (isObject$1(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; + }; + + var $ = _export; + var getBuiltIn = getBuiltIn$7; + var FORCED_PROMISE_CONSTRUCTOR = promiseConstructorDetection.CONSTRUCTOR; + var promiseResolve = promiseResolve$1; + + getBuiltIn('Promise'); + + // `Promise.resolve` method + // https://tc39.es/ecma262/#sec-promise.resolve + $({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + resolve: function resolve(x) { + return promiseResolve(this, x); + } + }); + + function defined(x) { + return x != null && !Number.isNaN(x); + } + + function ascendingDefined(a, b) { + return +defined(b) - +defined(a) || d3.ascending(a, b); + } + + function finite(x) { + return isFinite(x) ? x : NaN; + } + + function positive(x) { + return x > 0 && isFinite(x) ? x : NaN; + } + + function negative(x) { + return x < 0 && isFinite(x) ? x : NaN; + } + + function format(date, fallback) { + if (!(date instanceof Date)) date = new Date(+date); + if (isNaN(date)) return typeof fallback === "function" ? fallback(date) : fallback; + const hours = date.getUTCHours(); + const minutes = date.getUTCMinutes(); + const seconds = date.getUTCSeconds(); + const milliseconds = date.getUTCMilliseconds(); + return `${formatYear(date.getUTCFullYear())}-${pad(date.getUTCMonth() + 1, 2)}-${pad(date.getUTCDate(), 2)}${ + hours || minutes || seconds || milliseconds ? `T${pad(hours, 2)}:${pad(minutes, 2)}${ + seconds || milliseconds ? `:${pad(seconds, 2)}${ + milliseconds ? `.${pad(milliseconds, 3)}` : `` + }` : `` + }Z` : `` + }`; + } + + function formatYear(year) { + return year < 0 ? `-${pad(-year, 6)}` + : year > 9999 ? `+${pad(year, 6)}` + : pad(year, 4); + } + + function pad(value, width) { + return `${value}`.padStart(width, "0"); + } + + const re = /^(?:[-+]\d{2})?\d{4}(?:-\d{2}(?:-\d{2})?)?(?:T\d{2}:\d{2}(?::\d{2}(?:\.\d{3})?)?(?:Z|[-+]\d{2}:?\d{2})?)?$/; + + function parse(string, fallback) { + if (!re.test(string += "")) return typeof fallback === "function" ? fallback(string) : fallback; + return new Date(string); + } + + const timeIntervals = new Map([ + ["second", d3.timeSecond], + ["minute", d3.timeMinute], + ["hour", d3.timeHour], + ["day", d3.timeDay], + ["week", d3.timeWeek], + ["month", d3.timeMonth], + ["quarter", d3.timeMonth.every(3)], + ["half", d3.timeMonth.every(6)], + ["year", d3.timeYear], + ["monday", d3.timeMonday], + ["tuesday", d3.timeTuesday], + ["wednesday", d3.timeWednesday], + ["thursday", d3.timeThursday], + ["friday", d3.timeFriday], + ["saturday", d3.timeSaturday], + ["sunday", d3.timeSunday] + ]); + + const utcIntervals = new Map([ + ["second", d3.utcSecond], + ["minute", d3.utcMinute], + ["hour", d3.utcHour], + ["day", d3.utcDay], + ["week", d3.utcWeek], + ["month", d3.utcMonth], + ["quarter", d3.utcMonth.every(3)], + ["half", d3.utcMonth.every(6)], + ["year", d3.utcYear], + ["monday", d3.utcMonday], + ["tuesday", d3.utcTuesday], + ["wednesday", d3.utcWednesday], + ["thursday", d3.utcThursday], + ["friday", d3.utcFriday], + ["saturday", d3.utcSaturday], + ["sunday", d3.utcSunday] + ]); + + function maybeTimeInterval(interval) { + const i = timeIntervals.get(`${interval}`.toLowerCase()); + if (!i) throw new Error(`unknown interval: ${interval}`); + return i; + } + + function maybeUtcInterval(interval) { + const i = utcIntervals.get(`${interval}`.toLowerCase()); + if (!i) throw new Error(`unknown interval: ${interval}`); + return i; + } + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray + const TypedArray = Object.getPrototypeOf(Uint8Array); + const objectToString = Object.prototype.toString; + const string = (x) => (x == null ? x : `${x}`); + const constant = (x) => () => x; + + // If the values are specified as a typed array, no coercion is required. + function coerceNumbers(values) { + return values instanceof TypedArray ? values : map(values, coerceNumber, Float64Array); + } + + // Unlike Mark’s number, here we want to convert null and undefined to NaN since + // the result will be stored in a Float64Array and we don’t want null to be + // coerced to zero. We use Number instead of unary + to allow BigInt coercion. + function coerceNumber(x) { + return x == null ? NaN : Number(x); + } + + function coerceDates(values) { + return map(values, coerceDate); + } + + // When coercing strings to dates, we only want to allow the ISO 8601 format + // since the built-in string parsing of the Date constructor varies across + // browsers. (In the future, this could be made more liberal if desired, though + // it is still generally preferable to do date parsing yourself explicitly, + // rather than rely on Plot.) Any non-string values are coerced to number first + // and treated as milliseconds since UNIX epoch. + function coerceDate(x) { + return x instanceof Date && !isNaN(x) + ? x + : typeof x === "string" + ? parse(x) + : x == null || isNaN((x = +x)) + ? undefined + : new Date(x); + } + + // Some channels may allow a string constant to be specified; to differentiate + // string constants (e.g., "red") from named fields (e.g., "date"), this + // function tests whether the given value is a CSS color string and returns a + // tuple [channel, constant] where one of the two is undefined, and the other is + // the given value. If you wish to reference a named field that is also a valid + // CSS color, use an accessor (d => d.red) instead. + function maybeColorChannel(value, defaultValue) { + if (value === undefined) value = defaultValue; + return value === null ? [undefined, "none"] : isColor(value) ? [undefined, value] : [value, undefined]; + } + + // Similar to maybeColorChannel, this tests whether the given value is a number + // indicating a constant, and otherwise assumes that it’s a channel value. + function maybeNumberChannel(value, defaultValue) { + if (value === undefined) value = defaultValue; + return value === null || typeof value === "number" ? [undefined, value] : [value, undefined]; + } + + // Promotes the specified data to an array as needed. + function arrayify(data) { + return data == null || data instanceof Array || data instanceof TypedArray ? data : Array.from(data); + } + + // An optimization of type.from(values, f): if the given values are already an + // instanceof the desired array type, the faster values.map method is used. + function map(values, f, type = Array) { + return values == null ? values : values instanceof type ? values.map(f) : type.from(values, f); + } + + // An optimization of type.from(values): if the given values are already an + // instanceof the desired array type, the faster values.slice method is used. + function slice(values, type = Array) { + return values instanceof type ? values.slice() : type.from(values); + } + + // Disambiguates an options object (e.g., {y: "x2"}) from a primitive value. + function isObject(option) { + return option?.toString === objectToString; + } + + // Disambiguates a scale options object (e.g., {color: {type: "linear"}}) from + // some other option (e.g., {color: "red"}). When creating standalone legends, + // this is used to test whether a scale is defined; this should be consistent + // with inferScaleType when there are no channels associated with the scale, and + // if this returns true, then normalizeScale must return non-null. + function isScaleOptions(option) { + return isObject(option) && (option.type !== undefined || option.domain !== undefined); + } + + // If interval is not nullish, converts interval shorthand such as a number (for + // multiples) or a time interval name (such as “dayâ€) to a {floor, offset, + // range} object similar to a D3 time interval. + function maybeInterval(interval, type) { + if (interval == null) return; + if (typeof interval === "number") { + if (0 < interval && interval < 1 && Number.isInteger(1 / interval)) interval = -1 / interval; + const n = Math.abs(interval); + return interval < 0 + ? { + floor: (d) => Math.floor(d * n) / n, + offset: (d) => (d * n + 1) / n, // note: no optional step for simplicity + range: (lo, hi) => d3.range(Math.ceil(lo * n), hi * n).map((x) => x / n) + } + : { + floor: (d) => Math.floor(d / n) * n, + offset: (d) => d + n, // note: no optional step for simplicity + range: (lo, hi) => d3.range(Math.ceil(lo / n), hi / n).map((x) => x * n) + }; + } + if (typeof interval === "string") return (type === "time" ? maybeTimeInterval : maybeUtcInterval)(interval); + if (typeof interval.floor !== "function") throw new Error("invalid interval; missing floor method"); + if (typeof interval.offset !== "function") throw new Error("invalid interval; missing offset method"); + return interval; + } + + // Like maybeInterval, but requires a range method too. + function maybeRangeInterval(interval, type) { + interval = maybeInterval(interval, type); + if (interval && typeof interval.range !== "function") throw new Error("invalid interval: missing range method"); + return interval; + } + + // Like maybeRangeInterval, but requires a ceil method too. + function maybeNiceInterval(interval, type) { + interval = maybeRangeInterval(interval, type); + if (interval && typeof interval.ceil !== "function") throw new Error("invalid interval: missing ceil method"); + return interval; + } + + function isOrdinal(values) { + for (const value of values) { + if (value == null) continue; + const type = typeof value; + return type === "string" || type === "boolean"; + } + } + + function isTemporal(values) { + for (const value of values) { + if (value == null) continue; + return value instanceof Date; + } + } + + // Are these strings that might represent dates? This is stricter than ISO 8601 + // because we want to ignore false positives on numbers; for example, the string + // "1192" is more likely to represent a number than a date even though it is + // valid ISO 8601 representing 1192-01-01. + function isTemporalString(values) { + for (const value of values) { + if (value == null) continue; + return typeof value === "string" && isNaN(value) && parse(value); + } + } + + // Are these strings that might represent numbers? This is stricter than + // coercion because we want to ignore false positives on e.g. empty strings. + function isNumericString(values) { + for (const value of values) { + if (value == null) continue; + if (typeof value !== "string") return false; + if (!value.trim()) continue; + return !isNaN(value); + } + } + + // Mostly relies on d3-color, with a few extra color keywords. Currently this + // strictly requires that the value be a string; we might want to apply string + // coercion here, though note that d3-color instances would need to support + // valueOf to work correctly with InternMap. + // https://www.w3.org/TR/SVG11/painting.html#SpecifyingPaint + function isColor(value) { + if (typeof value !== "string") return false; + value = value.toLowerCase().trim(); + return ( + value === "none" || + value === "currentcolor" || + (value.startsWith("url(") && value.endsWith(")")) || // <funciri>, e.g. pattern or gradient + (value.startsWith("var(") && value.endsWith(")")) || // CSS variable + d3.color(value) !== null + ); + } + + function isNoneish(value) { + return value == null || isNone(value); + } + + function isNone(value) { + return /^\s*none\s*$/i.test(value); + } + + // Like a sort comparator, returns a positive value if the given array of values + // is in ascending order, a negative value if the values are in descending + // order. Assumes monotonicity; only tests the first and last values. + function orderof(values) { + if (values == null) return; + const first = values[0]; + const last = values[values.length - 1]; + return d3.descending(first, last); + } + + // Unlike {...defaults, ...options}, this ensures that any undefined (but + // present) properties in options inherit the given default value. + function inherit(options = {}, ...rest) { + let o = options; + for (const defaults of rest) { + for (const key in defaults) { + if (o[key] === undefined) { + const value = defaults[key]; + if (o === options) o = {...o, [key]: value}; + else o[key] = value; + } + } + } + return o; + } + + // Positional scales have associated axes, and for ordinal data, a point or band + // scale is used instead of an ordinal scale. + const position = Symbol("position"); + + // Color scales default to the turbo interpolator for quantitative data, and to + // the Tableau10 scheme for ordinal data. Color scales may also have an + // associated legend. + const color = Symbol("color"); + + // Radius scales default to the sqrt type, have a default range of [0, 3], and a + // default domain from 0 to the median first quartile of associated channels. + const radius = Symbol("radius"); + + // Length scales default to the linear type, have a default range of [0, 12], + // and a default domain from 0 to the median median of associated channels. + const length = Symbol("length"); + + // Opacity scales have a default range of [0, 1], and a default domain from 0 to + // the maximum value of associated channels. + const opacity = Symbol("opacity"); + + // Symbol scales have a default range of categorical symbols. + const symbol = Symbol("symbol"); + + // TODO Rather than hard-coding the list of known scale names, collect the names + // and categories for each plot specification, so that custom marks can register + // custom scales. + const registry = new Map([ + ["x", position], + ["y", position], + ["fx", position], + ["fy", position], + ["r", radius], + ["color", color], + ["opacity", opacity], + ["symbol", symbol], + ["length", length] + ]); + + const sqrt3 = Math.sqrt(3); + const sqrt4_3 = 2 / sqrt3; + + const symbolHexagon = { + draw(context, size) { + const rx = Math.sqrt(size / Math.PI), + ry = rx * sqrt4_3, + hy = ry / 2; + context.moveTo(0, ry); + context.lineTo(rx, hy); + context.lineTo(rx, -hy); + context.lineTo(0, -ry); + context.lineTo(-rx, -hy); + context.lineTo(-rx, hy); + context.closePath(); + } + }; + + const symbols = new Map([ + ["asterisk", d3.symbolAsterisk], + ["circle", d3.symbolCircle], + ["cross", d3.symbolCross], + ["diamond", d3.symbolDiamond], + ["diamond2", d3.symbolDiamond2], + ["hexagon", symbolHexagon], + ["plus", d3.symbolPlus], + ["square", d3.symbolSquare], + ["square2", d3.symbolSquare2], + ["star", d3.symbolStar], + ["times", d3.symbolTimes], + ["triangle", d3.symbolTriangle], + ["triangle2", d3.symbolTriangle2], + ["wye", d3.symbolWye] + ]); + + function isSymbolObject(value) { + return value && typeof value.draw === "function"; + } + + function maybeSymbol(symbol) { + if (symbol == null || isSymbolObject(symbol)) return symbol; + const value = symbols.get(`${symbol}`.toLowerCase()); + if (value) return value; + throw new Error(`invalid symbol: ${symbol}`); + } + + function warn(message) { + console.warn(message); + } + + const pi = Math.PI; + const tau = 2 * pi; + + function createProjection( + { + projection, + inset: globalInset = 0, + insetTop = globalInset, + insetRight = globalInset, + insetBottom = globalInset, + insetLeft = globalInset + } = {}, + dimensions + ) { + if (projection == null) return; + if (typeof projection.stream === "function") return projection; // d3 projection + let options; + let domain; + let clip = "frame"; + + // If the projection was specified as an object with additional options, + // extract those. The order of precedence for insetTop (and other insets) is: + // projection.insetTop, projection.inset, (global) insetTop, (global) inset. + // Any other options on this object will be passed through to the initializer. + if (isObject(projection)) { + let inset; + ({ + type: projection, + domain, + inset, + insetTop = inset !== undefined ? inset : insetTop, + insetRight = inset !== undefined ? inset : insetRight, + insetBottom = inset !== undefined ? inset : insetBottom, + insetLeft = inset !== undefined ? inset : insetLeft, + clip = clip, + ...options + } = projection); + if (projection == null) return; + } + + // For named projections, retrieve the corresponding projection initializer. + if (typeof projection !== "function") ({type: projection} = namedProjection(projection)); + + // Compute the frame dimensions and invoke the projection initializer. + const {width, height, marginLeft, marginRight, marginTop, marginBottom} = dimensions; + const dx = width - marginLeft - marginRight - insetLeft - insetRight; + const dy = height - marginTop - marginBottom - insetTop - insetBottom; + projection = projection?.({width: dx, height: dy, clip, ...options}); + + // The projection initializer might decide to not use a projection. + if (projection == null) return; + clip = maybePostClip(clip, marginLeft, marginTop, width - marginRight, height - marginBottom); + + // Translate the origin to the top-left corner, respecting margins and insets. + let tx = marginLeft + insetLeft; + let ty = marginTop + insetTop; + let transform; + + // If a domain is specified, fit the projection to the frame. + if (domain != null) { + const [[x0, y0], [x1, y1]] = d3.geoPath(projection).bounds(domain); + const k = Math.min(dx / (x1 - x0), dy / (y1 - y0)); + if (k > 0) { + tx -= (k * (x0 + x1) - dx) / 2; + ty -= (k * (y0 + y1) - dy) / 2; + transform = d3.geoTransform({ + point(x, y) { + this.stream.point(x * k + tx, y * k + ty); + } + }); + } else { + warn(`Warning: the projection could not be fit to the specified domain; using the default scale.`); + } + } + + transform ??= + tx === 0 && ty === 0 + ? identity() + : d3.geoTransform({ + point(x, y) { + this.stream.point(x + tx, y + ty); + } + }); + + return {stream: (s) => projection.stream(transform.stream(clip(s)))}; + } + + function namedProjection(projection) { + switch (`${projection}`.toLowerCase()) { + case "albers-usa": + return scaleProjection(d3.geoAlbersUsa, 0.7463, 0.4673); + case "albers": + return conicProjection(d3.geoAlbers, 0.7463, 0.4673); + case "azimuthal-equal-area": + return scaleProjection(d3.geoAzimuthalEqualArea, 4, 4); + case "azimuthal-equidistant": + return scaleProjection(d3.geoAzimuthalEquidistant, tau, tau); + case "conic-conformal": + return conicProjection(d3.geoConicConformal, tau, tau); + case "conic-equal-area": + return conicProjection(d3.geoConicEqualArea, 6.1702, 2.9781); + case "conic-equidistant": + return conicProjection(d3.geoConicEquidistant, 7.312, 3.6282); + case "equal-earth": + return scaleProjection(d3.geoEqualEarth, 5.4133, 2.6347); + case "equirectangular": + return scaleProjection(d3.geoEquirectangular, tau, pi); + case "gnomonic": + return scaleProjection(d3.geoGnomonic, 3.4641, 3.4641); + case "identity": + return {type: identity}; + case "reflect-y": + return {type: reflectY}; + case "mercator": + return scaleProjection(d3.geoMercator, tau, tau); + case "orthographic": + return scaleProjection(d3.geoOrthographic, 2, 2); + case "stereographic": + return scaleProjection(d3.geoStereographic, 2, 2); + case "transverse-mercator": + return scaleProjection(d3.geoTransverseMercator, tau, tau); + default: + throw new Error(`unknown projection type: ${projection}`); + } + } + + function maybePostClip(clip, x1, y1, x2, y2) { + if (clip === false || clip == null || typeof clip === "number") return (s) => s; + if (clip === true) clip = "frame"; + switch (`${clip}`.toLowerCase()) { + case "frame": + return d3.geoClipRectangle(x1, y1, x2, y2); + default: + throw new Error(`unknown projection clip type: ${clip}`); + } + } + + function scaleProjection(createProjection, kx, ky) { + return { + type: ({width, height, rotate, precision = 0.15, clip}) => { + const projection = createProjection(); + if (precision != null) projection.precision?.(precision); + if (rotate != null) projection.rotate?.(rotate); + if (typeof clip === "number") projection.clipAngle?.(clip); + projection.scale(Math.min(width / kx, height / ky)); + projection.translate([width / 2, height / 2]); + return projection; + }, + aspectRatio: ky / kx + }; + } + + function conicProjection(createProjection, kx, ky) { + const {type, aspectRatio} = scaleProjection(createProjection, kx, ky); + return { + type: (options) => { + const {parallels, domain, width, height} = options; + const projection = type(options); + if (parallels != null) { + projection.parallels(parallels); + if (domain === undefined) { + projection.fitSize([width, height], {type: "Sphere"}); + } + } + return projection; + }, + aspectRatio + }; + } + + const identity = constant({stream: (stream) => stream}); + + const reflectY = constant( + d3.geoTransform({ + point(x, y) { + this.stream.point(x, -y); + } + }) + ); + + function createContext(options = {}, dimensions, className) { + const {document = typeof window !== "undefined" ? window.document : undefined} = options; + return {document, className, projection: createProjection(options, dimensions)}; + } + + function create(name, {document}) { + return d3.select(d3.creator(name).call(document.documentElement)); + } + + const ordinalSchemes = new Map([ + // categorical + ["accent", d3.schemeAccent], + ["category10", d3.schemeCategory10], + ["dark2", d3.schemeDark2], + ["paired", d3.schemePaired], + ["pastel1", d3.schemePastel1], + ["pastel2", d3.schemePastel2], + ["set1", d3.schemeSet1], + ["set2", d3.schemeSet2], + ["set3", d3.schemeSet3], + ["tableau10", d3.schemeTableau10], + + // diverging + ["brbg", scheme11(d3.schemeBrBG, d3.interpolateBrBG)], + ["prgn", scheme11(d3.schemePRGn, d3.interpolatePRGn)], + ["piyg", scheme11(d3.schemePiYG, d3.interpolatePiYG)], + ["puor", scheme11(d3.schemePuOr, d3.interpolatePuOr)], + ["rdbu", scheme11(d3.schemeRdBu, d3.interpolateRdBu)], + ["rdgy", scheme11(d3.schemeRdGy, d3.interpolateRdGy)], + ["rdylbu", scheme11(d3.schemeRdYlBu, d3.interpolateRdYlBu)], + ["rdylgn", scheme11(d3.schemeRdYlGn, d3.interpolateRdYlGn)], + ["spectral", scheme11(d3.schemeSpectral, d3.interpolateSpectral)], + + // reversed diverging (for temperature data) + ["burd", scheme11r(d3.schemeRdBu, d3.interpolateRdBu)], + ["buylrd", scheme11r(d3.schemeRdYlBu, d3.interpolateRdYlBu)], + + // sequential (single-hue) + ["blues", scheme9(d3.schemeBlues, d3.interpolateBlues)], + ["greens", scheme9(d3.schemeGreens, d3.interpolateGreens)], + ["greys", scheme9(d3.schemeGreys, d3.interpolateGreys)], + ["oranges", scheme9(d3.schemeOranges, d3.interpolateOranges)], + ["purples", scheme9(d3.schemePurples, d3.interpolatePurples)], + ["reds", scheme9(d3.schemeReds, d3.interpolateReds)], + + // sequential (multi-hue) + ["turbo", schemei(d3.interpolateTurbo)], + ["viridis", schemei(d3.interpolateViridis)], + ["magma", schemei(d3.interpolateMagma)], + ["inferno", schemei(d3.interpolateInferno)], + ["plasma", schemei(d3.interpolatePlasma)], + ["cividis", schemei(d3.interpolateCividis)], + ["cubehelix", schemei(d3.interpolateCubehelixDefault)], + ["warm", schemei(d3.interpolateWarm)], + ["cool", schemei(d3.interpolateCool)], + ["bugn", scheme9(d3.schemeBuGn, d3.interpolateBuGn)], + ["bupu", scheme9(d3.schemeBuPu, d3.interpolateBuPu)], + ["gnbu", scheme9(d3.schemeGnBu, d3.interpolateGnBu)], + ["orrd", scheme9(d3.schemeOrRd, d3.interpolateOrRd)], + ["pubu", scheme9(d3.schemePuBu, d3.interpolatePuBu)], + ["pubugn", scheme9(d3.schemePuBuGn, d3.interpolatePuBuGn)], + ["purd", scheme9(d3.schemePuRd, d3.interpolatePuRd)], + ["rdpu", scheme9(d3.schemeRdPu, d3.interpolateRdPu)], + ["ylgn", scheme9(d3.schemeYlGn, d3.interpolateYlGn)], + ["ylgnbu", scheme9(d3.schemeYlGnBu, d3.interpolateYlGnBu)], + ["ylorbr", scheme9(d3.schemeYlOrBr, d3.interpolateYlOrBr)], + ["ylorrd", scheme9(d3.schemeYlOrRd, d3.interpolateYlOrRd)], + + // cyclical + ["rainbow", schemeicyclical(d3.interpolateRainbow)], + ["sinebow", schemeicyclical(d3.interpolateSinebow)] + ]); + + function scheme9(scheme, interpolate) { + return ({length: n}) => { + if (n === 1) return [scheme[3][1]]; // favor midpoint + if (n === 2) return [scheme[3][1], scheme[3][2]]; // favor darker + n = Math.max(3, Math.floor(n)); + return n > 9 ? d3.quantize(interpolate, n) : scheme[n]; + }; + } + + function scheme11(scheme, interpolate) { + return ({length: n}) => { + if (n === 2) return [scheme[3][0], scheme[3][2]]; // favor diverging extrema + n = Math.max(3, Math.floor(n)); + return n > 11 ? d3.quantize(interpolate, n) : scheme[n]; + }; + } + + function scheme11r(scheme, interpolate) { + return ({length: n}) => { + if (n === 2) return [scheme[3][2], scheme[3][0]]; // favor diverging extrema + n = Math.max(3, Math.floor(n)); + return n > 11 ? d3.quantize((t) => interpolate(1 - t), n) : scheme[n].slice().reverse(); + }; + } + + function schemei(interpolate) { + return ({length: n}) => d3.quantize(interpolate, Math.max(2, Math.floor(n))); + } + + function schemeicyclical(interpolate) { + return ({length: n}) => d3.quantize(interpolate, Math.floor(n) + 1).slice(0, -1); + } + + function ordinalScheme(scheme) { + const s = `${scheme}`.toLowerCase(); + if (!ordinalSchemes.has(s)) throw new Error(`unknown ordinal scheme: ${s}`); + return ordinalSchemes.get(s); + } + + function ordinalRange(scheme, length) { + const s = ordinalScheme(scheme); + const r = typeof s === "function" ? s({length}) : s; + return r.length !== length ? r.slice(0, length) : r; + } + + // If the specified domain contains only booleans (ignoring null and undefined), + // returns a corresponding range where false is mapped to the low color and true + // is mapped to the high color of the specified scheme. + function maybeBooleanRange(domain, scheme = "greys") { + const range = new Set(); + const [f, t] = ordinalRange(scheme, 2); + for (const value of domain) { + if (value == null) continue; + if (value === true) range.add(t); + else if (value === false) range.add(f); + else return; + } + return [...range]; + } + + const quantitativeSchemes = new Map([ + // diverging + ["brbg", d3.interpolateBrBG], + ["prgn", d3.interpolatePRGn], + ["piyg", d3.interpolatePiYG], + ["puor", d3.interpolatePuOr], + ["rdbu", d3.interpolateRdBu], + ["rdgy", d3.interpolateRdGy], + ["rdylbu", d3.interpolateRdYlBu], + ["rdylgn", d3.interpolateRdYlGn], + ["spectral", d3.interpolateSpectral], + + // reversed diverging (for temperature data) + ["burd", (t) => d3.interpolateRdBu(1 - t)], + ["buylrd", (t) => d3.interpolateRdYlBu(1 - t)], + + // sequential (single-hue) + ["blues", d3.interpolateBlues], + ["greens", d3.interpolateGreens], + ["greys", d3.interpolateGreys], + ["purples", d3.interpolatePurples], + ["reds", d3.interpolateReds], + ["oranges", d3.interpolateOranges], + + // sequential (multi-hue) + ["turbo", d3.interpolateTurbo], + ["viridis", d3.interpolateViridis], + ["magma", d3.interpolateMagma], + ["inferno", d3.interpolateInferno], + ["plasma", d3.interpolatePlasma], + ["cividis", d3.interpolateCividis], + ["cubehelix", d3.interpolateCubehelixDefault], + ["warm", d3.interpolateWarm], + ["cool", d3.interpolateCool], + ["bugn", d3.interpolateBuGn], + ["bupu", d3.interpolateBuPu], + ["gnbu", d3.interpolateGnBu], + ["orrd", d3.interpolateOrRd], + ["pubugn", d3.interpolatePuBuGn], + ["pubu", d3.interpolatePuBu], + ["purd", d3.interpolatePuRd], + ["rdpu", d3.interpolateRdPu], + ["ylgnbu", d3.interpolateYlGnBu], + ["ylgn", d3.interpolateYlGn], + ["ylorbr", d3.interpolateYlOrBr], + ["ylorrd", d3.interpolateYlOrRd], + + // cyclical + ["rainbow", d3.interpolateRainbow], + ["sinebow", d3.interpolateSinebow] + ]); + + function quantitativeScheme(scheme) { + const s = `${scheme}`.toLowerCase(); + if (!quantitativeSchemes.has(s)) throw new Error(`unknown quantitative scheme: ${s}`); + return quantitativeSchemes.get(s); + } + + const divergingSchemes = new Set([ + "brbg", + "prgn", + "piyg", + "puor", + "rdbu", + "rdgy", + "rdylbu", + "rdylgn", + "spectral", + "burd", + "buylrd" + ]); + + function isDivergingScheme(scheme) { + return scheme != null && divergingSchemes.has(`${scheme}`.toLowerCase()); + } + + const flip = (i) => (t) => i(1 - t); + const unit = [0, 1]; + + const interpolators = new Map([ + // numbers + ["number", d3.interpolateNumber], + + // color spaces + ["rgb", d3.interpolateRgb], + ["hsl", d3.interpolateHsl], + ["hcl", d3.interpolateHcl], + ["lab", d3.interpolateLab] + ]); + + function maybeInterpolator(interpolate) { + const i = `${interpolate}`.toLowerCase(); + if (!interpolators.has(i)) throw new Error(`unknown interpolator: ${i}`); + return interpolators.get(i); + } + + function createScaleQ( + key, + scale, + channels, + { + type, + nice, + clamp, + zero, + domain = inferAutoDomain(key, channels), + unknown, + round, + scheme, + interval, + range = registry.get(key) === radius + ? inferRadialRange(channels, domain) + : registry.get(key) === length + ? inferLengthRange(channels, domain) + : registry.get(key) === opacity + ? unit + : undefined, + interpolate = registry.get(key) === color + ? scheme == null && range !== undefined + ? d3.interpolateRgb + : quantitativeScheme(scheme !== undefined ? scheme : type === "cyclical" ? "rainbow" : "turbo") + : round + ? d3.interpolateRound + : d3.interpolateNumber, + reverse + } + ) { + interval = maybeRangeInterval(interval, type); + if (type === "cyclical" || type === "sequential") type = "linear"; // shorthand for color schemes + reverse = !!reverse; + + // Sometimes interpolate is a named interpolator, such as "lab" for Lab color + // space. Other times interpolate is a function that takes two arguments and + // is used in conjunction with the range. And other times the interpolate + // function is a “fixed†interpolator on the [0, 1] interval, as when a + // color scheme such as interpolateRdBu is used. + if (typeof interpolate !== "function") { + interpolate = maybeInterpolator(interpolate); + } + if (interpolate.length === 1) { + if (reverse) { + interpolate = flip(interpolate); + reverse = false; + } + if (range === undefined) { + range = Float64Array.from(domain, (_, i) => i / (domain.length - 1)); + if (range.length === 2) range = unit; // optimize common case of [0, 1] + } + scale.interpolate((range === unit ? constant : interpolatePiecewise)(interpolate)); + } else { + scale.interpolate(interpolate); + } + + // If a zero option is specified, we assume that the domain is numeric, and we + // want to ensure that the domain crosses zero. However, note that the domain + // may be reversed (descending) so we shouldn’t assume that the first value is + // smaller than the last; and also it’s possible that the domain has more than + // two values for a “poly†scale. And lastly be careful not to mutate input! + if (zero) { + const [min, max] = d3.extent(domain); + if (min > 0 || max < 0) { + domain = slice(domain); + if (orderof(domain) !== Math.sign(min)) domain[domain.length - 1] = 0; + // [2, 1] or [-2, -1] + else domain[0] = 0; // [1, 2] or [-1, -2] + } + } + + if (reverse) domain = d3.reverse(domain); + scale.domain(domain).unknown(unknown); + if (nice) scale.nice(maybeNice(nice, type)), (domain = scale.domain()); + if (range !== undefined) scale.range(range); + if (clamp) scale.clamp(clamp); + return {type, domain, range, scale, interpolate, interval}; + } + + function maybeNice(nice, type) { + return nice === true ? undefined : typeof nice === "number" ? nice : maybeNiceInterval(nice, type); + } + + function createScaleLinear(key, channels, options) { + return createScaleQ(key, d3.scaleLinear(), channels, options); + } + + function createScaleSqrt(key, channels, options) { + return createScalePow(key, channels, {...options, exponent: 0.5}); + } + + function createScalePow(key, channels, {exponent = 1, ...options}) { + return createScaleQ(key, d3.scalePow().exponent(exponent), channels, {...options, type: "pow"}); + } + + function createScaleLog(key, channels, {base = 10, domain = inferLogDomain(channels), ...options}) { + return createScaleQ(key, d3.scaleLog().base(base), channels, {...options, domain}); + } + + function createScaleSymlog(key, channels, {constant = 1, ...options}) { + return createScaleQ(key, d3.scaleSymlog().constant(constant), channels, options); + } + + function createScaleQuantile( + key, + channels, + { + range, + quantiles = range === undefined ? 5 : (range = [...range]).length, // deprecated; use n instead + n = quantiles, + scheme = "rdylbu", + domain = inferQuantileDomain(channels), + unknown, + interpolate, + reverse + } + ) { + if (range === undefined) { + range = + interpolate !== undefined + ? d3.quantize(interpolate, n) + : registry.get(key) === color + ? ordinalRange(scheme, n) + : undefined; + } + if (domain.length > 0) { + domain = d3.scaleQuantile(domain, range === undefined ? {length: n} : range).quantiles(); + } + return createScaleThreshold(key, channels, {domain, range, reverse, unknown}); + } + + function createScaleQuantize( + key, + channels, + { + range, + n = range === undefined ? 5 : (range = [...range]).length, + scheme = "rdylbu", + domain = inferAutoDomain(key, channels), + unknown, + interpolate, + reverse + } + ) { + const [min, max] = d3.extent(domain); + let thresholds; + if (range === undefined) { + thresholds = d3.ticks(min, max, n); // approximate number of nice, round thresholds + if (thresholds[0] <= min) thresholds.splice(0, 1); // drop exact lower bound + if (thresholds[thresholds.length - 1] >= max) thresholds.pop(); // drop exact upper bound + n = thresholds.length + 1; + range = + interpolate !== undefined + ? d3.quantize(interpolate, n) + : registry.get(key) === color + ? ordinalRange(scheme, n) + : undefined; + } else { + thresholds = d3.quantize(d3.interpolateNumber(min, max), n + 1).slice(1, -1); // exactly n - 1 thresholds to match range + if (min instanceof Date) thresholds = thresholds.map((x) => new Date(x)); // preserve date types + } + if (orderof(arrayify(domain)) < 0) thresholds.reverse(); // preserve descending domain + return createScaleThreshold(key, channels, {domain: thresholds, range, reverse, unknown}); + } + + function createScaleThreshold( + key, + channels, + { + domain = [0], // explicit thresholds in ascending order + unknown, + scheme = "rdylbu", + interpolate, + range = interpolate !== undefined + ? d3.quantize(interpolate, domain.length + 1) + : registry.get(key) === color + ? ordinalRange(scheme, domain.length + 1) + : undefined, + reverse + } + ) { + domain = arrayify(domain); + const sign = orderof(domain); // preserve descending domain + if (!isNaN(sign) && !isOrdered(domain, sign)) throw new Error(`the ${key} scale has a non-monotonic domain`); + if (reverse) range = d3.reverse(range); // domain ascending, so reverse range + return { + type: "threshold", + scale: d3.scaleThreshold(sign < 0 ? d3.reverse(domain) : domain, range === undefined ? [] : range).unknown(unknown), + domain, + range + }; + } + + function isOrdered(domain, sign) { + for (let i = 1, n = domain.length, d = domain[0]; i < n; ++i) { + const s = d3.descending(d, (d = domain[i])); + if (s !== 0 && s !== sign) return false; + } + return true; + } + + function createScaleIdentity() { + return {type: "identity", scale: d3.scaleIdentity()}; + } + + function inferDomain$1(channels, f = finite) { + return channels.length + ? [ + d3.min(channels, ({value}) => (value === undefined ? value : d3.min(value, f))), + d3.max(channels, ({value}) => (value === undefined ? value : d3.max(value, f))) + ] + : [0, 1]; + } + + function inferAutoDomain(key, channels) { + const type = registry.get(key); + return (type === radius || type === opacity || type === length ? inferZeroDomain : inferDomain$1)(channels); + } + + function inferZeroDomain(channels) { + return [0, channels.length ? d3.max(channels, ({value}) => (value === undefined ? value : d3.max(value, finite))) : 1]; + } + + // We don’t want the upper bound of the radial domain to be zero, as this would + // be degenerate, so we ignore nonpositive values. We also don’t want the + // maximum default radius to exceed 30px. + function inferRadialRange(channels, domain) { + const hint = channels.find(({radius}) => radius !== undefined); + if (hint !== undefined) return [0, hint.radius]; // a natural maximum radius, e.g. hexbins + const h25 = d3.quantile(channels, 0.5, ({value}) => (value === undefined ? NaN : d3.quantile(value, 0.25, positive))); + const range = domain.map((d) => 3 * Math.sqrt(d / h25)); + const k = 30 / d3.max(range); + return k < 1 ? range.map((r) => r * k) : range; + } + + // We want a length scale’s domain to go from zero to a positive value, and to + // treat negative lengths if any as inverted vectors of equivalent magnitude. We + // also don’t want the maximum default length to exceed 60px. + function inferLengthRange(channels, domain) { + const h50 = d3.median(channels, ({value}) => (value === undefined ? NaN : d3.median(value, Math.abs))); + const range = domain.map((d) => (12 * d) / h50); + const k = 60 / d3.max(range); + return k < 1 ? range.map((r) => r * k) : range; + } + + function inferLogDomain(channels) { + for (const {value} of channels) { + if (value !== undefined) { + for (let v of value) { + if (v > 0) return inferDomain$1(channels, positive); + if (v < 0) return inferDomain$1(channels, negative); + } + } + } + return [1, 10]; + } + + function inferQuantileDomain(channels) { + const domain = []; + for (const {value} of channels) { + if (value === undefined) continue; + for (const v of value) domain.push(v); + } + return domain; + } + + function interpolatePiecewise(interpolate) { + return (i, j) => (t) => interpolate(i + t * (j - i)); + } + + function createScaleD( + key, + scale, + transform, + channels, + { + type, + nice, + clamp, + domain = inferDomain$1(channels), + unknown, + pivot = 0, + scheme, + range, + symmetric = true, + interpolate = registry.get(key) === color + ? scheme == null && range !== undefined + ? d3.interpolateRgb + : quantitativeScheme(scheme !== undefined ? scheme : "rdbu") + : d3.interpolateNumber, + reverse + } + ) { + pivot = +pivot; + let [min, max] = domain; + if (d3.descending(min, max) < 0) ([min, max] = [max, min]), (reverse = !reverse); + min = Math.min(min, pivot); + max = Math.max(max, pivot); + + // Sometimes interpolate is a named interpolator, such as "lab" for Lab color + // space. Other times interpolate is a function that takes two arguments and + // is used in conjunction with the range. And other times the interpolate + // function is a “fixed†interpolator on the [0, 1] interval, as when a + // color scheme such as interpolateRdBu is used. + if (typeof interpolate !== "function") { + interpolate = maybeInterpolator(interpolate); + } + + // If an explicit range is specified, promote it to a piecewise interpolator. + if (range !== undefined) { + interpolate = + interpolate.length === 1 ? interpolatePiecewise(interpolate)(...range) : d3.piecewise(interpolate, range); + } + + // Reverse before normalization. + if (reverse) interpolate = flip(interpolate); + + // Normalize the interpolator for symmetric difference around the pivot. + if (symmetric) { + const mid = transform.apply(pivot); + const mindelta = mid - transform.apply(min); + const maxdelta = transform.apply(max) - mid; + if (mindelta < maxdelta) min = transform.invert(mid - maxdelta); + else if (mindelta > maxdelta) max = transform.invert(mid + mindelta); + } + + scale.domain([min, pivot, max]).unknown(unknown).interpolator(interpolate); + if (clamp) scale.clamp(clamp); + if (nice) scale.nice(nice); + return {type, domain: [min, max], pivot, interpolate, scale}; + } + + function createScaleDiverging(key, channels, options) { + return createScaleD(key, d3.scaleDiverging(), transformIdentity, channels, options); + } + + function createScaleDivergingSqrt(key, channels, options) { + return createScaleDivergingPow(key, channels, {...options, exponent: 0.5}); + } + + function createScaleDivergingPow(key, channels, {exponent = 1, ...options}) { + return createScaleD(key, d3.scaleDivergingPow().exponent((exponent = +exponent)), transformPow(exponent), channels, { + ...options, + type: "diverging-pow" + }); + } + + function createScaleDivergingLog( + key, + channels, + {base = 10, pivot = 1, domain = inferDomain$1(channels, pivot < 0 ? negative : positive), ...options} + ) { + return createScaleD(key, d3.scaleDivergingLog().base((base = +base)), transformLog, channels, { + domain, + pivot, + ...options + }); + } + + function createScaleDivergingSymlog(key, channels, {constant = 1, ...options}) { + return createScaleD( + key, + d3.scaleDivergingSymlog().constant((constant = +constant)), + transformSymlog(constant), + channels, + options + ); + } + + const transformIdentity = { + apply(x) { + return x; + }, + invert(x) { + return x; + } + }; + + const transformLog = { + apply: Math.log, + invert: Math.exp + }; + + const transformSqrt = { + apply(x) { + return Math.sign(x) * Math.sqrt(Math.abs(x)); + }, + invert(x) { + return Math.sign(x) * (x * x); + } + }; + + function transformPow(exponent) { + return exponent === 0.5 + ? transformSqrt + : { + apply(x) { + return Math.sign(x) * Math.pow(Math.abs(x), exponent); + }, + invert(x) { + return Math.sign(x) * Math.pow(Math.abs(x), 1 / exponent); + } + }; + } + + function transformSymlog(constant) { + return { + apply(x) { + return Math.sign(x) * Math.log1p(Math.abs(x / constant)); + }, + invert(x) { + return Math.sign(x) * Math.expm1(Math.abs(x)) * constant; + } + }; + } + + function createScaleT(key, scale, channels, options) { + return createScaleQ(key, scale, channels, options); + } + + function createScaleTime(key, channels, options) { + return createScaleT(key, d3.scaleTime(), channels, options); + } + + function createScaleUtc(key, channels, options) { + return createScaleT(key, d3.scaleUtc(), channels, options); + } + + // This denotes an implicitly ordinal color scale: the scale type was not set, + // but the associated values are strings or booleans. If the associated defined + // values are entirely boolean, the range will default to greys. You can opt out + // of this by setting the type explicitly. + const ordinalImplicit = Symbol("ordinal"); + + function createScaleO(key, scale, channels, {type, interval, domain, range, reverse, hint}) { + interval = maybeRangeInterval(interval, type); + if (domain === undefined) domain = inferDomain(channels, interval, key); + if (type === "categorical" || type === ordinalImplicit) type = "ordinal"; // shorthand for color schemes + if (reverse) domain = d3.reverse(domain); + scale.domain(domain); + if (range !== undefined) { + // If the range is specified as a function, pass it the domain. + if (typeof range === "function") range = range(domain); + scale.range(range); + } + return {type, domain, range, scale, hint, interval}; + } + + function createScaleOrdinal(key, channels, {type, interval, domain, range, scheme, unknown, ...options}) { + interval = maybeRangeInterval(interval, type); + if (domain === undefined) domain = inferDomain(channels, interval, key); + let hint; + if (registry.get(key) === symbol) { + hint = inferSymbolHint(channels); + range = range === undefined ? inferSymbolRange(hint) : map(range, maybeSymbol); + } else if (registry.get(key) === color) { + if (range === undefined && (type === "ordinal" || type === ordinalImplicit)) { + range = maybeBooleanRange(domain, scheme); + if (range !== undefined) scheme = undefined; // Don’t re-apply scheme. + } + if (scheme === undefined && range === undefined) { + scheme = type === "ordinal" ? "turbo" : "tableau10"; + } + if (scheme !== undefined) { + if (range !== undefined) { + const interpolate = quantitativeScheme(scheme); + const t0 = range[0], + d = range[1] - range[0]; + range = ({length: n}) => d3.quantize((t) => interpolate(t0 + d * t), n); + } else { + range = ordinalScheme(scheme); + } + } + } + if (unknown === d3.scaleImplicit) { + throw new Error(`implicit unknown on ${key} scale is not supported`); + } + return createScaleO(key, d3.scaleOrdinal().unknown(unknown), channels, {...options, type, domain, range, hint}); + } + + function createScalePoint(key, channels, {align = 0.5, padding = 0.5, ...options}) { + return maybeRound(d3.scalePoint().align(align).padding(padding), channels, options, key); + } + + function createScaleBand( + key, + channels, + { + align = 0.5, + padding = 0.1, + paddingInner = padding, + paddingOuter = key === "fx" || key === "fy" ? 0 : padding, + ...options + } + ) { + return maybeRound( + d3.scaleBand().align(align).paddingInner(paddingInner).paddingOuter(paddingOuter), + channels, + options, + key + ); + } + + function maybeRound(scale, channels, options, key) { + let {round} = options; + if (round !== undefined) scale.round((round = !!round)); + scale = createScaleO(key, scale, channels, options); + scale.round = round; // preserve for autoScaleRound + return scale; + } + + function inferDomain(channels, interval, key) { + const values = new d3.InternSet(); + for (const {value, domain} of channels) { + if (domain !== undefined) return domain(); // see channelDomain + if (value === undefined) continue; + for (const v of value) values.add(v); + } + if (interval !== undefined) { + const [min, max] = d3.extent(values).map(interval.floor, interval); + return interval.range(min, interval.offset(max)); + } + if (values.size > 10e3 && registry.get(key) === position) { + throw new Error(`implicit ordinal domain of ${key} scale has more than 10,000 values`); + } + return d3.sort(values, ascendingDefined); + } + + // If all channels provide a consistent hint, propagate it to the scale. + function inferHint(channels, key) { + let value; + for (const {hint} of channels) { + const candidate = hint?.[key]; + if (candidate === undefined) continue; // no hint here + if (value === undefined) value = candidate; + // first hint + else if (value !== candidate) return; // inconsistent hint + } + return value; + } + + function inferSymbolHint(channels) { + return { + fill: inferHint(channels, "fill"), + stroke: inferHint(channels, "stroke") + }; + } + + function inferSymbolRange(hint) { + return isNoneish(hint.fill) ? d3.symbolsStroke : d3.symbolsFill; + } + + function normalizeScale(key, scale, hint) { + return createScale(key, hint === undefined ? undefined : [{hint}], {...scale}); + } + + function createScale(key, channels = [], options = {}) { + const type = inferScaleType(key, channels, options); + + // Warn for common misuses of implicit ordinal scales. We disable this test if + // you specify a scale interval or if you set the domain or range explicitly, + // since setting the domain or range (typically with a cardinality of more than + // two) is another indication that you intended for the scale to be ordinal; we + // also disable it for facet scales since these are always band scales. + if ( + options.type === undefined && + options.domain === undefined && + options.range === undefined && + options.interval == null && + key !== "fx" && + key !== "fy" && + isOrdinalScale({type}) + ) { + const values = channels.map(({value}) => value).filter((value) => value !== undefined); + if (values.some(isTemporal)) + warn( + `Warning: some data associated with the ${key} scale are dates. Dates are typically associated with a "utc" or "time" scale rather than a "${formatScaleType( + type + )}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., d3.utcDay), or you can suppress this warning by setting the type of the ${key} scale to "${formatScaleType( + type + )}".` + ); + else if (values.some(isTemporalString)) + warn( + `Warning: some data associated with the ${key} scale are strings that appear to be dates (e.g., YYYY-MM-DD). If these strings represent dates, you should parse them to Date objects. Dates are typically associated with a "utc" or "time" scale rather than a "${formatScaleType( + type + )}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can suppress this warning by setting the type of the ${key} scale to "${formatScaleType( + type + )}".` + ); + else if (values.some(isNumericString)) + warn( + `Warning: some data associated with the ${key} scale are strings that appear to be numbers. If these strings represent numbers, you should parse or coerce them to numbers. Numbers are typically associated with a "linear" scale rather than a "${formatScaleType( + type + )}" scale. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., 1 for integers), or you can suppress this warning by setting the type of the ${key} scale to "${formatScaleType( + type + )}".` + ); + } + + options.type = type; // Mutates input! + + // Once the scale type is known, coerce the associated channel values and any + // explicitly-specified domain to the expected type. + switch (type) { + case "diverging": + case "diverging-sqrt": + case "diverging-pow": + case "diverging-log": + case "diverging-symlog": + case "cyclical": + case "sequential": + case "linear": + case "sqrt": + case "threshold": + case "quantile": + case "pow": + case "log": + case "symlog": + options = coerceType(channels, options, coerceNumbers); + break; + case "identity": + switch (registry.get(key)) { + case position: + options = coerceType(channels, options, coerceNumbers); + break; + case symbol: + options = coerceType(channels, options, coerceSymbols); + break; + } + break; + case "utc": + case "time": + options = coerceType(channels, options, coerceDates); + break; + } + + switch (type) { + case "diverging": + return createScaleDiverging(key, channels, options); + case "diverging-sqrt": + return createScaleDivergingSqrt(key, channels, options); + case "diverging-pow": + return createScaleDivergingPow(key, channels, options); + case "diverging-log": + return createScaleDivergingLog(key, channels, options); + case "diverging-symlog": + return createScaleDivergingSymlog(key, channels, options); + case "categorical": + case "ordinal": + case ordinalImplicit: + return createScaleOrdinal(key, channels, options); + case "cyclical": + case "sequential": + case "linear": + return createScaleLinear(key, channels, options); + case "sqrt": + return createScaleSqrt(key, channels, options); + case "threshold": + return createScaleThreshold(key, channels, options); + case "quantile": + return createScaleQuantile(key, channels, options); + case "quantize": + return createScaleQuantize(key, channels, options); + case "pow": + return createScalePow(key, channels, options); + case "log": + return createScaleLog(key, channels, options); + case "symlog": + return createScaleSymlog(key, channels, options); + case "utc": + return createScaleUtc(key, channels, options); + case "time": + return createScaleTime(key, channels, options); + case "point": + return createScalePoint(key, channels, options); + case "band": + return createScaleBand(key, channels, options); + case "identity": + return registry.get(key) === position ? createScaleIdentity() : {type: "identity"}; + case undefined: + return; + default: + throw new Error(`unknown scale type: ${type}`); + } + } + + function formatScaleType(type) { + return typeof type === "symbol" ? type.description : type; + } + + // A special type symbol when the x and y scales are replaced with a projection. + const typeProjection = {toString: () => "projection"}; + + function inferScaleType(key, channels, {type, domain, range, scheme, pivot, projection}) { + // The facet scales are always band scales; this cannot be changed. + if (key === "fx" || key === "fy") return "band"; + + // If a projection is specified, the x- and y-scales are disabled; these + // channels will be projected rather than scaled. (But still check that none + // of the associated channels are incompatible with a projection.) + if ((key === "x" || key === "y") && projection != null) type = typeProjection; + + // If a channel dictates a scale type, make sure that it is consistent with + // the user-specified scale type (if any) and all other channels. For example, + // barY requires x to be a band scale and disallows any other scale type. + for (const {type: t} of channels) { + if (t === undefined) continue; + else if (type === undefined) type = t; + else if (type !== t) throw new Error(`scale incompatible with channel: ${type} !== ${t}`); + } + + // If the scale, a channel, or user specified a (consistent) type, return it. + if (type === typeProjection) return; + if (type !== undefined) return type; + + // If there’s no data (and no type) associated with this scale, don’t create a scale. + if (domain === undefined && !channels.some(({value}) => value !== undefined)) return; + + // Some scales have default types. + const kind = registry.get(key); + if (kind === radius) return "sqrt"; + if (kind === opacity || kind === length) return "linear"; + if (kind === symbol) return "ordinal"; + + // If the domain or range has more than two values, assume it’s ordinal. You + // can still use a “piecewise†(or “polylinearâ€) scale, but you must set the + // type explicitly. + if ((domain || range || []).length > 2) return asOrdinalType(kind); + + // Otherwise, infer the scale type from the data! Prefer the domain, if + // present, over channels. (The domain and channels should be consistently + // typed, and the domain is more explicit and typically much smaller.) We only + // check the first defined value for expedience and simplicity; we expect + // that the types are consistent. + if (domain !== undefined) { + if (isOrdinal(domain)) return asOrdinalType(kind); + if (isTemporal(domain)) return "utc"; + if (kind === color && (pivot != null || isDivergingScheme(scheme))) return "diverging"; + return "linear"; + } + + // If any channel is ordinal or temporal, it takes priority. + const values = channels.map(({value}) => value).filter((value) => value !== undefined); + if (values.some(isOrdinal)) return asOrdinalType(kind); + if (values.some(isTemporal)) return "utc"; + if (kind === color && (pivot != null || isDivergingScheme(scheme))) return "diverging"; + return "linear"; + } + + // Positional scales default to a point scale instead of an ordinal scale. + function asOrdinalType(kind) { + switch (kind) { + case position: + return "point"; + case color: + return ordinalImplicit; + default: + return "ordinal"; + } + } + + function isOrdinalScale({type}) { + return type === "ordinal" || type === "point" || type === "band" || type === ordinalImplicit; + } + + function isThresholdScale({type}) { + return type === "threshold"; + } + + // Mutates channel.value! + function coerceType(channels, {domain, ...options}, coerceValues) { + for (const c of channels) { + if (c.value !== undefined) { + c.value = coerceValues(c.value); + } + } + return { + domain: domain === undefined ? domain : coerceValues(domain), + ...options + }; + } + + function coerceSymbols(values) { + return map(values, maybeSymbol); + } + + function memoize1(compute) { + let cacheValue, cacheKeys; + return (...keys) => { + if (cacheKeys?.length !== keys.length || cacheKeys.some((k, i) => k !== keys[i])) { + cacheKeys = keys; + cacheValue = compute(...keys); + } + return cacheValue; + }; + } + + const numberFormat = memoize1((locale) => { + return new Intl.NumberFormat(locale); + }); + + function formatNumber(locale = "en-US") { + const format = numberFormat(locale); + return (i) => (i != null && !isNaN(i) ? format.format(i) : undefined); + } + + function formatIsoDate(date) { + return format(date, "Invalid Date"); + } + + function formatAuto(locale = "en-US") { + const number = formatNumber(locale); + return (v) => (v instanceof Date ? formatIsoDate : typeof v === "number" ? number : string)(v); + } + + // TODO When Plot supports a top-level locale option, this should be removed + // because it lacks context to know which locale to use; formatAuto should be + // used instead whenever possible. + formatAuto(); + + function impliedString(value, impliedValue) { + if ((value = string(value)) !== impliedValue) return value; + } + + // https://www.w3.org/TR/CSS21/grammar.html + const validClassName = + /^-?([_a-z]|[\240-\377]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])([_a-z0-9-]|[\240-\377]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*$/i; + + function maybeClassName(name) { + // The default should be changed whenever the default styles are changed, so + // as to avoid conflict when multiple versions of Plot are on the page. + if (name === undefined) return "plot-d6a7b5"; + name = `${name}`; + if (!validClassName.test(name)) throw new Error(`invalid class name: ${name}`); + return name; + } + + function applyInlineStyles(selection, style) { + if (typeof style === "string") { + selection.property("style", style); + } else if (style != null) { + for (const element of selection) { + Object.assign(element.style, style); + } + } + } + + function inferFontVariant(scale) { + return isOrdinalScale(scale) && scale.interval === undefined ? undefined : "tabular-nums"; + } + + // D3 doesn’t provide a tick format for ordinal scales; we want shorthand when + // an ordinal domain is numbers or dates, and we want null to mean the empty + // string, not the default identity format. TODO Remove this in favor of the + // axis mark’s inferTickFormat. + function maybeAutoTickFormat(tickFormat, domain) { + return tickFormat === undefined + ? isTemporal(domain) + ? formatIsoDate + : string + : typeof tickFormat === "function" + ? tickFormat + : (typeof tickFormat === "string" ? (isTemporal(domain) ? d3.utcFormat : d3.format) : constant)(tickFormat); + } + + function legendRamp(color, options) { + let { + label = color.label, + tickSize = 6, + width = 240, + height = 44 + tickSize, + marginTop = 18, + marginRight = 0, + marginBottom = 16 + tickSize, + marginLeft = 0, + style, + ticks = (width - marginLeft - marginRight) / 64, + tickFormat, + fontVariant = inferFontVariant(color), + round = true, + opacity, + className + } = options; + const context = createContext(options); + className = maybeClassName(className); + opacity = maybeNumberChannel(opacity)[1]; + if (tickFormat === null) tickFormat = () => null; + + const svg = create("svg", context) + .attr("class", `${className}-ramp`) + .attr("font-family", "system-ui, sans-serif") + .attr("font-size", 10) + .attr("width", width) + .attr("height", height) + .attr("viewBox", `0 0 ${width} ${height}`) + .call((svg) => + // Warning: if you edit this, change defaultClassName. + svg.append("style").text( + `.${className}-ramp { + display: block; + background: white; + height: auto; + height: intrinsic; + max-width: 100%; + overflow: visible; +} +.${className}-ramp text { + white-space: pre; +}` + ) + ) + .call(applyInlineStyles, style); + + let tickAdjust = (g) => g.selectAll(".tick line").attr("y1", marginTop + marginBottom - height); + + let x; + + // Some D3 scales use scale.interpolate, some scale.interpolator, and some + // scale.round; this normalizes the API so it works with all scale types. + const applyRange = round ? (x, range) => x.rangeRound(range) : (x, range) => x.range(range); + + const {type, domain, range, interpolate, scale, pivot} = color; + + // Continuous + if (interpolate) { + // Often interpolate is a “fixed†interpolator on the [0, 1] interval, as + // with a built-in color scheme, but sometimes it is a function that takes + // two arguments and is used in conjunction with the range. + const interpolator = + range === undefined + ? interpolate + : d3.piecewise(interpolate.length === 1 ? interpolatePiecewise(interpolate) : interpolate, range); + + // Construct a D3 scale of the same type, but with a range that evenly + // divides the horizontal extent of the legend. (In the common case, the + // domain.length is two, and so the range is simply the extent.) For a + // diverging scale, we need an extra point in the range for the pivot such + // that the pivot is always drawn in the middle. + x = applyRange( + scale.copy(), + d3.quantize( + d3.interpolateNumber(marginLeft, width - marginRight), + Math.min(domain.length + (pivot !== undefined), range === undefined ? Infinity : range.length) + ) + ); + + // Construct a 256×1 canvas, filling each pixel using the interpolator. + const n = 256; + const canvas = context.document.createElement("canvas"); + canvas.width = n; + canvas.height = 1; + const context2 = canvas.getContext("2d"); + for (let i = 0, j = n - 1; i < n; ++i) { + context2.fillStyle = interpolator(i / j); + context2.fillRect(i, 0, 1, 1); + } + + svg + .append("image") + .attr("opacity", opacity) + .attr("x", marginLeft) + .attr("y", marginTop) + .attr("width", width - marginLeft - marginRight) + .attr("height", height - marginTop - marginBottom) + .attr("preserveAspectRatio", "none") + .attr("xlink:href", canvas.toDataURL()); + } + + // Threshold + else if (type === "threshold") { + const thresholds = domain; + + const thresholdFormat = + tickFormat === undefined ? (d) => d : typeof tickFormat === "string" ? d3.format(tickFormat) : tickFormat; + + // Construct a linear scale with evenly-spaced ticks for each of the + // thresholds; the domain extends one beyond the threshold extent. + x = applyRange(d3.scaleLinear().domain([-1, range.length - 1]), [marginLeft, width - marginRight]); + + svg + .append("g") + .attr("fill-opacity", opacity) + .selectAll() + .data(range) + .enter() + .append("rect") + .attr("x", (d, i) => x(i - 1)) + .attr("y", marginTop) + .attr("width", (d, i) => x(i) - x(i - 1)) + .attr("height", height - marginTop - marginBottom) + .attr("fill", (d) => d); + + ticks = map(thresholds, (_, i) => i); + tickFormat = (i) => thresholdFormat(thresholds[i], i); + } + + // Ordinal (hopefully!) + else { + x = applyRange(d3.scaleBand().domain(domain), [marginLeft, width - marginRight]); + + svg + .append("g") + .attr("fill-opacity", opacity) + .selectAll() + .data(domain) + .enter() + .append("rect") + .attr("x", x) + .attr("y", marginTop) + .attr("width", Math.max(0, x.bandwidth() - 1)) + .attr("height", height - marginTop - marginBottom) + .attr("fill", scale); + + tickAdjust = () => {}; + } + + svg + .append("g") + .attr("transform", `translate(0,${height - marginBottom})`) + .call( + d3.axisBottom(x) + .ticks(Array.isArray(ticks) ? null : ticks, typeof tickFormat === "string" ? tickFormat : undefined) + .tickFormat(typeof tickFormat === "function" ? tickFormat : undefined) + .tickSize(tickSize) + .tickValues(Array.isArray(ticks) ? ticks : null) + ) + .attr("font-size", null) + .attr("font-family", null) + .attr("font-variant", impliedString(fontVariant, "normal")) + .call(tickAdjust) + .call((g) => g.select(".domain").remove()); + + if (label !== undefined) { + svg + .append("text") + .attr("x", marginLeft) + .attr("y", marginTop - 6) + .attr("fill", "currentColor") // TODO move to stylesheet? + .attr("font-weight", "bold") + .text(label); + } + + return svg.node(); + } + + function maybeScale(scale, key) { + if (key == null) return key; + const s = scale(key); + if (!s) throw new Error(`scale not found: ${key}`); + return s; + } + + function legendSwatches(color, {opacity, ...options} = {}) { + if (!isOrdinalScale(color) && !isThresholdScale(color)) + throw new Error(`swatches legend requires ordinal or threshold color scale (not ${color.type})`); + return legendItems(color, options, (selection, scale, width, height) => + selection + .append("svg") + .attr("width", width) + .attr("height", height) + .attr("fill", scale.scale) + .attr("fill-opacity", maybeNumberChannel(opacity)[1]) + .append("rect") + .attr("width", "100%") + .attr("height", "100%") + ); + } + + function legendSymbols( + symbol, + { + fill = symbol.hint?.fill !== undefined ? symbol.hint.fill : "none", + fillOpacity = 1, + stroke = symbol.hint?.stroke !== undefined ? symbol.hint.stroke : isNoneish(fill) ? "currentColor" : "none", + strokeOpacity = 1, + strokeWidth = 1.5, + r = 4.5, + ...options + } = {}, + scale + ) { + const [vf, cf] = maybeColorChannel(fill); + const [vs, cs] = maybeColorChannel(stroke); + const sf = maybeScale(scale, vf); + const ss = maybeScale(scale, vs); + const size = r * r * Math.PI; + fillOpacity = maybeNumberChannel(fillOpacity)[1]; + strokeOpacity = maybeNumberChannel(strokeOpacity)[1]; + strokeWidth = maybeNumberChannel(strokeWidth)[1]; + return legendItems(symbol, options, (selection, scale, width, height) => + selection + .append("svg") + .attr("viewBox", "-8 -8 16 16") + .attr("width", width) + .attr("height", height) + .attr("fill", vf === "color" ? (d) => sf.scale(d) : cf) + .attr("fill-opacity", fillOpacity) + .attr("stroke", vs === "color" ? (d) => ss.scale(d) : cs) + .attr("stroke-opacity", strokeOpacity) + .attr("stroke-width", strokeWidth) + .append("path") + .attr("d", (d) => { + const p = d3.pathRound(); + symbol.scale(d).draw(p, size); + return p; + }) + ); + } + + function legendItems(scale, options = {}, swatch) { + let { + columns, + tickFormat, + fontVariant = inferFontVariant(scale), + // TODO label, + swatchSize = 15, + swatchWidth = swatchSize, + swatchHeight = swatchSize, + marginLeft = 0, + className, + style, + width + } = options; + const context = createContext(options); + className = maybeClassName(className); + tickFormat = maybeAutoTickFormat(tickFormat, scale.domain); + + const swatches = create("div", context).attr( + "class", + `${className}-swatches ${className}-swatches-${columns != null ? "columns" : "wrap"}` + ); + + let extraStyle; + + if (columns != null) { + extraStyle = `.${className}-swatches-columns .${className}-swatch { + display: flex; + align-items: center; + break-inside: avoid; + padding-bottom: 1px; +} +.${className}-swatches-columns .${className}-swatch::before { + flex-shrink: 0; +} +.${className}-swatches-columns .${className}-swatch-label { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +}`; + + swatches + .style("columns", columns) + .selectAll() + .data(scale.domain) + .enter() + .append("div") + .attr("class", `${className}-swatch`) + .call(swatch, scale, swatchWidth, swatchHeight) + .call((item) => + item.append("div").attr("class", `${className}-swatch-label`).attr("title", tickFormat).text(tickFormat) + ); + } else { + extraStyle = `.${className}-swatches-wrap { + display: flex; + align-items: center; + min-height: 33px; + flex-wrap: wrap; +} +.${className}-swatches-wrap .${className}-swatch { + display: inline-flex; + align-items: center; + margin-right: 1em; +}`; + + swatches + .selectAll() + .data(scale.domain) + .enter() + .append("span") + .attr("class", `${className}-swatch`) + .call(swatch, scale, swatchWidth, swatchHeight) + .append(function () { + return this.ownerDocument.createTextNode(tickFormat.apply(this, arguments)); + }); + } + + return swatches + .call((div) => + div.insert("style", "*").text( + `.${className}-swatches { + font-family: system-ui, sans-serif; + font-size: 10px; + margin-bottom: 0.5em; +} +.${className}-swatch > svg { + margin-right: 0.5em; + overflow: visible; +} +${extraStyle}` + ) + ) + .style("margin-left", marginLeft ? `${+marginLeft}px` : null) + .style("width", width === undefined ? null : `${+width}px`) + .style("font-variant", impliedString(fontVariant, "normal")) + .call(applyInlineStyles, style) + .node(); + } + + const legendRegistry = new Map([ + ["symbol", legendSymbols], + ["color", legendColor], + ["opacity", legendOpacity] + ]); + + function legend(options = {}) { + for (const [key, value] of legendRegistry) { + const scale = options[key]; + if (isScaleOptions(scale)) { + // e.g., ignore {color: "red"} + const context = createContext(options); + let hint; + // For symbol legends, pass a hint to the symbol scale. + if (key === "symbol") { + const {fill, stroke = fill === undefined && isScaleOptions(options.color) ? "color" : undefined} = options; + hint = {fill, stroke}; + } + return value(normalizeScale(key, scale, hint), legendOptions(context, scale, options), (key) => + isScaleOptions(options[key]) ? normalizeScale(key, options[key]) : null + ); + } + } + throw new Error("unknown legend type; no scale found"); + } + + function legendOptions({className, ...context}, {label, ticks, tickFormat} = {}, options) { + return inherit(options, {className, ...context}, {label, ticks, tickFormat}); + } + + function legendColor(color, {legend = true, ...options}) { + if (legend === true) legend = color.type === "ordinal" ? "swatches" : "ramp"; + if (color.domain === undefined) return; + switch (`${legend}`.toLowerCase()) { + case "swatches": + return legendSwatches(color, options); + case "ramp": + return legendRamp(color, options); + default: + throw new Error(`unknown legend type: ${legend}`); + } + } + + function legendOpacity({type, interpolate, ...scale}, {legend = true, color = d3.rgb(0, 0, 0), ...options}) { + if (!interpolate) throw new Error(`${type} opacity scales are not supported`); + if (legend === true) legend = "ramp"; + if (`${legend}`.toLowerCase() !== "ramp") throw new Error(`${legend} opacity legends are not supported`); + return legendColor({type, ...scale, interpolate: interpolateOpacity(color)}, {legend, ...options}); + } + + function interpolateOpacity(color) { + const {r, g, b} = d3.rgb(color) || d3.rgb(0, 0, 0); // treat invalid color as black + return (t) => `rgba(${r},${g},${b},${t})`; + } + + var DEFAULT_SELECTOR = '#ch-plugin-legend'; + var defaultOptions = { + // Whether to display the legend + enabled: true, + itemSelector: null, + label: null, + width: 130 + }; + var Legend = /*#__PURE__*/function () { + function Legend(calendar) { + _classCallCheck(this, Legend); + this.name = 'Legend'; + this.calendar = calendar; + this.root = null; + this.shown = false; + this.options = defaultOptions; + } + _createClass(Legend, [{ + key: "setup", + value: function setup(pluginOptions) { + this.options = Object.assign(Object.assign({}, defaultOptions), pluginOptions); + } + }, { + key: "paint", + value: function paint() { + var scaleOptions = this.calendar.options.options.scale; + var _this$options = this.options, + enabled = _this$options.enabled, + itemSelector = _this$options.itemSelector; + if (!enabled || itemSelector && d3Selection.select(itemSelector).empty()) { + return this.destroy(); + } + this.shown = true; + this.root = d3Selection.select(itemSelector || this.calendar.options.options.itemSelector); + if (this.root.select(DEFAULT_SELECTOR).empty()) { + this.root = this.root.append('div').attr('id', DEFAULT_SELECTOR.slice(1)); + } else { + this.root = this.root.select(DEFAULT_SELECTOR); + } + // @ts-ignore + var node = legend(Object.assign(Object.assign({}, scaleOptions), this.options)); + this.root.selectAll('*').remove(); + this.root.append(function () { + return node; + }); + return Promise.resolve(); + } + }, { + key: "destroy", + value: function destroy() { + if (this.root !== null) { + this.root.remove(); + this.root = null; + } + return Promise.resolve(); + } + }]); + return Legend; + }(); + + return Legend; + +})); diff --git a/static/javascripts/cal-heatmap/plugins/Legend.min.esm.js b/static/javascripts/cal-heatmap/plugins/Legend.min.esm.js new file mode 100644 index 000000000..b8c99fb34 --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/Legend.min.esm.js @@ -0,0 +1 @@ +import{select as t}from"d3-selection";import{ascending as n,timeSecond as e,timeMinute as r,timeHour as o,timeDay as i,timeWeek as a,timeMonth as c,timeYear as u,timeMonday as s,timeTuesday as l,timeWednesday as f,timeThursday as p,timeFriday as d,timeSaturday as h,timeSunday as y,utcSecond as g,utcMinute as v,utcHour as m,utcDay as b,utcWeek as w,utcMonth as S,utcYear as j,utcMonday as $,utcTuesday as O,utcWednesday as k,utcThursday as E,utcFriday as M,utcSaturday as x,utcSunday as T,color as N,descending as P,range as C,symbolAsterisk as R,symbolCircle as I,symbolCross as A,symbolDiamond as D,symbolDiamond2 as L,symbolPlus as q,symbolSquare as F,symbolSquare2 as _,symbolStar as U,symbolTimes as z,symbolTriangle as W,symbolTriangle2 as B,symbolWye as G,geoPath as H,geoTransform as V,geoClipRectangle as Y,geoTransverseMercator as J,geoStereographic as K,geoOrthographic as X,geoMercator as Z,geoGnomonic as Q,geoEquirectangular as tt,geoEqualEarth as nt,geoAzimuthalEquidistant as et,geoAzimuthalEqualArea as rt,geoAlbersUsa as ot,geoConicEquidistant as it,geoConicEqualArea as at,geoConicConformal as ct,geoAlbers as ut,select as st,creator as lt,schemeAccent as ft,schemeCategory10 as pt,schemeDark2 as dt,schemePaired as ht,schemePastel1 as yt,schemePastel2 as gt,schemeSet1 as vt,schemeSet2 as mt,schemeSet3 as bt,schemeTableau10 as wt,quantize as St,interpolateBrBG as jt,interpolatePRGn as $t,interpolatePiYG as Ot,interpolatePuOr as kt,interpolateRdBu as Et,interpolateRdGy as Mt,interpolateRdYlBu as xt,interpolateRdYlGn as Tt,interpolateSpectral as Nt,interpolateBlues as Pt,interpolateGreens as Ct,interpolateGreys as Rt,interpolatePurples as It,interpolateReds as At,interpolateOranges as Dt,interpolateTurbo as Lt,interpolateViridis as qt,interpolateMagma as Ft,interpolateInferno as _t,interpolatePlasma as Ut,interpolateCividis as zt,interpolateCubehelixDefault as Wt,interpolateWarm as Bt,interpolateCool as Gt,interpolateBuGn as Ht,interpolateBuPu as Vt,interpolateGnBu as Yt,interpolateOrRd as Jt,interpolatePuBuGn as Kt,interpolatePuBu as Xt,interpolatePuRd as Zt,interpolateRdPu as Qt,interpolateYlGnBu as tn,interpolateYlGn as nn,interpolateYlOrBr as en,interpolateYlOrRd as rn,interpolateRainbow as on,interpolateSinebow as an,schemeBrBG as cn,schemePRGn as un,schemePiYG as sn,schemePuOr as ln,schemeRdBu as fn,schemeRdGy as pn,schemeRdYlBu as dn,schemeRdYlGn as hn,schemeSpectral as yn,schemeBlues as gn,schemeGreens as vn,schemeGreys as mn,schemeOranges as bn,schemePurples as wn,schemeReds as Sn,schemeBuGn as jn,schemeBuPu as $n,schemeGnBu as On,schemeOrRd as kn,schemePuBu as En,schemePuBuGn as Mn,schemePuRd as xn,schemeRdPu as Tn,schemeYlGn as Nn,schemeYlGnBu as Pn,schemeYlOrBr as Cn,schemeYlOrRd as Rn,interpolateNumber as In,interpolateRgb as An,interpolateHsl as Dn,interpolateHcl as Ln,interpolateLab as qn,scaleLinear as Fn,scalePow as _n,scaleLog as Un,scaleSymlog as zn,scaleQuantile as Wn,extent as Bn,ticks as Gn,reverse as Hn,scaleThreshold as Vn,scaleIdentity as Yn,max as Jn,interpolateRound as Kn,min as Xn,quantile as Zn,median as Qn,scaleDiverging as te,scaleDivergingPow as ne,scaleDivergingLog as ee,scaleDivergingSymlog as re,piecewise as oe,scaleTime as ie,scaleUtc as ae,scaleImplicit as ce,scaleOrdinal as ue,scalePoint as se,scaleBand as le,InternSet as fe,sort as pe,symbolsStroke as de,symbolsFill as he,utcFormat as ye,format as ge,axisBottom as ve,pathRound as me,rgb as be}from"d3";function we(t,n){for(var e=0;e<n.length;e++){var r=n[e];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,(o=r.key,i=void 0,"symbol"==typeof(i=function(t,n){if("object"!=typeof t||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,n||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(t)}(o,"string"))?i:String(i)),r)}var o,i}var Se="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},je=function(t){try{return!!t()}catch(t){return!0}},$e=!je((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),Oe=!je((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})),ke=Oe,Ee=Function.prototype,Me=Ee.call,xe=ke&&Ee.bind.bind(Me,Me),Te=ke?xe:function(t){return function(){return Me.apply(t,arguments)}},Ne=function(t){return null==t},Pe=Ne,Ce=TypeError,Re=function(t){if(Pe(t))throw Ce("Can't call method on "+t);return t},Ie=Re,Ae=Object,De=function(t){return Ae(Ie(t))},Le=De,qe=Te({}.hasOwnProperty),Fe=Object.hasOwn||function(t,n){return qe(Le(t),n)},_e=$e,Ue=Fe,ze=Function.prototype,We=_e&&Object.getOwnPropertyDescriptor,Be=Ue(ze,"name"),Ge={EXISTS:Be,PROPER:Be&&"something"===function(){}.name,CONFIGURABLE:Be&&(!_e||_e&&We(ze,"name").configurable)},He={exports:{}},Ve="object"==typeof document&&document.all,Ye={all:Ve,IS_HTMLDDA:void 0===Ve&&void 0!==Ve},Je=Ye.all,Ke=Ye.IS_HTMLDDA?function(t){return"function"==typeof t||t===Je}:function(t){return"function"==typeof t},Xe=function(t){return t&&t.Math==Math&&t},Ze=Xe("object"==typeof globalThis&&globalThis)||Xe("object"==typeof window&&window)||Xe("object"==typeof self&&self)||Xe("object"==typeof Se&&Se)||function(){return this}()||Se||Function("return this")(),Qe=Ze,tr=Object.defineProperty,nr=function(t,n){try{tr(Qe,t,{value:n,configurable:!0,writable:!0})}catch(e){Qe[t]=n}return n},er=nr,rr="__core-js_shared__",or=Ze[rr]||er(rr,{}),ir=Ke,ar=or,cr=Te(Function.toString);ir(ar.inspectSource)||(ar.inspectSource=function(t){return cr(t)});var ur,sr,lr=ar.inspectSource,fr=Ke,pr=Ze.WeakMap,dr=fr(pr)&&/native code/.test(String(pr)),hr=Ke,yr=Ye.all,gr=Ye.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:hr(t)||t===yr}:function(t){return"object"==typeof t?null!==t:hr(t)},vr={},mr=gr,br=Ze.document,wr=mr(br)&&mr(br.createElement),Sr=function(t){return wr?br.createElement(t):{}},jr=Sr,$r=!$e&&!je((function(){return 7!=Object.defineProperty(jr("div"),"a",{get:function(){return 7}}).a})),Or=$e&&je((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),kr=gr,Er=String,Mr=TypeError,xr=function(t){if(kr(t))return t;throw Mr(Er(t)+" is not an object")},Tr=Oe,Nr=Function.prototype.call,Pr=Tr?Nr.bind(Nr):function(){return Nr.apply(Nr,arguments)},Cr=Ze,Rr=Ke,Ir=function(t,n){return arguments.length<2?(e=Cr[t],Rr(e)?e:void 0):Cr[t]&&Cr[t][n];var e},Ar=Te({}.isPrototypeOf),Dr="undefined"!=typeof navigator&&String(navigator.userAgent)||"",Lr=Ze,qr=Dr,Fr=Lr.process,_r=Lr.Deno,Ur=Fr&&Fr.versions||_r&&_r.version,zr=Ur&&Ur.v8;zr&&(sr=(ur=zr.split("."))[0]>0&&ur[0]<4?1:+(ur[0]+ur[1])),!sr&&qr&&(!(ur=qr.match(/Edge\/(\d+)/))||ur[1]>=74)&&(ur=qr.match(/Chrome\/(\d+)/))&&(sr=+ur[1]);var Wr=sr,Br=Wr,Gr=je,Hr=Ze.String,Vr=!!Object.getOwnPropertySymbols&&!Gr((function(){var t=Symbol();return!Hr(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&Br&&Br<41})),Yr=Vr&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Jr=Ir,Kr=Ke,Xr=Ar,Zr=Object,Qr=Yr?function(t){return"symbol"==typeof t}:function(t){var n=Jr("Symbol");return Kr(n)&&Xr(n.prototype,Zr(t))},to=String,no=function(t){try{return to(t)}catch(t){return"Object"}},eo=Ke,ro=no,oo=TypeError,io=function(t){if(eo(t))return t;throw oo(ro(t)+" is not a function")},ao=io,co=Ne,uo=function(t,n){var e=t[n];return co(e)?void 0:ao(e)},so=Pr,lo=Ke,fo=gr,po=TypeError,ho={exports:{}},yo=or;(ho.exports=function(t,n){return yo[t]||(yo[t]=void 0!==n?n:{})})("versions",[]).push({version:"3.30.2",mode:"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE",source:"https://github.com/zloirock/core-js"});var go=ho.exports,vo=Te,mo=0,bo=Math.random(),wo=vo(1..toString),So=function(t){return"Symbol("+(void 0===t?"":t)+")_"+wo(++mo+bo,36)},jo=go,$o=Fe,Oo=So,ko=Vr,Eo=Yr,Mo=Ze.Symbol,xo=jo("wks"),To=Eo?Mo.for||Mo:Mo&&Mo.withoutSetter||Oo,No=function(t){return $o(xo,t)||(xo[t]=ko&&$o(Mo,t)?Mo[t]:To("Symbol."+t)),xo[t]},Po=Pr,Co=gr,Ro=Qr,Io=uo,Ao=function(t,n){var e,r;if("string"===n&&lo(e=t.toString)&&!fo(r=so(e,t)))return r;if(lo(e=t.valueOf)&&!fo(r=so(e,t)))return r;if("string"!==n&&lo(e=t.toString)&&!fo(r=so(e,t)))return r;throw po("Can't convert object to primitive value")},Do=TypeError,Lo=No("toPrimitive"),qo=function(t,n){if(!Co(t)||Ro(t))return t;var e,r=Io(t,Lo);if(r){if(void 0===n&&(n="default"),e=Po(r,t,n),!Co(e)||Ro(e))return e;throw Do("Can't convert object to primitive value")}return void 0===n&&(n="number"),Ao(t,n)},Fo=Qr,_o=function(t){var n=qo(t,"string");return Fo(n)?n:n+""},Uo=$e,zo=$r,Wo=Or,Bo=xr,Go=_o,Ho=TypeError,Vo=Object.defineProperty,Yo=Object.getOwnPropertyDescriptor,Jo="enumerable",Ko="configurable",Xo="writable";vr.f=Uo?Wo?function(t,n,e){if(Bo(t),n=Go(n),Bo(e),"function"==typeof t&&"prototype"===n&&"value"in e&&Xo in e&&!e[Xo]){var r=Yo(t,n);r&&r[Xo]&&(t[n]=e.value,e={configurable:Ko in e?e[Ko]:r[Ko],enumerable:Jo in e?e[Jo]:r[Jo],writable:!1})}return Vo(t,n,e)}:Vo:function(t,n,e){if(Bo(t),n=Go(n),Bo(e),zo)try{return Vo(t,n,e)}catch(t){}if("get"in e||"set"in e)throw Ho("Accessors not supported");return"value"in e&&(t[n]=e.value),t};var Zo,Qo,ti,ni=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}},ei=vr,ri=ni,oi=$e?function(t,n,e){return ei.f(t,n,ri(1,e))}:function(t,n,e){return t[n]=e,t},ii=So,ai=go("keys"),ci={},ui=dr,si=Ze,li=gr,fi=oi,pi=Fe,di=or,hi=function(t){return ai[t]||(ai[t]=ii(t))},yi=ci,gi="Object already initialized",vi=si.TypeError,mi=si.WeakMap;if(ui||di.state){var bi=di.state||(di.state=new mi);bi.get=bi.get,bi.has=bi.has,bi.set=bi.set,Zo=function(t,n){if(bi.has(t))throw vi(gi);return n.facade=t,bi.set(t,n),n},Qo=function(t){return bi.get(t)||{}},ti=function(t){return bi.has(t)}}else{var wi=hi("state");yi[wi]=!0,Zo=function(t,n){if(pi(t,wi))throw vi(gi);return n.facade=t,fi(t,wi,n),n},Qo=function(t){return pi(t,wi)?t[wi]:{}},ti=function(t){return pi(t,wi)}}var Si={set:Zo,get:Qo,has:ti,enforce:function(t){return ti(t)?Qo(t):Zo(t,{})},getterFor:function(t){return function(n){var e;if(!li(n)||(e=Qo(n)).type!==t)throw vi("Incompatible receiver, "+t+" required");return e}}},ji=Te,$i=je,Oi=Ke,ki=Fe,Ei=$e,Mi=Ge.CONFIGURABLE,xi=lr,Ti=Si.enforce,Ni=Si.get,Pi=String,Ci=Object.defineProperty,Ri=ji("".slice),Ii=ji("".replace),Ai=ji([].join),Di=Ei&&!$i((function(){return 8!==Ci((function(){}),"length",{value:8}).length})),Li=String(String).split("String"),qi=He.exports=function(t,n,e){"Symbol("===Ri(Pi(n),0,7)&&(n="["+Ii(Pi(n),/^Symbol\(([^)]*)\)/,"$1")+"]"),e&&e.getter&&(n="get "+n),e&&e.setter&&(n="set "+n),(!ki(t,"name")||Mi&&t.name!==n)&&(Ei?Ci(t,"name",{value:n,configurable:!0}):t.name=n),Di&&e&&ki(e,"arity")&&t.length!==e.arity&&Ci(t,"length",{value:e.arity});try{e&&ki(e,"constructor")&&e.constructor?Ei&&Ci(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=Ti(t);return ki(r,"source")||(r.source=Ai(Li,"string"==typeof n?n:"")),t};Function.prototype.toString=qi((function(){return Oi(this)&&Ni(this).source||xi(this)}),"toString");var Fi=He.exports,_i=Fi,Ui=vr,zi=function(t,n,e){return e.get&&_i(e.get,n,{getter:!0}),e.set&&_i(e.set,n,{setter:!0}),Ui.f(t,n,e)},Wi=$e,Bi=Ge.EXISTS,Gi=Te,Hi=zi,Vi=Function.prototype,Yi=Gi(Vi.toString),Ji=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,Ki=Gi(Ji.exec);Wi&&!Bi&&Hi(Vi,"name",{configurable:!0,get:function(){try{return Ki(Ji,Yi(this))[1]}catch(t){return""}}});var Xi={},Zi={},Qi={}.propertyIsEnumerable,ta=Object.getOwnPropertyDescriptor,na=ta&&!Qi.call({1:2},1);Zi.f=na?function(t){var n=ta(this,t);return!!n&&n.enumerable}:Qi;var ea=Te,ra=ea({}.toString),oa=ea("".slice),ia=function(t){return oa(ra(t),8,-1)},aa=je,ca=ia,ua=Object,sa=Te("".split),la=aa((function(){return!ua("z").propertyIsEnumerable(0)}))?function(t){return"String"==ca(t)?sa(t,""):ua(t)}:ua,fa=la,pa=Re,da=function(t){return fa(pa(t))},ha=$e,ya=Pr,ga=Zi,va=ni,ma=da,ba=_o,wa=Fe,Sa=$r,ja=Object.getOwnPropertyDescriptor;Xi.f=ha?ja:function(t,n){if(t=ma(t),n=ba(n),Sa)try{return ja(t,n)}catch(t){}if(wa(t,n))return va(!ya(ga.f,t,n),t[n])};var $a=Ke,Oa=vr,ka=Fi,Ea=nr,Ma=function(t,n,e,r){r||(r={});var o=r.enumerable,i=void 0!==r.name?r.name:n;if($a(e)&&ka(e,i,r),r.global)o?t[n]=e:Ea(n,e);else{try{r.unsafe?t[n]&&(o=!0):delete t[n]}catch(t){}o?t[n]=e:Oa.f(t,n,{value:e,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return t},xa={},Ta=Math.ceil,Na=Math.floor,Pa=Math.trunc||function(t){var n=+t;return(n>0?Na:Ta)(n)},Ca=function(t){var n=+t;return n!=n||0===n?0:Pa(n)},Ra=Ca,Ia=Math.max,Aa=Math.min,Da=Ca,La=Math.min,qa=function(t){return t>0?La(Da(t),9007199254740991):0},Fa=function(t){return qa(t.length)},_a=da,Ua=function(t,n){var e=Ra(t);return e<0?Ia(e+n,0):Aa(e,n)},za=Fa,Wa=function(t){return function(n,e,r){var o,i=_a(n),a=za(i),c=Ua(r,a);if(t&&e!=e){for(;a>c;)if((o=i[c++])!=o)return!0}else for(;a>c;c++)if((t||c in i)&&i[c]===e)return t||c||0;return!t&&-1}},Ba={includes:Wa(!0),indexOf:Wa(!1)},Ga=Fe,Ha=da,Va=Ba.indexOf,Ya=ci,Ja=Te([].push),Ka=function(t,n){var e,r=Ha(t),o=0,i=[];for(e in r)!Ga(Ya,e)&&Ga(r,e)&&Ja(i,e);for(;n.length>o;)Ga(r,e=n[o++])&&(~Va(i,e)||Ja(i,e));return i},Xa=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Za=Ka,Qa=Xa.concat("length","prototype");xa.f=Object.getOwnPropertyNames||function(t){return Za(t,Qa)};var tc={};tc.f=Object.getOwnPropertySymbols;var nc=Ir,ec=xa,rc=tc,oc=xr,ic=Te([].concat),ac=nc("Reflect","ownKeys")||function(t){var n=ec.f(oc(t)),e=rc.f;return e?ic(n,e(t)):n},cc=Fe,uc=ac,sc=Xi,lc=vr,fc=je,pc=Ke,dc=/#|\.prototype\./,hc=function(t,n){var e=gc[yc(t)];return e==mc||e!=vc&&(pc(n)?fc(n):!!n)},yc=hc.normalize=function(t){return String(t).replace(dc,".").toLowerCase()},gc=hc.data={},vc=hc.NATIVE="N",mc=hc.POLYFILL="P",bc=hc,wc=Ze,Sc=Xi.f,jc=oi,$c=Ma,Oc=nr,kc=function(t,n,e){for(var r=uc(n),o=lc.f,i=sc.f,a=0;a<r.length;a++){var c=r[a];cc(t,c)||e&&cc(e,c)||o(t,c,i(n,c))}},Ec=bc,Mc=function(t,n){var e,r,o,i,a,c=t.target,u=t.global,s=t.stat;if(e=u?wc:s?wc[c]||Oc(c,{}):(wc[c]||{}).prototype)for(r in n){if(i=n[r],o=t.dontCallGetSet?(a=Sc(e,r))&&a.value:e[r],!Ec(u?r:c+(s?".":"#")+r,t.forced)&&void 0!==o){if(typeof i==typeof o)continue;kc(i,o)}(t.sham||o&&o.sham)&&jc(i,"sham",!0),$c(e,r,i,t)}},xc=Ka,Tc=Xa,Nc=Object.keys||function(t){return xc(t,Tc)},Pc=$e,Cc=Te,Rc=Pr,Ic=je,Ac=Nc,Dc=tc,Lc=Zi,qc=De,Fc=la,_c=Object.assign,Uc=Object.defineProperty,zc=Cc([].concat),Wc=!_c||Ic((function(){if(Pc&&1!==_c({b:1},_c(Uc({},"a",{enumerable:!0,get:function(){Uc(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},n={},e=Symbol(),r="abcdefghijklmnopqrst";return t[e]=7,r.split("").forEach((function(t){n[t]=t})),7!=_c({},t)[e]||Ac(_c({},n)).join("")!=r}))?function(t,n){for(var e=qc(t),r=arguments.length,o=1,i=Dc.f,a=Lc.f;r>o;)for(var c,u=Fc(arguments[o++]),s=i?zc(Ac(u),i(u)):Ac(u),l=s.length,f=0;l>f;)c=s[f++],Pc&&!Rc(a,u,c)||(e[c]=u[c]);return e}:_c,Bc=Wc;Mc({target:"Object",stat:!0,arity:2,forced:Object.assign!==Bc},{assign:Bc});var Gc={};Gc[No("toStringTag")]="z";var Hc="[object z]"===String(Gc),Vc=Hc,Yc=Ke,Jc=ia,Kc=No("toStringTag"),Xc=Object,Zc="Arguments"==Jc(function(){return arguments}()),Qc=Vc?Jc:function(t){var n,e,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(e=function(t,n){try{return t[n]}catch(t){}}(n=Xc(t),Kc))?e:Zc?Jc(n):"Object"==(r=Jc(n))&&Yc(n.callee)?"Arguments":r},tu=Qc,nu=Hc?{}.toString:function(){return"[object "+tu(this)+"]"};Hc||Ma(Object.prototype,"toString",nu,{unsafe:!0});var eu="undefined"!=typeof process&&"process"==ia(process),ru=Te,ou=io,iu=Ke,au=String,cu=TypeError,uu=function(t,n,e){try{return ru(ou(Object.getOwnPropertyDescriptor(t,n)[e]))}catch(t){}},su=xr,lu=function(t){if("object"==typeof t||iu(t))return t;throw cu("Can't set "+au(t)+" as a prototype")},fu=Object.setPrototypeOf||("__proto__"in{}?function(){var t,n=!1,e={};try{(t=uu(Object.prototype,"__proto__","set"))(e,[]),n=e instanceof Array}catch(t){}return function(e,r){return su(e),lu(r),n?t(e,r):e.__proto__=r,e}}():void 0),pu=vr.f,du=Fe,hu=No("toStringTag"),yu=Ir,gu=zi,vu=$e,mu=No("species"),bu=Ar,wu=TypeError,Su=Te,ju=je,$u=Ke,Ou=Qc,ku=lr,Eu=function(){},Mu=[],xu=Ir("Reflect","construct"),Tu=/^\s*(?:class|function)\b/,Nu=Su(Tu.exec),Pu=!Tu.exec(Eu),Cu=function(t){if(!$u(t))return!1;try{return xu(Eu,Mu,t),!0}catch(t){return!1}},Ru=function(t){if(!$u(t))return!1;switch(Ou(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Pu||!!Nu(Tu,ku(t))}catch(t){return!0}};Ru.sham=!0;var Iu,Au,Du,Lu,qu=!xu||ju((function(){var t;return Cu(Cu.call)||!Cu(Object)||!Cu((function(){t=!0}))||t}))?Ru:Cu,Fu=qu,_u=no,Uu=TypeError,zu=xr,Wu=function(t){if(Fu(t))return t;throw Uu(_u(t)+" is not a constructor")},Bu=Ne,Gu=No("species"),Hu=Oe,Vu=Function.prototype,Yu=Vu.apply,Ju=Vu.call,Ku="object"==typeof Reflect&&Reflect.apply||(Hu?Ju.bind(Yu):function(){return Ju.apply(Yu,arguments)}),Xu=ia,Zu=Te,Qu=function(t){if("Function"===Xu(t))return Zu(t)},ts=io,ns=Oe,es=Qu(Qu.bind),rs=function(t,n){return ts(t),void 0===n?t:ns?es(t,n):function(){return t.apply(n,arguments)}},os=Ir("document","documentElement"),is=Te([].slice),as=TypeError,cs=/(?:ipad|iphone|ipod).*applewebkit/i.test(Dr),us=Ze,ss=Ku,ls=rs,fs=Ke,ps=Fe,ds=je,hs=os,ys=is,gs=Sr,vs=function(t,n){if(t<n)throw as("Not enough arguments");return t},ms=cs,bs=eu,ws=us.setImmediate,Ss=us.clearImmediate,js=us.process,$s=us.Dispatch,Os=us.Function,ks=us.MessageChannel,Es=us.String,Ms=0,xs={},Ts="onreadystatechange";ds((function(){Iu=us.location}));var Ns=function(t){if(ps(xs,t)){var n=xs[t];delete xs[t],n()}},Ps=function(t){return function(){Ns(t)}},Cs=function(t){Ns(t.data)},Rs=function(t){us.postMessage(Es(t),Iu.protocol+"//"+Iu.host)};ws&&Ss||(ws=function(t){vs(arguments.length,1);var n=fs(t)?t:Os(t),e=ys(arguments,1);return xs[++Ms]=function(){ss(n,void 0,e)},Au(Ms),Ms},Ss=function(t){delete xs[t]},bs?Au=function(t){js.nextTick(Ps(t))}:$s&&$s.now?Au=function(t){$s.now(Ps(t))}:ks&&!ms?(Lu=(Du=new ks).port2,Du.port1.onmessage=Cs,Au=ls(Lu.postMessage,Lu)):us.addEventListener&&fs(us.postMessage)&&!us.importScripts&&Iu&&"file:"!==Iu.protocol&&!ds(Rs)?(Au=Rs,us.addEventListener("message",Cs,!1)):Au=Ts in gs("script")?function(t){hs.appendChild(gs("script"))[Ts]=function(){hs.removeChild(this),Ns(t)}}:function(t){setTimeout(Ps(t),0)});var Is={set:ws,clear:Ss},As=function(){this.head=null,this.tail=null};As.prototype={add:function(t){var n={item:t,next:null},e=this.tail;e?e.next=n:this.head=n,this.tail=n},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}};var Ds,Ls,qs,Fs,_s,Us=As,zs=/ipad|iphone|ipod/i.test(Dr)&&"undefined"!=typeof Pebble,Ws=/web0s(?!.*chrome)/i.test(Dr),Bs=Ze,Gs=rs,Hs=Xi.f,Vs=Is.set,Ys=Us,Js=cs,Ks=zs,Xs=Ws,Zs=eu,Qs=Bs.MutationObserver||Bs.WebKitMutationObserver,tl=Bs.document,nl=Bs.process,el=Bs.Promise,rl=Hs(Bs,"queueMicrotask"),ol=rl&&rl.value;if(!ol){var il=new Ys,al=function(){var t,n;for(Zs&&(t=nl.domain)&&t.exit();n=il.get();)try{n()}catch(t){throw il.head&&Ds(),t}t&&t.enter()};Js||Zs||Xs||!Qs||!tl?!Ks&&el&&el.resolve?((Fs=el.resolve(void 0)).constructor=el,_s=Gs(Fs.then,Fs),Ds=function(){_s(al)}):Zs?Ds=function(){nl.nextTick(al)}:(Vs=Gs(Vs,Bs),Ds=function(){Vs(al)}):(Ls=!0,qs=tl.createTextNode(""),new Qs(al).observe(qs,{characterData:!0}),Ds=function(){qs.data=Ls=!Ls}),ol=function(t){il.head||Ds(),il.add(t)}}var cl=ol,ul=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},sl=Ze.Promise,ll="object"==typeof Deno&&Deno&&"object"==typeof Deno.version,fl=!ll&&!eu&&"object"==typeof window&&"object"==typeof document,pl=Ze,dl=sl,hl=Ke,yl=bc,gl=lr,vl=No,ml=fl,bl=ll,wl=Wr;dl&&dl.prototype;var Sl=vl("species"),jl=!1,$l=hl(pl.PromiseRejectionEvent),Ol=yl("Promise",(function(){var t=gl(dl),n=t!==String(dl);if(!n&&66===wl)return!0;if(!wl||wl<51||!/native code/.test(t)){var e=new dl((function(t){t(1)})),r=function(t){t((function(){}),(function(){}))};if((e.constructor={})[Sl]=r,!(jl=e.then((function(){}))instanceof r))return!0}return!n&&(ml||bl)&&!$l})),kl={CONSTRUCTOR:Ol,REJECTION_EVENT:$l,SUBCLASSING:jl},El={},Ml=io,xl=TypeError,Tl=function(t){var n,e;this.promise=new t((function(t,r){if(void 0!==n||void 0!==e)throw xl("Bad Promise constructor");n=t,e=r})),this.resolve=Ml(n),this.reject=Ml(e)};El.f=function(t){return new Tl(t)};var Nl,Pl,Cl,Rl=Mc,Il=eu,Al=Ze,Dl=Pr,Ll=Ma,ql=fu,Fl=function(t,n,e){t&&!e&&(t=t.prototype),t&&!du(t,hu)&&pu(t,hu,{configurable:!0,value:n})},_l=function(t){var n=yu(t);vu&&n&&!n[mu]&&gu(n,mu,{configurable:!0,get:function(){return this}})},Ul=io,zl=Ke,Wl=gr,Bl=function(t,n){if(bu(n,t))return t;throw wu("Incorrect invocation")},Gl=function(t,n){var e,r=zu(t).constructor;return void 0===r||Bu(e=zu(r)[Gu])?n:Wu(e)},Hl=Is.set,Vl=cl,Yl=function(t,n){try{1==arguments.length?console.error(t):console.error(t,n)}catch(t){}},Jl=ul,Kl=Us,Xl=Si,Zl=sl,Ql=El,tf="Promise",nf=kl.CONSTRUCTOR,ef=kl.REJECTION_EVENT,rf=kl.SUBCLASSING,of=Xl.getterFor(tf),af=Xl.set,cf=Zl&&Zl.prototype,uf=Zl,sf=cf,lf=Al.TypeError,ff=Al.document,pf=Al.process,df=Ql.f,hf=df,yf=!!(ff&&ff.createEvent&&Al.dispatchEvent),gf="unhandledrejection",vf=function(t){var n;return!(!Wl(t)||!zl(n=t.then))&&n},mf=function(t,n){var e,r,o,i=n.value,a=1==n.state,c=a?t.ok:t.fail,u=t.resolve,s=t.reject,l=t.domain;try{c?(a||(2===n.rejection&&$f(n),n.rejection=1),!0===c?e=i:(l&&l.enter(),e=c(i),l&&(l.exit(),o=!0)),e===t.promise?s(lf("Promise-chain cycle")):(r=vf(e))?Dl(r,e,u,s):u(e)):s(i)}catch(t){l&&!o&&l.exit(),s(t)}},bf=function(t,n){t.notified||(t.notified=!0,Vl((function(){for(var e,r=t.reactions;e=r.get();)mf(e,t);t.notified=!1,n&&!t.rejection&&Sf(t)})))},wf=function(t,n,e){var r,o;yf?((r=ff.createEvent("Event")).promise=n,r.reason=e,r.initEvent(t,!1,!0),Al.dispatchEvent(r)):r={promise:n,reason:e},!ef&&(o=Al["on"+t])?o(r):t===gf&&Yl("Unhandled promise rejection",e)},Sf=function(t){Dl(Hl,Al,(function(){var n,e=t.facade,r=t.value;if(jf(t)&&(n=Jl((function(){Il?pf.emit("unhandledRejection",r,e):wf(gf,e,r)})),t.rejection=Il||jf(t)?2:1,n.error))throw n.value}))},jf=function(t){return 1!==t.rejection&&!t.parent},$f=function(t){Dl(Hl,Al,(function(){var n=t.facade;Il?pf.emit("rejectionHandled",n):wf("rejectionhandled",n,t.value)}))},Of=function(t,n,e){return function(r){t(n,r,e)}},kf=function(t,n,e){t.done||(t.done=!0,e&&(t=e),t.value=n,t.state=2,bf(t,!0))},Ef=function(t,n,e){if(!t.done){t.done=!0,e&&(t=e);try{if(t.facade===n)throw lf("Promise can't be resolved itself");var r=vf(n);r?Vl((function(){var e={done:!1};try{Dl(r,n,Of(Ef,e,t),Of(kf,e,t))}catch(n){kf(e,n,t)}})):(t.value=n,t.state=1,bf(t,!1))}catch(n){kf({done:!1},n,t)}}};if(nf&&(sf=(uf=function(t){Bl(this,sf),Ul(t),Dl(Nl,this);var n=of(this);try{t(Of(Ef,n),Of(kf,n))}catch(t){kf(n,t)}}).prototype,(Nl=function(t){af(this,{type:tf,done:!1,notified:!1,parent:!1,reactions:new Kl,rejection:!1,state:0,value:void 0})}).prototype=Ll(sf,"then",(function(t,n){var e=of(this),r=df(Gl(this,uf));return e.parent=!0,r.ok=!zl(t)||t,r.fail=zl(n)&&n,r.domain=Il?pf.domain:void 0,0==e.state?e.reactions.add(r):Vl((function(){mf(r,e)})),r.promise})),Pl=function(){var t=new Nl,n=of(t);this.promise=t,this.resolve=Of(Ef,n),this.reject=Of(kf,n)},Ql.f=df=function(t){return t===uf||undefined===t?new Pl(t):hf(t)},zl(Zl)&&cf!==Object.prototype)){Cl=cf.then,rf||Ll(cf,"then",(function(t,n){var e=this;return new uf((function(t,n){Dl(Cl,e,t,n)})).then(t,n)}),{unsafe:!0});try{delete cf.constructor}catch(t){}ql&&ql(cf,sf)}Rl({global:!0,constructor:!0,wrap:!0,forced:nf},{Promise:uf}),Fl(uf,tf,!1),_l(tf);var Mf={},xf=Mf,Tf=No("iterator"),Nf=Array.prototype,Pf=Qc,Cf=uo,Rf=Ne,If=Mf,Af=No("iterator"),Df=function(t){if(!Rf(t))return Cf(t,Af)||Cf(t,"@@iterator")||If[Pf(t)]},Lf=Pr,qf=io,Ff=xr,_f=no,Uf=Df,zf=TypeError,Wf=Pr,Bf=xr,Gf=uo,Hf=rs,Vf=Pr,Yf=xr,Jf=no,Kf=function(t){return void 0!==t&&(xf.Array===t||Nf[Tf]===t)},Xf=Fa,Zf=Ar,Qf=function(t,n){var e=arguments.length<2?Uf(t):n;if(qf(e))return Ff(Lf(e,t));throw zf(_f(t)+" is not iterable")},tp=Df,np=function(t,n,e){var r,o;Bf(t);try{if(!(r=Gf(t,"return"))){if("throw"===n)throw e;return e}r=Wf(r,t)}catch(t){o=!0,r=t}if("throw"===n)throw e;if(o)throw r;return Bf(r),e},ep=TypeError,rp=function(t,n){this.stopped=t,this.result=n},op=rp.prototype,ip=function(t,n,e){var r,o,i,a,c,u,s,l=e&&e.that,f=!(!e||!e.AS_ENTRIES),p=!(!e||!e.IS_RECORD),d=!(!e||!e.IS_ITERATOR),h=!(!e||!e.INTERRUPTED),y=Hf(n,l),g=function(t){return r&&np(r,"normal",t),new rp(!0,t)},v=function(t){return f?(Yf(t),h?y(t[0],t[1],g):y(t[0],t[1])):h?y(t,g):y(t)};if(p)r=t.iterator;else if(d)r=t;else{if(!(o=tp(t)))throw ep(Jf(t)+" is not iterable");if(Kf(o)){for(i=0,a=Xf(t);a>i;i++)if((c=v(t[i]))&&Zf(op,c))return c;return new rp(!1)}r=Qf(t,o)}for(u=p?t.next:r.next;!(s=Vf(u,r)).done;){try{c=v(s.value)}catch(t){np(r,"throw",t)}if("object"==typeof c&&c&&Zf(op,c))return c}return new rp(!1)},ap=No("iterator"),cp=!1;try{var up=0,sp={next:function(){return{done:!!up++}},return:function(){cp=!0}};sp[ap]=function(){return this},Array.from(sp,(function(){throw 2}))}catch(t){}var lp=sl,fp=function(t,n){if(!n&&!cp)return!1;var e=!1;try{var r={};r[ap]=function(){return{next:function(){return{done:e=!0}}}},t(r)}catch(t){}return e},pp=kl.CONSTRUCTOR||!fp((function(t){lp.all(t).then(void 0,(function(){}))})),dp=Pr,hp=io,yp=El,gp=ul,vp=ip;Mc({target:"Promise",stat:!0,forced:pp},{all:function(t){var n=this,e=yp.f(n),r=e.resolve,o=e.reject,i=gp((function(){var e=hp(n.resolve),i=[],a=0,c=1;vp(t,(function(t){var u=a++,s=!1;c++,dp(e,n,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),e.promise}});var mp=Mc,bp=kl.CONSTRUCTOR,wp=sl,Sp=Ir,jp=Ke,$p=Ma,Op=wp&&wp.prototype;if(mp({target:"Promise",proto:!0,forced:bp,real:!0},{catch:function(t){return this.then(void 0,t)}}),jp(wp)){var kp=Sp("Promise").prototype.catch;Op.catch!==kp&&$p(Op,"catch",kp,{unsafe:!0})}var Ep=Pr,Mp=io,xp=El,Tp=ul,Np=ip;Mc({target:"Promise",stat:!0,forced:pp},{race:function(t){var n=this,e=xp.f(n),r=e.reject,o=Tp((function(){var o=Mp(n.resolve);Np(t,(function(t){Ep(o,n,t).then(e.resolve,r)}))}));return o.error&&r(o.value),e.promise}});var Pp=Pr,Cp=El;Mc({target:"Promise",stat:!0,forced:kl.CONSTRUCTOR},{reject:function(t){var n=Cp.f(this);return Pp(n.reject,void 0,t),n.promise}});var Rp=xr,Ip=gr,Ap=El,Dp=Mc,Lp=kl.CONSTRUCTOR,qp=function(t,n){if(Rp(t),Ip(n)&&n.constructor===t)return n;var e=Ap.f(t);return(0,e.resolve)(n),e.promise};function Fp(t){return null!=t&&!Number.isNaN(t)}function _p(t,e){return+Fp(e)-+Fp(t)||n(t,e)}function Up(t){return isFinite(t)?t:NaN}function zp(t){return t>0&&isFinite(t)?t:NaN}function Wp(t){return t<0&&isFinite(t)?t:NaN}function Bp(t,n){if(t instanceof Date||(t=new Date(+t)),isNaN(t))return"function"==typeof n?n(t):n;const e=t.getUTCHours(),r=t.getUTCMinutes(),o=t.getUTCSeconds(),i=t.getUTCMilliseconds();return`${a=t.getUTCFullYear(),a<0?`-${Gp(-a,6)}`:a>9999?`+${Gp(a,6)}`:Gp(a,4)}-${Gp(t.getUTCMonth()+1,2)}-${Gp(t.getUTCDate(),2)}${e||r||o||i?`T${Gp(e,2)}:${Gp(r,2)}${o||i?`:${Gp(o,2)}${i?`.${Gp(i,3)}`:""}`:""}Z`:""}`;var a}function Gp(t,n){return`${t}`.padStart(n,"0")}Ir("Promise"),Dp({target:"Promise",stat:!0,forced:Lp},{resolve:function(t){return qp(this,t)}});const Hp=/^(?:[-+]\d{2})?\d{4}(?:-\d{2}(?:-\d{2})?)?(?:T\d{2}:\d{2}(?::\d{2}(?:\.\d{3})?)?(?:Z|[-+]\d{2}:?\d{2})?)?$/;function Vp(t,n){return Hp.test(t+="")?new Date(t):"function"==typeof n?n(t):n}const Yp=new Map([["second",e],["minute",r],["hour",o],["day",i],["week",a],["month",c],["quarter",c.every(3)],["half",c.every(6)],["year",u],["monday",s],["tuesday",l],["wednesday",f],["thursday",p],["friday",d],["saturday",h],["sunday",y]]),Jp=new Map([["second",g],["minute",v],["hour",m],["day",b],["week",w],["month",S],["quarter",S.every(3)],["half",S.every(6)],["year",j],["monday",$],["tuesday",O],["wednesday",k],["thursday",E],["friday",M],["saturday",x],["sunday",T]]);function Kp(t){const n=Yp.get(`${t}`.toLowerCase());if(!n)throw new Error(`unknown interval: ${t}`);return n}function Xp(t){const n=Jp.get(`${t}`.toLowerCase());if(!n)throw new Error(`unknown interval: ${t}`);return n}const Zp=Object.getPrototypeOf(Uint8Array),Qp=Object.prototype.toString,td=t=>null==t?t:`${t}`,nd=t=>()=>t;function ed(t){return t instanceof Zp?t:sd(t,rd,Float64Array)}function rd(t){return null==t?NaN:Number(t)}function od(t){return sd(t,id)}function id(t){return t instanceof Date&&!isNaN(t)?t:"string"==typeof t?Vp(t):null==t||isNaN(t=+t)?void 0:new Date(t)}function ad(t,n){return void 0===t&&(t=n),null===t?[void 0,"none"]:function(t){return"string"==typeof t&&(t=t.toLowerCase().trim(),"none"===t||"currentcolor"===t||t.startsWith("url(")&&t.endsWith(")")||t.startsWith("var(")&&t.endsWith(")")||null!==N(t))}(t)?[void 0,t]:[t,void 0]}function cd(t,n){return void 0===t&&(t=n),null===t||"number"==typeof t?[void 0,t]:[t,void 0]}function ud(t){return null==t||t instanceof Array||t instanceof Zp?t:Array.from(t)}function sd(t,n,e=Array){return null==t?t:t instanceof e?t.map(n):e.from(t,n)}function ld(t){return t?.toString===Qp}function fd(t){return ld(t)&&(void 0!==t.type||void 0!==t.domain)}function pd(t,n){if(null!=t){if("number"==typeof t){0<t&&t<1&&Number.isInteger(1/t)&&(t=-1/t);const n=Math.abs(t);return t<0?{floor:t=>Math.floor(t*n)/n,offset:t=>(t*n+1)/n,range:(t,e)=>C(Math.ceil(t*n),e*n).map((t=>t/n))}:{floor:t=>Math.floor(t/n)*n,offset:t=>t+n,range:(t,e)=>C(Math.ceil(t/n),e/n).map((t=>t*n))}}if("string"==typeof t)return("time"===n?Kp:Xp)(t);if("function"!=typeof t.floor)throw new Error("invalid interval; missing floor method");if("function"!=typeof t.offset)throw new Error("invalid interval; missing offset method");return t}}function dd(t,n){if((t=pd(t,n))&&"function"!=typeof t.range)throw new Error("invalid interval: missing range method");return t}function hd(t){for(const n of t){if(null==n)continue;const t=typeof n;return"string"===t||"boolean"===t}}function yd(t){for(const n of t)if(null!=n)return n instanceof Date}function gd(t){for(const n of t)if(null!=n)return"string"==typeof n&&isNaN(n)&&Vp(n)}function vd(t){for(const n of t)if(null!=n){if("string"!=typeof n)return!1;if(n.trim())return!isNaN(n)}}function md(t){return null==t||function(t){return/^\s*none\s*$/i.test(t)}(t)}function bd(t){if(null==t)return;const n=t[0],e=t[t.length-1];return P(n,e)}const wd=Symbol("position"),Sd=Symbol("color"),jd=Symbol("radius"),$d=Symbol("length"),Od=Symbol("opacity"),kd=Symbol("symbol"),Ed=new Map([["x",wd],["y",wd],["fx",wd],["fy",wd],["r",jd],["color",Sd],["opacity",Od],["symbol",kd],["length",$d]]),Md=2/Math.sqrt(3),xd=new Map([["asterisk",R],["circle",I],["cross",A],["diamond",D],["diamond2",L],["hexagon",{draw(t,n){const e=Math.sqrt(n/Math.PI),r=e*Md,o=r/2;t.moveTo(0,r),t.lineTo(e,o),t.lineTo(e,-o),t.lineTo(0,-r),t.lineTo(-e,-o),t.lineTo(-e,o),t.closePath()}}],["plus",q],["square",F],["square2",_],["star",U],["times",z],["triangle",W],["triangle2",B],["wye",G]]);function Td(t){if(null==t||function(t){return t&&"function"==typeof t.draw}(t))return t;const n=xd.get(`${t}`.toLowerCase());if(n)return n;throw new Error(`invalid symbol: ${t}`)}function Nd(t){console.warn(t)}const Pd=Math.PI,Cd=2*Pd;function Rd({projection:t,inset:n=0,insetTop:e=n,insetRight:r=n,insetBottom:o=n,insetLeft:i=n}={},a){if(null==t)return;if("function"==typeof t.stream)return t;let c,u,s="frame";if(ld(t)){let n;if(({type:t,domain:u,inset:n,insetTop:e=(void 0!==n?n:e),insetRight:r=(void 0!==n?n:r),insetBottom:o=(void 0!==n?n:o),insetLeft:i=(void 0!==n?n:i),clip:s=s,...c}=t),null==t)return}"function"!=typeof t&&({type:t}=function(t){switch(`${t}`.toLowerCase()){case"albers-usa":return Id(ot,.7463,.4673);case"albers":return Ad(ut,.7463,.4673);case"azimuthal-equal-area":return Id(rt,4,4);case"azimuthal-equidistant":return Id(et,Cd,Cd);case"conic-conformal":return Ad(ct,Cd,Cd);case"conic-equal-area":return Ad(at,6.1702,2.9781);case"conic-equidistant":return Ad(it,7.312,3.6282);case"equal-earth":return Id(nt,5.4133,2.6347);case"equirectangular":return Id(tt,Cd,Pd);case"gnomonic":return Id(Q,3.4641,3.4641);case"identity":return{type:Dd};case"reflect-y":return{type:Ld};case"mercator":return Id(Z,Cd,Cd);case"orthographic":return Id(X,2,2);case"stereographic":return Id(K,2,2);case"transverse-mercator":return Id(J,Cd,Cd);default:throw new Error(`unknown projection type: ${t}`)}}(t));const{width:l,height:f,marginLeft:p,marginRight:d,marginTop:h,marginBottom:y}=a,g=l-p-d-i-r,v=f-h-y-e-o;if(t=t?.({width:g,height:v,clip:s,...c}),null==t)return;s=function(t,n,e,r,o){if(!1===t||null==t||"number"==typeof t)return t=>t;!0===t&&(t="frame");if("frame"===`${t}`.toLowerCase())return Y(n,e,r,o);throw new Error(`unknown projection clip type: ${t}`)}(s,p,h,l-d,f-y);let m,b=p+i,w=h+e;if(null!=u){const[[n,e],[r,o]]=H(t).bounds(u),i=Math.min(g/(r-n),v/(o-e));i>0?(b-=(i*(n+r)-g)/2,w-=(i*(e+o)-v)/2,m=V({point(t,n){this.stream.point(t*i+b,n*i+w)}})):Nd("Warning: the projection could not be fit to the specified domain; using the default scale.")}return m??=0===b&&0===w?Dd():V({point(t,n){this.stream.point(t+b,n+w)}}),{stream:n=>t.stream(m.stream(s(n)))}}function Id(t,n,e){return{type:({width:r,height:o,rotate:i,precision:a=.15,clip:c})=>{const u=t();return null!=a&&u.precision?.(a),null!=i&&u.rotate?.(i),"number"==typeof c&&u.clipAngle?.(c),u.scale(Math.min(r/n,o/e)),u.translate([r/2,o/2]),u},aspectRatio:e/n}}function Ad(t,n,e){const{type:r,aspectRatio:o}=Id(t,n,e);return{type:t=>{const{parallels:n,domain:e,width:o,height:i}=t,a=r(t);return null!=n&&(a.parallels(n),void 0===e&&a.fitSize([o,i],{type:"Sphere"})),a},aspectRatio:o}}const Dd=nd({stream:t=>t}),Ld=nd(V({point(t,n){this.stream.point(t,-n)}}));function qd(t={},n,e){const{document:r=("undefined"!=typeof window?window.document:void 0)}=t;return{document:r,className:e,projection:Rd(t,n)}}function Fd(t,{document:n}){return st(lt(t).call(n.documentElement))}const _d=new Map([["accent",ft],["category10",pt],["dark2",dt],["paired",ht],["pastel1",yt],["pastel2",gt],["set1",vt],["set2",mt],["set3",bt],["tableau10",wt],["brbg",zd(cn,jt)],["prgn",zd(un,$t)],["piyg",zd(sn,Ot)],["puor",zd(ln,kt)],["rdbu",zd(fn,Et)],["rdgy",zd(pn,Mt)],["rdylbu",zd(dn,xt)],["rdylgn",zd(hn,Tt)],["spectral",zd(yn,Nt)],["burd",Wd(fn,Et)],["buylrd",Wd(dn,xt)],["blues",Ud(gn,Pt)],["greens",Ud(vn,Ct)],["greys",Ud(mn,Rt)],["oranges",Ud(bn,Dt)],["purples",Ud(wn,It)],["reds",Ud(Sn,At)],["turbo",Bd(Lt)],["viridis",Bd(qt)],["magma",Bd(Ft)],["inferno",Bd(_t)],["plasma",Bd(Ut)],["cividis",Bd(zt)],["cubehelix",Bd(Wt)],["warm",Bd(Bt)],["cool",Bd(Gt)],["bugn",Ud(jn,Ht)],["bupu",Ud($n,Vt)],["gnbu",Ud(On,Yt)],["orrd",Ud(kn,Jt)],["pubu",Ud(En,Xt)],["pubugn",Ud(Mn,Kt)],["purd",Ud(xn,Zt)],["rdpu",Ud(Tn,Qt)],["ylgn",Ud(Nn,nn)],["ylgnbu",Ud(Pn,tn)],["ylorbr",Ud(Cn,en)],["ylorrd",Ud(Rn,rn)],["rainbow",Gd(on)],["sinebow",Gd(an)]]);function Ud(t,n){return({length:e})=>1===e?[t[3][1]]:2===e?[t[3][1],t[3][2]]:(e=Math.max(3,Math.floor(e)))>9?St(n,e):t[e]}function zd(t,n){return({length:e})=>2===e?[t[3][0],t[3][2]]:(e=Math.max(3,Math.floor(e)))>11?St(n,e):t[e]}function Wd(t,n){return({length:e})=>2===e?[t[3][2],t[3][0]]:(e=Math.max(3,Math.floor(e)))>11?St((t=>n(1-t)),e):t[e].slice().reverse()}function Bd(t){return({length:n})=>St(t,Math.max(2,Math.floor(n)))}function Gd(t){return({length:n})=>St(t,Math.floor(n)+1).slice(0,-1)}function Hd(t){const n=`${t}`.toLowerCase();if(!_d.has(n))throw new Error(`unknown ordinal scheme: ${n}`);return _d.get(n)}function Vd(t,n){const e=Hd(t),r="function"==typeof e?e({length:n}):e;return r.length!==n?r.slice(0,n):r}const Yd=new Map([["brbg",jt],["prgn",$t],["piyg",Ot],["puor",kt],["rdbu",Et],["rdgy",Mt],["rdylbu",xt],["rdylgn",Tt],["spectral",Nt],["burd",t=>Et(1-t)],["buylrd",t=>xt(1-t)],["blues",Pt],["greens",Ct],["greys",Rt],["purples",It],["reds",At],["oranges",Dt],["turbo",Lt],["viridis",qt],["magma",Ft],["inferno",_t],["plasma",Ut],["cividis",zt],["cubehelix",Wt],["warm",Bt],["cool",Gt],["bugn",Ht],["bupu",Vt],["gnbu",Yt],["orrd",Jt],["pubugn",Kt],["pubu",Xt],["purd",Zt],["rdpu",Qt],["ylgnbu",tn],["ylgn",nn],["ylorbr",en],["ylorrd",rn],["rainbow",on],["sinebow",an]]);function Jd(t){const n=`${t}`.toLowerCase();if(!Yd.has(n))throw new Error(`unknown quantitative scheme: ${n}`);return Yd.get(n)}const Kd=new Set(["brbg","prgn","piyg","puor","rdbu","rdgy","rdylbu","rdylgn","spectral","burd","buylrd"]);function Xd(t){return null!=t&&Kd.has(`${t}`.toLowerCase())}const Zd=t=>n=>t(1-n),Qd=[0,1],th=new Map([["number",In],["rgb",An],["hsl",Dn],["hcl",Ln],["lab",qn]]);function nh(t){const n=`${t}`.toLowerCase();if(!th.has(n))throw new Error(`unknown interpolator: ${n}`);return th.get(n)}function eh(t,n,e,{type:r,nice:o,clamp:i,zero:a,domain:c=ah(t,e),unknown:u,round:s,scheme:l,interval:f,range:p=(Ed.get(t)===jd?uh(e,c):Ed.get(t)===$d?sh(e,c):Ed.get(t)===Od?Qd:void 0),interpolate:d=(Ed.get(t)===Sd?null==l&&void 0!==p?An:Jd(void 0!==l?l:"cyclical"===r?"rainbow":"turbo"):s?Kn:In),reverse:h}){if(f=dd(f,r),"cyclical"!==r&&"sequential"!==r||(r="linear"),h=!!h,"function"!=typeof d&&(d=nh(d)),1===d.length?(h&&(d=Zd(d),h=!1),void 0===p&&2===(p=Float64Array.from(c,((t,n)=>n/(c.length-1)))).length&&(p=Qd),n.interpolate((p===Qd?nd:ph)(d))):n.interpolate(d),a){const[t,n]=Bn(c);(t>0||n<0)&&(c=function(t,n=Array){return t instanceof n?t.slice():n.from(t)}(c),bd(c)!==Math.sign(t)?c[c.length-1]=0:c[0]=0)}return h&&(c=Hn(c)),n.domain(c).unknown(u),o&&(n.nice(function(t,n){return!0===t?void 0:"number"==typeof t?t:function(t,n){if((t=dd(t,n))&&"function"!=typeof t.ceil)throw new Error("invalid interval: missing ceil method");return t}(t,n)}(o,r)),c=n.domain()),void 0!==p&&n.range(p),i&&n.clamp(i),{type:r,domain:c,range:p,scale:n,interpolate:d,interval:f}}function rh(t,n,{exponent:e=1,...r}){return eh(t,_n().exponent(e),n,{...r,type:"pow"})}function oh(t,n,{domain:e=[0],unknown:r,scheme:o="rdylbu",interpolate:i,range:a=(void 0!==i?St(i,e.length+1):Ed.get(t)===Sd?Vd(o,e.length+1):void 0),reverse:c}){const u=bd(e=ud(e));if(!isNaN(u)&&!function(t,n){for(let e=1,r=t.length,o=t[0];e<r;++e){const r=P(o,o=t[e]);if(0!==r&&r!==n)return!1}return!0}(e,u))throw new Error(`the ${t} scale has a non-monotonic domain`);return c&&(a=Hn(a)),{type:"threshold",scale:Vn(u<0?Hn(e):e,void 0===a?[]:a).unknown(r),domain:e,range:a}}function ih(t,n=Up){return t.length?[Xn(t,(({value:t})=>void 0===t?t:Xn(t,n))),Jn(t,(({value:t})=>void 0===t?t:Jn(t,n)))]:[0,1]}function ah(t,n){const e=Ed.get(t);return(e===jd||e===Od||e===$d?ch:ih)(n)}function ch(t){return[0,t.length?Jn(t,(({value:t})=>void 0===t?t:Jn(t,Up))):1]}function uh(t,n){const e=t.find((({radius:t})=>void 0!==t));if(void 0!==e)return[0,e.radius];const r=Zn(t,.5,(({value:t})=>void 0===t?NaN:Zn(t,.25,zp))),o=n.map((t=>3*Math.sqrt(t/r))),i=30/Jn(o);return i<1?o.map((t=>t*i)):o}function sh(t,n){const e=Qn(t,(({value:t})=>void 0===t?NaN:Qn(t,Math.abs))),r=n.map((t=>12*t/e)),o=60/Jn(r);return o<1?r.map((t=>t*o)):r}function lh(t){for(const{value:n}of t)if(void 0!==n)for(let e of n){if(e>0)return ih(t,zp);if(e<0)return ih(t,Wp)}return[1,10]}function fh(t){const n=[];for(const{value:e}of t)if(void 0!==e)for(const t of e)n.push(t);return n}function ph(t){return(n,e)=>r=>t(n+r*(e-n))}function dh(t,n,e,r,{type:o,nice:i,clamp:a,domain:c=ih(r),unknown:u,pivot:s=0,scheme:l,range:f,symmetric:p=!0,interpolate:d=(Ed.get(t)===Sd?null==l&&void 0!==f?An:Jd(void 0!==l?l:"rdbu"):In),reverse:h}){s=+s;let[y,g]=c;if(P(y,g)<0&&([y,g]=[g,y],h=!h),y=Math.min(y,s),g=Math.max(g,s),"function"!=typeof d&&(d=nh(d)),void 0!==f&&(d=1===d.length?ph(d)(...f):oe(d,f)),h&&(d=Zd(d)),p){const t=e.apply(s),n=t-e.apply(y),r=e.apply(g)-t;n<r?y=e.invert(t-r):n>r&&(g=e.invert(t+n))}return n.domain([y,s,g]).unknown(u).interpolator(d),a&&n.clamp(a),i&&n.nice(i),{type:o,domain:[y,g],pivot:s,interpolate:d,scale:n}}function hh(t,n,{exponent:e=1,...r}){return dh(t,ne().exponent(e=+e),function(t){return.5===t?mh:{apply:n=>Math.sign(n)*Math.pow(Math.abs(n),t),invert:n=>Math.sign(n)*Math.pow(Math.abs(n),1/t)}}(e),n,{...r,type:"diverging-pow"})}function yh(t,n,{constant:e=1,...r}){return dh(t,re().constant(e=+e),function(t){return{apply:n=>Math.sign(n)*Math.log1p(Math.abs(n/t)),invert:n=>Math.sign(n)*Math.expm1(Math.abs(n))*t}}(e),n,r)}const gh={apply:t=>t,invert:t=>t},vh={apply:Math.log,invert:Math.exp},mh={apply:t=>Math.sign(t)*Math.sqrt(Math.abs(t)),invert:t=>Math.sign(t)*(t*t)};function bh(t,n,e,r){return eh(t,n,e,r)}const wh=Symbol("ordinal");function Sh(t,n,e,{type:r,interval:o,domain:i,range:a,reverse:c,hint:u}){return o=dd(o,r),void 0===i&&(i=Oh(e,o,t)),"categorical"!==r&&r!==wh||(r="ordinal"),c&&(i=Hn(i)),n.domain(i),void 0!==a&&("function"==typeof a&&(a=a(i)),n.range(a)),{type:r,domain:i,range:a,scale:n,hint:u,interval:o}}function jh(t,n,{type:e,interval:r,domain:o,range:i,scheme:a,unknown:c,...u}){let s;if(r=dd(r,e),void 0===o&&(o=Oh(n,r,t)),Ed.get(t)===kd)s=function(t){return{fill:kh(t,"fill"),stroke:kh(t,"stroke")}}(n),i=void 0===i?function(t){return md(t.fill)?de:he}(s):sd(i,Td);else if(Ed.get(t)===Sd&&(void 0!==i||"ordinal"!==e&&e!==wh||(i=function(t,n="greys"){const e=new Set,[r,o]=Vd(n,2);for(const n of t)if(null!=n)if(!0===n)e.add(o);else{if(!1!==n)return;e.add(r)}return[...e]}(o,a),void 0!==i&&(a=void 0)),void 0===a&&void 0===i&&(a="ordinal"===e?"turbo":"tableau10"),void 0!==a))if(void 0!==i){const t=Jd(a),n=i[0],e=i[1]-i[0];i=({length:r})=>St((r=>t(n+e*r)),r)}else i=Hd(a);if(c===ce)throw new Error(`implicit unknown on ${t} scale is not supported`);return Sh(t,ue().unknown(c),n,{...u,type:e,domain:o,range:i,hint:s})}function $h(t,n,e,r){let{round:o}=e;return void 0!==o&&t.round(o=!!o),(t=Sh(r,t,n,e)).round=o,t}function Oh(t,n,e){const r=new fe;for(const{value:n,domain:e}of t){if(void 0!==e)return e();if(void 0!==n)for(const t of n)r.add(t)}if(void 0!==n){const[t,e]=Bn(r).map(n.floor,n);return n.range(t,n.offset(e))}if(r.size>1e4&&Ed.get(e)===wd)throw new Error(`implicit ordinal domain of ${e} scale has more than 10,000 values`);return pe(r,_p)}function kh(t,n){let e;for(const{hint:r}of t){const t=r?.[n];if(void 0!==t)if(void 0===e)e=t;else if(e!==t)return}return e}function Eh(t,n,e){return function(t,n=[],e={}){const r=function(t,n,{type:e,domain:r,range:o,scheme:i,pivot:a,projection:c}){if("fx"===t||"fy"===t)return"band";"x"!==t&&"y"!==t||null==c||(e=xh);for(const{type:t}of n)if(void 0!==t)if(void 0===e)e=t;else if(e!==t)throw new Error(`scale incompatible with channel: ${e} !== ${t}`);if(e===xh)return;if(void 0!==e)return e;if(void 0===r&&!n.some((({value:t})=>void 0!==t)))return;const u=Ed.get(t);if(u===jd)return"sqrt";if(u===Od||u===$d)return"linear";if(u===kd)return"ordinal";if((r||o||[]).length>2)return Th(u);if(void 0!==r)return hd(r)?Th(u):yd(r)?"utc":u!==Sd||null==a&&!Xd(i)?"linear":"diverging";const s=n.map((({value:t})=>t)).filter((t=>void 0!==t));return s.some(hd)?Th(u):s.some(yd)?"utc":u!==Sd||null==a&&!Xd(i)?"linear":"diverging"}(t,n,e);if(void 0===e.type&&void 0===e.domain&&void 0===e.range&&null==e.interval&&"fx"!==t&&"fy"!==t&&Nh({type:r})){const e=n.map((({value:t})=>t)).filter((t=>void 0!==t));e.some(yd)?Nd(`Warning: some data associated with the ${t} scale are dates. Dates are typically associated with a "utc" or "time" scale rather than a "${Mh(r)}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can specify the interval of the ${t} scale (e.g., d3.utcDay), or you can suppress this warning by setting the type of the ${t} scale to "${Mh(r)}".`):e.some(gd)?Nd(`Warning: some data associated with the ${t} scale are strings that appear to be dates (e.g., YYYY-MM-DD). If these strings represent dates, you should parse them to Date objects. Dates are typically associated with a "utc" or "time" scale rather than a "${Mh(r)}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can suppress this warning by setting the type of the ${t} scale to "${Mh(r)}".`):e.some(vd)&&Nd(`Warning: some data associated with the ${t} scale are strings that appear to be numbers. If these strings represent numbers, you should parse or coerce them to numbers. Numbers are typically associated with a "linear" scale rather than a "${Mh(r)}" scale. If you want to treat this data as ordinal, you can specify the interval of the ${t} scale (e.g., 1 for integers), or you can suppress this warning by setting the type of the ${t} scale to "${Mh(r)}".`)}switch(e.type=r,r){case"diverging":case"diverging-sqrt":case"diverging-pow":case"diverging-log":case"diverging-symlog":case"cyclical":case"sequential":case"linear":case"sqrt":case"threshold":case"quantile":case"pow":case"log":case"symlog":e=Ph(n,e,ed);break;case"identity":switch(Ed.get(t)){case wd:e=Ph(n,e,ed);break;case kd:e=Ph(n,e,Ch)}break;case"utc":case"time":e=Ph(n,e,od)}switch(r){case"diverging":return function(t,n,e){return dh(t,te(),gh,n,e)}(t,n,e);case"diverging-sqrt":return function(t,n,e){return hh(t,n,{...e,exponent:.5})}(t,n,e);case"diverging-pow":return hh(t,n,e);case"diverging-log":return function(t,n,{base:e=10,pivot:r=1,domain:o=ih(n,r<0?Wp:zp),...i}){return dh(t,ee().base(e=+e),vh,n,{domain:o,pivot:r,...i})}(t,n,e);case"diverging-symlog":return yh(t,n,e);case"categorical":case"ordinal":case wh:return jh(t,n,e);case"cyclical":case"sequential":case"linear":return function(t,n,e){return eh(t,Fn(),n,e)}(t,n,e);case"sqrt":return function(t,n,e){return rh(t,n,{...e,exponent:.5})}(t,n,e);case"threshold":return oh(t,0,e);case"quantile":return function(t,n,{range:e,quantiles:r=(void 0===e?5:(e=[...e]).length),n:o=r,scheme:i="rdylbu",domain:a=fh(n),unknown:c,interpolate:u,reverse:s}){return void 0===e&&(e=void 0!==u?St(u,o):Ed.get(t)===Sd?Vd(i,o):void 0),a.length>0&&(a=Wn(a,void 0===e?{length:o}:e).quantiles()),oh(t,0,{domain:a,range:e,reverse:s,unknown:c})}(t,n,e);case"quantize":return function(t,n,{range:e,n:r=(void 0===e?5:(e=[...e]).length),scheme:o="rdylbu",domain:i=ah(t,n),unknown:a,interpolate:c,reverse:u}){const[s,l]=Bn(i);let f;return void 0===e?(f=Gn(s,l,r),f[0]<=s&&f.splice(0,1),f[f.length-1]>=l&&f.pop(),r=f.length+1,e=void 0!==c?St(c,r):Ed.get(t)===Sd?Vd(o,r):void 0):(f=St(In(s,l),r+1).slice(1,-1),s instanceof Date&&(f=f.map((t=>new Date(t))))),bd(ud(i))<0&&f.reverse(),oh(t,0,{domain:f,range:e,reverse:u,unknown:a})}(t,n,e);case"pow":return rh(t,n,e);case"log":return function(t,n,{base:e=10,domain:r=lh(n),...o}){return eh(t,Un().base(e),n,{...o,domain:r})}(t,n,e);case"symlog":return function(t,n,{constant:e=1,...r}){return eh(t,zn().constant(e),n,r)}(t,n,e);case"utc":return function(t,n,e){return bh(t,ae(),n,e)}(t,n,e);case"time":return function(t,n,e){return bh(t,ie(),n,e)}(t,n,e);case"point":return function(t,n,{align:e=.5,padding:r=.5,...o}){return $h(se().align(e).padding(r),n,o,t)}(t,n,e);case"band":return function(t,n,{align:e=.5,padding:r=.1,paddingInner:o=r,paddingOuter:i=("fx"===t||"fy"===t?0:r),...a}){return $h(le().align(e).paddingInner(o).paddingOuter(i),n,a,t)}(t,n,e);case"identity":return Ed.get(t)===wd?{type:"identity",scale:Yn()}:{type:"identity"};case void 0:return;default:throw new Error(`unknown scale type: ${r}`)}}(t,void 0===e?void 0:[{hint:e}],{...n})}function Mh(t){return"symbol"==typeof t?t.description:t}const xh={toString:()=>"projection"};function Th(t){switch(t){case wd:return"point";case Sd:return wh;default:return"ordinal"}}function Nh({type:t}){return"ordinal"===t||"point"===t||"band"===t||t===wh}function Ph(t,{domain:n,...e},r){for(const n of t)void 0!==n.value&&(n.value=r(n.value));return{domain:void 0===n?n:r(n),...e}}function Ch(t){return sd(t,Td)}const Rh=function(t){let n,e;return(...r)=>((e?.length!==r.length||e.some(((t,n)=>t!==r[n])))&&(e=r,n=t(...r)),n)}((t=>new Intl.NumberFormat(t)));function Ih(t){return Bp(t,"Invalid Date")}function Ah(t,n){if((t=td(t))!==n)return t}!function(t="en-US"){const n=function(t="en-US"){const n=Rh(t);return t=>null==t||isNaN(t)?void 0:n.format(t)}(t)}();const Dh=/^-?([_a-z]|[\240-\377]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])([_a-z0-9-]|[\240-\377]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*$/i;function Lh(t){if(void 0===t)return"plot-d6a7b5";if(t=`${t}`,!Dh.test(t))throw new Error(`invalid class name: ${t}`);return t}function qh(t,n){if("string"==typeof n)t.property("style",n);else if(null!=n)for(const e of t)Object.assign(e.style,n)}function Fh(t){return Nh(t)&&void 0===t.interval?void 0:"tabular-nums"}function _h(t,n){if(null==n)return n;const e=t(n);if(!e)throw new Error(`scale not found: ${n}`);return e}function Uh(t,n={},e){let{columns:r,tickFormat:o,fontVariant:i=Fh(t),swatchSize:a=15,swatchWidth:c=a,swatchHeight:u=a,marginLeft:s=0,className:l,style:f,width:p}=n;const d=qd(n);l=Lh(l),o=function(t,n){return void 0===t?yd(n)?Ih:td:"function"==typeof t?t:("string"==typeof t?yd(n)?ye:ge:nd)(t)}(o,t.domain);const h=Fd("div",d).attr("class",`${l}-swatches ${l}-swatches-${null!=r?"columns":"wrap"}`);let y;return null!=r?(y=`.${l}-swatches-columns .${l}-swatch {\n display: flex;\n align-items: center;\n break-inside: avoid;\n padding-bottom: 1px;\n}\n.${l}-swatches-columns .${l}-swatch::before {\n flex-shrink: 0;\n}\n.${l}-swatches-columns .${l}-swatch-label {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}`,h.style("columns",r).selectAll().data(t.domain).enter().append("div").attr("class",`${l}-swatch`).call(e,t,c,u).call((t=>t.append("div").attr("class",`${l}-swatch-label`).attr("title",o).text(o)))):(y=`.${l}-swatches-wrap {\n display: flex;\n align-items: center;\n min-height: 33px;\n flex-wrap: wrap;\n}\n.${l}-swatches-wrap .${l}-swatch {\n display: inline-flex;\n align-items: center;\n margin-right: 1em;\n}`,h.selectAll().data(t.domain).enter().append("span").attr("class",`${l}-swatch`).call(e,t,c,u).append((function(){return this.ownerDocument.createTextNode(o.apply(this,arguments))}))),h.call((t=>t.insert("style","*").text(`.${l}-swatches {\n font-family: system-ui, sans-serif;\n font-size: 10px;\n margin-bottom: 0.5em;\n}\n.${l}-swatch > svg {\n margin-right: 0.5em;\n overflow: visible;\n}\n${y}`))).style("margin-left",s?+s+"px":null).style("width",void 0===p?null:+p+"px").style("font-variant",Ah(i,"normal")).call(qh,f).node()}const zh=new Map([["symbol",function(t,{fill:n=(void 0!==t.hint?.fill?t.hint.fill:"none"),fillOpacity:e=1,stroke:r=(void 0!==t.hint?.stroke?t.hint.stroke:md(n)?"currentColor":"none"),strokeOpacity:o=1,strokeWidth:i=1.5,r:a=4.5,...c}={},u){const[s,l]=ad(n),[f,p]=ad(r),d=_h(u,s),h=_h(u,f),y=a*a*Math.PI;return e=cd(e)[1],o=cd(o)[1],i=cd(i)[1],Uh(t,c,((n,r,a,c)=>n.append("svg").attr("viewBox","-8 -8 16 16").attr("width",a).attr("height",c).attr("fill","color"===s?t=>d.scale(t):l).attr("fill-opacity",e).attr("stroke","color"===f?t=>h.scale(t):p).attr("stroke-opacity",o).attr("stroke-width",i).append("path").attr("d",(n=>{const e=me();return t.scale(n).draw(e,y),e}))))}],["color",Bh],["opacity",function({type:t,interpolate:n,...e},{legend:r=!0,color:o=be(0,0,0),...i}){if(!n)throw new Error(`${t} opacity scales are not supported`);!0===r&&(r="ramp");if("ramp"!==`${r}`.toLowerCase())throw new Error(`${r} opacity legends are not supported`);return Bh({type:t,...e,interpolate:Gh(o)},{legend:r,...i})}]]);function Wh({className:t,...n},{label:e,ticks:r,tickFormat:o}={},i){return function(t={},...n){let e=t;for(const r of n)for(const n in r)if(void 0===e[n]){const o=r[n];e===t?e={...e,[n]:o}:e[n]=o}return e}(i,{className:t,...n},{label:e,ticks:r,tickFormat:o})}function Bh(t,{legend:n=!0,...e}){if(!0===n&&(n="ordinal"===t.type?"swatches":"ramp"),void 0!==t.domain)switch(`${n}`.toLowerCase()){case"swatches":return function(t,{opacity:n,...e}={}){if(!Nh(t)&&!function({type:t}){return"threshold"===t}(t))throw new Error(`swatches legend requires ordinal or threshold color scale (not ${t.type})`);return Uh(t,e,((t,e,r,o)=>t.append("svg").attr("width",r).attr("height",o).attr("fill",e.scale).attr("fill-opacity",cd(n)[1]).append("rect").attr("width","100%").attr("height","100%")))}(t,e);case"ramp":return function(t,n){let{label:e=t.label,tickSize:r=6,width:o=240,height:i=44+r,marginTop:a=18,marginRight:c=0,marginBottom:u=16+r,marginLeft:s=0,style:l,ticks:f=(o-s-c)/64,tickFormat:p,fontVariant:d=Fh(t),round:h=!0,opacity:y,className:g}=n;const v=qd(n);g=Lh(g),y=cd(y)[1],null===p&&(p=()=>null);const m=Fd("svg",v).attr("class",`${g}-ramp`).attr("font-family","system-ui, sans-serif").attr("font-size",10).attr("width",o).attr("height",i).attr("viewBox",`0 0 ${o} ${i}`).call((t=>t.append("style").text(`.${g}-ramp {\n display: block;\n background: white;\n height: auto;\n height: intrinsic;\n max-width: 100%;\n overflow: visible;\n}\n.${g}-ramp text {\n white-space: pre;\n}`))).call(qh,l);let b,w=t=>t.selectAll(".tick line").attr("y1",a+u-i);const S=h?(t,n)=>t.rangeRound(n):(t,n)=>t.range(n),{type:j,domain:$,range:O,interpolate:k,scale:E,pivot:M}=t;if(k){const t=void 0===O?k:oe(1===k.length?ph(k):k,O);b=S(E.copy(),St(In(s,o-c),Math.min($.length+(void 0!==M),void 0===O?1/0:O.length)));const n=256,e=v.document.createElement("canvas");e.width=n,e.height=1;const r=e.getContext("2d");for(let e=0,o=n-1;e<n;++e)r.fillStyle=t(e/o),r.fillRect(e,0,1,1);m.append("image").attr("opacity",y).attr("x",s).attr("y",a).attr("width",o-s-c).attr("height",i-a-u).attr("preserveAspectRatio","none").attr("xlink:href",e.toDataURL())}else if("threshold"===j){const t=$,n=void 0===p?t=>t:"string"==typeof p?ge(p):p;b=S(Fn().domain([-1,O.length-1]),[s,o-c]),m.append("g").attr("fill-opacity",y).selectAll().data(O).enter().append("rect").attr("x",((t,n)=>b(n-1))).attr("y",a).attr("width",((t,n)=>b(n)-b(n-1))).attr("height",i-a-u).attr("fill",(t=>t)),f=sd(t,((t,n)=>n)),p=e=>n(t[e],e)}else b=S(le().domain($),[s,o-c]),m.append("g").attr("fill-opacity",y).selectAll().data($).enter().append("rect").attr("x",b).attr("y",a).attr("width",Math.max(0,b.bandwidth()-1)).attr("height",i-a-u).attr("fill",E),w=()=>{};return m.append("g").attr("transform",`translate(0,${i-u})`).call(ve(b).ticks(Array.isArray(f)?null:f,"string"==typeof p?p:void 0).tickFormat("function"==typeof p?p:void 0).tickSize(r).tickValues(Array.isArray(f)?f:null)).attr("font-size",null).attr("font-family",null).attr("font-variant",Ah(d,"normal")).call(w).call((t=>t.select(".domain").remove())),void 0!==e&&m.append("text").attr("x",s).attr("y",a-6).attr("fill","currentColor").attr("font-weight","bold").text(e),m.node()}(t,e);default:throw new Error(`unknown legend type: ${n}`)}}function Gh(t){const{r:n,g:e,b:r}=be(t)||be(0,0,0);return t=>`rgba(${n},${e},${r},${t})`}var Hh="#ch-plugin-legend",Vh={enabled:!0,itemSelector:null,label:null,width:130},Yh=function(){function n(t){!function(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}(this,n),this.name="Legend",this.calendar=t,this.root=null,this.shown=!1,this.options=Vh}var e,r,o;return e=n,r=[{key:"setup",value:function(t){this.options=Object.assign(Object.assign({},Vh),t)}},{key:"paint",value:function(){var n=this.calendar.options.options.scale,e=this.options,r=e.enabled,o=e.itemSelector;if(!r||o&&t(o).empty())return this.destroy();this.shown=!0,this.root=t(o||this.calendar.options.options.itemSelector),this.root.select(Hh).empty()?this.root=this.root.append("div").attr("id",Hh.slice(1)):this.root=this.root.select(Hh);var i=function(t={}){for(const[n,e]of zh){const r=t[n];if(fd(r)){const o=qd(t);let i;if("symbol"===n){const{fill:n,stroke:e=(void 0===n&&fd(t.color)?"color":void 0)}=t;i={fill:n,stroke:e}}return e(Eh(n,r,i),Wh(o,r,t),(n=>fd(t[n])?Eh(n,t[n]):null))}}throw new Error("unknown legend type; no scale found")}(Object.assign(Object.assign({},n),this.options));return this.root.selectAll("*").remove(),this.root.append((function(){return i})),Promise.resolve()}},{key:"destroy",value:function(){return null!==this.root&&(this.root.remove(),this.root=null),Promise.resolve()}}],r&&we(e.prototype,r),o&&we(e,o),Object.defineProperty(e,"prototype",{writable:!1}),n}();export{Yh as default};//# sourceMappingURL=Legend.min.esm.js.map diff --git a/static/javascripts/cal-heatmap/plugins/Legend.min.esm.js.map b/static/javascripts/cal-heatmap/plugins/Legend.min.esm.js.map new file mode 100644 index 000000000..abc32f0ab --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/Legend.min.esm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Legend.min.esm.js","sources":["../../node_modules/core-js/internals/fails.js","../../node_modules/core-js/internals/descriptors.js","../../node_modules/core-js/internals/function-bind-native.js","../../node_modules/core-js/internals/function-uncurry-this.js","../../node_modules/core-js/internals/is-null-or-undefined.js","../../node_modules/core-js/internals/require-object-coercible.js","../../node_modules/core-js/internals/to-object.js","../../node_modules/core-js/internals/has-own-property.js","../../node_modules/core-js/internals/function-name.js","../../node_modules/core-js/internals/document-all.js","../../node_modules/core-js/internals/is-callable.js","../../node_modules/core-js/internals/global.js","../../node_modules/core-js/internals/define-global-property.js","../../node_modules/core-js/internals/shared-store.js","../../node_modules/core-js/internals/inspect-source.js","../../node_modules/core-js/internals/engine-v8-version.js","../../node_modules/core-js/internals/weak-map-basic-detection.js","../../node_modules/core-js/internals/is-object.js","../../node_modules/core-js/internals/document-create-element.js","../../node_modules/core-js/internals/ie8-dom-define.js","../../node_modules/core-js/internals/v8-prototype-define-bug.js","../../node_modules/core-js/internals/an-object.js","../../node_modules/core-js/internals/function-call.js","../../node_modules/core-js/internals/get-built-in.js","../../node_modules/core-js/internals/object-is-prototype-of.js","../../node_modules/core-js/internals/engine-user-agent.js","../../node_modules/core-js/internals/symbol-constructor-detection.js","../../node_modules/core-js/internals/use-symbol-as-uid.js","../../node_modules/core-js/internals/is-symbol.js","../../node_modules/core-js/internals/try-to-string.js","../../node_modules/core-js/internals/a-callable.js","../../node_modules/core-js/internals/get-method.js","../../node_modules/core-js/internals/ordinary-to-primitive.js","../../node_modules/core-js/internals/shared.js","../../node_modules/core-js/internals/uid.js","../../node_modules/core-js/internals/well-known-symbol.js","../../node_modules/core-js/internals/to-primitive.js","../../node_modules/core-js/internals/to-property-key.js","../../node_modules/core-js/internals/object-define-property.js","../../node_modules/core-js/internals/create-property-descriptor.js","../../node_modules/core-js/internals/internal-state.js","../../node_modules/core-js/internals/create-non-enumerable-property.js","../../node_modules/core-js/internals/shared-key.js","../../node_modules/core-js/internals/hidden-keys.js","../../node_modules/core-js/internals/make-built-in.js","../../node_modules/core-js/internals/define-built-in-accessor.js","../../node_modules/core-js/modules/es.function.name.js","../../node_modules/core-js/internals/object-property-is-enumerable.js","../../node_modules/core-js/internals/classof-raw.js","../../node_modules/core-js/internals/indexed-object.js","../../node_modules/core-js/internals/to-indexed-object.js","../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../node_modules/core-js/internals/define-built-in.js","../../node_modules/core-js/internals/math-trunc.js","../../node_modules/core-js/internals/to-integer-or-infinity.js","../../node_modules/core-js/internals/to-absolute-index.js","../../node_modules/core-js/internals/to-length.js","../../node_modules/core-js/internals/length-of-array-like.js","../../node_modules/core-js/internals/array-includes.js","../../node_modules/core-js/internals/object-keys-internal.js","../../node_modules/core-js/internals/enum-bug-keys.js","../../node_modules/core-js/internals/object-get-own-property-names.js","../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../node_modules/core-js/internals/own-keys.js","../../node_modules/core-js/internals/copy-constructor-properties.js","../../node_modules/core-js/internals/is-forced.js","../../node_modules/core-js/internals/export.js","../../node_modules/core-js/internals/object-keys.js","../../node_modules/core-js/internals/object-assign.js","../../node_modules/core-js/modules/es.object.assign.js","../../node_modules/core-js/internals/to-string-tag-support.js","../../node_modules/core-js/internals/classof.js","../../node_modules/core-js/internals/object-to-string.js","../../node_modules/core-js/modules/es.object.to-string.js","../../node_modules/core-js/internals/engine-is-node.js","../../node_modules/core-js/internals/function-uncurry-this-accessor.js","../../node_modules/core-js/internals/a-possible-prototype.js","../../node_modules/core-js/internals/object-set-prototype-of.js","../../node_modules/core-js/internals/set-to-string-tag.js","../../node_modules/core-js/internals/set-species.js","../../node_modules/core-js/internals/an-instance.js","../../node_modules/core-js/internals/is-constructor.js","../../node_modules/core-js/internals/task.js","../../node_modules/core-js/internals/a-constructor.js","../../node_modules/core-js/internals/species-constructor.js","../../node_modules/core-js/internals/function-apply.js","../../node_modules/core-js/internals/function-uncurry-this-clause.js","../../node_modules/core-js/internals/function-bind-context.js","../../node_modules/core-js/internals/html.js","../../node_modules/core-js/internals/array-slice.js","../../node_modules/core-js/internals/validate-arguments-length.js","../../node_modules/core-js/internals/engine-is-ios.js","../../node_modules/core-js/internals/queue.js","../../node_modules/core-js/internals/microtask.js","../../node_modules/core-js/internals/engine-is-ios-pebble.js","../../node_modules/core-js/internals/engine-is-webos-webkit.js","../../node_modules/core-js/internals/perform.js","../../node_modules/core-js/internals/promise-native-constructor.js","../../node_modules/core-js/internals/engine-is-deno.js","../../node_modules/core-js/internals/engine-is-browser.js","../../node_modules/core-js/internals/promise-constructor-detection.js","../../node_modules/core-js/internals/new-promise-capability.js","../../node_modules/core-js/modules/es.promise.constructor.js","../../node_modules/core-js/internals/host-report-errors.js","../../node_modules/core-js/internals/iterators.js","../../node_modules/core-js/internals/is-array-iterator-method.js","../../node_modules/core-js/internals/get-iterator-method.js","../../node_modules/core-js/internals/get-iterator.js","../../node_modules/core-js/internals/iterator-close.js","../../node_modules/core-js/internals/iterate.js","../../node_modules/core-js/internals/check-correctness-of-iteration.js","../../node_modules/core-js/internals/promise-statics-incorrect-iteration.js","../../node_modules/core-js/modules/es.promise.all.js","../../node_modules/core-js/modules/es.promise.catch.js","../../node_modules/core-js/modules/es.promise.race.js","../../node_modules/core-js/modules/es.promise.reject.js","../../node_modules/core-js/internals/promise-resolve.js","../../node_modules/core-js/modules/es.promise.resolve.js","../../node_modules/@observablehq/plot/src/defined.js","../../node_modules/isoformat/src/format.js","../../node_modules/isoformat/src/parse.js","../../node_modules/@observablehq/plot/src/time.js","../../node_modules/@observablehq/plot/src/options.js","../../node_modules/@observablehq/plot/src/scales/index.js","../../node_modules/@observablehq/plot/src/symbol.js","../../node_modules/@observablehq/plot/src/warnings.js","../../node_modules/@observablehq/plot/src/projection.js","../../node_modules/@observablehq/plot/src/context.js","../../node_modules/@observablehq/plot/src/scales/schemes.js","../../node_modules/@observablehq/plot/src/scales/quantitative.js","../../node_modules/@observablehq/plot/src/scales/diverging.js","../../node_modules/@observablehq/plot/src/scales/temporal.js","../../node_modules/@observablehq/plot/src/scales/ordinal.js","../../node_modules/@observablehq/plot/src/scales.js","../../node_modules/@observablehq/plot/src/format.js","../../node_modules/@observablehq/plot/src/memoize.js","../../node_modules/@observablehq/plot/src/style.js","../../node_modules/@observablehq/plot/src/axes.js","../../node_modules/@observablehq/plot/src/legends/swatches.js","../../node_modules/@observablehq/plot/src/legends.js","../../node_modules/@observablehq/plot/src/legends/ramp.js","../../../src/plugins/Legend.ts"],"sourcesContent":["module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.30.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineBuiltInAccessor(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var classof = require('../internals/classof-raw');\n\nmodule.exports = typeof process != 'undefined' && classof(process) == 'process';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","module.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","module.exports = {};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","import {ascending, descending} from \"d3\";\n\nexport function defined(x) {\n return x != null && !Number.isNaN(x);\n}\n\nexport function ascendingDefined(a, b) {\n return +defined(b) - +defined(a) || ascending(a, b);\n}\n\nexport function descendingDefined(a, b) {\n return +defined(b) - +defined(a) || descending(a, b);\n}\n\nexport function nonempty(x) {\n return x != null && `${x}` !== \"\";\n}\n\nexport function finite(x) {\n return isFinite(x) ? x : NaN;\n}\n\nexport function positive(x) {\n return x > 0 && isFinite(x) ? x : NaN;\n}\n\nexport function negative(x) {\n return x < 0 && isFinite(x) ? x : NaN;\n}\n","export default function format(date, fallback) {\n if (!(date instanceof Date)) date = new Date(+date);\n if (isNaN(date)) return typeof fallback === \"function\" ? fallback(date) : fallback;\n const hours = date.getUTCHours();\n const minutes = date.getUTCMinutes();\n const seconds = date.getUTCSeconds();\n const milliseconds = date.getUTCMilliseconds();\n return `${formatYear(date.getUTCFullYear(), 4)}-${pad(date.getUTCMonth() + 1, 2)}-${pad(date.getUTCDate(), 2)}${\n hours || minutes || seconds || milliseconds ? `T${pad(hours, 2)}:${pad(minutes, 2)}${\n seconds || milliseconds ? `:${pad(seconds, 2)}${\n milliseconds ? `.${pad(milliseconds, 3)}` : ``\n }` : ``\n }Z` : ``\n }`;\n}\n\nfunction formatYear(year) {\n return year < 0 ? `-${pad(-year, 6)}`\n : year > 9999 ? `+${pad(year, 6)}`\n : pad(year, 4);\n}\n\nfunction pad(value, width) {\n return `${value}`.padStart(width, \"0\");\n}\n","const re = /^(?:[-+]\\d{2})?\\d{4}(?:-\\d{2}(?:-\\d{2})?)?(?:T\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{3})?)?(?:Z|[-+]\\d{2}:?\\d{2})?)?$/;\n\nexport default function parse(string, fallback) {\n if (!re.test(string += \"\")) return typeof fallback === \"function\" ? fallback(string) : fallback;\n return new Date(string);\n}\n","import {utcSecond, utcMinute, utcHour, utcDay, utcWeek, utcMonth, utcYear} from \"d3\";\nimport {utcMonday, utcTuesday, utcWednesday, utcThursday, utcFriday, utcSaturday, utcSunday} from \"d3\";\nimport {timeSecond, timeMinute, timeHour, timeDay, timeWeek, timeMonth, timeYear} from \"d3\";\nimport {timeMonday, timeTuesday, timeWednesday, timeThursday, timeFriday, timeSaturday, timeSunday} from \"d3\";\n\nconst timeIntervals = new Map([\n [\"second\", timeSecond],\n [\"minute\", timeMinute],\n [\"hour\", timeHour],\n [\"day\", timeDay],\n [\"week\", timeWeek],\n [\"month\", timeMonth],\n [\"quarter\", timeMonth.every(3)],\n [\"half\", timeMonth.every(6)],\n [\"year\", timeYear],\n [\"monday\", timeMonday],\n [\"tuesday\", timeTuesday],\n [\"wednesday\", timeWednesday],\n [\"thursday\", timeThursday],\n [\"friday\", timeFriday],\n [\"saturday\", timeSaturday],\n [\"sunday\", timeSunday]\n]);\n\nconst utcIntervals = new Map([\n [\"second\", utcSecond],\n [\"minute\", utcMinute],\n [\"hour\", utcHour],\n [\"day\", utcDay],\n [\"week\", utcWeek],\n [\"month\", utcMonth],\n [\"quarter\", utcMonth.every(3)],\n [\"half\", utcMonth.every(6)],\n [\"year\", utcYear],\n [\"monday\", utcMonday],\n [\"tuesday\", utcTuesday],\n [\"wednesday\", utcWednesday],\n [\"thursday\", utcThursday],\n [\"friday\", utcFriday],\n [\"saturday\", utcSaturday],\n [\"sunday\", utcSunday]\n]);\n\nexport function maybeTimeInterval(interval) {\n const i = timeIntervals.get(`${interval}`.toLowerCase());\n if (!i) throw new Error(`unknown interval: ${interval}`);\n return i;\n}\n\nexport function maybeUtcInterval(interval) {\n const i = utcIntervals.get(`${interval}`.toLowerCase());\n if (!i) throw new Error(`unknown interval: ${interval}`);\n return i;\n}\n","import {parse as isoParse} from \"isoformat\";\nimport {color, descending, range as rangei, quantile} from \"d3\";\nimport {maybeTimeInterval, maybeUtcInterval} from \"./time.js\";\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray\nexport const TypedArray = Object.getPrototypeOf(Uint8Array);\nconst objectToString = Object.prototype.toString;\n\nexport function valueof(data, value, type) {\n const valueType = typeof value;\n return valueType === \"string\"\n ? maybeTypedMap(data, field(value), type)\n : valueType === \"function\"\n ? maybeTypedMap(data, value, type)\n : valueType === \"number\" || value instanceof Date || valueType === \"boolean\"\n ? map(data, constant(value), type)\n : typeof value?.transform === \"function\"\n ? maybeTypedArrayify(value.transform(data), type)\n : maybeTypedArrayify(value, type);\n}\n\nfunction maybeTypedMap(data, f, type) {\n return map(data, type?.prototype instanceof TypedArray ? floater(f) : f, type);\n}\n\nfunction maybeTypedArrayify(data, type) {\n return type === undefined\n ? arrayify(data) // preserve undefined type\n : data instanceof type\n ? data\n : type.prototype instanceof TypedArray && !(data instanceof TypedArray)\n ? type.from(data, coerceNumber)\n : type.from(data);\n}\n\nfunction floater(f) {\n return (d, i) => coerceNumber(f(d, i));\n}\n\nexport const field = (name) => (d) => d[name];\nexport const indexOf = {transform: range};\nexport const identity = {transform: (d) => d};\nexport const zero = () => 0;\nexport const one = () => 1;\nexport const yes = () => true;\nexport const string = (x) => (x == null ? x : `${x}`);\nexport const number = (x) => (x == null ? x : +x);\nexport const boolean = (x) => (x == null ? x : !!x);\nexport const first = (x) => (x ? x[0] : undefined);\nexport const second = (x) => (x ? x[1] : undefined);\nexport const third = (x) => (x ? x[2] : undefined);\nexport const constant = (x) => () => x;\n\n// Converts a string like “p25†into a function that takes an index I and an\n// accessor function f, returning the corresponding percentile value.\nexport function percentile(reduce) {\n const p = +`${reduce}`.slice(1) / 100;\n return (I, f) => quantile(I, p, f);\n}\n\n// If the values are specified as a typed array, no coercion is required.\nexport function coerceNumbers(values) {\n return values instanceof TypedArray ? values : map(values, coerceNumber, Float64Array);\n}\n\n// Unlike Mark’s number, here we want to convert null and undefined to NaN since\n// the result will be stored in a Float64Array and we don’t want null to be\n// coerced to zero. We use Number instead of unary + to allow BigInt coercion.\nfunction coerceNumber(x) {\n return x == null ? NaN : Number(x);\n}\n\nexport function coerceDates(values) {\n return map(values, coerceDate);\n}\n\n// When coercing strings to dates, we only want to allow the ISO 8601 format\n// since the built-in string parsing of the Date constructor varies across\n// browsers. (In the future, this could be made more liberal if desired, though\n// it is still generally preferable to do date parsing yourself explicitly,\n// rather than rely on Plot.) Any non-string values are coerced to number first\n// and treated as milliseconds since UNIX epoch.\nexport function coerceDate(x) {\n return x instanceof Date && !isNaN(x)\n ? x\n : typeof x === \"string\"\n ? isoParse(x)\n : x == null || isNaN((x = +x))\n ? undefined\n : new Date(x);\n}\n\n// Some channels may allow a string constant to be specified; to differentiate\n// string constants (e.g., \"red\") from named fields (e.g., \"date\"), this\n// function tests whether the given value is a CSS color string and returns a\n// tuple [channel, constant] where one of the two is undefined, and the other is\n// the given value. If you wish to reference a named field that is also a valid\n// CSS color, use an accessor (d => d.red) instead.\nexport function maybeColorChannel(value, defaultValue) {\n if (value === undefined) value = defaultValue;\n return value === null ? [undefined, \"none\"] : isColor(value) ? [undefined, value] : [value, undefined];\n}\n\n// Similar to maybeColorChannel, this tests whether the given value is a number\n// indicating a constant, and otherwise assumes that it’s a channel value.\nexport function maybeNumberChannel(value, defaultValue) {\n if (value === undefined) value = defaultValue;\n return value === null || typeof value === \"number\" ? [undefined, value] : [value, undefined];\n}\n\n// Validates the specified optional string against the allowed list of keywords.\nexport function maybeKeyword(input, name, allowed) {\n if (input != null) return keyword(input, name, allowed);\n}\n\n// Validates the specified required string against the allowed list of keywords.\nexport function keyword(input, name, allowed) {\n const i = `${input}`.toLowerCase();\n if (!allowed.includes(i)) throw new Error(`invalid ${name}: ${input}`);\n return i;\n}\n\n// Promotes the specified data to an array as needed.\nexport function arrayify(data) {\n return data == null || data instanceof Array || data instanceof TypedArray ? data : Array.from(data);\n}\n\n// An optimization of type.from(values, f): if the given values are already an\n// instanceof the desired array type, the faster values.map method is used.\nexport function map(values, f, type = Array) {\n return values == null ? values : values instanceof type ? values.map(f) : type.from(values, f);\n}\n\n// An optimization of type.from(values): if the given values are already an\n// instanceof the desired array type, the faster values.slice method is used.\nexport function slice(values, type = Array) {\n return values instanceof type ? values.slice() : type.from(values);\n}\n\n// Disambiguates an options object (e.g., {y: \"x2\"}) from a primitive value.\nexport function isObject(option) {\n return option?.toString === objectToString;\n}\n\n// Disambiguates a scale options object (e.g., {color: {type: \"linear\"}}) from\n// some other option (e.g., {color: \"red\"}). When creating standalone legends,\n// this is used to test whether a scale is defined; this should be consistent\n// with inferScaleType when there are no channels associated with the scale, and\n// if this returns true, then normalizeScale must return non-null.\nexport function isScaleOptions(option) {\n return isObject(option) && (option.type !== undefined || option.domain !== undefined);\n}\n\n// Disambiguates an options object (e.g., {y: \"x2\"}) from a channel value\n// definition expressed as a channel transform (e.g., {transform: …}).\nexport function isOptions(option) {\n return isObject(option) && typeof option.transform !== \"function\";\n}\n\n// Disambiguates a sort transform (e.g., {sort: \"date\"}) from a channel domain\n// sort definition (e.g., {sort: {y: \"x\"}}).\nexport function isDomainSort(sort) {\n return isOptions(sort) && sort.value === undefined && sort.channel === undefined;\n}\n\n// For marks specified either as [0, x] or [x1, x2], such as areas and bars.\nexport function maybeZero(x, x1, x2, x3 = identity) {\n if (x1 === undefined && x2 === undefined) {\n // {x} or {}\n (x1 = 0), (x2 = x === undefined ? x3 : x);\n } else if (x1 === undefined) {\n // {x, x2} or {x2}\n x1 = x === undefined ? 0 : x;\n } else if (x2 === undefined) {\n // {x, x1} or {x1}\n x2 = x === undefined ? 0 : x;\n }\n return [x1, x2];\n}\n\n// For marks that have x and y channels (e.g., cell, dot, line, text).\nexport function maybeTuple(x, y) {\n return x === undefined && y === undefined ? [first, second] : [x, y];\n}\n\n// A helper for extracting the z channel, if it is variable. Used by transforms\n// that require series, such as moving average and normalize.\nexport function maybeZ({z, fill, stroke} = {}) {\n if (z === undefined) [z] = maybeColorChannel(fill);\n if (z === undefined) [z] = maybeColorChannel(stroke);\n return z;\n}\n\n// Returns a Uint32Array with elements [0, 1, 2, … data.length - 1].\nexport function range(data) {\n const n = data.length;\n const r = new Uint32Array(n);\n for (let i = 0; i < n; ++i) r[i] = i;\n return r;\n}\n\n// Returns a filtered range of data given the test function.\nexport function where(data, test) {\n return range(data).filter((i) => test(data[i], i, data));\n}\n\n// Returns an array [values[index[0]], values[index[1]], …].\nexport function take(values, index) {\n return map(index, (i) => values[i]);\n}\n\n// Based on InternMap (d3.group).\nexport function keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n\nexport function maybeInput(key, options) {\n if (options[key] !== undefined) return options[key];\n switch (key) {\n case \"x1\":\n case \"x2\":\n key = \"x\";\n break;\n case \"y1\":\n case \"y2\":\n key = \"y\";\n break;\n }\n return options[key];\n}\n\nexport function column(source) {\n // Defines a column whose values are lazily populated by calling the returned\n // setter. If the given source is labeled, the label is propagated to the\n // returned column definition.\n let value;\n return [\n {\n transform: () => value,\n label: labelof(source)\n },\n (v) => (value = v)\n ];\n}\n\n// Like column, but allows the source to be null.\nexport function maybeColumn(source) {\n return source == null ? [source] : column(source);\n}\n\nexport function labelof(value, defaultValue) {\n return typeof value === \"string\" ? value : value && value.label !== undefined ? value.label : defaultValue;\n}\n\n// Assuming that both x1 and x2 and lazy columns (per above), this derives a new\n// a column that’s the average of the two, and which inherits the column label\n// (if any). Both input columns are assumed to be quantitative. If either column\n// is temporal, the returned column is also temporal.\nexport function mid(x1, x2) {\n return {\n transform(data) {\n const X1 = x1.transform(data);\n const X2 = x2.transform(data);\n return isTemporal(X1) || isTemporal(X2)\n ? map(X1, (_, i) => new Date((+X1[i] + +X2[i]) / 2))\n : map(X1, (_, i) => (+X1[i] + +X2[i]) / 2, Float64Array);\n },\n label: x1.label\n };\n}\n\n// If interval is not nullish, converts interval shorthand such as a number (for\n// multiples) or a time interval name (such as “dayâ€) to a {floor, offset,\n// range} object similar to a D3 time interval.\nexport function maybeInterval(interval, type) {\n if (interval == null) return;\n if (typeof interval === \"number\") {\n if (0 < interval && interval < 1 && Number.isInteger(1 / interval)) interval = -1 / interval;\n const n = Math.abs(interval);\n return interval < 0\n ? {\n floor: (d) => Math.floor(d * n) / n,\n offset: (d) => (d * n + 1) / n, // note: no optional step for simplicity\n range: (lo, hi) => rangei(Math.ceil(lo * n), hi * n).map((x) => x / n)\n }\n : {\n floor: (d) => Math.floor(d / n) * n,\n offset: (d) => d + n, // note: no optional step for simplicity\n range: (lo, hi) => rangei(Math.ceil(lo / n), hi / n).map((x) => x * n)\n };\n }\n if (typeof interval === \"string\") return (type === \"time\" ? maybeTimeInterval : maybeUtcInterval)(interval);\n if (typeof interval.floor !== \"function\") throw new Error(\"invalid interval; missing floor method\");\n if (typeof interval.offset !== \"function\") throw new Error(\"invalid interval; missing offset method\");\n return interval;\n}\n\n// Like maybeInterval, but requires a range method too.\nexport function maybeRangeInterval(interval, type) {\n interval = maybeInterval(interval, type);\n if (interval && typeof interval.range !== \"function\") throw new Error(\"invalid interval: missing range method\");\n return interval;\n}\n\n// Like maybeRangeInterval, but requires a ceil method too.\nexport function maybeNiceInterval(interval, type) {\n interval = maybeRangeInterval(interval, type);\n if (interval && typeof interval.ceil !== \"function\") throw new Error(\"invalid interval: missing ceil method\");\n return interval;\n}\n\n// This distinguishes between per-dimension options and a standalone value.\nexport function maybeValue(value) {\n return value === undefined || isOptions(value) ? value : {value};\n}\n\n// Coerces the given channel values (if any) to numbers. This is useful when\n// values will be interpolated into other code, such as an SVG transform, and\n// where we don’t wish to allow unexpected behavior for weird input.\nexport function numberChannel(source) {\n return source == null\n ? null\n : {\n transform: (data) => valueof(data, source, Float64Array),\n label: labelof(source)\n };\n}\n\nexport function isTuples(data) {\n if (!isIterable(data)) return false;\n for (const d of data) {\n if (d == null) continue;\n return typeof d === \"object\" && \"0\" in d && \"1\" in d;\n }\n}\n\nexport function isIterable(value) {\n return value && typeof value[Symbol.iterator] === \"function\";\n}\n\nexport function isTextual(values) {\n for (const value of values) {\n if (value == null) continue;\n return typeof value !== \"object\" || value instanceof Date;\n }\n}\n\nexport function isOrdinal(values) {\n for (const value of values) {\n if (value == null) continue;\n const type = typeof value;\n return type === \"string\" || type === \"boolean\";\n }\n}\n\nexport function isTemporal(values) {\n for (const value of values) {\n if (value == null) continue;\n return value instanceof Date;\n }\n}\n\n// Are these strings that might represent dates? This is stricter than ISO 8601\n// because we want to ignore false positives on numbers; for example, the string\n// \"1192\" is more likely to represent a number than a date even though it is\n// valid ISO 8601 representing 1192-01-01.\nexport function isTemporalString(values) {\n for (const value of values) {\n if (value == null) continue;\n return typeof value === \"string\" && isNaN(value) && isoParse(value);\n }\n}\n\n// Are these strings that might represent numbers? This is stricter than\n// coercion because we want to ignore false positives on e.g. empty strings.\nexport function isNumericString(values) {\n for (const value of values) {\n if (value == null) continue;\n if (typeof value !== \"string\") return false;\n if (!value.trim()) continue;\n return !isNaN(value);\n }\n}\n\nexport function isNumeric(values) {\n for (const value of values) {\n if (value == null) continue;\n return typeof value === \"number\";\n }\n}\n\n// Returns true if every non-null value in the specified iterable of values\n// passes the specified predicate, and there is at least one non-null value;\n// returns false if at least one non-null value does not pass the specified\n// predicate; otherwise returns undefined (as if all values are null).\nexport function isEvery(values, is) {\n let every;\n for (const value of values) {\n if (value == null) continue;\n if (!is(value)) return false;\n every = true;\n }\n return every;\n}\n\n// Mostly relies on d3-color, with a few extra color keywords. Currently this\n// strictly requires that the value be a string; we might want to apply string\n// coercion here, though note that d3-color instances would need to support\n// valueOf to work correctly with InternMap.\n// https://www.w3.org/TR/SVG11/painting.html#SpecifyingPaint\nexport function isColor(value) {\n if (typeof value !== \"string\") return false;\n value = value.toLowerCase().trim();\n return (\n value === \"none\" ||\n value === \"currentcolor\" ||\n (value.startsWith(\"url(\") && value.endsWith(\")\")) || // <funciri>, e.g. pattern or gradient\n (value.startsWith(\"var(\") && value.endsWith(\")\")) || // CSS variable\n color(value) !== null\n );\n}\n\nexport function isOpacity(value) {\n return typeof value === \"number\" && ((0 <= value && value <= 1) || isNaN(value));\n}\n\nexport function isNoneish(value) {\n return value == null || isNone(value);\n}\n\nexport function isNone(value) {\n return /^\\s*none\\s*$/i.test(value);\n}\n\nexport function isRound(value) {\n return /^\\s*round\\s*$/i.test(value);\n}\n\nexport function maybeFrameAnchor(value = \"middle\") {\n return keyword(value, \"frameAnchor\", [\n \"middle\",\n \"top-left\",\n \"top\",\n \"top-right\",\n \"right\",\n \"bottom-right\",\n \"bottom\",\n \"bottom-left\",\n \"left\"\n ]);\n}\n\n// Like a sort comparator, returns a positive value if the given array of values\n// is in ascending order, a negative value if the values are in descending\n// order. Assumes monotonicity; only tests the first and last values.\nexport function orderof(values) {\n if (values == null) return;\n const first = values[0];\n const last = values[values.length - 1];\n return descending(first, last);\n}\n\n// Unlike {...defaults, ...options}, this ensures that any undefined (but\n// present) properties in options inherit the given default value.\nexport function inherit(options = {}, ...rest) {\n let o = options;\n for (const defaults of rest) {\n for (const key in defaults) {\n if (o[key] === undefined) {\n const value = defaults[key];\n if (o === options) o = {...o, [key]: value};\n else o[key] = value;\n }\n }\n }\n return o;\n}\n\n// Given an iterable of named things (objects with a name property), returns a\n// corresponding object with properties associated with the given name.\nexport function named(things) {\n console.warn(\"named iterables are deprecated; please use an object instead\");\n const names = new Set();\n return Object.fromEntries(\n Array.from(things, (thing) => {\n const {name} = thing;\n if (name == null) throw new Error(\"missing name\");\n const key = `${name}`;\n if (key === \"__proto__\") throw new Error(`illegal name: ${key}`);\n if (names.has(key)) throw new Error(`duplicate name: ${key}`);\n names.add(key);\n return [name, thing];\n })\n );\n}\n\nexport function maybeNamed(things) {\n return isIterable(things) ? named(things) : things;\n}\n","// Positional scales have associated axes, and for ordinal data, a point or band\n// scale is used instead of an ordinal scale.\nexport const position = Symbol(\"position\");\n\n// Color scales default to the turbo interpolator for quantitative data, and to\n// the Tableau10 scheme for ordinal data. Color scales may also have an\n// associated legend.\nexport const color = Symbol(\"color\");\n\n// Radius scales default to the sqrt type, have a default range of [0, 3], and a\n// default domain from 0 to the median first quartile of associated channels.\nexport const radius = Symbol(\"radius\");\n\n// Length scales default to the linear type, have a default range of [0, 12],\n// and a default domain from 0 to the median median of associated channels.\nexport const length = Symbol(\"length\");\n\n// Opacity scales have a default range of [0, 1], and a default domain from 0 to\n// the maximum value of associated channels.\nexport const opacity = Symbol(\"opacity\");\n\n// Symbol scales have a default range of categorical symbols.\nexport const symbol = Symbol(\"symbol\");\n\n// TODO Rather than hard-coding the list of known scale names, collect the names\n// and categories for each plot specification, so that custom marks can register\n// custom scales.\nexport const registry = new Map([\n [\"x\", position],\n [\"y\", position],\n [\"fx\", position],\n [\"fy\", position],\n [\"r\", radius],\n [\"color\", color],\n [\"opacity\", opacity],\n [\"symbol\", symbol],\n [\"length\", length]\n]);\n","import {symbolAsterisk, symbolDiamond2, symbolPlus, symbolSquare2, symbolTriangle2, symbolTimes} from \"d3\";\nimport {symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye} from \"d3\";\n\nexport const sqrt3 = Math.sqrt(3);\nexport const sqrt4_3 = 2 / sqrt3;\n\nconst symbolHexagon = {\n draw(context, size) {\n const rx = Math.sqrt(size / Math.PI),\n ry = rx * sqrt4_3,\n hy = ry / 2;\n context.moveTo(0, ry);\n context.lineTo(rx, hy);\n context.lineTo(rx, -hy);\n context.lineTo(0, -ry);\n context.lineTo(-rx, -hy);\n context.lineTo(-rx, hy);\n context.closePath();\n }\n};\n\nconst symbols = new Map([\n [\"asterisk\", symbolAsterisk],\n [\"circle\", symbolCircle],\n [\"cross\", symbolCross],\n [\"diamond\", symbolDiamond],\n [\"diamond2\", symbolDiamond2],\n [\"hexagon\", symbolHexagon],\n [\"plus\", symbolPlus],\n [\"square\", symbolSquare],\n [\"square2\", symbolSquare2],\n [\"star\", symbolStar],\n [\"times\", symbolTimes],\n [\"triangle\", symbolTriangle],\n [\"triangle2\", symbolTriangle2],\n [\"wye\", symbolWye]\n]);\n\nfunction isSymbolObject(value) {\n return value && typeof value.draw === \"function\";\n}\n\nexport function isSymbol(value) {\n if (isSymbolObject(value)) return true;\n if (typeof value !== \"string\") return false;\n return symbols.has(value.toLowerCase());\n}\n\nexport function maybeSymbol(symbol) {\n if (symbol == null || isSymbolObject(symbol)) return symbol;\n const value = symbols.get(`${symbol}`.toLowerCase());\n if (value) return value;\n throw new Error(`invalid symbol: ${symbol}`);\n}\n\nexport function maybeSymbolChannel(symbol) {\n if (symbol == null || isSymbolObject(symbol)) return [undefined, symbol];\n if (typeof symbol === \"string\") {\n const value = symbols.get(`${symbol}`.toLowerCase());\n if (value) return [undefined, value];\n }\n return [symbol, undefined];\n}\n","let warnings = 0;\n\nexport function consumeWarnings() {\n const w = warnings;\n warnings = 0;\n return w;\n}\n\nexport function warn(message) {\n console.warn(message);\n ++warnings;\n}\n","import {\n geoAlbers,\n geoAlbersUsa,\n geoAzimuthalEqualArea,\n geoAzimuthalEquidistant,\n geoClipRectangle,\n geoConicConformal,\n geoConicEqualArea,\n geoConicEquidistant,\n geoEqualEarth,\n geoEquirectangular,\n geoGnomonic,\n geoMercator,\n geoOrthographic,\n geoPath,\n geoStereographic,\n geoTransform,\n geoTransverseMercator\n} from \"d3\";\nimport {valueObject} from \"./channel.js\";\nimport {coerceNumbers, constant, isObject} from \"./options.js\";\nimport {warn} from \"./warnings.js\";\n\nconst pi = Math.PI;\nconst tau = 2 * pi;\nconst defaultAspectRatio = 0.618;\n\nexport function createProjection(\n {\n projection,\n inset: globalInset = 0,\n insetTop = globalInset,\n insetRight = globalInset,\n insetBottom = globalInset,\n insetLeft = globalInset\n } = {},\n dimensions\n) {\n if (projection == null) return;\n if (typeof projection.stream === \"function\") return projection; // d3 projection\n let options;\n let domain;\n let clip = \"frame\";\n\n // If the projection was specified as an object with additional options,\n // extract those. The order of precedence for insetTop (and other insets) is:\n // projection.insetTop, projection.inset, (global) insetTop, (global) inset.\n // Any other options on this object will be passed through to the initializer.\n if (isObject(projection)) {\n let inset;\n ({\n type: projection,\n domain,\n inset,\n insetTop = inset !== undefined ? inset : insetTop,\n insetRight = inset !== undefined ? inset : insetRight,\n insetBottom = inset !== undefined ? inset : insetBottom,\n insetLeft = inset !== undefined ? inset : insetLeft,\n clip = clip,\n ...options\n } = projection);\n if (projection == null) return;\n }\n\n // For named projections, retrieve the corresponding projection initializer.\n if (typeof projection !== \"function\") ({type: projection} = namedProjection(projection));\n\n // Compute the frame dimensions and invoke the projection initializer.\n const {width, height, marginLeft, marginRight, marginTop, marginBottom} = dimensions;\n const dx = width - marginLeft - marginRight - insetLeft - insetRight;\n const dy = height - marginTop - marginBottom - insetTop - insetBottom;\n projection = projection?.({width: dx, height: dy, clip, ...options});\n\n // The projection initializer might decide to not use a projection.\n if (projection == null) return;\n clip = maybePostClip(clip, marginLeft, marginTop, width - marginRight, height - marginBottom);\n\n // Translate the origin to the top-left corner, respecting margins and insets.\n let tx = marginLeft + insetLeft;\n let ty = marginTop + insetTop;\n let transform;\n\n // If a domain is specified, fit the projection to the frame.\n if (domain != null) {\n const [[x0, y0], [x1, y1]] = geoPath(projection).bounds(domain);\n const k = Math.min(dx / (x1 - x0), dy / (y1 - y0));\n if (k > 0) {\n tx -= (k * (x0 + x1) - dx) / 2;\n ty -= (k * (y0 + y1) - dy) / 2;\n transform = geoTransform({\n point(x, y) {\n this.stream.point(x * k + tx, y * k + ty);\n }\n });\n } else {\n warn(`Warning: the projection could not be fit to the specified domain; using the default scale.`);\n }\n }\n\n transform ??=\n tx === 0 && ty === 0\n ? identity()\n : geoTransform({\n point(x, y) {\n this.stream.point(x + tx, y + ty);\n }\n });\n\n return {stream: (s) => projection.stream(transform.stream(clip(s)))};\n}\n\nfunction namedProjection(projection) {\n switch (`${projection}`.toLowerCase()) {\n case \"albers-usa\":\n return scaleProjection(geoAlbersUsa, 0.7463, 0.4673);\n case \"albers\":\n return conicProjection(geoAlbers, 0.7463, 0.4673);\n case \"azimuthal-equal-area\":\n return scaleProjection(geoAzimuthalEqualArea, 4, 4);\n case \"azimuthal-equidistant\":\n return scaleProjection(geoAzimuthalEquidistant, tau, tau);\n case \"conic-conformal\":\n return conicProjection(geoConicConformal, tau, tau);\n case \"conic-equal-area\":\n return conicProjection(geoConicEqualArea, 6.1702, 2.9781);\n case \"conic-equidistant\":\n return conicProjection(geoConicEquidistant, 7.312, 3.6282);\n case \"equal-earth\":\n return scaleProjection(geoEqualEarth, 5.4133, 2.6347);\n case \"equirectangular\":\n return scaleProjection(geoEquirectangular, tau, pi);\n case \"gnomonic\":\n return scaleProjection(geoGnomonic, 3.4641, 3.4641);\n case \"identity\":\n return {type: identity};\n case \"reflect-y\":\n return {type: reflectY};\n case \"mercator\":\n return scaleProjection(geoMercator, tau, tau);\n case \"orthographic\":\n return scaleProjection(geoOrthographic, 2, 2);\n case \"stereographic\":\n return scaleProjection(geoStereographic, 2, 2);\n case \"transverse-mercator\":\n return scaleProjection(geoTransverseMercator, tau, tau);\n default:\n throw new Error(`unknown projection type: ${projection}`);\n }\n}\n\nfunction maybePostClip(clip, x1, y1, x2, y2) {\n if (clip === false || clip == null || typeof clip === \"number\") return (s) => s;\n if (clip === true) clip = \"frame\";\n switch (`${clip}`.toLowerCase()) {\n case \"frame\":\n return geoClipRectangle(x1, y1, x2, y2);\n default:\n throw new Error(`unknown projection clip type: ${clip}`);\n }\n}\n\nfunction scaleProjection(createProjection, kx, ky) {\n return {\n type: ({width, height, rotate, precision = 0.15, clip}) => {\n const projection = createProjection();\n if (precision != null) projection.precision?.(precision);\n if (rotate != null) projection.rotate?.(rotate);\n if (typeof clip === \"number\") projection.clipAngle?.(clip);\n projection.scale(Math.min(width / kx, height / ky));\n projection.translate([width / 2, height / 2]);\n return projection;\n },\n aspectRatio: ky / kx\n };\n}\n\nfunction conicProjection(createProjection, kx, ky) {\n const {type, aspectRatio} = scaleProjection(createProjection, kx, ky);\n return {\n type: (options) => {\n const {parallels, domain, width, height} = options;\n const projection = type(options);\n if (parallels != null) {\n projection.parallels(parallels);\n if (domain === undefined) {\n projection.fitSize([width, height], {type: \"Sphere\"});\n }\n }\n return projection;\n },\n aspectRatio\n };\n}\n\nconst identity = constant({stream: (stream) => stream});\n\nconst reflectY = constant(\n geoTransform({\n point(x, y) {\n this.stream.point(x, -y);\n }\n })\n);\n\n// Applies a point-wise projection to the given paired x and y channels.\n// Note: mutates values!\nexport function maybeProject(cx, cy, channels, values, context) {\n const x = channels[cx] && channels[cx].scale === \"x\";\n const y = channels[cy] && channels[cy].scale === \"y\";\n if (x && y) {\n project(cx, cy, values, context.projection);\n } else if (x) {\n throw new Error(`projection requires paired x and y channels; ${cx} is missing ${cy}`);\n } else if (y) {\n throw new Error(`projection requires paired x and y channels; ${cy} is missing ${cx}`);\n }\n}\n\nfunction project(cx, cy, values, projection) {\n const x = values[cx];\n const y = values[cy];\n const n = x.length;\n const X = (values[cx] = new Float64Array(n).fill(NaN));\n const Y = (values[cy] = new Float64Array(n).fill(NaN));\n let i;\n const stream = projection.stream({\n point(x, y) {\n X[i] = x;\n Y[i] = y;\n }\n });\n for (i = 0; i < n; ++i) {\n stream.point(x[i], y[i]);\n }\n}\n\n// When a named projection is specified, we can use its natural aspect ratio to\n// determine a good value for the projection’s height based on the desired\n// width. When we don’t have a way to know, the golden ratio is our best guess.\n// Due to a circular dependency (we need to know the height before we can\n// construct the projection), we have to test the raw projection option rather\n// than the materialized projection; therefore we must be extremely careful that\n// the logic of this function exactly matches Projection above!\nexport function projectionAspectRatio(projection, marks) {\n if (typeof projection?.stream === \"function\") return defaultAspectRatio;\n if (isObject(projection)) projection = projection.type;\n if (projection == null) return hasGeometry(marks) ? defaultAspectRatio : undefined;\n if (typeof projection !== \"function\") {\n const {aspectRatio} = namedProjection(projection);\n if (aspectRatio) return aspectRatio;\n }\n return defaultAspectRatio;\n}\n\n// Extract the (possibly) scaled values for the x and y channels, and apply the\n// projection if any.\nexport function applyPosition(channels, scales, context) {\n const {x, y} = channels;\n let position = {};\n if (x) position.x = x;\n if (y) position.y = y;\n position = valueObject(position, scales);\n if (context.projection) maybeProject(\"x\", \"y\", channels, position, context);\n if (x) position.x = coerceNumbers(position.x);\n if (y) position.y = coerceNumbers(position.y);\n return position;\n}\n\nfunction hasGeometry(marks) {\n for (const mark of marks) if (mark.channels.geometry) return true;\n return false;\n}\n","import {creator, select} from \"d3\";\nimport {createProjection} from \"./projection.js\";\n\nexport function createContext(options = {}, dimensions, className) {\n const {document = typeof window !== \"undefined\" ? window.document : undefined} = options;\n return {document, className, projection: createProjection(options, dimensions)};\n}\n\nexport function create(name, {document}) {\n return select(creator(name).call(document.documentElement));\n}\n","import {\n interpolateBlues,\n interpolateBrBG,\n interpolateBuGn,\n interpolateBuPu,\n interpolateGnBu,\n interpolateGreens,\n interpolateGreys,\n interpolateOranges,\n interpolateOrRd,\n interpolatePiYG,\n interpolatePRGn,\n interpolatePuBu,\n interpolatePuBuGn,\n interpolatePuOr,\n interpolatePuRd,\n interpolatePurples,\n interpolateRdBu,\n interpolateRdGy,\n interpolateRdPu,\n interpolateRdYlBu,\n interpolateRdYlGn,\n interpolateReds,\n interpolateSpectral,\n interpolateYlGn,\n interpolateYlGnBu,\n interpolateYlOrBr,\n interpolateYlOrRd,\n interpolateTurbo,\n interpolateViridis,\n interpolateMagma,\n interpolateInferno,\n interpolatePlasma,\n interpolateCividis,\n interpolateCubehelixDefault,\n interpolateWarm,\n interpolateCool,\n interpolateRainbow,\n interpolateSinebow,\n quantize,\n schemeAccent,\n schemeBlues,\n schemeBrBG,\n schemeBuGn,\n schemeBuPu,\n schemeCategory10,\n schemeDark2,\n schemeGnBu,\n schemeGreens,\n schemeGreys,\n schemeOranges,\n schemeOrRd,\n schemePaired,\n schemePastel1,\n schemePastel2,\n schemePiYG,\n schemePRGn,\n schemePuBu,\n schemePuBuGn,\n schemePuOr,\n schemePuRd,\n schemePurples,\n schemeRdBu,\n schemeRdGy,\n schemeRdPu,\n schemeRdYlBu,\n schemeRdYlGn,\n schemeReds,\n schemeSet1,\n schemeSet2,\n schemeSet3,\n schemeSpectral,\n schemeTableau10,\n schemeYlGn,\n schemeYlGnBu,\n schemeYlOrBr,\n schemeYlOrRd\n} from \"d3\";\n\nconst ordinalSchemes = new Map([\n // categorical\n [\"accent\", schemeAccent],\n [\"category10\", schemeCategory10],\n [\"dark2\", schemeDark2],\n [\"paired\", schemePaired],\n [\"pastel1\", schemePastel1],\n [\"pastel2\", schemePastel2],\n [\"set1\", schemeSet1],\n [\"set2\", schemeSet2],\n [\"set3\", schemeSet3],\n [\"tableau10\", schemeTableau10],\n\n // diverging\n [\"brbg\", scheme11(schemeBrBG, interpolateBrBG)],\n [\"prgn\", scheme11(schemePRGn, interpolatePRGn)],\n [\"piyg\", scheme11(schemePiYG, interpolatePiYG)],\n [\"puor\", scheme11(schemePuOr, interpolatePuOr)],\n [\"rdbu\", scheme11(schemeRdBu, interpolateRdBu)],\n [\"rdgy\", scheme11(schemeRdGy, interpolateRdGy)],\n [\"rdylbu\", scheme11(schemeRdYlBu, interpolateRdYlBu)],\n [\"rdylgn\", scheme11(schemeRdYlGn, interpolateRdYlGn)],\n [\"spectral\", scheme11(schemeSpectral, interpolateSpectral)],\n\n // reversed diverging (for temperature data)\n [\"burd\", scheme11r(schemeRdBu, interpolateRdBu)],\n [\"buylrd\", scheme11r(schemeRdYlBu, interpolateRdYlBu)],\n\n // sequential (single-hue)\n [\"blues\", scheme9(schemeBlues, interpolateBlues)],\n [\"greens\", scheme9(schemeGreens, interpolateGreens)],\n [\"greys\", scheme9(schemeGreys, interpolateGreys)],\n [\"oranges\", scheme9(schemeOranges, interpolateOranges)],\n [\"purples\", scheme9(schemePurples, interpolatePurples)],\n [\"reds\", scheme9(schemeReds, interpolateReds)],\n\n // sequential (multi-hue)\n [\"turbo\", schemei(interpolateTurbo)],\n [\"viridis\", schemei(interpolateViridis)],\n [\"magma\", schemei(interpolateMagma)],\n [\"inferno\", schemei(interpolateInferno)],\n [\"plasma\", schemei(interpolatePlasma)],\n [\"cividis\", schemei(interpolateCividis)],\n [\"cubehelix\", schemei(interpolateCubehelixDefault)],\n [\"warm\", schemei(interpolateWarm)],\n [\"cool\", schemei(interpolateCool)],\n [\"bugn\", scheme9(schemeBuGn, interpolateBuGn)],\n [\"bupu\", scheme9(schemeBuPu, interpolateBuPu)],\n [\"gnbu\", scheme9(schemeGnBu, interpolateGnBu)],\n [\"orrd\", scheme9(schemeOrRd, interpolateOrRd)],\n [\"pubu\", scheme9(schemePuBu, interpolatePuBu)],\n [\"pubugn\", scheme9(schemePuBuGn, interpolatePuBuGn)],\n [\"purd\", scheme9(schemePuRd, interpolatePuRd)],\n [\"rdpu\", scheme9(schemeRdPu, interpolateRdPu)],\n [\"ylgn\", scheme9(schemeYlGn, interpolateYlGn)],\n [\"ylgnbu\", scheme9(schemeYlGnBu, interpolateYlGnBu)],\n [\"ylorbr\", scheme9(schemeYlOrBr, interpolateYlOrBr)],\n [\"ylorrd\", scheme9(schemeYlOrRd, interpolateYlOrRd)],\n\n // cyclical\n [\"rainbow\", schemeicyclical(interpolateRainbow)],\n [\"sinebow\", schemeicyclical(interpolateSinebow)]\n]);\n\nfunction scheme9(scheme, interpolate) {\n return ({length: n}) => {\n if (n === 1) return [scheme[3][1]]; // favor midpoint\n if (n === 2) return [scheme[3][1], scheme[3][2]]; // favor darker\n n = Math.max(3, Math.floor(n));\n return n > 9 ? quantize(interpolate, n) : scheme[n];\n };\n}\n\nfunction scheme11(scheme, interpolate) {\n return ({length: n}) => {\n if (n === 2) return [scheme[3][0], scheme[3][2]]; // favor diverging extrema\n n = Math.max(3, Math.floor(n));\n return n > 11 ? quantize(interpolate, n) : scheme[n];\n };\n}\n\nfunction scheme11r(scheme, interpolate) {\n return ({length: n}) => {\n if (n === 2) return [scheme[3][2], scheme[3][0]]; // favor diverging extrema\n n = Math.max(3, Math.floor(n));\n return n > 11 ? quantize((t) => interpolate(1 - t), n) : scheme[n].slice().reverse();\n };\n}\n\nfunction schemei(interpolate) {\n return ({length: n}) => quantize(interpolate, Math.max(2, Math.floor(n)));\n}\n\nfunction schemeicyclical(interpolate) {\n return ({length: n}) => quantize(interpolate, Math.floor(n) + 1).slice(0, -1);\n}\n\nexport function ordinalScheme(scheme) {\n const s = `${scheme}`.toLowerCase();\n if (!ordinalSchemes.has(s)) throw new Error(`unknown ordinal scheme: ${s}`);\n return ordinalSchemes.get(s);\n}\n\nexport function ordinalRange(scheme, length) {\n const s = ordinalScheme(scheme);\n const r = typeof s === \"function\" ? s({length}) : s;\n return r.length !== length ? r.slice(0, length) : r;\n}\n\n// If the specified domain contains only booleans (ignoring null and undefined),\n// returns a corresponding range where false is mapped to the low color and true\n// is mapped to the high color of the specified scheme.\nexport function maybeBooleanRange(domain, scheme = \"greys\") {\n const range = new Set();\n const [f, t] = ordinalRange(scheme, 2);\n for (const value of domain) {\n if (value == null) continue;\n if (value === true) range.add(t);\n else if (value === false) range.add(f);\n else return;\n }\n return [...range];\n}\n\nconst quantitativeSchemes = new Map([\n // diverging\n [\"brbg\", interpolateBrBG],\n [\"prgn\", interpolatePRGn],\n [\"piyg\", interpolatePiYG],\n [\"puor\", interpolatePuOr],\n [\"rdbu\", interpolateRdBu],\n [\"rdgy\", interpolateRdGy],\n [\"rdylbu\", interpolateRdYlBu],\n [\"rdylgn\", interpolateRdYlGn],\n [\"spectral\", interpolateSpectral],\n\n // reversed diverging (for temperature data)\n [\"burd\", (t) => interpolateRdBu(1 - t)],\n [\"buylrd\", (t) => interpolateRdYlBu(1 - t)],\n\n // sequential (single-hue)\n [\"blues\", interpolateBlues],\n [\"greens\", interpolateGreens],\n [\"greys\", interpolateGreys],\n [\"purples\", interpolatePurples],\n [\"reds\", interpolateReds],\n [\"oranges\", interpolateOranges],\n\n // sequential (multi-hue)\n [\"turbo\", interpolateTurbo],\n [\"viridis\", interpolateViridis],\n [\"magma\", interpolateMagma],\n [\"inferno\", interpolateInferno],\n [\"plasma\", interpolatePlasma],\n [\"cividis\", interpolateCividis],\n [\"cubehelix\", interpolateCubehelixDefault],\n [\"warm\", interpolateWarm],\n [\"cool\", interpolateCool],\n [\"bugn\", interpolateBuGn],\n [\"bupu\", interpolateBuPu],\n [\"gnbu\", interpolateGnBu],\n [\"orrd\", interpolateOrRd],\n [\"pubugn\", interpolatePuBuGn],\n [\"pubu\", interpolatePuBu],\n [\"purd\", interpolatePuRd],\n [\"rdpu\", interpolateRdPu],\n [\"ylgnbu\", interpolateYlGnBu],\n [\"ylgn\", interpolateYlGn],\n [\"ylorbr\", interpolateYlOrBr],\n [\"ylorrd\", interpolateYlOrRd],\n\n // cyclical\n [\"rainbow\", interpolateRainbow],\n [\"sinebow\", interpolateSinebow]\n]);\n\nexport function quantitativeScheme(scheme) {\n const s = `${scheme}`.toLowerCase();\n if (!quantitativeSchemes.has(s)) throw new Error(`unknown quantitative scheme: ${s}`);\n return quantitativeSchemes.get(s);\n}\n\nconst divergingSchemes = new Set([\n \"brbg\",\n \"prgn\",\n \"piyg\",\n \"puor\",\n \"rdbu\",\n \"rdgy\",\n \"rdylbu\",\n \"rdylgn\",\n \"spectral\",\n \"burd\",\n \"buylrd\"\n]);\n\nexport function isDivergingScheme(scheme) {\n return scheme != null && divergingSchemes.has(`${scheme}`.toLowerCase());\n}\n","import {\n descending,\n extent,\n interpolateHcl,\n interpolateHsl,\n interpolateLab,\n interpolateNumber,\n interpolateRgb,\n interpolateRound,\n min,\n max,\n median,\n quantile,\n quantize,\n reverse as reverseof,\n scaleLinear,\n scaleLog,\n scalePow,\n scaleQuantile,\n scaleSymlog,\n scaleThreshold,\n scaleIdentity,\n ticks\n} from \"d3\";\nimport {positive, negative, finite} from \"../defined.js\";\nimport {arrayify, constant, orderof, slice, maybeNiceInterval, maybeRangeInterval} from \"../options.js\";\nimport {ordinalRange, quantitativeScheme} from \"./schemes.js\";\nimport {registry, radius, opacity, color, length} from \"./index.js\";\n\nexport const flip = (i) => (t) => i(1 - t);\nconst unit = [0, 1];\n\nconst interpolators = new Map([\n // numbers\n [\"number\", interpolateNumber],\n\n // color spaces\n [\"rgb\", interpolateRgb],\n [\"hsl\", interpolateHsl],\n [\"hcl\", interpolateHcl],\n [\"lab\", interpolateLab]\n]);\n\nexport function maybeInterpolator(interpolate) {\n const i = `${interpolate}`.toLowerCase();\n if (!interpolators.has(i)) throw new Error(`unknown interpolator: ${i}`);\n return interpolators.get(i);\n}\n\nexport function createScaleQ(\n key,\n scale,\n channels,\n {\n type,\n nice,\n clamp,\n zero,\n domain = inferAutoDomain(key, channels),\n unknown,\n round,\n scheme,\n interval,\n range = registry.get(key) === radius\n ? inferRadialRange(channels, domain)\n : registry.get(key) === length\n ? inferLengthRange(channels, domain)\n : registry.get(key) === opacity\n ? unit\n : undefined,\n interpolate = registry.get(key) === color\n ? scheme == null && range !== undefined\n ? interpolateRgb\n : quantitativeScheme(scheme !== undefined ? scheme : type === \"cyclical\" ? \"rainbow\" : \"turbo\")\n : round\n ? interpolateRound\n : interpolateNumber,\n reverse\n }\n) {\n interval = maybeRangeInterval(interval, type);\n if (type === \"cyclical\" || type === \"sequential\") type = \"linear\"; // shorthand for color schemes\n reverse = !!reverse;\n\n // Sometimes interpolate is a named interpolator, such as \"lab\" for Lab color\n // space. Other times interpolate is a function that takes two arguments and\n // is used in conjunction with the range. And other times the interpolate\n // function is a “fixed†interpolator on the [0, 1] interval, as when a\n // color scheme such as interpolateRdBu is used.\n if (typeof interpolate !== \"function\") {\n interpolate = maybeInterpolator(interpolate);\n }\n if (interpolate.length === 1) {\n if (reverse) {\n interpolate = flip(interpolate);\n reverse = false;\n }\n if (range === undefined) {\n range = Float64Array.from(domain, (_, i) => i / (domain.length - 1));\n if (range.length === 2) range = unit; // optimize common case of [0, 1]\n }\n scale.interpolate((range === unit ? constant : interpolatePiecewise)(interpolate));\n } else {\n scale.interpolate(interpolate);\n }\n\n // If a zero option is specified, we assume that the domain is numeric, and we\n // want to ensure that the domain crosses zero. However, note that the domain\n // may be reversed (descending) so we shouldn’t assume that the first value is\n // smaller than the last; and also it’s possible that the domain has more than\n // two values for a “poly†scale. And lastly be careful not to mutate input!\n if (zero) {\n const [min, max] = extent(domain);\n if (min > 0 || max < 0) {\n domain = slice(domain);\n if (orderof(domain) !== Math.sign(min)) domain[domain.length - 1] = 0;\n // [2, 1] or [-2, -1]\n else domain[0] = 0; // [1, 2] or [-1, -2]\n }\n }\n\n if (reverse) domain = reverseof(domain);\n scale.domain(domain).unknown(unknown);\n if (nice) scale.nice(maybeNice(nice, type)), (domain = scale.domain());\n if (range !== undefined) scale.range(range);\n if (clamp) scale.clamp(clamp);\n return {type, domain, range, scale, interpolate, interval};\n}\n\nfunction maybeNice(nice, type) {\n return nice === true ? undefined : typeof nice === \"number\" ? nice : maybeNiceInterval(nice, type);\n}\n\nexport function createScaleLinear(key, channels, options) {\n return createScaleQ(key, scaleLinear(), channels, options);\n}\n\nexport function createScaleSqrt(key, channels, options) {\n return createScalePow(key, channels, {...options, exponent: 0.5});\n}\n\nexport function createScalePow(key, channels, {exponent = 1, ...options}) {\n return createScaleQ(key, scalePow().exponent(exponent), channels, {...options, type: \"pow\"});\n}\n\nexport function createScaleLog(key, channels, {base = 10, domain = inferLogDomain(channels), ...options}) {\n return createScaleQ(key, scaleLog().base(base), channels, {...options, domain});\n}\n\nexport function createScaleSymlog(key, channels, {constant = 1, ...options}) {\n return createScaleQ(key, scaleSymlog().constant(constant), channels, options);\n}\n\nexport function createScaleQuantile(\n key,\n channels,\n {\n range,\n quantiles = range === undefined ? 5 : (range = [...range]).length, // deprecated; use n instead\n n = quantiles,\n scheme = \"rdylbu\",\n domain = inferQuantileDomain(channels),\n unknown,\n interpolate,\n reverse\n }\n) {\n if (range === undefined) {\n range =\n interpolate !== undefined\n ? quantize(interpolate, n)\n : registry.get(key) === color\n ? ordinalRange(scheme, n)\n : undefined;\n }\n if (domain.length > 0) {\n domain = scaleQuantile(domain, range === undefined ? {length: n} : range).quantiles();\n }\n return createScaleThreshold(key, channels, {domain, range, reverse, unknown});\n}\n\nexport function createScaleQuantize(\n key,\n channels,\n {\n range,\n n = range === undefined ? 5 : (range = [...range]).length,\n scheme = \"rdylbu\",\n domain = inferAutoDomain(key, channels),\n unknown,\n interpolate,\n reverse\n }\n) {\n const [min, max] = extent(domain);\n let thresholds;\n if (range === undefined) {\n thresholds = ticks(min, max, n); // approximate number of nice, round thresholds\n if (thresholds[0] <= min) thresholds.splice(0, 1); // drop exact lower bound\n if (thresholds[thresholds.length - 1] >= max) thresholds.pop(); // drop exact upper bound\n n = thresholds.length + 1;\n range =\n interpolate !== undefined\n ? quantize(interpolate, n)\n : registry.get(key) === color\n ? ordinalRange(scheme, n)\n : undefined;\n } else {\n thresholds = quantize(interpolateNumber(min, max), n + 1).slice(1, -1); // exactly n - 1 thresholds to match range\n if (min instanceof Date) thresholds = thresholds.map((x) => new Date(x)); // preserve date types\n }\n if (orderof(arrayify(domain)) < 0) thresholds.reverse(); // preserve descending domain\n return createScaleThreshold(key, channels, {domain: thresholds, range, reverse, unknown});\n}\n\nexport function createScaleThreshold(\n key,\n channels,\n {\n domain = [0], // explicit thresholds in ascending order\n unknown,\n scheme = \"rdylbu\",\n interpolate,\n range = interpolate !== undefined\n ? quantize(interpolate, domain.length + 1)\n : registry.get(key) === color\n ? ordinalRange(scheme, domain.length + 1)\n : undefined,\n reverse\n }\n) {\n domain = arrayify(domain);\n const sign = orderof(domain); // preserve descending domain\n if (!isNaN(sign) && !isOrdered(domain, sign)) throw new Error(`the ${key} scale has a non-monotonic domain`);\n if (reverse) range = reverseof(range); // domain ascending, so reverse range\n return {\n type: \"threshold\",\n scale: scaleThreshold(sign < 0 ? reverseof(domain) : domain, range === undefined ? [] : range).unknown(unknown),\n domain,\n range\n };\n}\n\nfunction isOrdered(domain, sign) {\n for (let i = 1, n = domain.length, d = domain[0]; i < n; ++i) {\n const s = descending(d, (d = domain[i]));\n if (s !== 0 && s !== sign) return false;\n }\n return true;\n}\n\nexport function createScaleIdentity() {\n return {type: \"identity\", scale: scaleIdentity()};\n}\n\nexport function inferDomain(channels, f = finite) {\n return channels.length\n ? [\n min(channels, ({value}) => (value === undefined ? value : min(value, f))),\n max(channels, ({value}) => (value === undefined ? value : max(value, f)))\n ]\n : [0, 1];\n}\n\nfunction inferAutoDomain(key, channels) {\n const type = registry.get(key);\n return (type === radius || type === opacity || type === length ? inferZeroDomain : inferDomain)(channels);\n}\n\nfunction inferZeroDomain(channels) {\n return [0, channels.length ? max(channels, ({value}) => (value === undefined ? value : max(value, finite))) : 1];\n}\n\n// We don’t want the upper bound of the radial domain to be zero, as this would\n// be degenerate, so we ignore nonpositive values. We also don’t want the\n// maximum default radius to exceed 30px.\nfunction inferRadialRange(channels, domain) {\n const hint = channels.find(({radius}) => radius !== undefined);\n if (hint !== undefined) return [0, hint.radius]; // a natural maximum radius, e.g. hexbins\n const h25 = quantile(channels, 0.5, ({value}) => (value === undefined ? NaN : quantile(value, 0.25, positive)));\n const range = domain.map((d) => 3 * Math.sqrt(d / h25));\n const k = 30 / max(range);\n return k < 1 ? range.map((r) => r * k) : range;\n}\n\n// We want a length scale’s domain to go from zero to a positive value, and to\n// treat negative lengths if any as inverted vectors of equivalent magnitude. We\n// also don’t want the maximum default length to exceed 60px.\nfunction inferLengthRange(channels, domain) {\n const h50 = median(channels, ({value}) => (value === undefined ? NaN : median(value, Math.abs)));\n const range = domain.map((d) => (12 * d) / h50);\n const k = 60 / max(range);\n return k < 1 ? range.map((r) => r * k) : range;\n}\n\nfunction inferLogDomain(channels) {\n for (const {value} of channels) {\n if (value !== undefined) {\n for (let v of value) {\n if (v > 0) return inferDomain(channels, positive);\n if (v < 0) return inferDomain(channels, negative);\n }\n }\n }\n return [1, 10];\n}\n\nfunction inferQuantileDomain(channels) {\n const domain = [];\n for (const {value} of channels) {\n if (value === undefined) continue;\n for (const v of value) domain.push(v);\n }\n return domain;\n}\n\nexport function interpolatePiecewise(interpolate) {\n return (i, j) => (t) => interpolate(i + t * (j - i));\n}\n","import {\n descending,\n interpolateNumber,\n interpolateRgb,\n piecewise,\n scaleDiverging,\n scaleDivergingLog,\n scaleDivergingPow,\n scaleDivergingSymlog\n} from \"d3\";\nimport {positive, negative} from \"../defined.js\";\nimport {quantitativeScheme} from \"./schemes.js\";\nimport {registry, color} from \"./index.js\";\nimport {inferDomain, maybeInterpolator, flip, interpolatePiecewise} from \"./quantitative.js\";\n\nfunction createScaleD(\n key,\n scale,\n transform,\n channels,\n {\n type,\n nice,\n clamp,\n domain = inferDomain(channels),\n unknown,\n pivot = 0,\n scheme,\n range,\n symmetric = true,\n interpolate = registry.get(key) === color\n ? scheme == null && range !== undefined\n ? interpolateRgb\n : quantitativeScheme(scheme !== undefined ? scheme : \"rdbu\")\n : interpolateNumber,\n reverse\n }\n) {\n pivot = +pivot;\n let [min, max] = domain;\n if (descending(min, max) < 0) ([min, max] = [max, min]), (reverse = !reverse);\n min = Math.min(min, pivot);\n max = Math.max(max, pivot);\n\n // Sometimes interpolate is a named interpolator, such as \"lab\" for Lab color\n // space. Other times interpolate is a function that takes two arguments and\n // is used in conjunction with the range. And other times the interpolate\n // function is a “fixed†interpolator on the [0, 1] interval, as when a\n // color scheme such as interpolateRdBu is used.\n if (typeof interpolate !== \"function\") {\n interpolate = maybeInterpolator(interpolate);\n }\n\n // If an explicit range is specified, promote it to a piecewise interpolator.\n if (range !== undefined) {\n interpolate =\n interpolate.length === 1 ? interpolatePiecewise(interpolate)(...range) : piecewise(interpolate, range);\n }\n\n // Reverse before normalization.\n if (reverse) interpolate = flip(interpolate);\n\n // Normalize the interpolator for symmetric difference around the pivot.\n if (symmetric) {\n const mid = transform.apply(pivot);\n const mindelta = mid - transform.apply(min);\n const maxdelta = transform.apply(max) - mid;\n if (mindelta < maxdelta) min = transform.invert(mid - maxdelta);\n else if (mindelta > maxdelta) max = transform.invert(mid + mindelta);\n }\n\n scale.domain([min, pivot, max]).unknown(unknown).interpolator(interpolate);\n if (clamp) scale.clamp(clamp);\n if (nice) scale.nice(nice);\n return {type, domain: [min, max], pivot, interpolate, scale};\n}\n\nexport function createScaleDiverging(key, channels, options) {\n return createScaleD(key, scaleDiverging(), transformIdentity, channels, options);\n}\n\nexport function createScaleDivergingSqrt(key, channels, options) {\n return createScaleDivergingPow(key, channels, {...options, exponent: 0.5});\n}\n\nexport function createScaleDivergingPow(key, channels, {exponent = 1, ...options}) {\n return createScaleD(key, scaleDivergingPow().exponent((exponent = +exponent)), transformPow(exponent), channels, {\n ...options,\n type: \"diverging-pow\"\n });\n}\n\nexport function createScaleDivergingLog(\n key,\n channels,\n {base = 10, pivot = 1, domain = inferDomain(channels, pivot < 0 ? negative : positive), ...options}\n) {\n return createScaleD(key, scaleDivergingLog().base((base = +base)), transformLog, channels, {\n domain,\n pivot,\n ...options\n });\n}\n\nexport function createScaleDivergingSymlog(key, channels, {constant = 1, ...options}) {\n return createScaleD(\n key,\n scaleDivergingSymlog().constant((constant = +constant)),\n transformSymlog(constant),\n channels,\n options\n );\n}\n\nconst transformIdentity = {\n apply(x) {\n return x;\n },\n invert(x) {\n return x;\n }\n};\n\nconst transformLog = {\n apply: Math.log,\n invert: Math.exp\n};\n\nconst transformSqrt = {\n apply(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n },\n invert(x) {\n return Math.sign(x) * (x * x);\n }\n};\n\nfunction transformPow(exponent) {\n return exponent === 0.5\n ? transformSqrt\n : {\n apply(x) {\n return Math.sign(x) * Math.pow(Math.abs(x), exponent);\n },\n invert(x) {\n return Math.sign(x) * Math.pow(Math.abs(x), 1 / exponent);\n }\n };\n}\n\nfunction transformSymlog(constant) {\n return {\n apply(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / constant));\n },\n invert(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * constant;\n }\n };\n}\n","import {scaleTime, scaleUtc} from \"d3\";\nimport {createScaleQ} from \"./quantitative.js\";\n\nfunction createScaleT(key, scale, channels, options) {\n return createScaleQ(key, scale, channels, options);\n}\n\nexport function createScaleTime(key, channels, options) {\n return createScaleT(key, scaleTime(), channels, options);\n}\n\nexport function createScaleUtc(key, channels, options) {\n return createScaleT(key, scaleUtc(), channels, options);\n}\n","import {InternSet, extent, quantize, reverse as reverseof, sort, symbolsFill, symbolsStroke} from \"d3\";\nimport {scaleBand, scaleOrdinal, scalePoint, scaleImplicit} from \"d3\";\nimport {ascendingDefined} from \"../defined.js\";\nimport {isNoneish, map, maybeRangeInterval} from \"../options.js\";\nimport {maybeSymbol} from \"../symbol.js\";\nimport {registry, color, position, symbol} from \"./index.js\";\nimport {maybeBooleanRange, ordinalScheme, quantitativeScheme} from \"./schemes.js\";\n\n// This denotes an implicitly ordinal color scale: the scale type was not set,\n// but the associated values are strings or booleans. If the associated defined\n// values are entirely boolean, the range will default to greys. You can opt out\n// of this by setting the type explicitly.\nexport const ordinalImplicit = Symbol(\"ordinal\");\n\nfunction createScaleO(key, scale, channels, {type, interval, domain, range, reverse, hint}) {\n interval = maybeRangeInterval(interval, type);\n if (domain === undefined) domain = inferDomain(channels, interval, key);\n if (type === \"categorical\" || type === ordinalImplicit) type = \"ordinal\"; // shorthand for color schemes\n if (reverse) domain = reverseof(domain);\n scale.domain(domain);\n if (range !== undefined) {\n // If the range is specified as a function, pass it the domain.\n if (typeof range === \"function\") range = range(domain);\n scale.range(range);\n }\n return {type, domain, range, scale, hint, interval};\n}\n\nexport function createScaleOrdinal(key, channels, {type, interval, domain, range, scheme, unknown, ...options}) {\n interval = maybeRangeInterval(interval, type);\n if (domain === undefined) domain = inferDomain(channels, interval, key);\n let hint;\n if (registry.get(key) === symbol) {\n hint = inferSymbolHint(channels);\n range = range === undefined ? inferSymbolRange(hint) : map(range, maybeSymbol);\n } else if (registry.get(key) === color) {\n if (range === undefined && (type === \"ordinal\" || type === ordinalImplicit)) {\n range = maybeBooleanRange(domain, scheme);\n if (range !== undefined) scheme = undefined; // Don’t re-apply scheme.\n }\n if (scheme === undefined && range === undefined) {\n scheme = type === \"ordinal\" ? \"turbo\" : \"tableau10\";\n }\n if (scheme !== undefined) {\n if (range !== undefined) {\n const interpolate = quantitativeScheme(scheme);\n const t0 = range[0],\n d = range[1] - range[0];\n range = ({length: n}) => quantize((t) => interpolate(t0 + d * t), n);\n } else {\n range = ordinalScheme(scheme);\n }\n }\n }\n if (unknown === scaleImplicit) {\n throw new Error(`implicit unknown on ${key} scale is not supported`);\n }\n return createScaleO(key, scaleOrdinal().unknown(unknown), channels, {...options, type, domain, range, hint});\n}\n\nexport function createScalePoint(key, channels, {align = 0.5, padding = 0.5, ...options}) {\n return maybeRound(scalePoint().align(align).padding(padding), channels, options, key);\n}\n\nexport function createScaleBand(\n key,\n channels,\n {\n align = 0.5,\n padding = 0.1,\n paddingInner = padding,\n paddingOuter = key === \"fx\" || key === \"fy\" ? 0 : padding,\n ...options\n }\n) {\n return maybeRound(\n scaleBand().align(align).paddingInner(paddingInner).paddingOuter(paddingOuter),\n channels,\n options,\n key\n );\n}\n\nfunction maybeRound(scale, channels, options, key) {\n let {round} = options;\n if (round !== undefined) scale.round((round = !!round));\n scale = createScaleO(key, scale, channels, options);\n scale.round = round; // preserve for autoScaleRound\n return scale;\n}\n\nfunction inferDomain(channels, interval, key) {\n const values = new InternSet();\n for (const {value, domain} of channels) {\n if (domain !== undefined) return domain(); // see channelDomain\n if (value === undefined) continue;\n for (const v of value) values.add(v);\n }\n if (interval !== undefined) {\n const [min, max] = extent(values).map(interval.floor, interval);\n return interval.range(min, interval.offset(max));\n }\n if (values.size > 10e3 && registry.get(key) === position) {\n throw new Error(`implicit ordinal domain of ${key} scale has more than 10,000 values`);\n }\n return sort(values, ascendingDefined);\n}\n\n// If all channels provide a consistent hint, propagate it to the scale.\nfunction inferHint(channels, key) {\n let value;\n for (const {hint} of channels) {\n const candidate = hint?.[key];\n if (candidate === undefined) continue; // no hint here\n if (value === undefined) value = candidate;\n // first hint\n else if (value !== candidate) return; // inconsistent hint\n }\n return value;\n}\n\nfunction inferSymbolHint(channels) {\n return {\n fill: inferHint(channels, \"fill\"),\n stroke: inferHint(channels, \"stroke\")\n };\n}\n\nfunction inferSymbolRange(hint) {\n return isNoneish(hint.fill) ? symbolsStroke : symbolsFill;\n}\n","import {\n isOrdinal,\n isTemporal,\n isTemporalString,\n isNumericString,\n isScaleOptions,\n map,\n slice,\n coerceNumbers,\n coerceDates\n} from \"./options.js\";\nimport {registry, color, position, radius, opacity, symbol, length} from \"./scales/index.js\";\nimport {\n createScaleLinear,\n createScaleSqrt,\n createScalePow,\n createScaleLog,\n createScaleSymlog,\n createScaleQuantile,\n createScaleQuantize,\n createScaleThreshold,\n createScaleIdentity\n} from \"./scales/quantitative.js\";\nimport {\n createScaleDiverging,\n createScaleDivergingSqrt,\n createScaleDivergingPow,\n createScaleDivergingLog,\n createScaleDivergingSymlog\n} from \"./scales/diverging.js\";\nimport {isDivergingScheme} from \"./scales/schemes.js\";\nimport {createScaleTime, createScaleUtc} from \"./scales/temporal.js\";\nimport {createScaleOrdinal, createScalePoint, createScaleBand, ordinalImplicit} from \"./scales/ordinal.js\";\nimport {maybeSymbol} from \"./symbol.js\";\nimport {warn} from \"./warnings.js\";\n\nexport function createScales(\n channelsByScale,\n {\n label: globalLabel,\n inset: globalInset = 0,\n insetTop: globalInsetTop = globalInset,\n insetRight: globalInsetRight = globalInset,\n insetBottom: globalInsetBottom = globalInset,\n insetLeft: globalInsetLeft = globalInset,\n round,\n nice,\n clamp,\n zero,\n align,\n padding,\n projection,\n facet: {label: facetLabel = globalLabel} = {},\n ...options\n } = {}\n) {\n const scales = {};\n for (const [key, channels] of channelsByScale) {\n const scaleOptions = options[key];\n const scale = createScale(key, channels, {\n round: registry.get(key) === position ? round : undefined, // only for position\n nice,\n clamp,\n zero,\n align,\n padding,\n projection,\n ...scaleOptions\n });\n if (scale) {\n // populate generic scale options (percent, transform, insets)\n let {\n label = key === \"fx\" || key === \"fy\" ? facetLabel : globalLabel,\n percent,\n transform,\n inset,\n insetTop = inset !== undefined ? inset : key === \"y\" ? globalInsetTop : 0, // not fy\n insetRight = inset !== undefined ? inset : key === \"x\" ? globalInsetRight : 0, // not fx\n insetBottom = inset !== undefined ? inset : key === \"y\" ? globalInsetBottom : 0, // not fy\n insetLeft = inset !== undefined ? inset : key === \"x\" ? globalInsetLeft : 0 // not fx\n } = scaleOptions || {};\n if (transform == null) transform = undefined;\n else if (typeof transform !== \"function\") throw new Error(\"invalid scale transform; not a function\");\n scale.percent = !!percent;\n scale.label = label === undefined ? inferScaleLabel(channels, scale) : label;\n scale.transform = transform;\n if (key === \"x\" || key === \"fx\") {\n scale.insetLeft = +insetLeft;\n scale.insetRight = +insetRight;\n } else if (key === \"y\" || key === \"fy\") {\n scale.insetTop = +insetTop;\n scale.insetBottom = +insetBottom;\n }\n scales[key] = scale;\n }\n }\n return scales;\n}\n\nexport function createScaleFunctions(scales) {\n return Object.fromEntries(\n Object.entries(scales)\n .filter(([, {scale}]) => scale) // drop identity scales\n .map(([name, {scale, type, interval, label}]) => {\n scale.type = type; // for axis\n if (interval != null) scale.interval = interval; // for axis\n if (label != null) scale.label = label; // for axis\n return [name, scale];\n })\n );\n}\n\n// Mutates scale.range!\nexport function autoScaleRange(scales, dimensions) {\n const {x, y, fx, fy} = scales;\n const superdimensions = fx || fy ? outerDimensions(dimensions) : dimensions;\n if (fx) autoScaleRangeX(fx, superdimensions);\n if (fy) autoScaleRangeY(fy, superdimensions);\n const subdimensions = fx || fy ? innerDimensions(scales, dimensions) : dimensions;\n if (x) autoScaleRangeX(x, subdimensions);\n if (y) autoScaleRangeY(y, subdimensions);\n}\n\n// Channels can have labels; if all the channels for a given scale are\n// consistently labeled (i.e., have the same value if not undefined), and the\n// corresponding scale doesn’t already have an explicit label, then the\n// channels’ label is promoted to the scale. This inferred label should have an\n// orientation-appropriate arrow added when used as an axis, but we don’t want\n// to add the arrow when the label is set explicitly as an option; so, the\n// inferred label is distinguished as an object with an “inferred†property.\nfunction inferScaleLabel(channels = [], scale) {\n let label;\n for (const {label: l} of channels) {\n if (l === undefined) continue;\n if (label === undefined) label = l;\n else if (label !== l) return;\n }\n if (label === undefined) return;\n // Ignore the implicit label for temporal scales if it’s simply “dateâ€.\n if (isTemporalScale(scale) && /^(date|time|year)$/i.test(label)) return;\n if (!isOrdinalScale(scale) && scale.percent) label = `${label} (%)`;\n return {inferred: true, toString: () => label};\n}\n\n// Returns the dimensions of the outer frame; this is subdivided into facets\n// with the margins of each facet collapsing into the outer margins.\nexport function outerDimensions(dimensions) {\n const {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n width,\n height,\n facet: {\n marginTop: facetMarginTop,\n marginRight: facetMarginRight,\n marginBottom: facetMarginBottom,\n marginLeft: facetMarginLeft\n }\n } = dimensions;\n return {\n marginTop: Math.max(marginTop, facetMarginTop),\n marginRight: Math.max(marginRight, facetMarginRight),\n marginBottom: Math.max(marginBottom, facetMarginBottom),\n marginLeft: Math.max(marginLeft, facetMarginLeft),\n width,\n height\n };\n}\n\n// Returns the dimensions of each facet.\nexport function innerDimensions({fx, fy}, dimensions) {\n const {marginTop, marginRight, marginBottom, marginLeft, width, height} = outerDimensions(dimensions);\n return {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n width: fx ? fx.scale.bandwidth() + marginLeft + marginRight : width,\n height: fy ? fy.scale.bandwidth() + marginTop + marginBottom : height\n };\n}\n\nfunction autoScaleRangeX(scale, dimensions) {\n if (scale.range === undefined) {\n const {insetLeft, insetRight} = scale;\n const {width, marginLeft = 0, marginRight = 0} = dimensions;\n const left = marginLeft + insetLeft;\n const right = width - marginRight - insetRight;\n scale.range = [left, Math.max(left, right)];\n if (!isOrdinalScale(scale)) scale.range = piecewiseRange(scale);\n scale.scale.range(scale.range);\n }\n autoScaleRound(scale);\n}\n\nfunction autoScaleRangeY(scale, dimensions) {\n if (scale.range === undefined) {\n const {insetTop, insetBottom} = scale;\n const {height, marginTop = 0, marginBottom = 0} = dimensions;\n const top = marginTop + insetTop;\n const bottom = height - marginBottom - insetBottom;\n scale.range = [Math.max(top, bottom), top];\n if (!isOrdinalScale(scale)) scale.range = piecewiseRange(scale);\n else scale.range.reverse();\n scale.scale.range(scale.range);\n }\n autoScaleRound(scale);\n}\n\nfunction autoScaleRound(scale) {\n if (scale.round === undefined && isBandScale(scale) && roundError(scale) <= 30) {\n scale.scale.round(true);\n }\n}\n\n// If we were to turn on rounding for this band or point scale, how much wasted\n// space would it introduce (on both ends of the range)? This must match\n// d3.scaleBand’s rounding behavior:\n// https://github.com/d3/d3-scale/blob/83555bd759c7314420bd4240642beda5e258db9e/src/band.js#L20-L32\nfunction roundError({scale}) {\n const n = scale.domain().length;\n const [start, stop] = scale.range();\n const paddingInner = scale.paddingInner ? scale.paddingInner() : 1;\n const paddingOuter = scale.paddingOuter ? scale.paddingOuter() : scale.padding();\n const m = n - paddingInner;\n const step = Math.abs(stop - start) / Math.max(1, m + paddingOuter * 2);\n return (step - Math.floor(step)) * m;\n}\n\nfunction piecewiseRange(scale) {\n const length = scale.scale.domain().length + isThresholdScale(scale);\n if (!(length > 2)) return scale.range;\n const [start, end] = scale.range;\n return Array.from({length}, (_, i) => start + (i / (length - 1)) * (end - start));\n}\n\nexport function normalizeScale(key, scale, hint) {\n return createScale(key, hint === undefined ? undefined : [{hint}], {...scale});\n}\n\nfunction createScale(key, channels = [], options = {}) {\n const type = inferScaleType(key, channels, options);\n\n // Warn for common misuses of implicit ordinal scales. We disable this test if\n // you specify a scale interval or if you set the domain or range explicitly,\n // since setting the domain or range (typically with a cardinality of more than\n // two) is another indication that you intended for the scale to be ordinal; we\n // also disable it for facet scales since these are always band scales.\n if (\n options.type === undefined &&\n options.domain === undefined &&\n options.range === undefined &&\n options.interval == null &&\n key !== \"fx\" &&\n key !== \"fy\" &&\n isOrdinalScale({type})\n ) {\n const values = channels.map(({value}) => value).filter((value) => value !== undefined);\n if (values.some(isTemporal))\n warn(\n `Warning: some data associated with the ${key} scale are dates. Dates are typically associated with a \"utc\" or \"time\" scale rather than a \"${formatScaleType(\n type\n )}\" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., d3.utcDay), or you can suppress this warning by setting the type of the ${key} scale to \"${formatScaleType(\n type\n )}\".`\n );\n else if (values.some(isTemporalString))\n warn(\n `Warning: some data associated with the ${key} scale are strings that appear to be dates (e.g., YYYY-MM-DD). If these strings represent dates, you should parse them to Date objects. Dates are typically associated with a \"utc\" or \"time\" scale rather than a \"${formatScaleType(\n type\n )}\" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can suppress this warning by setting the type of the ${key} scale to \"${formatScaleType(\n type\n )}\".`\n );\n else if (values.some(isNumericString))\n warn(\n `Warning: some data associated with the ${key} scale are strings that appear to be numbers. If these strings represent numbers, you should parse or coerce them to numbers. Numbers are typically associated with a \"linear\" scale rather than a \"${formatScaleType(\n type\n )}\" scale. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., 1 for integers), or you can suppress this warning by setting the type of the ${key} scale to \"${formatScaleType(\n type\n )}\".`\n );\n }\n\n options.type = type; // Mutates input!\n\n // Once the scale type is known, coerce the associated channel values and any\n // explicitly-specified domain to the expected type.\n switch (type) {\n case \"diverging\":\n case \"diverging-sqrt\":\n case \"diverging-pow\":\n case \"diverging-log\":\n case \"diverging-symlog\":\n case \"cyclical\":\n case \"sequential\":\n case \"linear\":\n case \"sqrt\":\n case \"threshold\":\n case \"quantile\":\n case \"pow\":\n case \"log\":\n case \"symlog\":\n options = coerceType(channels, options, coerceNumbers);\n break;\n case \"identity\":\n switch (registry.get(key)) {\n case position:\n options = coerceType(channels, options, coerceNumbers);\n break;\n case symbol:\n options = coerceType(channels, options, coerceSymbols);\n break;\n }\n break;\n case \"utc\":\n case \"time\":\n options = coerceType(channels, options, coerceDates);\n break;\n }\n\n switch (type) {\n case \"diverging\":\n return createScaleDiverging(key, channels, options);\n case \"diverging-sqrt\":\n return createScaleDivergingSqrt(key, channels, options);\n case \"diverging-pow\":\n return createScaleDivergingPow(key, channels, options);\n case \"diverging-log\":\n return createScaleDivergingLog(key, channels, options);\n case \"diverging-symlog\":\n return createScaleDivergingSymlog(key, channels, options);\n case \"categorical\":\n case \"ordinal\":\n case ordinalImplicit:\n return createScaleOrdinal(key, channels, options);\n case \"cyclical\":\n case \"sequential\":\n case \"linear\":\n return createScaleLinear(key, channels, options);\n case \"sqrt\":\n return createScaleSqrt(key, channels, options);\n case \"threshold\":\n return createScaleThreshold(key, channels, options);\n case \"quantile\":\n return createScaleQuantile(key, channels, options);\n case \"quantize\":\n return createScaleQuantize(key, channels, options);\n case \"pow\":\n return createScalePow(key, channels, options);\n case \"log\":\n return createScaleLog(key, channels, options);\n case \"symlog\":\n return createScaleSymlog(key, channels, options);\n case \"utc\":\n return createScaleUtc(key, channels, options);\n case \"time\":\n return createScaleTime(key, channels, options);\n case \"point\":\n return createScalePoint(key, channels, options);\n case \"band\":\n return createScaleBand(key, channels, options);\n case \"identity\":\n return registry.get(key) === position ? createScaleIdentity() : {type: \"identity\"};\n case undefined:\n return;\n default:\n throw new Error(`unknown scale type: ${type}`);\n }\n}\n\nfunction formatScaleType(type) {\n return typeof type === \"symbol\" ? type.description : type;\n}\n\n// A special type symbol when the x and y scales are replaced with a projection.\nconst typeProjection = {toString: () => \"projection\"};\n\nfunction inferScaleType(key, channels, {type, domain, range, scheme, pivot, projection}) {\n // The facet scales are always band scales; this cannot be changed.\n if (key === \"fx\" || key === \"fy\") return \"band\";\n\n // If a projection is specified, the x- and y-scales are disabled; these\n // channels will be projected rather than scaled. (But still check that none\n // of the associated channels are incompatible with a projection.)\n if ((key === \"x\" || key === \"y\") && projection != null) type = typeProjection;\n\n // If a channel dictates a scale type, make sure that it is consistent with\n // the user-specified scale type (if any) and all other channels. For example,\n // barY requires x to be a band scale and disallows any other scale type.\n for (const {type: t} of channels) {\n if (t === undefined) continue;\n else if (type === undefined) type = t;\n else if (type !== t) throw new Error(`scale incompatible with channel: ${type} !== ${t}`);\n }\n\n // If the scale, a channel, or user specified a (consistent) type, return it.\n if (type === typeProjection) return;\n if (type !== undefined) return type;\n\n // If there’s no data (and no type) associated with this scale, don’t create a scale.\n if (domain === undefined && !channels.some(({value}) => value !== undefined)) return;\n\n // Some scales have default types.\n const kind = registry.get(key);\n if (kind === radius) return \"sqrt\";\n if (kind === opacity || kind === length) return \"linear\";\n if (kind === symbol) return \"ordinal\";\n\n // If the domain or range has more than two values, assume it’s ordinal. You\n // can still use a “piecewise†(or “polylinearâ€) scale, but you must set the\n // type explicitly.\n if ((domain || range || []).length > 2) return asOrdinalType(kind);\n\n // Otherwise, infer the scale type from the data! Prefer the domain, if\n // present, over channels. (The domain and channels should be consistently\n // typed, and the domain is more explicit and typically much smaller.) We only\n // check the first defined value for expedience and simplicity; we expect\n // that the types are consistent.\n if (domain !== undefined) {\n if (isOrdinal(domain)) return asOrdinalType(kind);\n if (isTemporal(domain)) return \"utc\";\n if (kind === color && (pivot != null || isDivergingScheme(scheme))) return \"diverging\";\n return \"linear\";\n }\n\n // If any channel is ordinal or temporal, it takes priority.\n const values = channels.map(({value}) => value).filter((value) => value !== undefined);\n if (values.some(isOrdinal)) return asOrdinalType(kind);\n if (values.some(isTemporal)) return \"utc\";\n if (kind === color && (pivot != null || isDivergingScheme(scheme))) return \"diverging\";\n return \"linear\";\n}\n\n// Positional scales default to a point scale instead of an ordinal scale.\nfunction asOrdinalType(kind) {\n switch (kind) {\n case position:\n return \"point\";\n case color:\n return ordinalImplicit;\n default:\n return \"ordinal\";\n }\n}\n\nexport function isTemporalScale({type}) {\n return type === \"time\" || type === \"utc\";\n}\n\nexport function isOrdinalScale({type}) {\n return type === \"ordinal\" || type === \"point\" || type === \"band\" || type === ordinalImplicit;\n}\n\nexport function isThresholdScale({type}) {\n return type === \"threshold\";\n}\n\nfunction isBandScale({type}) {\n return type === \"point\" || type === \"band\";\n}\n\nexport function isDivergingScale({type}) {\n return /^diverging($|-)/.test(type);\n}\n\n// Certain marks have special behavior if a scale is collapsed, i.e. if the\n// domain is degenerate and represents only a single value such as [3, 3]; for\n// example, a rect will span the full extent of the chart along a collapsed\n// dimension (whereas a dot will simply be drawn in the center).\nexport function isCollapsed(scale) {\n if (scale === undefined) return true; // treat missing scale as collapsed\n const domain = scale.domain();\n const value = scale(domain[0]);\n for (let i = 1, n = domain.length; i < n; ++i) {\n if (scale(domain[i]) - value) {\n return false;\n }\n }\n return true;\n}\n\n// Mutates channel.value!\nfunction coerceType(channels, {domain, ...options}, coerceValues) {\n for (const c of channels) {\n if (c.value !== undefined) {\n c.value = coerceValues(c.value);\n }\n }\n return {\n domain: domain === undefined ? domain : coerceValues(domain),\n ...options\n };\n}\n\nfunction coerceSymbols(values) {\n return map(values, maybeSymbol);\n}\n\nexport function scale(options = {}) {\n let scale;\n for (const key in options) {\n if (!registry.has(key)) continue; // ignore unknown properties\n if (!isScaleOptions(options[key])) continue; // e.g., ignore {color: \"red\"}\n if (scale !== undefined) throw new Error(\"ambiguous scale definition; multiple scales found\");\n scale = exposeScale(normalizeScale(key, options[key]));\n }\n if (scale === undefined) throw new Error(\"invalid scale definition; no scale found\");\n return scale;\n}\n\nexport function exposeScales(scaleDescriptors) {\n return (key) => {\n if (!registry.has((key = `${key}`))) throw new Error(`unknown scale: ${key}`);\n return key in scaleDescriptors ? exposeScale(scaleDescriptors[key]) : undefined;\n };\n}\n\n// Note: axis- and legend-related properties (such as label, ticks and\n// tickFormat) are not included here as they do not affect the scale’s behavior.\nfunction exposeScale({scale, type, domain, range, interpolate, interval, transform, percent, pivot}) {\n if (type === \"identity\") return {type: \"identity\", apply: (d) => d, invert: (d) => d};\n const unknown = scale.unknown ? scale.unknown() : undefined;\n return {\n type,\n domain: slice(domain), // defensive copy\n ...(range !== undefined && {range: slice(range)}), // defensive copy\n ...(transform !== undefined && {transform}),\n ...(percent && {percent}), // only exposed if truthy\n ...(unknown !== undefined && {unknown}),\n ...(interval !== undefined && {interval}),\n\n // quantitative\n ...(interpolate !== undefined && {interpolate}),\n ...(scale.clamp && {clamp: scale.clamp()}),\n\n // diverging (always asymmetric; we never want to apply the symmetric transform twice)\n ...(pivot !== undefined && {pivot, symmetric: false}),\n\n // log, diverging-log\n ...(scale.base && {base: scale.base()}),\n\n // pow, diverging-pow\n ...(scale.exponent && {exponent: scale.exponent()}),\n\n // symlog, diverging-symlog\n ...(scale.constant && {constant: scale.constant()}),\n\n // band, point\n ...(scale.align && {align: scale.align(), round: scale.round()}),\n ...(scale.padding &&\n (scale.paddingInner\n ? {paddingInner: scale.paddingInner(), paddingOuter: scale.paddingOuter()}\n : {padding: scale.padding()})),\n ...(scale.bandwidth && {bandwidth: scale.bandwidth(), step: scale.step()}),\n\n // utilities\n apply: (t) => scale(t),\n ...(scale.invert && {invert: (t) => scale.invert(t)})\n };\n}\n","import {format as isoFormat} from \"isoformat\";\nimport {string} from \"./options.js\";\nimport {memoize1} from \"./memoize.js\";\n\nconst numberFormat = memoize1((locale) => {\n return new Intl.NumberFormat(locale);\n});\n\nconst monthFormat = memoize1((locale, month) => {\n return new Intl.DateTimeFormat(locale, {timeZone: \"UTC\", ...(month && {month})});\n});\n\nconst weekdayFormat = memoize1((locale, weekday) => {\n return new Intl.DateTimeFormat(locale, {timeZone: \"UTC\", ...(weekday && {weekday})});\n});\n\nexport function formatNumber(locale = \"en-US\") {\n const format = numberFormat(locale);\n return (i) => (i != null && !isNaN(i) ? format.format(i) : undefined);\n}\n\nexport function formatMonth(locale = \"en-US\", format = \"short\") {\n const fmt = monthFormat(locale, format);\n return (i) => (i != null && !isNaN((i = +new Date(Date.UTC(2000, +i)))) ? fmt.format(i) : undefined);\n}\n\nexport function formatWeekday(locale = \"en-US\", format = \"short\") {\n const fmt = weekdayFormat(locale, format);\n return (i) => (i != null && !isNaN((i = +new Date(Date.UTC(2001, 0, +i)))) ? fmt.format(i) : undefined);\n}\n\nexport function formatIsoDate(date) {\n return isoFormat(date, \"Invalid Date\");\n}\n\nexport function formatAuto(locale = \"en-US\") {\n const number = formatNumber(locale);\n return (v) => (v instanceof Date ? formatIsoDate : typeof v === \"number\" ? number : string)(v);\n}\n\n// TODO When Plot supports a top-level locale option, this should be removed\n// because it lacks context to know which locale to use; formatAuto should be\n// used instead whenever possible.\nexport const formatDefault = formatAuto();\n","export function memoize1(compute) {\n let cacheValue, cacheKeys;\n return (...keys) => {\n if (cacheKeys?.length !== keys.length || cacheKeys.some((k, i) => k !== keys[i])) {\n cacheKeys = keys;\n cacheValue = compute(...keys);\n }\n return cacheValue;\n };\n}\n","import {geoPath, group, namespaces} from \"d3\";\nimport {create} from \"./context.js\";\nimport {defined, nonempty} from \"./defined.js\";\nimport {formatDefault} from \"./format.js\";\nimport {\n string,\n number,\n maybeColorChannel,\n maybeNumberChannel,\n maybeKeyword,\n isNoneish,\n isNone,\n isRound,\n keyof\n} from \"./options.js\";\nimport {warn} from \"./warnings.js\";\n\nexport const offset = (typeof window !== \"undefined\" ? window.devicePixelRatio > 1 : typeof it === \"undefined\") ? 0 : 0.5; // prettier-ignore\n\nlet nextClipId = 0;\n\nfunction getClipId() {\n return `plot-clip-${++nextClipId}`;\n}\n\nexport function styles(\n mark,\n {\n title,\n href,\n ariaLabel: variaLabel,\n ariaDescription,\n ariaHidden,\n target,\n fill,\n fillOpacity,\n stroke,\n strokeWidth,\n strokeOpacity,\n strokeLinejoin,\n strokeLinecap,\n strokeMiterlimit,\n strokeDasharray,\n strokeDashoffset,\n opacity,\n mixBlendMode,\n paintOrder,\n pointerEvents,\n shapeRendering\n },\n {\n ariaLabel: cariaLabel,\n fill: defaultFill = \"currentColor\",\n fillOpacity: defaultFillOpacity,\n stroke: defaultStroke = \"none\",\n strokeOpacity: defaultStrokeOpacity,\n strokeWidth: defaultStrokeWidth,\n strokeLinecap: defaultStrokeLinecap,\n strokeLinejoin: defaultStrokeLinejoin,\n strokeMiterlimit: defaultStrokeMiterlimit,\n paintOrder: defaultPaintOrder\n }\n) {\n // Some marks don’t support fill (e.g., tick and rule).\n if (defaultFill === null) {\n fill = null;\n fillOpacity = null;\n }\n\n // Some marks don’t support stroke (e.g., image).\n if (defaultStroke === null) {\n stroke = null;\n strokeOpacity = null;\n }\n\n // Some marks default to fill with no stroke, while others default to stroke\n // with no fill. For example, bar and area default to fill, while dot and line\n // default to stroke. For marks that fill by default, the default fill only\n // applies if the stroke is (constant) none; if you set a stroke, then the\n // default fill becomes none. Similarly for marks that stroke by stroke, the\n // default stroke only applies if the fill is (constant) none.\n if (isNoneish(defaultFill)) {\n if (!isNoneish(defaultStroke) && !isNoneish(fill)) defaultStroke = \"none\";\n } else {\n if (isNoneish(defaultStroke) && !isNoneish(stroke)) defaultFill = \"none\";\n }\n\n const [vfill, cfill] = maybeColorChannel(fill, defaultFill);\n const [vfillOpacity, cfillOpacity] = maybeNumberChannel(fillOpacity, defaultFillOpacity);\n const [vstroke, cstroke] = maybeColorChannel(stroke, defaultStroke);\n const [vstrokeOpacity, cstrokeOpacity] = maybeNumberChannel(strokeOpacity, defaultStrokeOpacity);\n const [vopacity, copacity] = maybeNumberChannel(opacity);\n\n // For styles that have no effect if there is no stroke, only apply the\n // defaults if the stroke is not the constant none. (If stroke is a channel,\n // then cstroke will be undefined, but there’s still a stroke; hence we don’t\n // use isNoneish here.)\n if (!isNone(cstroke)) {\n if (strokeWidth === undefined) strokeWidth = defaultStrokeWidth;\n if (strokeLinecap === undefined) strokeLinecap = defaultStrokeLinecap;\n if (strokeLinejoin === undefined) strokeLinejoin = defaultStrokeLinejoin;\n\n // The default stroke miterlimit need not be applied if the current stroke\n // is the constant round; this only has effect on miter joins.\n if (strokeMiterlimit === undefined && !isRound(strokeLinejoin)) strokeMiterlimit = defaultStrokeMiterlimit;\n\n // The paint order only takes effect if there is both a fill and a stroke\n // (at least if we ignore markers, which no built-in marks currently use).\n if (!isNone(cfill) && paintOrder === undefined) paintOrder = defaultPaintOrder;\n }\n\n const [vstrokeWidth, cstrokeWidth] = maybeNumberChannel(strokeWidth);\n\n // Some marks don’t support fill (e.g., tick and rule).\n if (defaultFill !== null) {\n mark.fill = impliedString(cfill, \"currentColor\");\n mark.fillOpacity = impliedNumber(cfillOpacity, 1);\n }\n\n // Some marks don’t support stroke (e.g., image).\n if (defaultStroke !== null) {\n mark.stroke = impliedString(cstroke, \"none\");\n mark.strokeWidth = impliedNumber(cstrokeWidth, 1);\n mark.strokeOpacity = impliedNumber(cstrokeOpacity, 1);\n mark.strokeLinejoin = impliedString(strokeLinejoin, \"miter\");\n mark.strokeLinecap = impliedString(strokeLinecap, \"butt\");\n mark.strokeMiterlimit = impliedNumber(strokeMiterlimit, 4);\n mark.strokeDasharray = impliedString(strokeDasharray, \"none\");\n mark.strokeDashoffset = impliedString(strokeDashoffset, \"0\");\n }\n\n mark.target = string(target);\n mark.ariaLabel = string(cariaLabel);\n mark.ariaDescription = string(ariaDescription);\n mark.ariaHidden = string(ariaHidden);\n mark.opacity = impliedNumber(copacity, 1);\n mark.mixBlendMode = impliedString(mixBlendMode, \"normal\");\n mark.paintOrder = impliedString(paintOrder, \"normal\");\n mark.pointerEvents = impliedString(pointerEvents, \"auto\");\n mark.shapeRendering = impliedString(shapeRendering, \"auto\");\n\n return {\n title: {value: title, optional: true},\n href: {value: href, optional: true},\n ariaLabel: {value: variaLabel, optional: true},\n fill: {value: vfill, scale: \"auto\", optional: true},\n fillOpacity: {value: vfillOpacity, scale: \"auto\", optional: true},\n stroke: {value: vstroke, scale: \"auto\", optional: true},\n strokeOpacity: {value: vstrokeOpacity, scale: \"auto\", optional: true},\n strokeWidth: {value: vstrokeWidth, optional: true},\n opacity: {value: vopacity, scale: \"auto\", optional: true}\n };\n}\n\n// Applies the specified titles via selection.call.\nexport function applyTitle(selection, L) {\n if (L)\n selection\n .filter((i) => nonempty(L[i]))\n .append(\"title\")\n .call(applyText, L);\n}\n\n// Like applyTitle, but for grouped data (lines, areas).\nexport function applyTitleGroup(selection, L) {\n if (L)\n selection\n .filter(([i]) => nonempty(L[i]))\n .append(\"title\")\n .call(applyTextGroup, L);\n}\n\nexport function applyText(selection, T) {\n if (T) selection.text((i) => formatDefault(T[i]));\n}\n\nexport function applyTextGroup(selection, T) {\n if (T) selection.text(([i]) => formatDefault(T[i]));\n}\n\nexport function applyChannelStyles(\n selection,\n {target},\n {\n ariaLabel: AL,\n title: T,\n fill: F,\n fillOpacity: FO,\n stroke: S,\n strokeOpacity: SO,\n strokeWidth: SW,\n opacity: O,\n href: H\n }\n) {\n if (AL) applyAttr(selection, \"aria-label\", (i) => AL[i]);\n if (F) applyAttr(selection, \"fill\", (i) => F[i]);\n if (FO) applyAttr(selection, \"fill-opacity\", (i) => FO[i]);\n if (S) applyAttr(selection, \"stroke\", (i) => S[i]);\n if (SO) applyAttr(selection, \"stroke-opacity\", (i) => SO[i]);\n if (SW) applyAttr(selection, \"stroke-width\", (i) => SW[i]);\n if (O) applyAttr(selection, \"opacity\", (i) => O[i]);\n if (H) applyHref(selection, (i) => H[i], target);\n applyTitle(selection, T);\n}\n\nexport function applyGroupedChannelStyles(\n selection,\n {target},\n {\n ariaLabel: AL,\n title: T,\n fill: F,\n fillOpacity: FO,\n stroke: S,\n strokeOpacity: SO,\n strokeWidth: SW,\n opacity: O,\n href: H\n }\n) {\n if (AL) applyAttr(selection, \"aria-label\", ([i]) => AL[i]);\n if (F) applyAttr(selection, \"fill\", ([i]) => F[i]);\n if (FO) applyAttr(selection, \"fill-opacity\", ([i]) => FO[i]);\n if (S) applyAttr(selection, \"stroke\", ([i]) => S[i]);\n if (SO) applyAttr(selection, \"stroke-opacity\", ([i]) => SO[i]);\n if (SW) applyAttr(selection, \"stroke-width\", ([i]) => SW[i]);\n if (O) applyAttr(selection, \"opacity\", ([i]) => O[i]);\n if (H) applyHref(selection, ([i]) => H[i], target);\n applyTitleGroup(selection, T);\n}\n\nfunction groupAesthetics({\n ariaLabel: AL,\n title: T,\n fill: F,\n fillOpacity: FO,\n stroke: S,\n strokeOpacity: SO,\n strokeWidth: SW,\n opacity: O,\n href: H\n}) {\n return [AL, T, F, FO, S, SO, SW, O, H].filter((c) => c !== undefined);\n}\n\nexport function groupZ(I, Z, z) {\n const G = group(I, (i) => Z[i]);\n if (z === undefined && G.size > I.length >> 1) {\n warn(\n `Warning: the implicit z channel has high cardinality. This may occur when the fill or stroke channel is associated with quantitative data rather than ordinal or categorical data. You can suppress this warning by setting the z option explicitly; if this data represents a single series, set z to null.`\n );\n }\n return G.values();\n}\n\nexport function* groupIndex(I, position, {z}, channels) {\n const {z: Z} = channels; // group channel\n const A = groupAesthetics(channels); // aesthetic channels\n const C = [...position, ...A]; // all channels\n\n // Group the current index by Z (if any).\n for (const G of Z ? groupZ(I, Z, z) : [I]) {\n let Ag; // the A-values (aesthetics) of the current group, if any\n let Gg; // the current group index (a subset of G, and I), if any\n out: for (const i of G) {\n // If any channel has an undefined value for this index, skip it.\n for (const c of C) {\n if (!defined(c[i])) {\n if (Gg) Gg.push(-1);\n continue out;\n }\n }\n\n // Otherwise, if this is a new group, record the aesthetics for this\n // group. Yield the current group and start a new one.\n if (Ag === undefined) {\n if (Gg) yield Gg;\n (Ag = A.map((c) => keyof(c[i]))), (Gg = [i]);\n continue;\n }\n\n // Otherwise, add the current index to the current group. Then, if any of\n // the aesthetics don’t match the current group, yield the current group\n // and start a new group of the current index.\n Gg.push(i);\n for (let j = 0; j < A.length; ++j) {\n const k = keyof(A[j][i]);\n if (k !== Ag[j]) {\n yield Gg;\n (Ag = A.map((c) => keyof(c[i]))), (Gg = [i]);\n continue out;\n }\n }\n }\n\n // Yield the current group, if any.\n if (Gg) yield Gg;\n }\n}\n\n// TODO Accept other types of clips (paths, urls, x, y, other marks…)?\n// https://github.com/observablehq/plot/issues/181\nexport function maybeClip(clip) {\n if (clip === true) clip = \"frame\";\n else if (clip === false) clip = null;\n return maybeKeyword(clip, \"clip\", [\"frame\", \"sphere\"]);\n}\n\n// Note: may mutate selection.node!\nfunction applyClip(selection, mark, dimensions, context) {\n let clipUrl;\n switch (mark.clip) {\n case \"frame\": {\n const {width, height, marginLeft, marginRight, marginTop, marginBottom} = dimensions;\n const id = getClipId();\n clipUrl = `url(#${id})`;\n selection = create(\"svg:g\", context)\n .call((g) =>\n g\n .append(\"svg:clipPath\")\n .attr(\"id\", id)\n .append(\"rect\")\n .attr(\"x\", marginLeft)\n .attr(\"y\", marginTop)\n .attr(\"width\", width - marginRight - marginLeft)\n .attr(\"height\", height - marginTop - marginBottom)\n )\n .each(function () {\n this.appendChild(selection.node());\n selection.node = () => this; // Note: mutation!\n });\n break;\n }\n case \"sphere\": {\n const {projection} = context;\n if (!projection) throw new Error(`the \"sphere\" clip option requires a projection`);\n const id = getClipId();\n clipUrl = `url(#${id})`;\n selection\n .append(\"clipPath\")\n .attr(\"id\", id)\n .append(\"path\")\n .attr(\"d\", geoPath(projection)({type: \"Sphere\"}));\n break;\n }\n }\n // Here we’re careful to apply the ARIA attributes to the outer G element when\n // clipping is applied, and to apply the ARIA attributes before any other\n // attributes (for readability).\n applyAttr(selection, \"aria-label\", mark.ariaLabel);\n applyAttr(selection, \"aria-description\", mark.ariaDescription);\n applyAttr(selection, \"aria-hidden\", mark.ariaHidden);\n applyAttr(selection, \"clip-path\", clipUrl);\n}\n\n// Note: may mutate selection.node!\nexport function applyIndirectStyles(selection, mark, dimensions, context) {\n applyClip(selection, mark, dimensions, context);\n applyAttr(selection, \"fill\", mark.fill);\n applyAttr(selection, \"fill-opacity\", mark.fillOpacity);\n applyAttr(selection, \"stroke\", mark.stroke);\n applyAttr(selection, \"stroke-width\", mark.strokeWidth);\n applyAttr(selection, \"stroke-opacity\", mark.strokeOpacity);\n applyAttr(selection, \"stroke-linejoin\", mark.strokeLinejoin);\n applyAttr(selection, \"stroke-linecap\", mark.strokeLinecap);\n applyAttr(selection, \"stroke-miterlimit\", mark.strokeMiterlimit);\n applyAttr(selection, \"stroke-dasharray\", mark.strokeDasharray);\n applyAttr(selection, \"stroke-dashoffset\", mark.strokeDashoffset);\n applyAttr(selection, \"shape-rendering\", mark.shapeRendering);\n applyAttr(selection, \"paint-order\", mark.paintOrder);\n applyAttr(selection, \"pointer-events\", mark.pointerEvents);\n}\n\nexport function applyDirectStyles(selection, mark) {\n applyStyle(selection, \"mix-blend-mode\", mark.mixBlendMode);\n applyAttr(selection, \"opacity\", mark.opacity);\n}\n\nfunction applyHref(selection, href, target) {\n selection.each(function (i) {\n const h = href(i);\n if (h != null) {\n const a = this.ownerDocument.createElementNS(namespaces.svg, \"a\");\n a.setAttribute(\"fill\", \"inherit\");\n a.setAttributeNS(namespaces.xlink, \"href\", h);\n if (target != null) a.setAttribute(\"target\", target);\n this.parentNode.insertBefore(a, this).appendChild(this);\n }\n });\n}\n\nexport function applyAttr(selection, name, value) {\n if (value != null) selection.attr(name, value);\n}\n\nexport function applyStyle(selection, name, value) {\n if (value != null) selection.style(name, value);\n}\n\nexport function applyTransform(selection, mark, {x, y}, tx = offset, ty = offset) {\n tx += mark.dx;\n ty += mark.dy;\n if (x?.bandwidth) tx += x.bandwidth() / 2;\n if (y?.bandwidth) ty += y.bandwidth() / 2;\n if (tx || ty) selection.attr(\"transform\", `translate(${tx},${ty})`);\n}\n\nexport function impliedString(value, impliedValue) {\n if ((value = string(value)) !== impliedValue) return value;\n}\n\nexport function impliedNumber(value, impliedValue) {\n if ((value = number(value)) !== impliedValue) return value;\n}\n\n// https://www.w3.org/TR/CSS21/grammar.html\nconst validClassName =\n /^-?([_a-z]|[\\240-\\377]|\\\\[0-9a-f]{1,6}(\\r\\n|[ \\t\\r\\n\\f])?|\\\\[^\\r\\n\\f0-9a-f])([_a-z0-9-]|[\\240-\\377]|\\\\[0-9a-f]{1,6}(\\r\\n|[ \\t\\r\\n\\f])?|\\\\[^\\r\\n\\f0-9a-f])*$/i;\n\nexport function maybeClassName(name) {\n // The default should be changed whenever the default styles are changed, so\n // as to avoid conflict when multiple versions of Plot are on the page.\n if (name === undefined) return \"plot-d6a7b5\";\n name = `${name}`;\n if (!validClassName.test(name)) throw new Error(`invalid class name: ${name}`);\n return name;\n}\n\nexport function applyInlineStyles(selection, style) {\n if (typeof style === \"string\") {\n selection.property(\"style\", style);\n } else if (style != null) {\n for (const element of selection) {\n Object.assign(element.style, style);\n }\n }\n}\n\nexport function applyFrameAnchor({frameAnchor}, {width, height, marginTop, marginRight, marginBottom, marginLeft}) {\n return [\n /left$/.test(frameAnchor)\n ? marginLeft\n : /right$/.test(frameAnchor)\n ? width - marginRight\n : (marginLeft + width - marginRight) / 2,\n /^top/.test(frameAnchor)\n ? marginTop\n : /^bottom/.test(frameAnchor)\n ? height - marginBottom\n : (marginTop + height - marginBottom) / 2\n ];\n}\n","import {format, utcFormat} from \"d3\";\nimport {formatIsoDate} from \"./format.js\";\nimport {constant, isTemporal, string} from \"./options.js\";\nimport {isOrdinalScale} from \"./scales.js\";\n\nexport function inferFontVariant(scale) {\n return isOrdinalScale(scale) && scale.interval === undefined ? undefined : \"tabular-nums\";\n}\n\n// D3 doesn’t provide a tick format for ordinal scales; we want shorthand when\n// an ordinal domain is numbers or dates, and we want null to mean the empty\n// string, not the default identity format. TODO Remove this in favor of the\n// axis mark’s inferTickFormat.\nexport function maybeAutoTickFormat(tickFormat, domain) {\n return tickFormat === undefined\n ? isTemporal(domain)\n ? formatIsoDate\n : string\n : typeof tickFormat === \"function\"\n ? tickFormat\n : (typeof tickFormat === \"string\" ? (isTemporal(domain) ? utcFormat : format) : constant)(tickFormat);\n}\n","import {pathRound as path} from \"d3\";\nimport {inferFontVariant, maybeAutoTickFormat} from \"../axes.js\";\nimport {createContext, create} from \"../context.js\";\nimport {isNoneish, maybeColorChannel, maybeNumberChannel} from \"../options.js\";\nimport {isOrdinalScale, isThresholdScale} from \"../scales.js\";\nimport {applyInlineStyles, impliedString, maybeClassName} from \"../style.js\";\n\nfunction maybeScale(scale, key) {\n if (key == null) return key;\n const s = scale(key);\n if (!s) throw new Error(`scale not found: ${key}`);\n return s;\n}\n\nexport function legendSwatches(color, {opacity, ...options} = {}) {\n if (!isOrdinalScale(color) && !isThresholdScale(color))\n throw new Error(`swatches legend requires ordinal or threshold color scale (not ${color.type})`);\n return legendItems(color, options, (selection, scale, width, height) =>\n selection\n .append(\"svg\")\n .attr(\"width\", width)\n .attr(\"height\", height)\n .attr(\"fill\", scale.scale)\n .attr(\"fill-opacity\", maybeNumberChannel(opacity)[1])\n .append(\"rect\")\n .attr(\"width\", \"100%\")\n .attr(\"height\", \"100%\")\n );\n}\n\nexport function legendSymbols(\n symbol,\n {\n fill = symbol.hint?.fill !== undefined ? symbol.hint.fill : \"none\",\n fillOpacity = 1,\n stroke = symbol.hint?.stroke !== undefined ? symbol.hint.stroke : isNoneish(fill) ? \"currentColor\" : \"none\",\n strokeOpacity = 1,\n strokeWidth = 1.5,\n r = 4.5,\n ...options\n } = {},\n scale\n) {\n const [vf, cf] = maybeColorChannel(fill);\n const [vs, cs] = maybeColorChannel(stroke);\n const sf = maybeScale(scale, vf);\n const ss = maybeScale(scale, vs);\n const size = r * r * Math.PI;\n fillOpacity = maybeNumberChannel(fillOpacity)[1];\n strokeOpacity = maybeNumberChannel(strokeOpacity)[1];\n strokeWidth = maybeNumberChannel(strokeWidth)[1];\n return legendItems(symbol, options, (selection, scale, width, height) =>\n selection\n .append(\"svg\")\n .attr(\"viewBox\", \"-8 -8 16 16\")\n .attr(\"width\", width)\n .attr(\"height\", height)\n .attr(\"fill\", vf === \"color\" ? (d) => sf.scale(d) : cf)\n .attr(\"fill-opacity\", fillOpacity)\n .attr(\"stroke\", vs === \"color\" ? (d) => ss.scale(d) : cs)\n .attr(\"stroke-opacity\", strokeOpacity)\n .attr(\"stroke-width\", strokeWidth)\n .append(\"path\")\n .attr(\"d\", (d) => {\n const p = path();\n symbol.scale(d).draw(p, size);\n return p;\n })\n );\n}\n\nfunction legendItems(scale, options = {}, swatch) {\n let {\n columns,\n tickFormat,\n fontVariant = inferFontVariant(scale),\n // TODO label,\n swatchSize = 15,\n swatchWidth = swatchSize,\n swatchHeight = swatchSize,\n marginLeft = 0,\n className,\n style,\n width\n } = options;\n const context = createContext(options);\n className = maybeClassName(className);\n tickFormat = maybeAutoTickFormat(tickFormat, scale.domain);\n\n const swatches = create(\"div\", context).attr(\n \"class\",\n `${className}-swatches ${className}-swatches-${columns != null ? \"columns\" : \"wrap\"}`\n );\n\n let extraStyle;\n\n if (columns != null) {\n extraStyle = `.${className}-swatches-columns .${className}-swatch {\n display: flex;\n align-items: center;\n break-inside: avoid;\n padding-bottom: 1px;\n}\n.${className}-swatches-columns .${className}-swatch::before {\n flex-shrink: 0;\n}\n.${className}-swatches-columns .${className}-swatch-label {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}`;\n\n swatches\n .style(\"columns\", columns)\n .selectAll()\n .data(scale.domain)\n .enter()\n .append(\"div\")\n .attr(\"class\", `${className}-swatch`)\n .call(swatch, scale, swatchWidth, swatchHeight)\n .call((item) =>\n item.append(\"div\").attr(\"class\", `${className}-swatch-label`).attr(\"title\", tickFormat).text(tickFormat)\n );\n } else {\n extraStyle = `.${className}-swatches-wrap {\n display: flex;\n align-items: center;\n min-height: 33px;\n flex-wrap: wrap;\n}\n.${className}-swatches-wrap .${className}-swatch {\n display: inline-flex;\n align-items: center;\n margin-right: 1em;\n}`;\n\n swatches\n .selectAll()\n .data(scale.domain)\n .enter()\n .append(\"span\")\n .attr(\"class\", `${className}-swatch`)\n .call(swatch, scale, swatchWidth, swatchHeight)\n .append(function () {\n return this.ownerDocument.createTextNode(tickFormat.apply(this, arguments));\n });\n }\n\n return swatches\n .call((div) =>\n div.insert(\"style\", \"*\").text(\n `.${className}-swatches {\n font-family: system-ui, sans-serif;\n font-size: 10px;\n margin-bottom: 0.5em;\n}\n.${className}-swatch > svg {\n margin-right: 0.5em;\n overflow: visible;\n}\n${extraStyle}`\n )\n )\n .style(\"margin-left\", marginLeft ? `${+marginLeft}px` : null)\n .style(\"width\", width === undefined ? null : `${+width}px`)\n .style(\"font-variant\", impliedString(fontVariant, \"normal\"))\n .call(applyInlineStyles, style)\n .node();\n}\n","import {rgb} from \"d3\";\nimport {createContext} from \"./context.js\";\nimport {legendRamp} from \"./legends/ramp.js\";\nimport {legendSwatches, legendSymbols} from \"./legends/swatches.js\";\nimport {inherit, isScaleOptions} from \"./options.js\";\nimport {normalizeScale} from \"./scales.js\";\n\nconst legendRegistry = new Map([\n [\"symbol\", legendSymbols],\n [\"color\", legendColor],\n [\"opacity\", legendOpacity]\n]);\n\nexport function legend(options = {}) {\n for (const [key, value] of legendRegistry) {\n const scale = options[key];\n if (isScaleOptions(scale)) {\n // e.g., ignore {color: \"red\"}\n const context = createContext(options);\n let hint;\n // For symbol legends, pass a hint to the symbol scale.\n if (key === \"symbol\") {\n const {fill, stroke = fill === undefined && isScaleOptions(options.color) ? \"color\" : undefined} = options;\n hint = {fill, stroke};\n }\n return value(normalizeScale(key, scale, hint), legendOptions(context, scale, options), (key) =>\n isScaleOptions(options[key]) ? normalizeScale(key, options[key]) : null\n );\n }\n }\n throw new Error(\"unknown legend type; no scale found\");\n}\n\nexport function exposeLegends(scales, context, defaults = {}) {\n return (key, options) => {\n if (!legendRegistry.has(key)) throw new Error(`unknown legend type: ${key}`);\n if (!(key in scales)) return;\n return legendRegistry.get(key)(scales[key], legendOptions(context, defaults[key], options), (key) => scales[key]);\n };\n}\n\nfunction legendOptions({className, ...context}, {label, ticks, tickFormat} = {}, options) {\n return inherit(options, {className, ...context}, {label, ticks, tickFormat});\n}\n\nfunction legendColor(color, {legend = true, ...options}) {\n if (legend === true) legend = color.type === \"ordinal\" ? \"swatches\" : \"ramp\";\n if (color.domain === undefined) return;\n switch (`${legend}`.toLowerCase()) {\n case \"swatches\":\n return legendSwatches(color, options);\n case \"ramp\":\n return legendRamp(color, options);\n default:\n throw new Error(`unknown legend type: ${legend}`);\n }\n}\n\nfunction legendOpacity({type, interpolate, ...scale}, {legend = true, color = rgb(0, 0, 0), ...options}) {\n if (!interpolate) throw new Error(`${type} opacity scales are not supported`);\n if (legend === true) legend = \"ramp\";\n if (`${legend}`.toLowerCase() !== \"ramp\") throw new Error(`${legend} opacity legends are not supported`);\n return legendColor({type, ...scale, interpolate: interpolateOpacity(color)}, {legend, ...options});\n}\n\nfunction interpolateOpacity(color) {\n const {r, g, b} = rgb(color) || rgb(0, 0, 0); // treat invalid color as black\n return (t) => `rgba(${r},${g},${b},${t})`;\n}\n\nexport function createLegends(scales, context, options) {\n const legends = [];\n for (const [key, value] of legendRegistry) {\n const o = options[key];\n if (o?.legend && key in scales) {\n const legend = value(scales[key], legendOptions(context, scales[key], o), (key) => scales[key]);\n if (legend != null) legends.push(legend);\n }\n }\n return legends;\n}\n","import {quantize, interpolateNumber, piecewise, format, scaleBand, scaleLinear, axisBottom} from \"d3\";\nimport {inferFontVariant} from \"../axes.js\";\nimport {createContext, create} from \"../context.js\";\nimport {map, maybeNumberChannel} from \"../options.js\";\nimport {interpolatePiecewise} from \"../scales/quantitative.js\";\nimport {applyInlineStyles, impliedString, maybeClassName} from \"../style.js\";\n\nexport function legendRamp(color, options) {\n let {\n label = color.label,\n tickSize = 6,\n width = 240,\n height = 44 + tickSize,\n marginTop = 18,\n marginRight = 0,\n marginBottom = 16 + tickSize,\n marginLeft = 0,\n style,\n ticks = (width - marginLeft - marginRight) / 64,\n tickFormat,\n fontVariant = inferFontVariant(color),\n round = true,\n opacity,\n className\n } = options;\n const context = createContext(options);\n className = maybeClassName(className);\n opacity = maybeNumberChannel(opacity)[1];\n if (tickFormat === null) tickFormat = () => null;\n\n const svg = create(\"svg\", context)\n .attr(\"class\", `${className}-ramp`)\n .attr(\"font-family\", \"system-ui, sans-serif\")\n .attr(\"font-size\", 10)\n .attr(\"width\", width)\n .attr(\"height\", height)\n .attr(\"viewBox\", `0 0 ${width} ${height}`)\n .call((svg) =>\n // Warning: if you edit this, change defaultClassName.\n svg.append(\"style\").text(\n `.${className}-ramp {\n display: block;\n background: white;\n height: auto;\n height: intrinsic;\n max-width: 100%;\n overflow: visible;\n}\n.${className}-ramp text {\n white-space: pre;\n}`\n )\n )\n .call(applyInlineStyles, style);\n\n let tickAdjust = (g) => g.selectAll(\".tick line\").attr(\"y1\", marginTop + marginBottom - height);\n\n let x;\n\n // Some D3 scales use scale.interpolate, some scale.interpolator, and some\n // scale.round; this normalizes the API so it works with all scale types.\n const applyRange = round ? (x, range) => x.rangeRound(range) : (x, range) => x.range(range);\n\n const {type, domain, range, interpolate, scale, pivot} = color;\n\n // Continuous\n if (interpolate) {\n // Often interpolate is a “fixed†interpolator on the [0, 1] interval, as\n // with a built-in color scheme, but sometimes it is a function that takes\n // two arguments and is used in conjunction with the range.\n const interpolator =\n range === undefined\n ? interpolate\n : piecewise(interpolate.length === 1 ? interpolatePiecewise(interpolate) : interpolate, range);\n\n // Construct a D3 scale of the same type, but with a range that evenly\n // divides the horizontal extent of the legend. (In the common case, the\n // domain.length is two, and so the range is simply the extent.) For a\n // diverging scale, we need an extra point in the range for the pivot such\n // that the pivot is always drawn in the middle.\n x = applyRange(\n scale.copy(),\n quantize(\n interpolateNumber(marginLeft, width - marginRight),\n Math.min(domain.length + (pivot !== undefined), range === undefined ? Infinity : range.length)\n )\n );\n\n // Construct a 256×1 canvas, filling each pixel using the interpolator.\n const n = 256;\n const canvas = context.document.createElement(\"canvas\");\n canvas.width = n;\n canvas.height = 1;\n const context2 = canvas.getContext(\"2d\");\n for (let i = 0, j = n - 1; i < n; ++i) {\n context2.fillStyle = interpolator(i / j);\n context2.fillRect(i, 0, 1, 1);\n }\n\n svg\n .append(\"image\")\n .attr(\"opacity\", opacity)\n .attr(\"x\", marginLeft)\n .attr(\"y\", marginTop)\n .attr(\"width\", width - marginLeft - marginRight)\n .attr(\"height\", height - marginTop - marginBottom)\n .attr(\"preserveAspectRatio\", \"none\")\n .attr(\"xlink:href\", canvas.toDataURL());\n }\n\n // Threshold\n else if (type === \"threshold\") {\n const thresholds = domain;\n\n const thresholdFormat =\n tickFormat === undefined ? (d) => d : typeof tickFormat === \"string\" ? format(tickFormat) : tickFormat;\n\n // Construct a linear scale with evenly-spaced ticks for each of the\n // thresholds; the domain extends one beyond the threshold extent.\n x = applyRange(scaleLinear().domain([-1, range.length - 1]), [marginLeft, width - marginRight]);\n\n svg\n .append(\"g\")\n .attr(\"fill-opacity\", opacity)\n .selectAll()\n .data(range)\n .enter()\n .append(\"rect\")\n .attr(\"x\", (d, i) => x(i - 1))\n .attr(\"y\", marginTop)\n .attr(\"width\", (d, i) => x(i) - x(i - 1))\n .attr(\"height\", height - marginTop - marginBottom)\n .attr(\"fill\", (d) => d);\n\n ticks = map(thresholds, (_, i) => i);\n tickFormat = (i) => thresholdFormat(thresholds[i], i);\n }\n\n // Ordinal (hopefully!)\n else {\n x = applyRange(scaleBand().domain(domain), [marginLeft, width - marginRight]);\n\n svg\n .append(\"g\")\n .attr(\"fill-opacity\", opacity)\n .selectAll()\n .data(domain)\n .enter()\n .append(\"rect\")\n .attr(\"x\", x)\n .attr(\"y\", marginTop)\n .attr(\"width\", Math.max(0, x.bandwidth() - 1))\n .attr(\"height\", height - marginTop - marginBottom)\n .attr(\"fill\", scale);\n\n tickAdjust = () => {};\n }\n\n svg\n .append(\"g\")\n .attr(\"transform\", `translate(0,${height - marginBottom})`)\n .call(\n axisBottom(x)\n .ticks(Array.isArray(ticks) ? null : ticks, typeof tickFormat === \"string\" ? tickFormat : undefined)\n .tickFormat(typeof tickFormat === \"function\" ? tickFormat : undefined)\n .tickSize(tickSize)\n .tickValues(Array.isArray(ticks) ? ticks : null)\n )\n .attr(\"font-size\", null)\n .attr(\"font-family\", null)\n .attr(\"font-variant\", impliedString(fontVariant, \"normal\"))\n .call(tickAdjust)\n .call((g) => g.select(\".domain\").remove());\n\n if (label !== undefined) {\n svg\n .append(\"text\")\n .attr(\"x\", marginLeft)\n .attr(\"y\", marginTop - 6)\n .attr(\"fill\", \"currentColor\") // TODO move to stylesheet?\n .attr(\"font-weight\", \"bold\")\n .text(label);\n }\n\n return svg.node();\n}\n","import { select } from 'd3-selection';\nimport { legend } from '@observablehq/plot';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport type { IPlugin, PluginOptions } from '../index';\n\ninterface LegendOptions extends PluginOptions {\n enabled: boolean;\n itemSelector: string | null;\n label: string | null;\n width: number;\n}\n\nconst DEFAULT_SELECTOR = '#ch-plugin-legend';\n\nconst defaultOptions: LegendOptions = {\n // Whether to display the legend\n enabled: true,\n\n itemSelector: null,\n\n label: null,\n\n width: 130,\n};\n\nexport default class Legend implements IPlugin {\n name = 'Legend';\n\n calendar: CalHeatmap;\n\n root: any;\n\n shown: boolean;\n\n options: LegendOptions;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n this.root = null;\n this.shown = false;\n this.options = defaultOptions;\n }\n\n setup(pluginOptions?: Partial<LegendOptions>): void {\n this.options = { ...defaultOptions, ...pluginOptions };\n }\n\n paint(): Promise<unknown> {\n const scaleOptions = this.calendar.options.options.scale;\n const { enabled, itemSelector } = this.options;\n\n if (!enabled || (itemSelector && select(itemSelector).empty())) {\n return this.destroy();\n }\n\n this.shown = true;\n\n this.root = select(\n itemSelector || this.calendar.options.options.itemSelector,\n );\n\n if (this.root.select(DEFAULT_SELECTOR).empty()) {\n this.root = this.root.append('div').attr('id', DEFAULT_SELECTOR.slice(1));\n } else {\n this.root = this.root.select(DEFAULT_SELECTOR);\n }\n\n // @ts-ignore\n const node = legend({\n ...scaleOptions,\n ...this.options,\n });\n\n this.root.selectAll('*').remove();\n this.root.append(() => node);\n\n return Promise.resolve();\n }\n\n destroy(): Promise<unknown> {\n if (this.root !== null) {\n this.root.remove();\n this.root = null;\n }\n\n return Promise.resolve();\n }\n}\n"],"names":["fails","exec","error","descriptors","require$$0","Object","defineProperty","get","functionBindNative","test","bind","hasOwnProperty","NATIVE_BIND","FunctionPrototype","Function","prototype","call","uncurryThisWithBind","functionUncurryThis","fn","apply","arguments","isNullOrUndefined","it","$TypeError","TypeError","requireObjectCoercible","$Object","toObject","argument","require$$1","hasOwnProperty_1","hasOwn","key","DESCRIPTORS","getDescriptor","getOwnPropertyDescriptor","EXISTS","functionName","PROPER","name","CONFIGURABLE","configurable","makeBuiltIn$3","exports","documentAll","document","all","documentAll_1","IS_HTMLDDA","undefined","isCallable","check","Math","global","globalThis","window","self","this","defineGlobalProperty","value","writable","SHARED","sharedStore","store","require$$2","functionToString","toString","inspectSource","match","version","WeakMap","weakMapBasicDetection","String","isObject","objectDefineProperty","createElement","documentCreateElement","ie8DomDefine","a","v8PrototypeDefineBug","$String","anObject","functionCall","getBuiltIn","namespace","method","length","objectIsPrototypeOf","isPrototypeOf","engineUserAgent","navigator","userAgent","process","Deno","versions","v8","split","engineV8Version","V8_VERSION","symbolConstructorDetection","getOwnPropertySymbols","symbol","Symbol","sham","useSymbolAsUid","iterator","isSymbol","require$$3","$Symbol","tryToString","aCallable","getMethod","V","P","func","shared$3","sharedModule","push","mode","copyright","license","source","uncurryThis","id","postfix","random","uid","shared","NATIVE_SYMBOL","require$$4","USE_SYMBOL_AS_UID","require$$5","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","wellKnownSymbol","ordinaryToPrimitive","input","pref","val","valueOf","TO_PRIMITIVE","toPrimitive","result","exoticToPrim","toPropertyKey","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","f","O","Attributes","current","enumerable","set","has","createPropertyDescriptor","bitmap","definePropertyModule","createNonEnumerableProperty","object","keys","hiddenKeys","NATIVE_WEAK_MAP","sharedKey","require$$7","OBJECT_ALREADY_INITIALIZED","state","metadata","facade","STATE","internalState","enforce","getterFor","TYPE","type","CONFIGURABLE_FUNCTION_NAME","require$$6","enforceInternalState","getInternalState","stringSlice","slice","replace","join","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","makeBuiltInModule","options","getter","setter","arity","constructor","defineBuiltInAccessor","target","descriptor","FUNCTION_NAME_EXISTS","nameRE","regExpExec","objectGetOwnPropertyDescriptor","objectPropertyIsEnumerable","$propertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","classofRaw","classof","indexedObject","IndexedObject","toIndexedObject","propertyIsEnumerableModule","defineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","ceil","floor","trunc","x","n","toIntegerOrInfinity","number","max","min","toLength","lengthOfArrayLike","obj","toAbsoluteIndex","index","integer","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","includes","indexOf","objectKeysInternal","names","i","enumBugKeys","internalObjectKeys","concat","objectGetOwnPropertyNames","getOwnPropertyNames","objectGetOwnPropertySymbols","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","isForced_1","copyConstructorProperties","exceptions","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","objectKeys","require$$8","$assign","assign","objectAssign","b","A","B","alphabet","forEach","chr","T","argumentsLength","S","j","toStringTagSupport","TO_STRING_TAG_SUPPORT","TO_STRING_TAG","CORRECT_ARGUMENTS","tag","tryGet","callee","engineIsNode","uncurryThisAccessor","aPossiblePrototype","objectSetPrototypeOf","setPrototypeOf","CORRECT_SETTER","Array","proto","__proto__","SPECIES","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","$location","defer","channel","port","isConstructor","called","aConstructor","functionApply","Reflect","functionBindContext","that","html","arraySlice","engineIsIos","validateArgumentsLength","passed","required","IS_IOS","require$$10","IS_NODE","require$$11","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","location","run","runner","eventListener","event","globalPostMessageDefer","postMessage","protocol","host","handler","args","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","appendChild","removeChild","setTimeout","task","Queue","head","tail","add","item","entry","next","notify","toggle","node","promise","then","engineIsIosPebble","Pebble","engineIsWebosWebkit","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","Promise","queueMicrotaskDescriptor","microtask","flush","parent","domain","exit","enter","resolve","createTextNode","observe","characterData","microtask_1","perform","promiseNativeConstructor","engineIsDeno","engineIsBrowser","NativePromiseConstructor","IS_BROWSER","IS_DENO","require$$9","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","promiseConstructorDetection","CONSTRUCTOR","REJECTION_EVENT","newPromiseCapability$2","PromiseCapability","C","reject","$$resolve","$$reject","newPromiseCapability","Internal","OwnPromiseCapability","nativeThen","$","setToStringTag","TAG","setSpecies","CONSTRUCTOR_NAME","Constructor","anInstance","Prototype","speciesConstructor","defaultConstructor","require$$14","require$$15","hostReportErrors","console","require$$17","require$$18","InternalStateModule","require$$19","require$$20","newPromiseCapabilityModule","require$$22","PROMISE","require$$21","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","setInternalState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","ok","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","isUnhandled","emit","unwrap","internalReject","done","internalResolve","wrapper","executor","onFulfilled","onRejected","PromiseWrapper","wrap","iterators","Iterators","ITERATOR","ArrayPrototype","getIteratorMethod","isArrayIteratorMethod","getIterator","usingIterator","iteratorMethod","iteratorClose","kind","innerResult","innerError","Result","stopped","ResultPrototype","iterate","iterable","unboundFunction","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","SAFE_CLOSING","iteratorWithReturn","return","from","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","promiseStaticsIncorrectIteration","capability","$promiseResolve","values","remaining","alreadyCalled","real","catch","race","r","promiseResolve","promiseCapability","defined","Number","isNaN","ascendingDefined","ascending","finite","isFinite","NaN","positive","negative","format","date","fallback","Date","hours","getUTCHours","minutes","getUTCMinutes","seconds","getUTCSeconds","milliseconds","getUTCMilliseconds","year","getUTCFullYear","pad","getUTCMonth","getUTCDate","width","padStart","re","parse","timeIntervals","Map","timeSecond","timeMinute","timeHour","timeDay","timeWeek","timeMonth","every","timeYear","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","timeSunday","utcIntervals","utcSecond","utcMinute","utcHour","utcDay","utcWeek","utcMonth","utcYear","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcSunday","maybeTimeInterval","interval","Error","maybeUtcInterval","TypedArray","getPrototypeOf","Uint8Array","objectToString","constant","coerceNumbers","map","coerceNumber","Float64Array","coerceDates","coerceDate","isoParse","maybeColorChannel","defaultValue","trim","startsWith","endsWith","color","isColor","maybeNumberChannel","arrayify","option","isScaleOptions","maybeInterval","isInteger","abs","d","offset","range","lo","hi","rangei","maybeRangeInterval","isOrdinal","isTemporal","isTemporalString","isNumericString","isNoneish","isNone","orderof","first","last","descending","position","radius","opacity","registry","sqrt4_3","sqrt","symbols","symbolAsterisk","symbolCircle","symbolCross","symbolDiamond","symbolDiamond2","draw","context","size","rx","PI","ry","hy","moveTo","lineTo","closePath","symbolPlus","symbolSquare","symbolSquare2","symbolStar","symbolTimes","symbolTriangle","symbolTriangle2","symbolWye","maybeSymbol","isSymbolObject","warn","message","pi","tau","createProjection","projection","inset","globalInset","insetTop","insetRight","insetBottom","insetLeft","dimensions","stream","clip","scaleProjection","geoAlbersUsa","conicProjection","geoAlbers","geoAzimuthalEqualArea","geoAzimuthalEquidistant","geoConicConformal","geoConicEqualArea","geoConicEquidistant","geoEqualEarth","geoEquirectangular","geoGnomonic","identity","reflectY","geoMercator","geoOrthographic","geoStereographic","geoTransverseMercator","namedProjection","height","marginLeft","marginRight","marginTop","marginBottom","dx","dy","x1","y1","x2","y2","s","geoClipRectangle","maybePostClip","transform","tx","ty","x0","y0","geoPath","bounds","k","geoTransform","point","y","kx","ky","rotate","precision","clipAngle","scale","translate","aspectRatio","parallels","fitSize","createContext","className","create","select","creator","documentElement","ordinalSchemes","schemeAccent","schemeCategory10","schemeDark2","schemePaired","schemePastel1","schemePastel2","schemeSet1","schemeSet2","schemeSet3","schemeTableau10","scheme11","schemeBrBG","interpolateBrBG","schemePRGn","interpolatePRGn","schemePiYG","interpolatePiYG","schemePuOr","interpolatePuOr","schemeRdBu","interpolateRdBu","schemeRdGy","interpolateRdGy","schemeRdYlBu","interpolateRdYlBu","schemeRdYlGn","interpolateRdYlGn","schemeSpectral","interpolateSpectral","scheme11r","scheme9","schemeBlues","interpolateBlues","schemeGreens","interpolateGreens","schemeGreys","interpolateGreys","schemeOranges","interpolateOranges","schemePurples","interpolatePurples","schemeReds","interpolateReds","schemei","interpolateTurbo","interpolateViridis","interpolateMagma","interpolateInferno","interpolatePlasma","interpolateCividis","interpolateCubehelixDefault","interpolateWarm","interpolateCool","schemeBuGn","interpolateBuGn","schemeBuPu","interpolateBuPu","schemeGnBu","interpolateGnBu","schemeOrRd","interpolateOrRd","schemePuBu","interpolatePuBu","schemePuBuGn","interpolatePuBuGn","schemePuRd","interpolatePuRd","schemeRdPu","interpolateRdPu","schemeYlGn","interpolateYlGn","schemeYlGnBu","interpolateYlGnBu","schemeYlOrBr","interpolateYlOrBr","schemeYlOrRd","interpolateYlOrRd","schemeicyclical","interpolateRainbow","interpolateSinebow","scheme","interpolate","quantize","t","reverse","ordinalScheme","ordinalRange","quantitativeSchemes","quantitativeScheme","divergingSchemes","Set","isDivergingScheme","flip","unit","interpolators","interpolateNumber","interpolateRgb","interpolateHsl","interpolateHcl","interpolateLab","maybeInterpolator","createScaleQ","channels","nice","clamp","zero","inferAutoDomain","unknown","round","inferRadialRange","inferLengthRange","interpolateRound","_","interpolatePiecewise","extent","sign","reverseof","maybeNiceInterval","maybeNice","createScalePow","exponent","scalePow","createScaleThreshold","isOrdered","scaleThreshold","inferDomain","inferZeroDomain","hint","find","h25","quantile","h50","median","inferLogDomain","v","inferQuantileDomain","createScaleD","pivot","symmetric","piecewise","mid","mindelta","maxdelta","invert","interpolator","createScaleDivergingPow","scaleDivergingPow","transformSqrt","pow","transformPow","createScaleDivergingSymlog","scaleDivergingSymlog","log1p","expm1","transformSymlog","transformIdentity","transformLog","log","exp","createScaleT","ordinalImplicit","createScaleO","createScaleOrdinal","fill","inferHint","stroke","inferSymbolHint","symbolsStroke","symbolsFill","inferSymbolRange","maybeBooleanRange","t0","scaleImplicit","scaleOrdinal","maybeRound","InternSet","sort","candidate","normalizeScale","typeProjection","some","asOrdinalType","filter","inferScaleType","isOrdinalScale","formatScaleType","coerceType","coerceSymbols","scaleDiverging","createScaleDiverging","createScaleDivergingSqrt","base","scaleDivergingLog","createScaleDivergingLog","scaleLinear","createScaleLinear","createScaleSqrt","quantiles","scaleQuantile","createScaleQuantile","thresholds","ticks","splice","pop","createScaleQuantize","scaleLog","createScaleLog","scaleSymlog","createScaleSymlog","scaleUtc","createScaleUtc","scaleTime","createScaleTime","align","padding","scalePoint","createScalePoint","paddingInner","paddingOuter","scaleBand","createScaleBand","scaleIdentity","createScale","description","coerceValues","c","numberFormat","compute","cacheValue","cacheKeys","memoize1","locale","Intl","NumberFormat","formatIsoDate","isoFormat","impliedString","impliedValue","formatNumber","formatAuto","validClassName","maybeClassName","applyInlineStyles","selection","style","property","element","inferFontVariant","maybeScale","legendItems","swatch","columns","tickFormat","fontVariant","swatchSize","swatchWidth","swatchHeight","utcFormat","maybeAutoTickFormat","swatches","attr","extraStyle","selectAll","append","text","ownerDocument","div","insert","legendRegistry","fillOpacity","strokeOpacity","strokeWidth","vf","cf","vs","cs","sf","ss","p","path","legendColor","legend","rgb","interpolateOpacity","legendOptions","label","rest","o","defaults","inherit","isThresholdScale","legendSwatches","tickSize","svg","tickAdjust","g","applyRange","rangeRound","copy","Infinity","canvas","context2","getContext","fillStyle","fillRect","toDataURL","thresholdFormat","bandwidth","axisBottom","isArray","tickValues","remove","legendRamp","DEFAULT_SELECTOR","defaultOptions","enabled","itemSelector","Legend","calendar","_classCallCheck","root","shown","pluginOptions","scaleOptions","_this$options","destroy"],"mappings":"igIAAAA,GAAiB,SAAUC,GACzB,IACE,QAASA,GACV,CAAC,MAAOC,GACP,OAAO,CACR,CACH,ECHAC,IAHYC,IAGY,WAEtB,OAA8E,GAAvEC,OAAOC,eAAe,GAAI,EAAG,CAAEC,IAAK,WAAc,OAAO,CAAI,IAAI,EAC1E,ICJAC,IAFYJ,IAEY,WAEtB,IAAIK,EAAO,WAA4B,EAAEC,OAEzC,MAAsB,mBAARD,GAAsBA,EAAKE,eAAe,YAC1D,ICPIC,GAAcR,GAEdS,GAAoBC,SAASC,UAC7BC,GAAOH,GAAkBG,KACzBC,GAAsBL,IAAeC,GAAkBH,KAAKA,KAAKM,GAAMA,IAE3EE,GAAiBN,GAAcK,GAAsB,SAAUE,GAC7D,OAAO,WACL,OAAOH,GAAKI,MAAMD,EAAIE,UAC1B,CACA,ECRAC,GAAiB,SAAUC,GACzB,OAAOA,OACT,ECJID,GAAoBlB,GAEpBoB,GAAaC,UAIjBC,GAAiB,SAAUH,GACzB,GAAID,GAAkBC,GAAK,MAAMC,GAAW,wBAA0BD,GACtE,OAAOA,CACT,ECTIG,GAAyBtB,GAEzBuB,GAAUtB,OAIduB,GAAiB,SAAUC,GACzB,OAAOF,GAAQD,GAAuBG,GACxC,ECPID,GAAWE,GAEXnB,GAHcP,GAGe,GAAGO,gBAKpCoB,GAAiB1B,OAAO2B,QAAU,SAAgBT,EAAIU,GACpD,OAAOtB,GAAeiB,GAASL,GAAKU,EACtC,ECVIC,GAAc9B,GACd4B,GAASF,GAETjB,GAAoBC,SAASC,UAE7BoB,GAAgBD,IAAe7B,OAAO+B,yBAEtCC,GAASL,GAAOnB,GAAmB,QAKvCyB,GAAiB,CACfD,OAAQA,GACRE,OALWF,IAA0D,cAAhD,WAAqC,EAAEG,KAM5DC,aALiBJ,MAAYH,IAAgBA,IAAeC,GAActB,GAAmB,QAAQ6B,eCVvGC,GAAA,CAAAC,QAAA,CAAA,GAAIC,GAAiC,iBAAZC,UAAwBA,SAASC,IAM1DC,GAAiB,CACfD,IAAKF,GACLI,gBAJqC,IAAfJ,SAA8CK,IAAhBL,ICFlDA,GAFezC,GAEY2C,IAI/BI,GANmB/C,GAMW6C,WAAa,SAAUpB,GACnD,MAA0B,mBAAZA,GAA0BA,IAAagB,EACvD,EAAI,SAAUhB,GACZ,MAA0B,mBAAZA,CAChB,ECVIuB,GAAQ,SAAU7B,GACpB,OAAOA,GAAMA,EAAG8B,MAAQA,MAAQ9B,CAClC,EAGA+B,GAEEF,GAA2B,iBAAdG,YAA0BA,aACvCH,GAAuB,iBAAVI,QAAsBA,SAEnCJ,GAAqB,iBAARK,MAAoBA,OACjCL,GAAuB,iBAAVE,IAAsBA,KAEnC,WAAe,OAAOI,IAAO,CAA7B,IAAoCA,IAAQ5C,SAAS,cAATA,GCb1CwC,GAASlD,GAGTE,GAAiBD,OAAOC,eAE5BqD,GAAiB,SAAU1B,EAAK2B,GAC9B,IACEtD,GAAegD,GAAQrB,EAAK,CAAE2B,MAAOA,EAAOlB,cAAc,EAAMmB,UAAU,GAC3E,CAAC,MAAO3D,GACPoD,GAAOrB,GAAO2B,CACf,CAAC,OAAOA,CACX,ECVID,GAAuB7B,GAEvBgC,GAAS,qBAGbC,GANa3D,GAIM0D,KAAWH,GAAqBG,GAAQ,CAAA,GCHvDX,GAAarB,GACbkC,GAAQC,GAERC,GAJc9D,GAIiBU,SAASqD,UAGvChB,GAAWa,GAAMI,iBACpBJ,GAAMI,cAAgB,SAAU7C,GAC9B,OAAO2C,GAAiB3C,EAC5B,OCHI8C,GAAOC,GDMXF,GAAiBJ,GAAMI,cEZnBjB,GAAarB,GAEbyC,GAHSnE,GAGQmE,QAErBC,GAAiBrB,GAAWoB,KAAY,cAAc9D,KAAKgE,OAAOF,KCL9DpB,GAAa/C,GAGbyC,GAFef,GAEYiB,IAE/B2B,GAJmB5C,GAIWmB,WAAa,SAAU1B,GACnD,MAAoB,iBAANA,EAAwB,OAAPA,EAAc4B,GAAW5B,IAAOA,IAAOsB,EACxE,EAAI,SAAUtB,GACZ,MAAoB,iBAANA,EAAwB,OAAPA,EAAc4B,GAAW5B,EAC1D,ECTAoD,GAAA,CAAA,EACID,GAAW5C,GAEXgB,GAHS1C,GAGS0C,SAElBT,GAASqC,GAAS5B,KAAa4B,GAAS5B,GAAS8B,eAErDC,GAAiB,SAAUtD,GACzB,OAAOc,GAASS,GAAS8B,cAAcrD,GAAM,CAAA,CAC/C,ECPIqD,GAAgBX,GAGpBa,IALkB1E,KACN0B,IAI4B,WAEtC,OAEQ,GAFDzB,OAAOC,eAAesE,GAAc,OAAQ,IAAK,CACtDrE,IAAK,WAAc,OAAO,CAAI,IAC7BwE,CACL,ICLAC,GALkB5E,IACN0B,IAI0B,WAEpC,OAGgB,IAHTzB,OAAOC,gBAAe,WAAY,GAAiB,YAAa,CACrEsD,MAAO,GACPC,UAAU,IACT9C,SACL,ICXI2D,GAAWtE,GAEX6E,GAAUR,OACVjD,GAAaC,UAGjByD,GAAiB,SAAUrD,GACzB,GAAI6C,GAAS7C,GAAW,OAAOA,EAC/B,MAAML,GAAWyD,GAAQpD,GAAY,oBACvC,ECTIjB,GAAcR,GAEdY,GAAOF,SAASC,UAAUC,KAE9BmE,GAAiBvE,GAAcI,GAAKN,KAAKM,IAAQ,WAC/C,OAAOA,GAAKI,MAAMJ,GAAMK,UAC1B,ECNIiC,GAASlD,GACT+C,GAAarB,GAMjBsD,GAAiB,SAAUC,EAAWC,GACpC,OAAOjE,UAAUkE,OAAS,GALF1D,EAKgByB,GAAO+B,GAJxClC,GAAWtB,GAAYA,OAAWqB,GAIoBI,GAAO+B,IAAc/B,GAAO+B,GAAWC,GALtF,IAAUzD,CAM1B,ECPA2D,GAFkBpF,GAEW,CAAE,EAACqF,eCFhCC,GAAqC,oBAAbC,WAA4BlB,OAAOkB,UAAUC,YAAc,GVA/EtC,GAASlD,GACTwF,GAAY9D,GAEZ+D,GAAUvC,GAAOuC,QACjBC,GAAOxC,GAAOwC,KACdC,GAAWF,IAAWA,GAAQE,UAAYD,IAAQA,GAAKxB,QACvD0B,GAAKD,IAAYA,GAASC,GAG1BA,KAIF1B,IAHAD,GAAQ2B,GAAGC,MAAM,MAGD,GAAK,GAAK5B,GAAM,GAAK,EAAI,IAAMA,GAAM,GAAKA,GAAM,MAK7DC,IAAWsB,OACdvB,GAAQuB,GAAUvB,MAAM,iBACVA,GAAM,IAAM,MACxBA,GAAQuB,GAAUvB,MAAM,oBACbC,IAAWD,GAAM,IAIhC,IAAA6B,GAAiB5B,GWzBb6B,GAAa/F,GACbJ,GAAQ8B,GAGRmD,GAFShB,GAEQQ,OAGrB2B,KAAmB/F,OAAOgG,wBAA0BrG,IAAM,WACxD,IAAIsG,EAASC,SAKb,OAAQtB,GAAQqB,MAAajG,OAAOiG,aAAmBC,UAEpDA,OAAOC,MAAQL,IAAcA,GAAa,EAC/C,ICdAM,GAFoBrG,KAGdmG,OAAOC,MACkB,iBAAnBD,OAAOG,SCLftB,GAAahF,GACb+C,GAAarB,GACb2D,GAAgBxB,GAGhBtC,GAAUtB,OAEdsG,GAJwBC,GAIa,SAAUrF,GAC7C,MAAoB,iBAANA,CAChB,EAAI,SAAUA,GACZ,IAAIsF,EAAUzB,GAAW,UACzB,OAAOjC,GAAW0D,IAAYpB,GAAcoB,EAAQ9F,UAAWY,GAAQJ,GACzE,ECZI0D,GAAUR,OAEdqC,GAAiB,SAAUjF,GACzB,IACE,OAAOoD,GAAQpD,EAChB,CAAC,MAAO3B,GACP,MAAO,QACR,CACH,ECRIiD,GAAa/C,GACb0G,GAAchF,GAEdN,GAAaC,UAGjBsF,GAAiB,SAAUlF,GACzB,GAAIsB,GAAWtB,GAAW,OAAOA,EACjC,MAAML,GAAWsF,GAAYjF,GAAY,qBAC3C,ECTIkF,GAAY3G,GACZkB,GAAoBQ,GAIxBkF,GAAiB,SAAUC,EAAGC,GAC5B,IAAIC,EAAOF,EAAEC,GACb,OAAO5F,GAAkB6F,QAAQjE,EAAY6D,GAAUI,EACzD,ECRInG,GAAOZ,GACP+C,GAAarB,GACb4C,GAAWT,GAEXzC,GAAaC,UCHjB2F,GAAA,CAAAxE,QAAA,CAAA,GAAIoB,GAAQlC,IAEXuF,WAAiB,SAAUpF,EAAK2B,GAC/B,OAAOI,GAAM/B,KAAS+B,GAAM/B,QAAiBiB,IAAVU,EAAsBA,EAAQ,CAAA,EACnE,GAAG,WAAY,IAAI0D,KAAK,CACtBhD,QAAS,SACTiD,KAAyB,SACzBC,UAAW,4CACXC,QAAS,2DACTC,OAAQ,0DCVNC,GAAcvH,GAEdwH,GAAK,EACLC,GAAUxE,KAAKyE,SACf3D,GAAWwD,GAAY,GAAIxD,UAE/B4D,GAAiB,SAAU9F,GACzB,MAAO,gBAAqBiB,IAARjB,EAAoB,GAAKA,GAAO,KAAOkC,KAAWyD,GAAKC,GAAS,GACtF,ECPIG,GAASlG,GACTE,GAASiC,GACT8D,GAAMnB,GACNqB,GAAgBC,GAChBC,GAAoBC,GAEpB7B,GAPSnG,GAOOmG,OAChB8B,GAAwBL,GAAO,OAC/BM,GAAwBH,GAAoB5B,GAAY,KAAKA,GAASA,IAAUA,GAAOgC,eAAiBR,GAE5GS,GAAiB,SAAUhG,GAKvB,OAJGR,GAAOqG,GAAuB7F,KACjC6F,GAAsB7F,GAAQyF,IAAiBjG,GAAOuE,GAAQ/D,GAC1D+D,GAAO/D,GACP8F,GAAsB,UAAY9F,IAC/B6F,GAAsB7F,EACjC,ECjBIxB,GAAOZ,GACPsE,GAAW5C,GACX6E,GAAW1C,GACX+C,GAAYJ,GACZ6B,GJIa,SAAUC,EAAOC,GAChC,IAAIxH,EAAIyH,EACR,GAAa,WAATD,GAAqBxF,GAAWhC,EAAKuH,EAAMvE,YAAcO,GAASkE,EAAM5H,GAAKG,EAAIuH,IAAS,OAAOE,EACrG,GAAIzF,GAAWhC,EAAKuH,EAAMG,WAAanE,GAASkE,EAAM5H,GAAKG,EAAIuH,IAAS,OAAOE,EAC/E,GAAa,WAATD,GAAqBxF,GAAWhC,EAAKuH,EAAMvE,YAAcO,GAASkE,EAAM5H,GAAKG,EAAIuH,IAAS,OAAOE,EACrG,MAAMpH,GAAW,0CACnB,EIPIA,GAAaC,UACbqH,GAHkBV,GAGa,eCR/BW,GDYa,SAAUL,EAAOC,GAChC,IAAKjE,GAASgE,IAAU/B,GAAS+B,GAAQ,OAAOA,EAChD,IACIM,EADAC,EAAejC,GAAU0B,EAAOI,IAEpC,GAAIG,EAAc,CAGhB,QAFa/F,IAATyF,IAAoBA,EAAO,WAC/BK,EAAShI,GAAKiI,EAAcP,EAAOC,IAC9BjE,GAASsE,IAAWrC,GAASqC,GAAS,OAAOA,EAClD,MAAMxH,GAAW,0CAClB,CAED,YADa0B,IAATyF,IAAoBA,EAAO,UACxBF,GAAoBC,EAAOC,EACpC,ECvBIhC,GAAW7E,GAIfoH,GAAiB,SAAUrH,GACzB,IAAII,EAAM8G,GAAYlH,EAAU,UAChC,OAAO8E,GAAS1E,GAAOA,EAAMA,EAAM,EACrC,ECRIC,GAAc9B,GACd+I,GAAiBrH,GACjBsH,GAA0BnF,GAC1BiB,GAAW0B,GACXsC,GAAgBhB,GAEhB1G,GAAaC,UAEb4H,GAAkBhJ,OAAOC,eAEzBgJ,GAA4BjJ,OAAO+B,yBACnCmH,GAAa,aACb9G,GAAe,eACf+G,GAAW,WAIf7E,GAAA8E,EAAYvH,GAAckH,GAA0B,SAAwBM,EAAGxC,EAAGyC,GAIhF,GAHAzE,GAASwE,GACTxC,EAAIgC,GAAchC,GAClBhC,GAASyE,GACQ,mBAAND,GAA0B,cAANxC,GAAqB,UAAWyC,GAAcH,MAAYG,IAAeA,EAAWH,IAAW,CAC5H,IAAII,EAAUN,GAA0BI,EAAGxC,GACvC0C,GAAWA,EAAQJ,MACrBE,EAAExC,GAAKyC,EAAW/F,MAClB+F,EAAa,CACXjH,aAAcD,MAAgBkH,EAAaA,EAAWlH,IAAgBmH,EAAQnH,IAC9EoH,WAAYN,MAAcI,EAAaA,EAAWJ,IAAcK,EAAQL,IACxE1F,UAAU,GAGf,CAAC,OAAOwF,GAAgBK,EAAGxC,EAAGyC,EACjC,EAAIN,GAAkB,SAAwBK,EAAGxC,EAAGyC,GAIlD,GAHAzE,GAASwE,GACTxC,EAAIgC,GAAchC,GAClBhC,GAASyE,GACLR,GAAgB,IAClB,OAAOE,GAAgBK,EAAGxC,EAAGyC,EACjC,CAAI,MAAOzJ,GAAsB,CAC/B,GAAI,QAASyJ,GAAc,QAASA,EAAY,MAAMnI,GAAW,2BAEjE,MADI,UAAWmI,IAAYD,EAAExC,GAAKyC,EAAW/F,OACtC8F,CACT,EC1CA,ICYII,GAAKvJ,GAAKwJ,GDZdC,GAAiB,SAAUC,EAAQrG,GACjC,MAAO,CACLiG,aAAuB,EAATI,GACdvH,eAAyB,EAATuH,GAChBpG,WAAqB,EAAToG,GACZrG,MAAOA,EAEX,EENIsG,GAAuBpI,GACvBkI,GAA2B/F,GAE/BkG,GAJkB/J,GAIa,SAAUgK,EAAQnI,EAAK2B,GACpD,OAAOsG,GAAqBT,EAAEW,EAAQnI,EAAK+H,GAAyB,EAAGpG,GACzE,EAAI,SAAUwG,EAAQnI,EAAK2B,GAEzB,OADAwG,EAAOnI,GAAO2B,EACPwG,CACT,ECRIrC,GAAMjG,GAENuI,GAHSjK,GAGK,QCHlBkK,GAAiB,CAAA,EHAbC,GAAkBnK,GAClBkD,GAASxB,GACT4C,GAAWT,GACXkG,GAA8BvD,GAC9B5E,GAASkG,GACTF,GAASI,GACToC,GEDa,SAAUvI,GACzB,OAAOoI,GAAKpI,KAASoI,GAAKpI,GAAO8F,GAAI9F,GACvC,EFAIqI,GAAaG,GAEbC,GAA6B,6BAC7BjJ,GAAY6B,GAAO7B,UACnB8C,GAAUjB,GAAOiB,QAgBrB,GAAIgG,IAAmBvC,GAAO2C,MAAO,CACnC,IAAI3G,GAAQgE,GAAO2C,QAAU3C,GAAO2C,MAAQ,IAAIpG,IAEhDP,GAAMzD,IAAMyD,GAAMzD,IAClByD,GAAM+F,IAAM/F,GAAM+F,IAClB/F,GAAM8F,IAAM9F,GAAM8F,IAElBA,GAAM,SAAUvI,EAAIqJ,GAClB,GAAI5G,GAAM+F,IAAIxI,GAAK,MAAME,GAAUiJ,IAGnC,OAFAE,EAASC,OAAStJ,EAClByC,GAAM8F,IAAIvI,EAAIqJ,GACPA,CACX,EACErK,GAAM,SAAUgB,GACd,OAAOyC,GAAMzD,IAAIgB,IAAO,CAAA,CAC5B,EACEwI,GAAM,SAAUxI,GACd,OAAOyC,GAAM+F,IAAIxI,EACrB,CACA,KAAO,CACL,IAAIuJ,GAAQN,GAAU,SACtBF,GAAWQ,KAAS,EACpBhB,GAAM,SAAUvI,EAAIqJ,GAClB,GAAI5I,GAAOT,EAAIuJ,IAAQ,MAAMrJ,GAAUiJ,IAGvC,OAFAE,EAASC,OAAStJ,EAClB4I,GAA4B5I,EAAIuJ,GAAOF,GAChCA,CACX,EACErK,GAAM,SAAUgB,GACd,OAAOS,GAAOT,EAAIuJ,IAASvJ,EAAGuJ,IAAS,EAC3C,EACEf,GAAM,SAAUxI,GACd,OAAOS,GAAOT,EAAIuJ,GACtB,CACA,CAEA,IAAAC,GAAiB,CACfjB,IAAKA,GACLvJ,IAAKA,GACLwJ,IAAKA,GACLiB,QArDY,SAAUzJ,GACtB,OAAOwI,GAAIxI,GAAMhB,GAAIgB,GAAMuI,GAAIvI,EAAI,CAAA,EACrC,EAoDE0J,UAlDc,SAAUC,GACxB,OAAO,SAAU3J,GACf,IAAIoJ,EACJ,IAAKjG,GAASnD,KAAQoJ,EAAQpK,GAAIgB,IAAK4J,OAASD,EAC9C,MAAMzJ,GAAU,0BAA4ByJ,EAAO,aACnD,OAAOP,CACb,CACA,GIzBIhD,GAAcvH,GACdJ,GAAQ8B,GACRqB,GAAac,GACbjC,GAAS4E,GACT1E,GAAcgG,GACdkD,GAA6BhD,GAAsC3F,aACnE2B,GAAgBiH,GAGhBC,GAFsBb,GAEqBO,QAC3CO,GAHsBd,GAGiBlK,IACvC0E,GAAUR,OAEVnE,GAAiBD,OAAOC,eACxBkL,GAAc7D,GAAY,GAAG8D,OAC7BC,GAAU/D,GAAY,GAAG+D,SACzBC,GAAOhE,GAAY,GAAGgE,MAEtBC,GAAsB1J,KAAgBlC,IAAM,WAC9C,OAAsF,IAA/EM,IAAe,WAA2B,GAAE,SAAU,CAAEsD,MAAO,IAAK2B,MAC7E,IAEIsG,GAAWpH,OAAOA,QAAQwB,MAAM,UAEhC6F,GAAcC,GAAAnJ,QAAiB,SAAUgB,EAAOpB,EAAMwJ,GACf,YAArCR,GAAYvG,GAAQzC,GAAO,EAAG,KAChCA,EAAO,IAAMkJ,GAAQzG,GAAQzC,GAAO,qBAAsB,MAAQ,KAEhEwJ,GAAWA,EAAQC,SAAQzJ,EAAO,OAASA,GAC3CwJ,GAAWA,EAAQE,SAAQ1J,EAAO,OAASA,KAC1CR,GAAO4B,EAAO,SAAYwH,IAA8BxH,EAAMpB,OAASA,KACtEN,GAAa5B,GAAesD,EAAO,OAAQ,CAAEA,MAAOpB,EAAME,cAAc,IACvEkB,EAAMpB,KAAOA,GAEhBoJ,IAAuBI,GAAWhK,GAAOgK,EAAS,UAAYpI,EAAM2B,SAAWyG,EAAQG,OACzF7L,GAAesD,EAAO,SAAU,CAAEA,MAAOoI,EAAQG,QAEnD,IACMH,GAAWhK,GAAOgK,EAAS,gBAAkBA,EAAQI,YACnDlK,IAAa5B,GAAesD,EAAO,YAAa,CAAEC,UAAU,IAEvDD,EAAM7C,YAAW6C,EAAM7C,eAAYmC,EAClD,CAAI,MAAOhD,GAAsB,CAC/B,IAAIyK,EAAQW,GAAqB1H,GAG/B,OAFG5B,GAAO2I,EAAO,YACjBA,EAAMjD,OAASiE,GAAKE,GAAyB,iBAARrJ,EAAmBA,EAAO,KACxDoB,CACX,EAIA9C,SAASC,UAAUoD,SAAW2H,IAAY,WACxC,OAAO3I,GAAWO,OAAS6H,GAAiB7H,MAAMgE,QAAUtD,GAAcV,KAC5E,GAAG,8BCrDCoI,GAAc1L,GACdE,GAAiBwB,GAErBuK,GAAiB,SAAUC,EAAQ9J,EAAM+J,GAGvC,OAFIA,EAAWhM,KAAKuL,GAAYS,EAAWhM,IAAKiC,EAAM,CAAEyJ,QAAQ,IAC5DM,EAAWzC,KAAKgC,GAAYS,EAAWzC,IAAKtH,EAAM,CAAE0J,QAAQ,IACzD5L,GAAemJ,EAAE6C,EAAQ9J,EAAM+J,EACxC,ECPIrK,GAAc9B,GACdoM,GAAuB1K,GAAsCO,OAC7DsF,GAAc1D,GACdoI,GAAwBzF,GAExB/F,GAAoBC,SAASC,UAC7BmD,GAAmByD,GAAY9G,GAAkBsD,UACjDsI,GAAS,mEACTC,GAAa/E,GAAY8E,GAAOxM,MAKhCiC,KAAgBsK,IAClBH,GAAsBxL,GALb,OAKsC,CAC7C6B,cAAc,EACdnC,IAAK,WACH,IACE,OAAOmM,GAAWD,GAAQvI,GAAiBR,OAAO,EACnD,CAAC,MAAOxD,GACP,MAAO,EACR,CACF,IAEL,IAAAyM,GAAA,CAAA,EAAAC,GAAA,CAAA,ECvBIC,GAAwB,CAAE,EAACC,qBAE3B1K,GAA2B/B,OAAO+B,yBAGlC2K,GAAc3K,KAA6ByK,GAAsB7L,KAAK,CAAE,EAAG,GAAK,GAIpF4L,GAAAnD,EAAYsD,GAAc,SAA8B9F,GACtD,IAAIsF,EAAanK,GAAyBsB,KAAMuD,GAChD,QAASsF,GAAcA,EAAW1C,UACpC,EAAIgD,GCbJ,IAAIlF,GAAcvH,GAEd+D,GAAWwD,GAAY,GAAGxD,UAC1BqH,GAAc7D,GAAY,GAAG8D,OAEjCuB,GAAiB,SAAUzL,GACzB,OAAOiK,GAAYrH,GAAS5C,GAAK,GAAI,EACvC,ECNIvB,GAAQ8B,GACRmL,GAAUhJ,GAEVtC,GAAUtB,OACV4F,GALc7F,GAKM,GAAG6F,OAG3BiH,GAAiBlN,IAAM,WAGrB,OAAQ2B,GAAQ,KAAKmL,qBAAqB,EAC5C,IAAK,SAAUvL,GACb,MAAsB,UAAf0L,GAAQ1L,GAAkB0E,GAAM1E,EAAI,IAAMI,GAAQJ,EAC3D,EAAII,GCbAwL,GAAgB/M,GAChBsB,GAAyBI,GAE7BsL,GAAiB,SAAU7L,GACzB,OAAO4L,GAAczL,GAAuBH,GAC9C,ECNIW,GAAc9B,GACdY,GAAOc,GACPuL,GAA6BpJ,GAC7B+F,GAA2BpD,GAC3BwG,GAAkBlF,GAClBgB,GAAgBd,GAChBpG,GAASqJ,GACTlC,GAAiBsB,GAGjBnB,GAA4BjJ,OAAO+B,yBAI9BuK,GAAAlD,EAAGvH,GAAcoH,GAA4B,SAAkCI,EAAGxC,GAGzF,GAFAwC,EAAI0D,GAAgB1D,GACpBxC,EAAIgC,GAAchC,GACdiC,GAAgB,IAClB,OAAOG,GAA0BI,EAAGxC,EACxC,CAAI,MAAOhH,GAAsB,CAC/B,GAAI8B,GAAO0H,EAAGxC,GAAI,OAAO8C,IAA0BhJ,GAAKqM,GAA2B5D,EAAGC,EAAGxC,GAAIwC,EAAExC,GACjG,ECrBA,IAAI/D,GAAa/C,GACb8J,GAAuBpI,GACvBgK,GAAc7H,GACdN,GAAuBiD,GAE3B0G,GAAiB,SAAU5D,EAAGzH,EAAK2B,EAAOoI,GACnCA,IAASA,EAAU,IACxB,IAAIuB,EAASvB,EAAQnC,WACjBrH,OAAwBU,IAAjB8I,EAAQxJ,KAAqBwJ,EAAQxJ,KAAOP,EAEvD,GADIkB,GAAWS,IAAQkI,GAAYlI,EAAOpB,EAAMwJ,GAC5CA,EAAQ1I,OACNiK,EAAQ7D,EAAEzH,GAAO2B,EAChBD,GAAqB1B,EAAK2B,OAC1B,CACL,IACOoI,EAAQwB,OACJ9D,EAAEzH,KAAMsL,GAAS,UADE7D,EAAEzH,EAEpC,CAAM,MAAO/B,GAAsB,CAC3BqN,EAAQ7D,EAAEzH,GAAO2B,EAChBsG,GAAqBT,EAAEC,EAAGzH,EAAK,CAClC2B,MAAOA,EACPiG,YAAY,EACZnH,cAAesJ,EAAQyB,gBACvB5J,UAAWmI,EAAQ0B,aAEtB,CAAC,OAAOhE,CACX,QC1BIiE,GAAOtK,KAAKsK,KACZC,GAAQvK,KAAKuK,MCDbC,GDMaxK,KAAKwK,OAAS,SAAeC,GAC5C,IAAIC,GAAKD,EACT,OAAQC,EAAI,EAAIH,GAAQD,IAAMI,EAChC,ECLAC,GAAiB,SAAUnM,GACzB,IAAIoM,GAAUpM,EAEd,OAAOoM,GAAWA,GAAqB,IAAXA,EAAe,EAAIJ,GAAMI,EACvD,ECRID,GAAsB5N,GAEtB8N,GAAM7K,KAAK6K,IACXC,GAAM9K,KAAK8K,ICHXH,GAAsB5N,GAEtB+N,GAAM9K,KAAK8K,ICFXC,GDMa,SAAUvM,GACzB,OAAOA,EAAW,EAAIsM,GAAIH,GAAoBnM,GAAW,kBAAoB,CAC/E,ECJAwM,GAAiB,SAAUC,GACzB,OAAOF,GAASE,EAAI/I,OACtB,ECNI6H,GAAkBhN,GAClBmO,GHOa,SAAUC,EAAOjJ,GAChC,IAAIkJ,EAAUT,GAAoBQ,GAClC,OAAOC,EAAU,EAAIP,GAAIO,EAAUlJ,EAAQ,GAAK4I,GAAIM,EAASlJ,EAC/D,EGTI8I,GAAoBpK,GAGpByK,GAAe,SAAUC,GAC3B,OAAO,SAAUC,EAAOC,EAAIC,GAC1B,IAGIlL,EAHA8F,EAAI0D,GAAgBwB,GACpBrJ,EAAS8I,GAAkB3E,GAC3B8E,EAAQD,GAAgBO,EAAWvJ,GAIvC,GAAIoJ,GAAeE,GAAMA,GAAI,KAAOtJ,EAASiJ,GAG3C,IAFA5K,EAAQ8F,EAAE8E,OAEG5K,EAAO,OAAO,OAEtB,KAAM2B,EAASiJ,EAAOA,IAC3B,IAAKG,GAAeH,KAAS9E,IAAMA,EAAE8E,KAAWK,EAAI,OAAOF,GAAeH,GAAS,EACnF,OAAQG,IAAgB,CAC9B,CACA,EAEAI,GAAiB,CAGfC,SAAUN,IAAa,GAGvBO,QAASP,IAAa,IC7BpB1M,GAASF,GACTsL,GAAkBnJ,GAClBgL,GAAUrI,GAAuCqI,QACjD3E,GAAapC,GAEbZ,GANclH,GAMK,GAAGkH,MAE1B4H,GAAiB,SAAU9E,EAAQ+E,GACjC,IAGIlN,EAHAyH,EAAI0D,GAAgBhD,GACpBgF,EAAI,EACJpG,EAAS,GAEb,IAAK/G,KAAOyH,GAAI1H,GAAOsI,GAAYrI,IAAQD,GAAO0H,EAAGzH,IAAQqF,GAAK0B,EAAQ/G,GAE1E,KAAOkN,EAAM5J,OAAS6J,GAAOpN,GAAO0H,EAAGzH,EAAMkN,EAAMC,SAChDH,GAAQjG,EAAQ/G,IAAQqF,GAAK0B,EAAQ/G,IAExC,OAAO+G,CACT,EClBAqG,GAAiB,CACf,cACA,iBACA,gBACA,uBACA,iBACA,WACA,WCREC,GAAqBlP,GAGrBkK,GAFcxI,GAEWyN,OAAO,SAAU,aAKrCC,GAAA/F,EAAGpJ,OAAOoP,qBAAuB,SAA6B/F,GACrE,OAAO4F,GAAmB5F,EAAGY,GAC/B,ECVA,IAAAoF,GAAA,CAAA,EACSA,GAAAjG,EAAGpJ,OAAOgG,sBCDnB,IAAIjB,GAAahF,GAEbuP,GAA4B1L,GAC5B2L,GAA8BhJ,GAC9B1B,GAAWgD,GAEXqH,GALczN,GAKO,GAAGyN,QAG5BM,GAAiBzK,GAAW,UAAW,YAAc,SAAiB7D,GACpE,IAAI8I,EAAOsF,GAA0BlG,EAAEvE,GAAS3D,IAC5C8E,EAAwBuJ,GAA4BnG,EACxD,OAAOpD,EAAwBkJ,GAAOlF,EAAMhE,EAAsB9E,IAAO8I,CAC3E,ECbIrI,GAAS5B,GACTyP,GAAU/N,GACVgO,GAAiC7L,GACjCiG,GAAuBtD,GCHvB5G,GAAQI,GACR+C,GAAarB,GAEbiO,GAAc,kBAEdC,GAAW,SAAUC,EAASC,GAChC,IAAItM,EAAQuM,GAAKC,GAAUH,IAC3B,OAAOrM,GAASyM,IACZzM,GAAS0M,KACTnN,GAAW+M,GAAalQ,GAAMkQ,KAC5BA,EACR,EAEIE,GAAYJ,GAASI,UAAY,SAAUG,GAC7C,OAAO9L,OAAO8L,GAAQ7E,QAAQqE,GAAa,KAAKS,aAClD,EAEIL,GAAOH,GAASG,KAAO,GACvBG,GAASN,GAASM,OAAS,IAC3BD,GAAWL,GAASK,SAAW,IAEnCI,GAAiBT,GCrBb1M,GAASlD,GACTgC,GAA2BN,GAA2D2H,EACtFU,GAA8BlG,GAC9BqJ,GAAgB1G,GAChBjD,GAAuBuE,GACvBwI,GFAa,SAAUpE,EAAQ5E,EAAQiJ,GAIzC,IAHA,IAAItG,EAAOwF,GAAQnI,GACfpH,EAAiB4J,GAAqBT,EACtCrH,EAA2B0N,GAA+BrG,EACrD2F,EAAI,EAAGA,EAAI/E,EAAK9E,OAAQ6J,IAAK,CACpC,IAAInN,EAAMoI,EAAK+E,GACVpN,GAAOsK,EAAQrK,IAAU0O,GAAc3O,GAAO2O,EAAY1O,IAC7D3B,EAAegM,EAAQrK,EAAKG,EAAyBsF,EAAQzF,GAEhE,CACH,EETI+N,GAAW3E,GAiBfuF,GAAiB,SAAU5E,EAAStE,GAClC,IAGY4E,EAAQrK,EAAK4O,EAAgBC,EAAgBvE,EAHrDwE,EAAS/E,EAAQM,OACjB0E,EAAShF,EAAQ1I,OACjB2N,EAASjF,EAAQkF,KASrB,GANE5E,EADE0E,EACO1N,GACA2N,EACA3N,GAAOyN,IAAWpN,GAAqBoN,EAAQ,CAAA,IAE9CzN,GAAOyN,IAAW,CAAA,GAAIhQ,UAEtB,IAAKkB,KAAOyF,EAAQ,CAQ9B,GAPAoJ,EAAiBpJ,EAAOzF,GAGtB4O,EAFE7E,EAAQmF,gBACV5E,EAAanK,GAAyBkK,EAAQrK,KACfsK,EAAW3I,MACpB0I,EAAOrK,IACtB+N,GAASgB,EAAS/O,EAAM8O,GAAUE,EAAS,IAAM,KAAOhP,EAAK+J,EAAQoF,cAE5ClO,IAAnB2N,EAA8B,CAC3C,UAAWC,UAAyBD,EAAgB,SACpDH,GAA0BI,EAAgBD,EAC3C,EAEG7E,EAAQxF,MAASqK,GAAkBA,EAAerK,OACpD2D,GAA4B2G,EAAgB,QAAQ,GAEtDxD,GAAchB,EAAQrK,EAAK6O,EAAgB9E,EAC5C,CACH,ECrDIsD,GAAqBlP,GACrBiP,GAAcvN,GAKlBuP,GAAiBhR,OAAOgK,MAAQ,SAAcX,GAC5C,OAAO4F,GAAmB5F,EAAG2F,GAC/B,ECPInN,GAAc9B,GACduH,GAAc7F,GACdd,GAAOiD,GACPjE,GAAQ4G,GACRyK,GAAanJ,GACb0H,GAA8BxH,GAC9BiF,GAA6BhC,GAC7BzJ,GAAW6I,GACX0C,GAAgBmE,GAGhBC,GAAUlR,OAAOmR,OAEjBlR,GAAiBD,OAAOC,eACxBiP,GAAS5H,GAAY,GAAG4H,QAI5BkC,IAAkBF,IAAWvR,IAAM,WAEjC,GAAIkC,IAQiB,IARFqP,GAAQ,CAAEG,EAAG,GAAKH,GAAQjR,GAAe,CAAE,EAAE,IAAK,CACnEuJ,YAAY,EACZtJ,IAAK,WACHD,GAAeoD,KAAM,IAAK,CACxBE,MAAO,EACPiG,YAAY,GAEf,IACC,CAAE6H,EAAG,KAAMA,EAAS,OAAO,EAE/B,IAAIC,EAAI,CAAA,EACJC,EAAI,CAAA,EAEJtL,EAASC,SACTsL,EAAW,uBAGf,OAFAF,EAAErL,GAAU,EACZuL,EAAS5L,MAAM,IAAI6L,SAAQ,SAAUC,GAAOH,EAAEG,GAAOA,CAAM,IAC1B,GAA1BR,GAAQ,CAAA,EAAII,GAAGrL,IAAgB+K,GAAWE,GAAQ,CAAA,EAAIK,IAAIjG,KAAK,KAAOkG,CAC/E,IAAK,SAAgBvF,EAAQ5E,GAM3B,IALA,IAAIsK,EAAIpQ,GAAS0K,GACb2F,EAAkB5Q,UAAUkE,OAC5BiJ,EAAQ,EACRnI,EAAwBuJ,GAA4BnG,EACpDqD,EAAuBO,GAA2B5D,EAC/CwI,EAAkBzD,GAMvB,IALA,IAIIvM,EAJAiQ,EAAI/E,GAAc9L,UAAUmN,MAC5BnE,EAAOhE,EAAwBkJ,GAAO8B,GAAWa,GAAI7L,EAAsB6L,IAAMb,GAAWa,GAC5F3M,EAAS8E,EAAK9E,OACd4M,EAAI,EAED5M,EAAS4M,GACdlQ,EAAMoI,EAAK8H,KACNjQ,KAAelB,GAAK8L,EAAsBoF,EAAGjQ,KAAM+P,EAAE/P,GAAOiQ,EAAEjQ,IAErE,OAAO+P,CACX,EAAIT,GCvDAC,GAAS1P,GADL1B,GAMN,CAAEkM,OAAQ,SAAU4E,MAAM,EAAM/E,MAAO,EAAGiF,OAAQ/Q,OAAOmR,SAAWA,IAAU,CAC9EA,OAAQA,KCPV,IAGI/Q,GAAO,CAAA,EAEXA,GALsBL,GAEc,gBAGd,IAEtB,IAAAgS,GAAkC,eAAjB3N,OAAOhE,ICPpB4R,GAAwBjS,GACxB+C,GAAarB,GACbkL,GAAa/I,GAGbqO,GAFkB1L,GAEc,eAChCjF,GAAUtB,OAGVkS,GAAuE,aAAnDvF,GAAW,WAAc,OAAO3L,SAAY,CAAjC,IAUnC4L,GAAiBoF,GAAwBrF,GAAa,SAAUzL,GAC9D,IAAImI,EAAG8I,EAAKxJ,EACZ,YAAc9F,IAAP3B,EAAmB,YAAqB,OAAPA,EAAc,OAEO,iBAAjDiR,EAXD,SAAUjR,EAAIU,GACzB,IACE,OAAOV,EAAGU,EACd,CAAI,MAAO/B,GAAsB,CACjC,CAOoBuS,CAAO/I,EAAI/H,GAAQJ,GAAK+Q,KAA8BE,EAEpED,GAAoBvF,GAAWtD,GAEH,WAA3BV,EAASgE,GAAWtD,KAAmBvG,GAAWuG,EAAEgJ,QAAU,YAAc1J,CACnF,EC1BIiE,GAAUnL,GCAVqC,GDDwB/D,GAKa,CAAA,EAAG+D,SAAW,WACrD,MAAO,WAAa8I,GAAQvJ,MAAQ,GACtC,ECR4BtD,IACR0B,GAMJzB,OAAOU,UAAW,WAAYoD,GAAU,CAAEqJ,QAAQ,ICPlE,IAEAmF,GAAmC,oBAAX9M,SAA8C,WAFxDzF,GAE4CyF,SCFtD8B,GAAcvH,GACd2G,GAAYjF,GCDZqB,GAAa/C,GAEb6E,GAAUR,OACVjD,GAAaC,UCFbmR,GFEa,SAAUxI,EAAQnI,EAAKqD,GACtC,IAEE,OAAOqC,GAAYZ,GAAU1G,OAAO+B,yBAAyBgI,EAAQnI,GAAKqD,IAC9E,CAAI,MAAOpF,GAAsB,CACjC,EENIgF,GAAWpD,GACX+Q,GDEa,SAAUhR,GACzB,GAAuB,iBAAZA,GAAwBsB,GAAWtB,GAAW,OAAOA,EAChE,MAAML,GAAW,aAAeyD,GAAQpD,GAAY,kBACtD,ECCAiR,GAAiBzS,OAAO0S,iBAAmB,aAAe,CAAE,EAAG,WAC7D,IAEI7G,EAFA8G,GAAiB,EACjBvS,EAAO,CAAA,EAEX,KACEyL,EAAS0G,GAAoBvS,OAAOU,UAAW,YAAa,QACrDN,EAAM,IACbuS,EAAiBvS,aAAgBwS,KACrC,CAAI,MAAO/S,GAAsB,CAC/B,OAAO,SAAwBwJ,EAAGwJ,GAKhC,OAJAhO,GAASwE,GACTmJ,GAAmBK,GACfF,EAAgB9G,EAAOxC,EAAGwJ,GACzBxJ,EAAEyJ,UAAYD,EACZxJ,CACX,CACA,CAhB+D,QAgBzDxG,GCzBF5C,GAAiBF,GAA+CqJ,EAChEzH,GAASF,GAGTwQ,GAFkBrO,GAEc,eCHhCmB,GAAahF,GACbiM,GAAwBvK,GAExBI,GAAc0E,GAEdwM,GAHkBnP,GAGQ,WCN1BwB,GAAgBrF,GAEhBoB,GAAaC,UCFbkG,GAAcvH,GACdJ,GAAQ8B,GACRqB,GAAac,GACbgJ,GAAUrG,GAEVxC,GAAgBgE,GAEhBiL,GAAO,WAAY,EACnBC,GAAQ,GACRC,GALarL,GAKU,UAAW,aAClCsL,GAAoB,2BACpBvT,GAAO0H,GAAY6L,GAAkBvT,MACrCwT,IAAuBD,GAAkBvT,KAAKoT,IAE9CK,GAAsB,SAAuB7R,GAC/C,IAAKsB,GAAWtB,GAAW,OAAO,EAClC,IAEE,OADA0R,GAAUF,GAAMC,GAAOzR,IAChB,CACR,CAAC,MAAO3B,GACP,OAAO,CACR,CACH,EAEIyT,GAAsB,SAAuB9R,GAC/C,IAAKsB,GAAWtB,GAAW,OAAO,EAClC,OAAQoL,GAAQpL,IACd,IAAK,gBACL,IAAK,oBACL,IAAK,yBAA0B,OAAO,EAExC,IAIE,OAAO4R,MAAyBxT,GAAKuT,GAAmBpP,GAAcvC,GACvE,CAAC,MAAO3B,GACP,OAAO,CACR,CACH,EAEAyT,GAAoBnN,MAAO,EAI3B,ICtBIoN,GAAWC,GAAOC,GAASC,GDsB/BC,IAAkBT,IAAavT,IAAM,WACnC,IAAIiU,EACJ,OAAOP,GAAoBA,GAAoB1S,QACzC0S,GAAoBrT,UACpBqT,IAAoB,WAAcO,GAAS,CAAK,KACjDA,CACP,IAAKN,GAAsBD,GEnDvBM,GAAgB5T,GAChB0G,GAAchF,GAEdN,GAAaC,UCHbyD,GAAW9E,GACX8T,GDKa,SAAUrS,GACzB,GAAImS,GAAcnS,GAAW,OAAOA,EACpC,MAAML,GAAWsF,GAAYjF,GAAY,wBAC3C,ECPIP,GAAoB2C,GAGpBmP,GAFkBxM,GAEQ,WCL1BhG,GAAcR,GAEdS,GAAoBC,SAASC,UAC7BK,GAAQP,GAAkBO,MAC1BJ,GAAOH,GAAkBG,KAG7BmT,GAAmC,iBAAXC,SAAuBA,QAAQhT,QAAUR,GAAcI,GAAKN,KAAKU,IAAS,WAChG,OAAOJ,GAAKI,MAAMA,GAAOC,UAC3B,GCTI2L,GAAa5M,GACbuH,GAAc7F,GCDd6F,GDGa,SAAUxG,GAIzB,GAAuB,aAAnB6L,GAAW7L,GAAoB,OAAOwG,GAAYxG,EACxD,ECPI4F,GAAYjF,GACZlB,GAAcqD,GAEdvD,GAAOiH,GAAYA,GAAYjH,MAGnC2T,GAAiB,SAAUlT,EAAImT,GAE7B,OADAvN,GAAU5F,QACM+B,IAAToR,EAAqBnT,EAAKP,GAAcF,GAAKS,EAAImT,GAAQ,WAC9D,OAAOnT,EAAGC,MAAMkT,EAAMjT,UAC1B,CACA,ECVAkT,GAFiBnU,GAEW,WAAY,mBCAxCoU,GAFkBpU,GAEW,GAAGqL,OCF5BjK,GAAaC,UCGjBgT,GAAiB,qCAAqChU,KAHtCL,ITAZkD,GAASlD,GACTgB,GAAQU,GACRpB,GAAOuD,GACPd,GAAayD,GACb5E,GAASkG,GACTlI,GAAQoI,GACRmM,GAAOlJ,GACPmJ,GAAa/J,GACb7F,GAAgB0M,GAChBoD,GQPa,SAAUC,EAAQC,GACjC,GAAID,EAASC,EAAU,MAAMpT,GAAW,wBACxC,OAAOmT,CACT,ERKIE,GAASC,GACTC,GAAUC,GAEVlL,GAAMxG,GAAO2R,aACbC,GAAQ5R,GAAO6R,eACftP,GAAUvC,GAAOuC,QACjBuP,GAAW9R,GAAO8R,SAClBtU,GAAWwC,GAAOxC,SAClBuU,GAAiB/R,GAAO+R,eACxB5Q,GAASnB,GAAOmB,OAChB6Q,GAAU,EACVC,GAAQ,CAAA,EACRC,GAAqB,qBAGzBxV,IAAM,WAEJ4T,GAAYtQ,GAAOmS,QACrB,IAEA,IAAIC,GAAM,SAAU9N,GAClB,GAAI5F,GAAOuT,GAAO3N,GAAK,CACrB,IAAIzG,EAAKoU,GAAM3N,UACR2N,GAAM3N,GACbzG,GACD,CACH,EAEIwU,GAAS,SAAU/N,GACrB,OAAO,WACL8N,GAAI9N,EACR,CACA,EAEIgO,GAAgB,SAAUC,GAC5BH,GAAIG,EAAM1F,KACZ,EAEI2F,GAAyB,SAAUlO,GAErCtE,GAAOyS,YAAYtR,GAAOmD,GAAKgM,GAAUoC,SAAW,KAAOpC,GAAUqC,KACvE,EAGKnM,IAAQoL,KACXpL,GAAM,SAAsBoM,GAC1BxB,GAAwBrT,UAAUkE,OAAQ,GAC1C,IAAIpE,EAAKgC,GAAW+S,GAAWA,EAAUpV,GAASoV,GAC9CC,EAAO3B,GAAWnT,UAAW,GAKjC,OAJAkU,KAAQD,IAAW,WACjBlU,GAAMD,OAAI+B,EAAWiT,EAC3B,EACItC,GAAMyB,IACCA,EACX,EACEJ,GAAQ,SAAwBtN,UACvB2N,GAAM3N,EACjB,EAEMmN,GACFlB,GAAQ,SAAUjM,GAChB/B,GAAQuQ,SAAST,GAAO/N,GAC9B,EAEawN,IAAYA,GAASiB,IAC9BxC,GAAQ,SAAUjM,GAChBwN,GAASiB,IAAIV,GAAO/N,GAC1B,EAGayN,KAAmBR,IAE5Bd,IADAD,GAAU,IAAIuB,IACCiB,MACfxC,GAAQyC,MAAMC,UAAYZ,GAC1B/B,GAAQnT,GAAKqT,GAAKgC,YAAahC,KAI/BzQ,GAAOmT,kBACPtT,GAAWG,GAAOyS,eACjBzS,GAAOoT,eACR9C,IAAoC,UAAvBA,GAAUoC,WACtBhW,GAAM8V,KAEPjC,GAAQiC,GACRxS,GAAOmT,iBAAiB,UAAWb,IAAe,IAGlD/B,GADS2B,MAAsB5Q,GAAc,UACrC,SAAUgD,GAChB2M,GAAKoC,YAAY/R,GAAc,WAAW4Q,IAAsB,WAC9DjB,GAAKqC,YAAYlT,MACjBgS,GAAI9N,EACZ,CACA,EAGY,SAAUA,GAChBiP,WAAWlB,GAAO/N,GAAK,EAC7B,GAIA,IAAAkP,GAAiB,CACfhN,IAAKA,GACLoL,MAAOA,IUlHL6B,GAAQ,WACVrT,KAAKsT,KAAO,KACZtT,KAAKuT,KAAO,IACd,EAEAF,GAAMhW,UAAY,CAChBmW,IAAK,SAAUC,GACb,IAAIC,EAAQ,CAAED,KAAMA,EAAME,KAAM,MAC5BJ,EAAOvT,KAAKuT,KACZA,EAAMA,EAAKI,KAAOD,EACjB1T,KAAKsT,KAAOI,EACjB1T,KAAKuT,KAAOG,CACb,EACD7W,IAAK,WACH,IAAI6W,EAAQ1T,KAAKsT,KACjB,GAAII,EAGF,OADa,QADF1T,KAAKsT,KAAOI,EAAMC,QACV3T,KAAKuT,KAAO,MACxBG,EAAMD,IAEhB,GAGH,ICNIG,GAAQC,GAAQC,GAAMC,GAASC,GDMnCnC,GAAiBwB,GErBjBY,GAAiB,oBAAoBlX,KAFrBL,KAEyD,oBAAVwX,OCA/DC,GAAiB,qBAAqBpX,KAFtBL,IFAZkD,GAASlD,GACTM,GAAOoB,GACPM,GAA2B6B,GAA2DwF,EACtFqO,GAAYlR,GAA6BkD,IACzCiN,GAAQ7O,GACR2M,GAASzM,GACT2P,GAAgB1M,GAChB2M,GAAkBvN,GAClBsK,GAAUzD,GAEV2G,GAAmB3U,GAAO2U,kBAAoB3U,GAAO4U,uBACrDpV,GAAWQ,GAAOR,SAClB+C,GAAUvC,GAAOuC,QACjBsS,GAAU7U,GAAO6U,QAEjBC,GAA2BhW,GAAyBkB,GAAQ,kBAC5D+U,GAAYD,IAA4BA,GAAyBxU,MAIrE,IAAKyU,GAAW,CACd,IAAI9C,GAAQ,IAAIwB,GAEZuB,GAAQ,WACV,IAAIC,EAAQpX,EAEZ,IADI4T,KAAYwD,EAAS1S,GAAQ2S,SAASD,EAAOE,OAC1CtX,EAAKoU,GAAMhV,WAChBY,GACD,CAAC,MAAOjB,GAEP,MADIqV,GAAMyB,MAAMM,KACVpX,CACP,CACGqY,GAAQA,EAAOG,OACvB,EAIO7D,IAAWE,IAAYiD,KAAmBC,KAAoBnV,IAQvDiV,IAAiBI,IAAWA,GAAQQ,UAE9ClB,GAAUU,GAAQQ,aAAQzV,IAElBkJ,YAAc+L,GACtBT,GAAOhX,GAAK+W,GAAQC,KAAMD,IAC1BH,GAAS,WACPI,GAAKY,GACX,GAEavD,GACTuC,GAAS,WACPzR,GAAQuQ,SAASkC,GACvB,GASIR,GAAYpX,GAAKoX,GAAWxU,IAC5BgU,GAAS,WACPQ,GAAUQ,GAChB,IAhCIf,IAAS,EACTC,GAAO1U,GAAS8V,eAAe,IAC/B,IAAIX,GAAiBK,IAAOO,QAAQrB,GAAM,CAAEsB,eAAe,IAC3DxB,GAAS,WACPE,GAAKrH,KAAOoH,IAAUA,EAC5B,GA8BEc,GAAY,SAAUlX,GACfoU,GAAMyB,MAAMM,KACjB/B,GAAM2B,IAAI/V,EACd,CACA,CAEA,IAAA4X,GAAiBV,GG/EjBW,GAAiB,SAAU/Y,GACzB,IACE,MAAO,CAAEC,OAAO,EAAO0D,MAAO3D,IAC/B,CAAC,MAAOC,GACP,MAAO,CAAEA,OAAO,EAAM0D,MAAO1D,EAC9B,CACH,ECJA+Y,GAFa7Y,GAEW+X,QCDxBe,GAAgC,iBAARpT,MAAoBA,MAA+B,iBAAhBA,KAAKxB,QCEhE6U,IAHc/Y,KACA0B,IAGQ,iBAAV0B,QACY,iBAAZV,SCLRQ,GAASlD,GACTgZ,GAA2BtX,GAC3BqB,GAAac,GACb+L,GAAWpJ,GACXxC,GAAgB8D,GAChBM,GAAkBJ,GAClBiR,GAAahO,GACbiO,GAAU7O,GAEVtE,GAAaoT,GAEYH,IAA4BA,GAAyBrY,UAClF,IAAIqS,GAAU5K,GAAgB,WAC1BgR,IAAc,EACdC,GAAiCtW,GAAWG,GAAOoW,uBAEnDC,GAA6B3J,GAAS,WAAW,WACnD,IAAI4J,EAA6BxV,GAAcgV,IAC3CS,EAAyBD,IAA+BnV,OAAO2U,IAInE,IAAKS,GAAyC,KAAf1T,GAAmB,OAAO,EAMzD,IAAKA,IAAcA,GAAa,KAAO,cAAc1F,KAAKmZ,GAA6B,CAErF,IAAInC,EAAU,IAAI2B,IAAyB,SAAUT,GAAWA,EAAQ,EAAG,IACvEmB,EAAc,SAAU7Z,GAC1BA,GAAK,WAAY,IAAiB,WAAY,GACpD,EAII,IAHkBwX,EAAQrL,YAAc,IAC5BgH,IAAW0G,IACvBN,GAAc/B,EAAQC,MAAK,WAA2B,cAAaoC,GACjD,OAAO,CAE7B,CAAI,OAAQD,IAA2BR,IAAcC,MAAaG,EAClE,IAEAM,GAAiB,CACfC,YAAaL,GACbM,gBAAiBR,GACjBD,YAAaA,IC5CfU,GAAA,CAAA,EAAInT,GAAY3G,GAEZoB,GAAaC,UAEb0Y,GAAoB,SAAUC,GAChC,IAAIzB,EAAS0B,EACb3W,KAAK+T,QAAU,IAAI2C,GAAE,SAAUE,EAAWC,GACxC,QAAgBrX,IAAZyV,QAAoCzV,IAAXmX,EAAsB,MAAM7Y,GAAW,2BACpEmX,EAAU2B,EACVD,EAASE,CACb,IACE7W,KAAKiV,QAAU5R,GAAU4R,GACzBjV,KAAK2W,OAAStT,GAAUsT,EAC1B,EAIgBG,GAAA/Q,EAAG,SAAU2Q,GAC3B,OAAO,IAAID,GAAkBC,EAC/B,ECnBA,IAgDIK,GAAUC,GAAsCC,GAhDhDC,GAAIxa,GAEJ2U,GAAU9Q,GACVX,GAASsD,GACT5F,GAAOkH,GACPoF,GAAgBlF,GAChB2K,GAAiB1H,GACjBwP,GxBFa,SAAUvO,EAAQwO,EAAK7J,GAClC3E,IAAW2E,IAAQ3E,EAASA,EAAOvL,WACnCuL,IAAWtK,GAAOsK,EAAQgG,KAC5BhS,GAAegM,EAAQgG,GAAe,CAAE5P,cAAc,EAAMkB,MAAOkX,GAEvE,EwBFIC,GvBDa,SAAUC,GACzB,IAAIC,EAAc7V,GAAW4V,GAEzB9Y,IAAe+Y,IAAgBA,EAAY7H,KAC7C/G,GAAsB4O,EAAa7H,GAAS,CAC1C1Q,cAAc,EACdnC,IAAK,WAAc,OAAOmD,IAAO,GAGvC,EuBPIqD,GAAYwS,GACZpW,GAAa2R,GACbpQ,GAAWsQ,GACXkG,GtBTa,SAAU3Z,EAAI4Z,GAC7B,GAAI1V,GAAc0V,EAAW5Z,GAAK,OAAOA,EACzC,MAAMC,GAAW,uBACnB,EsBOI4Z,GlBLa,SAAU1R,EAAG2R,GAC5B,IACInJ,EADAkI,EAAIlV,GAASwE,GAAG0C,YAEpB,YAAalJ,IAANkX,GAAmB9Y,GAAkB4Q,EAAIhN,GAASkV,GAAGhH,KAAYiI,EAAqBnH,GAAahC,EAC5G,EkBEI4E,GAAOwE,GAA6BxR,IACpCuO,GAAYkD,GACZC,GCjBa,SAAUzW,EAAG2M,GAC5B,IAEsB,GAApBrQ,UAAUkE,OAAckW,QAAQvb,MAAM6E,GAAK0W,QAAQvb,MAAM6E,EAAG2M,EAChE,CAAI,MAAOxR,GAAsB,CACjC,EDaI8Y,GAAU0C,GACV3E,GAAQ4E,GACRC,GAAsBC,GACtBzC,GAA2B0C,GAE3BC,GAA6BC,GAE7BC,GAAU,UACVtC,GAJ8BuC,GAI2BlC,YACzDP,GAL8ByC,GAK+BjC,gBAC7DkC,GAN8BD,GAM2B1C,YACzD4C,GAA0BR,GAAoB3Q,UAAUgR,IACxDI,GAAmBT,GAAoB9R,IACvCwS,GAAyBlD,IAA4BA,GAAyBrY,UAC9Ewb,GAAqBnD,GACrBoD,GAAmBF,GACnB7a,GAAY6B,GAAO7B,UACnBqB,GAAWQ,GAAOR,SAClB+C,GAAUvC,GAAOuC,QACjB2U,GAAuBuB,GAA2BtS,EAClDgT,GAA8BjC,GAE9BkC,MAAoB5Z,IAAYA,GAAS6Z,aAAerZ,GAAOsZ,eAC/DC,GAAsB,qBAWtBC,GAAa,SAAUvb,GACzB,IAAImW,EACJ,SAAOhT,GAASnD,KAAO4B,GAAWuU,EAAOnW,EAAGmW,QAAQA,CACtD,EAEIqF,GAAe,SAAUC,EAAUrS,GACrC,IAMI3B,EAAQ0O,EAAMuF,EANdrZ,EAAQ+G,EAAM/G,MACdsZ,EAfU,GAeLvS,EAAMA,MACXuL,EAAUgH,EAAKF,EAASE,GAAKF,EAASG,KACtCxE,EAAUqE,EAASrE,QACnB0B,EAAS2C,EAAS3C,OAClB7B,EAASwE,EAASxE,OAEtB,IACMtC,GACGgH,IApBK,IAqBJvS,EAAMyS,WAAyBC,GAAkB1S,GACrDA,EAAMyS,UAvBA,IAyBQ,IAAZlH,EAAkBlN,EAASpF,GAEzB4U,GAAQA,EAAOE,QACnB1P,EAASkN,EAAQtS,GACb4U,IACFA,EAAOC,OACPwE,GAAS,IAGTjU,IAAWgU,EAASvF,QACtB4C,EAAO5Y,GAAU,yBACRiW,EAAOoF,GAAW9T,IAC3BhI,GAAK0W,EAAM1O,EAAQ2P,EAAS0B,GACvB1B,EAAQ3P,IACVqR,EAAOzW,EACf,CAAC,MAAO1D,GACHsY,IAAWyE,GAAQzE,EAAOC,OAC9B4B,EAAOna,EACR,CACH,EAEIoX,GAAS,SAAU3M,EAAO2S,GACxB3S,EAAM4S,WACV5S,EAAM4S,UAAW,EACjBlF,IAAU,WAGR,IAFA,IACI2E,EADAQ,EAAY7S,EAAM6S,UAEfR,EAAWQ,EAAUjd,OAC1Bwc,GAAaC,EAAUrS,GAEzBA,EAAM4S,UAAW,EACbD,IAAa3S,EAAMyS,WAAWK,GAAY9S,EAClD,IACA,EAEIiS,GAAgB,SAAUpa,EAAMiV,EAASiG,GAC3C,IAAI7H,EAAOK,EACPwG,KACF7G,EAAQ/S,GAAS6Z,YAAY,UACvBlF,QAAUA,EAChB5B,EAAM6H,OAASA,EACf7H,EAAM8H,UAAUnb,GAAM,GAAO,GAC7Bc,GAAOsZ,cAAc/G,IAChBA,EAAQ,CAAE4B,QAASA,EAASiG,OAAQA,IACtCjE,KAAmCvD,EAAU5S,GAAO,KAAOd,IAAQ0T,EAAQL,GACvErT,IAASqa,IAAqBrB,GAAiB,8BAA+BkC,EACzF,EAEID,GAAc,SAAU9S,GAC1B3J,GAAK8V,GAAMxT,IAAQ,WACjB,IAGI0F,EAHAyO,EAAU9M,EAAME,OAChBjH,EAAQ+G,EAAM/G,MAGlB,GAFmBga,GAAYjT,KAG7B3B,EAASgQ,IAAQ,WACXjE,GACFlP,GAAQgY,KAAK,qBAAsBja,EAAO6T,GACrCmF,GAAcC,GAAqBpF,EAAS7T,EAC3D,IAEM+G,EAAMyS,UAAYrI,IAAW6I,GAAYjT,GArF/B,EADF,EAuFJ3B,EAAO9I,OAAO,MAAM8I,EAAOpF,KAErC,GACA,EAEIga,GAAc,SAAUjT,GAC1B,OA7FY,IA6FLA,EAAMyS,YAA0BzS,EAAM4N,MAC/C,EAEI8E,GAAoB,SAAU1S,GAChC3J,GAAK8V,GAAMxT,IAAQ,WACjB,IAAImU,EAAU9M,EAAME,OAChBkK,GACFlP,GAAQgY,KAAK,mBAAoBpG,GAC5BmF,GAzGa,mBAyGoBnF,EAAS9M,EAAM/G,MAC3D,GACA,EAEIlD,GAAO,SAAUS,EAAIwJ,EAAOmT,GAC9B,OAAO,SAAUla,GACfzC,EAAGwJ,EAAO/G,EAAOka,EACrB,CACA,EAEIC,GAAiB,SAAUpT,EAAO/G,EAAOka,GACvCnT,EAAMqT,OACVrT,EAAMqT,MAAO,EACTF,IAAQnT,EAAQmT,GACpBnT,EAAM/G,MAAQA,EACd+G,EAAMA,MArHO,EAsHb2M,GAAO3M,GAAO,GAChB,EAEIsT,GAAkB,SAAUtT,EAAO/G,EAAOka,GAC5C,IAAInT,EAAMqT,KAAV,CACArT,EAAMqT,MAAO,EACTF,IAAQnT,EAAQmT,GACpB,IACE,GAAInT,EAAME,SAAWjH,EAAO,MAAMnC,GAAU,oCAC5C,IAAIiW,EAAOoF,GAAWlZ,GAClB8T,EACFW,IAAU,WACR,IAAI6F,EAAU,CAAEF,MAAM,GACtB,IACEhd,GAAK0W,EAAM9T,EACTlD,GAAKud,GAAiBC,EAASvT,GAC/BjK,GAAKqd,GAAgBG,EAASvT,GAEjC,CAAC,MAAOzK,GACP6d,GAAeG,EAAShe,EAAOyK,EAChC,CACT,KAEMA,EAAM/G,MAAQA,EACd+G,EAAMA,MA/II,EAgJV2M,GAAO3M,GAAO,GAEjB,CAAC,MAAOzK,GACP6d,GAAe,CAAEC,MAAM,GAAS9d,EAAOyK,EACxC,CAzBsB,CA0BzB,EAGA,GAAIgP,KAcF6C,IAZAD,GAAqB,SAAiB4B,GACpCjD,GAAWxX,KAAM8Y,IACjBzV,GAAUoX,GACVnd,GAAKyZ,GAAU/W,MACf,IAAIiH,EAAQyR,GAAwB1Y,MACpC,IACEya,EAASzd,GAAKud,GAAiBtT,GAAQjK,GAAKqd,GAAgBpT,GAC7D,CAAC,MAAOzK,GACP6d,GAAepT,EAAOzK,EACvB,CACL,GAEwCa,WAGtC0Z,GAAW,SAAiB0D,GAC1B9B,GAAiB3Y,KAAM,CACrByH,KAAM8Q,GACN+B,MAAM,EACNT,UAAU,EACVhF,QAAQ,EACRiF,UAAW,IAAIzG,GACfqG,WAAW,EACXzS,MAlLQ,EAmLR/G,WAAOV,GAEb,GAIWnC,UAAYuM,GAAckP,GAAkB,QAAQ,SAAc4B,EAAaC,GACtF,IAAI1T,EAAQyR,GAAwB1Y,MAChCsZ,EAAWxC,GAAqBY,GAAmB1X,KAAM6Y,KAS7D,OARA5R,EAAM4N,QAAS,EACfyE,EAASE,IAAK/Z,GAAWib,IAAeA,EACxCpB,EAASG,KAAOha,GAAWkb,IAAeA,EAC1CrB,EAASxE,OAASzD,GAAUlP,GAAQ2S,YAAStV,EA/LnC,GAgMNyH,EAAMA,MAAkBA,EAAM6S,UAAUtG,IAAI8F,GAC3C3E,IAAU,WACb0E,GAAaC,EAAUrS,EAC7B,IACWqS,EAASvF,OACpB,IAEEiD,GAAuB,WACrB,IAAIjD,EAAU,IAAIgD,GACd9P,EAAQyR,GAAwB3E,GACpC/T,KAAK+T,QAAUA,EACf/T,KAAKiV,QAAUjY,GAAKud,GAAiBtT,GACrCjH,KAAK2W,OAAS3Z,GAAKqd,GAAgBpT,EACvC,EAEEoR,GAA2BtS,EAAI+Q,GAAuB,SAAUJ,GAC9D,OAAOA,IAAMmC,IA1MmB+B,YA0MGlE,EAC/B,IAAIM,GAAqBN,GACzBqC,GAA4BrC,EACpC,EAEkBjX,GAAWiW,KAA6BkD,KAA2Bjc,OAAOU,WAAW,CACnG4Z,GAAa2B,GAAuB5E,KAE/ByE,IAEH7O,GAAcgP,GAAwB,QAAQ,SAAc8B,EAAaC,GACvE,IAAI/J,EAAO5Q,KACX,OAAO,IAAI6Y,IAAmB,SAAU5D,EAAS0B,GAC/CrZ,GAAK2Z,GAAYrG,EAAMqE,EAAS0B,EACjC,IAAE3C,KAAK0G,EAAaC,EAE7B,GAAS,CAAE7Q,QAAQ,IAIf,WACS8O,GAAuBlQ,WACpC,CAAM,MAAOlM,GAAsB,CAG3B6S,IACFA,GAAeuJ,GAAwBE,GAE1C,CAGH5B,GAAE,CAAEtX,QAAQ,EAAM8I,aAAa,EAAMmS,MAAM,EAAMnN,OAAQuI,IAA8B,CACrFxB,QAASoE,KAGX1B,GAAe0B,GAAoBN,IAAS,GAC5ClB,GAAWkB,IE/RX,IAAAuC,GAAiB,CAAA,ECCbC,GAAY3c,GAEZ4c,GAHkBte,GAGS,YAC3Bue,GAAiB1L,MAAMlS,UCJvBkM,GAAU7M,GACV4G,GAAYlF,GACZR,GAAoB2C,GACpBwa,GAAY7X,GAGZ8X,GAFkBxW,GAES,YAE/B0W,GAAiB,SAAUrd,GACzB,IAAKD,GAAkBC,GAAK,OAAOyF,GAAUzF,EAAImd,KAC5C1X,GAAUzF,EAAI,eACdkd,GAAUxR,GAAQ1L,GACzB,ECZIP,GAAOZ,GACP2G,GAAYjF,GACZoD,GAAWjB,GACX6C,GAAcF,GACdgY,GAAoB1W,GAEpB1G,GAAaC,UCNbT,GAAOZ,GACP8E,GAAWpD,GACXkF,GAAY/C,GCFZvD,GAAON,GACPY,GAAOc,GACPoD,GAAWjB,GACX6C,GAAcF,GACdiY,GJGa,SAAUtd,GACzB,YAAc2B,IAAP3B,IAAqBkd,GAAUxL,QAAU1R,GAAMod,GAAeD,MAAcnd,EACrF,EIJI8M,GAAoBjG,GACpB3C,GAAgB4F,GAChByT,GFCa,SAAUjd,EAAUkd,GACnC,IAAIC,EAAiB3d,UAAUkE,OAAS,EAAIqZ,GAAkB/c,GAAYkd,EAC1E,GAAIhY,GAAUiY,GAAiB,OAAO9Z,GAASlE,GAAKge,EAAgBnd,IACpE,MAAML,GAAWsF,GAAYjF,GAAY,mBAC3C,EEJI+c,GAAoBtN,GACpB2N,GDLa,SAAUvY,EAAUwY,EAAMtb,GACzC,IAAIub,EAAaC,EACjBla,GAASwB,GACT,IAEE,KADAyY,EAAcnY,GAAUN,EAAU,WAChB,CAChB,GAAa,UAATwY,EAAkB,MAAMtb,EAC5B,OAAOA,CACR,CACDub,EAAcne,GAAKme,EAAazY,EACjC,CAAC,MAAOxG,GACPkf,GAAa,EACbD,EAAcjf,CACf,CACD,GAAa,UAATgf,EAAkB,MAAMtb,EAC5B,GAAIwb,EAAY,MAAMD,EAEtB,OADAja,GAASia,GACFvb,CACT,ECXIpC,GAAaC,UAEb4d,GAAS,SAAUC,EAAStW,GAC9BtF,KAAK4b,QAAUA,EACf5b,KAAKsF,OAASA,CAChB,EAEIuW,GAAkBF,GAAOte,UAE7Bye,GAAiB,SAAUC,EAAUC,EAAiB1T,GACpD,IAMItF,EAAUiZ,EAAQnR,EAAOjJ,EAAQyD,EAAQqO,EAAMuI,EAN/CtL,EAAOtI,GAAWA,EAAQsI,KAC1BuL,KAAgB7T,IAAWA,EAAQ6T,YACnCC,KAAe9T,IAAWA,EAAQ8T,WAClCC,KAAiB/T,IAAWA,EAAQ+T,aACpCC,KAAiBhU,IAAWA,EAAQgU,aACpC7e,EAAKT,GAAKgf,EAAiBpL,GAG3B2L,EAAO,SAAUC,GAEnB,OADIxZ,GAAUuY,GAAcvY,EAAU,SAAUwZ,GACzC,IAAIb,IAAO,EAAMa,EAC5B,EAEMC,EAAS,SAAUvc,GACrB,OAAIic,GACF3a,GAAStB,GACFoc,EAAc7e,EAAGyC,EAAM,GAAIA,EAAM,GAAIqc,GAAQ9e,EAAGyC,EAAM,GAAIA,EAAM,KAChEoc,EAAc7e,EAAGyC,EAAOqc,GAAQ9e,EAAGyC,EAChD,EAEE,GAAIkc,EACFpZ,EAAW+Y,EAAS/Y,cACf,GAAIqZ,EACTrZ,EAAW+Y,MACN,CAEL,KADAE,EAASf,GAAkBa,IACd,MAAMje,GAAWsF,GAAY2Y,GAAY,oBAEtD,GAAIZ,GAAsBc,GAAS,CACjC,IAAKnR,EAAQ,EAAGjJ,EAAS8I,GAAkBoR,GAAWla,EAASiJ,EAAOA,IAEpE,IADAxF,EAASmX,EAAOV,EAASjR,MACX/I,GAAc8Z,GAAiBvW,GAAS,OAAOA,EAC7D,OAAO,IAAIqW,IAAO,EACrB,CACD3Y,EAAWoY,GAAYW,EAAUE,EAClC,CAGD,IADAtI,EAAOyI,EAAYL,EAASpI,KAAO3Q,EAAS2Q,OACnCuI,EAAO5e,GAAKqW,EAAM3Q,IAAWsX,MAAM,CAC1C,IACEhV,EAASmX,EAAOP,EAAKhc,MACtB,CAAC,MAAO1D,GACP+e,GAAcvY,EAAU,QAASxG,EAClC,CACD,GAAqB,iBAAV8I,GAAsBA,GAAUvD,GAAc8Z,GAAiBvW,GAAS,OAAOA,CAC9F,CAAI,OAAO,IAAIqW,IAAO,EACtB,ECjEIX,GAFkBte,GAES,YAC3BggB,IAAe,EAEnB,IACE,IAAInM,GAAS,EACToM,GAAqB,CACvBhJ,KAAM,WACJ,MAAO,CAAE2G,OAAQ/J,KAClB,EACDqM,OAAU,WACRF,IAAe,CAChB,GAEHC,GAAmB3B,IAAY,WAC7B,OAAOhb,IACX,EAEEuP,MAAMsN,KAAKF,IAAoB,WAAc,MAAM,CAAE,GACvD,CAAE,MAAOngB,GAAsB,CAE/B,ICtBIkZ,GAA2BhZ,GAC3BogB,GDqBa,SAAUvgB,EAAMwgB,GAC/B,IAAKA,IAAiBL,GAAc,OAAO,EAC3C,IAAIM,GAAoB,EACxB,IACE,IAAItW,EAAS,CAAA,EACbA,EAAOsU,IAAY,WACjB,MAAO,CACLrH,KAAM,WACJ,MAAO,CAAE2G,KAAM0C,GAAoB,EACpC,EAET,EACIzgB,EAAKmK,EACT,CAAI,MAAOlK,GAAsB,CAC/B,OAAOwgB,CACT,ECjCAC,GAFiC1c,GAAsD+V,cAEvCwG,IAA4B,SAAUf,GACpFrG,GAAyBrW,IAAI0c,GAAU/H,UAAKxU,GAAW,WAAY,GACrE,ICJIlC,GAAOc,GACPiF,GAAY9C,GACZ8X,GAA6BnV,GAC7BoS,GAAU9Q,GACVsX,GAAUpX,GALNhI,GAUN,CAAEkM,OAAQ,UAAW4E,MAAM,EAAME,OAJO/F,IAIwC,CAChFtI,IAAK,SAAa0c,GAChB,IAAIrF,EAAI1W,KACJkd,EAAa7E,GAA2BtS,EAAE2Q,GAC1CzB,EAAUiI,EAAWjI,QACrB0B,EAASuG,EAAWvG,OACpBrR,EAASgQ,IAAQ,WACnB,IAAI6H,EAAkB9Z,GAAUqT,EAAEzB,SAC9BmI,EAAS,GACTxL,EAAU,EACVyL,EAAY,EAChBvB,GAAQC,GAAU,SAAUhI,GAC1B,IAAIjJ,EAAQ8G,IACR0L,GAAgB,EACpBD,IACA/f,GAAK6f,EAAiBzG,EAAG3C,GAASC,MAAK,SAAU9T,GAC3Cod,IACJA,GAAgB,EAChBF,EAAOtS,GAAS5K,IACdmd,GAAapI,EAAQmI,GACxB,GAAEzG,EACX,MACQ0G,GAAapI,EAAQmI,EAC7B,IAEI,OADI9X,EAAO9I,OAAOma,EAAOrR,EAAOpF,OACzBgd,EAAWnJ,OACnB,ICpCH,IAAImD,GAAIxa,GAEJuZ,GAA6B1V,GAAsD+V,YACnFZ,GAA2BxS,GAC3BxB,GAAa8C,GACb/E,GAAaiF,GACbkF,GAAgBjC,GAEhBiR,GAAyBlD,IAA4BA,GAAyBrY,UAWlF,GAPA6Z,GAAE,CAAEtO,OAAQ,UAAW4G,OAAO,EAAM9B,OAAQuI,GAA4BsH,MAAM,GAAQ,CACpFC,MAAS,SAAU7C,GACjB,OAAO3a,KAAKgU,UAAKxU,EAAWmb,EAC7B,IAIalb,GAAWiW,IAA2B,CACpD,IAAI9T,GAASF,GAAW,WAAWrE,UAAiB,MAChDub,GAA8B,QAAMhX,IACtCgI,GAAcgP,GAAwB,QAAShX,GAAQ,CAAEkI,QAAQ,GAErE,CCxBA,IACIxM,GAAOc,GACPiF,GAAY9C,GACZ8X,GAA6BnV,GAC7BoS,GAAU9Q,GACVsX,GAAUpX,GALNhI,GAUN,CAAEkM,OAAQ,UAAW4E,MAAM,EAAME,OAJO/F,IAIwC,CAChF8V,KAAM,SAAc1B,GAClB,IAAIrF,EAAI1W,KACJkd,EAAa7E,GAA2BtS,EAAE2Q,GAC1CC,EAASuG,EAAWvG,OACpBrR,EAASgQ,IAAQ,WACnB,IAAI6H,EAAkB9Z,GAAUqT,EAAEzB,SAClC6G,GAAQC,GAAU,SAAUhI,GAC1BzW,GAAK6f,EAAiBzG,EAAG3C,GAASC,KAAKkJ,EAAWjI,QAAS0B,EACnE,GACA,IAEI,OADIrR,EAAO9I,OAAOma,EAAOrR,EAAOpF,OACzBgd,EAAWnJ,OACnB,ICvBH,IACIzW,GAAOc,GACPia,GAA6B9X,GAFzB7D,GAON,CAAEkM,OAAQ,UAAW4E,MAAM,EAAME,OAJFxK,GAAsDoT,aAId,CACvEK,OAAQ,SAAgB+G,GACtB,IAAIR,EAAa7E,GAA2BtS,EAAE/F,MAE9C,OADA1C,GAAK4f,EAAWvG,YAAQnX,EAAWke,GAC5BR,EAAWnJ,OACnB,ICbH,IAAIvS,GAAW9E,GACXsE,GAAW5C,GACX0Y,GAAuBvW,GCDvB2W,GAAIxa,GAIJuZ,GAA6BzR,GAAsD8R,YACnFqH,GDFa,SAAUjH,EAAGtM,GAE5B,GADA5I,GAASkV,GACL1V,GAASoJ,IAAMA,EAAE1B,cAAgBgO,EAAG,OAAOtM,EAC/C,IAAIwT,EAAoB9G,GAAqB/Q,EAAE2Q,GAG/C,OADAzB,EADc2I,EAAkB3I,SACxB7K,GACDwT,EAAkB7J,OAC3B,EETO,SAAS8J,GAAQzT,GACtB,OAAY,MAALA,IAAc0T,OAAOC,MAAM3T,EACpC,CAEO,SAAS4T,GAAiB3c,EAAG2M,GAClC,OAAQ6P,GAAQ7P,IAAM6P,GAAQxc,IAAM4c,EAAU5c,EAAG2M,EACnD,CAUO,SAASkQ,GAAO9T,GACrB,OAAO+T,SAAS/T,GAAKA,EAAIgU,GAC3B,CAEO,SAASC,GAASjU,GACvB,OAAOA,EAAI,GAAK+T,SAAS/T,GAAKA,EAAIgU,GACpC,CAEO,SAASE,GAASlU,GACvB,OAAOA,EAAI,GAAK+T,SAAS/T,GAAKA,EAAIgU,GACpC,CC5Be,SAASG,GAAOC,EAAMC,GAEnC,GADMD,aAAgBE,OAAOF,EAAO,IAAIE,MAAMF,IAC1CT,MAAMS,GAAO,MAA2B,mBAAbC,EAA0BA,EAASD,GAAQC,EAC1E,MAAME,EAAQH,EAAKI,cACbC,EAAUL,EAAKM,gBACfC,EAAUP,EAAKQ,gBACfC,EAAeT,EAAKU,qBAC1B,MAAO,GASWC,EATGX,EAAKY,iBAUnBD,EAAO,EAAI,IAAIE,IAAKF,EAAM,KAC7BA,EAAO,KAAO,IAAIE,GAAIF,EAAM,KAC5BE,GAAIF,EAAM,MAZoCE,GAAIb,EAAKc,cAAgB,EAAG,MAAMD,GAAIb,EAAKe,aAAc,KACzGZ,GAASE,GAAWE,GAAWE,EAAe,IAAII,GAAIV,EAAO,MAAMU,GAAIR,EAAS,KAC9EE,GAAWE,EAAe,IAAII,GAAIN,EAAS,KACzCE,EAAe,IAAII,GAAIJ,EAAc,KAAO,KACzC,MACD,KAIV,IAAoBE,CAFpB,CAQA,SAASE,GAAInf,EAAOsf,GAClB,MAAO,GAAGtf,IAAQuf,SAASD,EAAO,IACpC,CFtBiBphB,GAM0B,WAK3C8Y,GAAE,CAAEtO,OAAQ,UAAW4E,MAAM,EAAME,OAAmBuI,IAA8B,CAClFhB,QAAS,SAAiB7K,GACxB,OAAOuT,GAAgG3d,KAAMoK,EAC9G,IGhBH,MAAMsV,GAAK,6GAEI,SAASC,GAAM9S,EAAQ4R,GACpC,OAAKiB,GAAG3iB,KAAK8P,GAAU,IAChB,IAAI6R,KAAK7R,GADuC,mBAAb4R,EAA0BA,EAAS5R,GAAU4R,CAEzF,CCAA,MAAMmB,GAAgB,IAAIC,IAAI,CAC5B,CAAC,SAAUC,GACX,CAAC,SAAUC,GACX,CAAC,OAAQC,GACT,CAAC,MAAOC,GACR,CAAC,OAAQC,GACT,CAAC,QAASC,GACV,CAAC,UAAWA,EAAUC,MAAM,IAC5B,CAAC,OAAQD,EAAUC,MAAM,IACzB,CAAC,OAAQC,GACT,CAAC,SAAUC,GACX,CAAC,UAAWC,GACZ,CAAC,YAAaC,GACd,CAAC,WAAYC,GACb,CAAC,SAAUC,GACX,CAAC,WAAYC,GACb,CAAC,SAAUC,KAGPC,GAAe,IAAIhB,IAAI,CAC3B,CAAC,SAAUiB,GACX,CAAC,SAAUC,GACX,CAAC,OAAQC,GACT,CAAC,MAAOC,GACR,CAAC,OAAQC,GACT,CAAC,QAASC,GACV,CAAC,UAAWA,EAASf,MAAM,IAC3B,CAAC,OAAQe,EAASf,MAAM,IACxB,CAAC,OAAQgB,GACT,CAAC,SAAUC,GACX,CAAC,UAAWC,GACZ,CAAC,YAAaC,GACd,CAAC,WAAYC,GACb,CAAC,SAAUC,GACX,CAAC,WAAYC,GACb,CAAC,SAAUC,KAGN,SAASC,GAAkBC,GAChC,MAAMnW,EAAIkU,GAAc/iB,IAAI,GAAGglB,IAAW/U,eAC1C,IAAKpB,EAAG,MAAM,IAAIoW,MAAM,qBAAqBD,KAC7C,OAAOnW,CACT,CAEO,SAASqW,GAAiBF,GAC/B,MAAMnW,EAAImV,GAAahkB,IAAI,GAAGglB,IAAW/U,eACzC,IAAKpB,EAAG,MAAM,IAAIoW,MAAM,qBAAqBD,KAC7C,OAAOnW,CACT,CChDO,MAAMsW,GAAarlB,OAAOslB,eAAeC,YAC1CC,GAAiBxlB,OAAOU,UAAUoD,SAuC3BoM,GAAUzC,GAAY,MAALA,EAAYA,EAAI,GAAGA,IAMpCgY,GAAYhY,GAAM,IAAMA,EAU9B,SAASiY,GAAcjF,GAC5B,OAAOA,aAAkB4E,GAAa5E,EAASkF,GAAIlF,EAAQmF,GAAcC,aAC3E,CAKA,SAASD,GAAanY,GACpB,OAAY,MAALA,EAAYgU,IAAMN,OAAO1T,EAClC,CAEO,SAASqY,GAAYrF,GAC1B,OAAOkF,GAAIlF,EAAQsF,GACrB,CAQO,SAASA,GAAWtY,GACzB,OAAOA,aAAasU,OAASX,MAAM3T,GAC/BA,EACa,iBAANA,EACPuY,GAASvY,GACJ,MAALA,GAAa2T,MAAO3T,GAAKA,QACzB5K,EACA,IAAIkf,KAAKtU,EACf,CAQO,SAASwY,GAAkB1iB,EAAO2iB,GAEvC,YADcrjB,IAAVU,IAAqBA,EAAQ2iB,GAChB,OAAV3iB,EAAiB,MAACV,EAAW,QAsT/B,SAAiBU,GACtB,MAAqB,iBAAVA,IACXA,EAAQA,EAAM4M,cAAcgW,OAEhB,SAAV5iB,GACU,iBAAVA,GACCA,EAAM6iB,WAAW,SAAW7iB,EAAM8iB,SAAS,MAC3C9iB,EAAM6iB,WAAW,SAAW7iB,EAAM8iB,SAAS,MAC3B,OAAjBC,EAAM/iB,GAEV,CAhUgDgjB,CAAQhjB,GAAS,MAACV,EAAWU,GAAS,CAACA,OAAOV,EAC9F,CAIO,SAAS2jB,GAAmBjjB,EAAO2iB,GAExC,YADcrjB,IAAVU,IAAqBA,EAAQ2iB,GAChB,OAAV3iB,GAAmC,iBAAVA,EAAqB,MAACV,EAAWU,GAAS,CAACA,OAAOV,EACpF,CAeO,SAAS4jB,GAAS3W,GACvB,OAAe,MAARA,GAAgBA,aAAgB8C,OAAS9C,aAAgBuV,GAAavV,EAAO8C,MAAMsN,KAAKpQ,EACjG,CAIO,SAAS6V,GAAIlF,EAAQrX,EAAG0B,EAAO8H,OACpC,OAAiB,MAAV6N,EAAiBA,EAASA,aAAkB3V,EAAO2V,EAAOkF,IAAIvc,GAAK0B,EAAKoV,KAAKO,EAAQrX,EAC9F,CASO,SAAS/E,GAASqiB,GACvB,OAAOA,GAAQ5iB,WAAa0hB,EAC9B,CAOO,SAASmB,GAAeD,GAC7B,OAAOriB,GAASqiB,UAA4B7jB,IAAhB6jB,EAAO5b,WAAwCjI,IAAlB6jB,EAAOvO,OAClE,CA2HO,SAASyO,GAAc1B,EAAUpa,GACtC,GAAgB,MAAZoa,EAAJ,CACA,GAAwB,iBAAbA,EAAuB,CAC5B,EAAIA,GAAYA,EAAW,GAAK/D,OAAO0F,UAAU,EAAI3B,KAAWA,GAAY,EAAIA,GACpF,MAAMxX,EAAI1K,KAAK8jB,IAAI5B,GACnB,OAAOA,EAAW,EACd,CACE3X,MAAQwZ,GAAM/jB,KAAKuK,MAAMwZ,EAAIrZ,GAAKA,EAClCsZ,OAASD,IAAOA,EAAIrZ,EAAI,GAAKA,EAC7BuZ,MAAO,CAACC,EAAIC,IAAOC,EAAOpkB,KAAKsK,KAAK4Z,EAAKxZ,GAAIyZ,EAAKzZ,GAAGiY,KAAKlY,GAAMA,EAAIC,KAEtE,CACEH,MAAQwZ,GAAM/jB,KAAKuK,MAAMwZ,EAAIrZ,GAAKA,EAClCsZ,OAASD,GAAMA,EAAIrZ,EACnBuZ,MAAO,CAACC,EAAIC,IAAOC,EAAOpkB,KAAKsK,KAAK4Z,EAAKxZ,GAAIyZ,EAAKzZ,GAAGiY,KAAKlY,GAAMA,EAAIC,IAE3E,CACD,GAAwB,iBAAbwX,EAAuB,OAAiB,SAATpa,EAAkBma,GAAoBG,IAAkBF,GAClG,GAA8B,mBAAnBA,EAAS3X,MAAsB,MAAM,IAAI4X,MAAM,0CAC1D,GAA+B,mBAApBD,EAAS8B,OAAuB,MAAM,IAAI7B,MAAM,2CAC3D,OAAOD,CAnBsB,CAoB/B,CAGO,SAASmC,GAAmBnC,EAAUpa,GAE3C,IADAoa,EAAW0B,GAAc1B,EAAUpa,KACO,mBAAnBoa,EAAS+B,MAAsB,MAAM,IAAI9B,MAAM,0CACtE,OAAOD,CACT,CA6CO,SAASoC,GAAU7G,GACxB,IAAK,MAAMld,KAASkd,EAAQ,CAC1B,GAAa,MAATld,EAAe,SACnB,MAAMuH,SAAcvH,EACpB,MAAgB,WAATuH,GAA8B,YAATA,CAC7B,CACH,CAEO,SAASyc,GAAW9G,GACzB,IAAK,MAAMld,KAASkd,EAClB,GAAa,MAATld,EACJ,OAAOA,aAAiBwe,IAE5B,CAMO,SAASyF,GAAiB/G,GAC/B,IAAK,MAAMld,KAASkd,EAClB,GAAa,MAATld,EACJ,MAAwB,iBAAVA,GAAsB6d,MAAM7d,IAAUyiB,GAASziB,EAEjE,CAIO,SAASkkB,GAAgBhH,GAC9B,IAAK,MAAMld,KAASkd,EAClB,GAAa,MAATld,EAAJ,CACA,GAAqB,iBAAVA,EAAoB,OAAO,EACtC,GAAKA,EAAM4iB,OACX,OAAQ/E,MAAM7d,EAHc,CAKhC,CA4CO,SAASmkB,GAAUnkB,GACxB,OAAgB,MAATA,GAGF,SAAgBA,GACrB,MAAO,gBAAgBnD,KAAKmD,EAC9B,CAL0BokB,CAAOpkB,EACjC,CA2BO,SAASqkB,GAAQnH,GACtB,GAAc,MAAVA,EAAgB,OACpB,MAAMoH,EAAQpH,EAAO,GACfqH,EAAOrH,EAAOA,EAAOvb,OAAS,GACpC,OAAO6iB,EAAWF,EAAOC,EAC3B,CC1cO,MAAME,GAAW9hB,OAAO,YAKlBogB,GAAQpgB,OAAO,SAIf+hB,GAAS/hB,OAAO,UAIhBhB,GAASgB,OAAO,UAIhBgiB,GAAUhiB,OAAO,WAGjBD,GAASC,OAAO,UAKhBiiB,GAAW,IAAIjF,IAAI,CAC9B,CAAC,IAAK8E,IACN,CAAC,IAAKA,IACN,CAAC,KAAMA,IACP,CAAC,KAAMA,IACP,CAAC,IAAKC,IACN,CAAC,QAAS3B,IACV,CAAC,UAAW4B,IACZ,CAAC,SAAUjiB,IACX,CAAC,SAAUf,MChCAkjB,GAAU,EADFplB,KAAKqlB,KAAK,GAkBzBC,GAAU,IAAIpF,IAAI,CACtB,CAAC,WAAYqF,GACb,CAAC,SAAUC,GACX,CAAC,QAASC,GACV,CAAC,UAAWC,GACZ,CAAC,WAAYC,GACb,CAAC,UArBmB,CACpBC,KAAKC,EAASC,GACZ,MAAMC,EAAK/lB,KAAKqlB,KAAKS,EAAO9lB,KAAKgmB,IAC/BC,EAAKF,EAAKX,GACVc,EAAKD,EAAK,EACZJ,EAAQM,OAAO,EAAGF,GAClBJ,EAAQO,OAAOL,EAAIG,GACnBL,EAAQO,OAAOL,GAAKG,GACpBL,EAAQO,OAAO,GAAIH,GACnBJ,EAAQO,QAAQL,GAAKG,GACrBL,EAAQO,QAAQL,EAAIG,GACpBL,EAAQQ,WACT,IAUD,CAAC,OAAQC,GACT,CAAC,SAAUC,GACX,CAAC,UAAWC,GACZ,CAAC,OAAQC,GACT,CAAC,QAASC,GACV,CAAC,WAAYC,GACb,CAAC,YAAaC,GACd,CAAC,MAAOC,KAaH,SAASC,GAAY7jB,GAC1B,GAAc,MAAVA,GAXN,SAAwB1C,GACtB,OAAOA,GAA+B,mBAAfA,EAAMqlB,IAC/B,CASwBmB,CAAe9jB,GAAS,OAAOA,EACrD,MAAM1C,EAAQ+kB,GAAQpoB,IAAI,GAAG+F,IAASkK,eACtC,GAAI5M,EAAO,OAAOA,EAClB,MAAM,IAAI4hB,MAAM,mBAAmBlf,IACrC,CC7CO,SAAS+jB,GAAKC,GACnB7O,QAAQ4O,KAAKC,EAEf,CCYA,MAAMC,GAAKlnB,KAAKgmB,GACVmB,GAAM,EAAID,GAGT,SAASE,IACdC,WACEA,EACAC,MAAOC,EAAc,EAACC,SACtBA,EAAWD,EAAWE,WACtBA,EAAaF,EAAWG,YACxBA,EAAcH,EAAWI,UACzBA,EAAYJ,GACV,CAAE,EACNK,GAEA,GAAkB,MAAdP,EAAoB,OACxB,GAAiC,mBAAtBA,EAAWQ,OAAuB,OAAOR,EACpD,IAAI1e,EACAwM,EACA2S,EAAO,QAMX,GAAIzmB,GAASgmB,GAAa,CACxB,IAAIC,EAYJ,KAVExf,KAAMuf,EACNlS,SACAmS,QACAE,iBAAqB3nB,IAAVynB,EAAsBA,EAAQE,GACzCC,mBAAuB5nB,IAAVynB,EAAsBA,EAAQG,GAC3CC,oBAAwB7nB,IAAVynB,EAAsBA,EAAQI,GAC5CC,kBAAsB9nB,IAAVynB,EAAsBA,EAAQK,GAC1CG,OAAOA,KACJnf,GACD0e,GACc,MAAdA,EAAoB,MACzB,CAGyB,mBAAfA,KAA6Bvf,KAAMuf,GA8ChD,SAAyBA,GACvB,OAAQ,GAAGA,IAAala,eACtB,IAAK,aACH,OAAO4a,GAAgBC,GAAc,MAAQ,OAC/C,IAAK,SACH,OAAOC,GAAgBC,GAAW,MAAQ,OAC5C,IAAK,uBACH,OAAOH,GAAgBI,GAAuB,EAAG,GACnD,IAAK,wBACH,OAAOJ,GAAgBK,GAAyBjB,GAAKA,IACvD,IAAK,kBACH,OAAOc,GAAgBI,GAAmBlB,GAAKA,IACjD,IAAK,mBACH,OAAOc,GAAgBK,GAAmB,OAAQ,QACpD,IAAK,oBACH,OAAOL,GAAgBM,GAAqB,MAAO,QACrD,IAAK,cACH,OAAOR,GAAgBS,GAAe,OAAQ,QAChD,IAAK,kBACH,OAAOT,GAAgBU,GAAoBtB,GAAKD,IAClD,IAAK,WACH,OAAOa,GAAgBW,EAAa,OAAQ,QAC9C,IAAK,WACH,MAAO,CAAC5gB,KAAM6gB,IAChB,IAAK,YACH,MAAO,CAAC7gB,KAAM8gB,IAChB,IAAK,WACH,OAAOb,GAAgBc,EAAa1B,GAAKA,IAC3C,IAAK,eACH,OAAOY,GAAgBe,EAAiB,EAAG,GAC7C,IAAK,gBACH,OAAOf,GAAgBgB,EAAkB,EAAG,GAC9C,IAAK,sBACH,OAAOhB,GAAgBiB,EAAuB7B,GAAKA,IACrD,QACE,MAAM,IAAIhF,MAAM,4BAA4BkF,KAElD,CAnF8D4B,CAAgB5B,IAG5E,MAAMxH,MAACA,EAAKqJ,OAAEA,EAAMC,WAAEA,EAAUC,YAAEA,EAAWC,UAAEA,EAASC,aAAEA,GAAgB1B,EACpE2B,EAAK1J,EAAQsJ,EAAaC,EAAczB,EAAYF,EACpD+B,EAAKN,EAASG,EAAYC,EAAe9B,EAAWE,EAI1D,GAHAL,EAAaA,IAAa,CAACxH,MAAO0J,EAAIL,OAAQM,EAAI1B,UAASnf,IAGzC,MAAd0e,EAAoB,OACxBS,EA2EF,SAAuBA,EAAM2B,EAAIC,EAAIC,EAAIC,GACvC,IAAa,IAAT9B,GAA0B,MAARA,GAAgC,iBAATA,EAAmB,OAAQ+B,GAAMA,GACjE,IAAT/B,IAAeA,EAAO,SAC1B,GACO,UADC,GAAGA,IAAO3a,cAEd,OAAO2c,EAAiBL,EAAIC,EAAIC,EAAIC,GAEpC,MAAM,IAAIzH,MAAM,iCAAiC2F,IAEvD,CApFSiC,CAAcjC,EAAMqB,EAAYE,EAAWxJ,EAAQuJ,EAAaF,EAASI,GAGhF,IAEIU,EAFAC,EAAKd,EAAaxB,EAClBuC,EAAKb,EAAY7B,EAIrB,GAAc,MAAVrS,EAAgB,CAClB,OAAQgV,EAAIC,IAAMX,EAAIC,IAAOW,EAAQhD,GAAYiD,OAAOnV,GAClDoV,EAAIvqB,KAAK8K,IAAIye,GAAME,EAAKU,GAAKX,GAAME,EAAKU,IAC1CG,EAAI,GACNN,IAAOM,GAAKJ,EAAKV,GAAMF,GAAM,EAC7BW,IAAOK,GAAKH,EAAKV,GAAMF,GAAM,EAC7BQ,EAAYQ,EAAa,CACvBC,MAAMhgB,EAAGigB,GACPrqB,KAAKwnB,OAAO4C,MAAMhgB,EAAI8f,EAAIN,EAAIS,EAAIH,EAAIL,EACvC,KAGHlD,GAAK,6FAER,CAWD,OATAgD,IACS,IAAPC,GAAmB,IAAPC,EACRvB,KACA6B,EAAa,CACXC,MAAMhgB,EAAGigB,GACPrqB,KAAKwnB,OAAO4C,MAAMhgB,EAAIwf,EAAIS,EAAIR,EAC/B,IAGF,CAACrC,OAASgC,GAAMxC,EAAWQ,OAAOmC,EAAUnC,OAAOC,EAAK+B,KACjE,CAoDA,SAAS9B,GAAgBX,EAAkBuD,EAAIC,GAC7C,MAAO,CACL9iB,KAAM,EAAE+X,QAAOqJ,SAAQ2B,SAAQC,YAAY,IAAMhD,WAC/C,MAAMT,EAAaD,IAMnB,OALiB,MAAb0D,GAAmBzD,EAAWyD,YAAYA,GAChC,MAAVD,GAAgBxD,EAAWwD,SAASA,GACpB,iBAAT/C,GAAmBT,EAAW0D,YAAYjD,GACrDT,EAAW2D,MAAMhrB,KAAK8K,IAAI+U,EAAQ8K,EAAIzB,EAAS0B,IAC/CvD,EAAW4D,UAAU,CAACpL,EAAQ,EAAGqJ,EAAS,IACnC7B,CAAU,EAEnB6D,YAAaN,EAAKD,EAEtB,CAEA,SAAS1C,GAAgBb,EAAkBuD,EAAIC,GAC7C,MAAM9iB,KAACA,EAAIojB,YAAEA,GAAenD,GAAgBX,EAAkBuD,EAAIC,GAClE,MAAO,CACL9iB,KAAOa,IACL,MAAMwiB,UAACA,EAAShW,OAAEA,EAAM0K,MAAEA,EAAKqJ,OAAEA,GAAUvgB,EACrC0e,EAAavf,EAAKa,GAOxB,OANiB,MAAbwiB,IACF9D,EAAW8D,UAAUA,QACNtrB,IAAXsV,GACFkS,EAAW+D,QAAQ,CAACvL,EAAOqJ,GAAS,CAACphB,KAAM,YAGxCuf,CAAU,EAEnB6D,cAEJ,CAEA,MAAMvC,GAAWlG,GAAS,CAACoF,OAASA,GAAWA,IAEzCe,GAAWnG,GACf+H,EAAa,CACXC,MAAMhgB,EAAGigB,GACPrqB,KAAKwnB,OAAO4C,MAAMhgB,GAAIigB,EACvB,KCrME,SAASW,GAAc1iB,EAAU,CAAA,EAAIif,EAAY0D,GACtD,MAAM7rB,SAACA,GAA6B,oBAAXU,OAAyBA,OAAOV,cAAWI,IAAa8I,EACjF,MAAO,CAAClJ,WAAU6rB,YAAWjE,WAAYD,GAAiBze,EAASif,GACrE,CAEO,SAAS2D,GAAOpsB,GAAMM,SAACA,IAC5B,OAAO+rB,GAAOC,GAAQtsB,GAAMxB,KAAK8B,EAASisB,iBAC5C,CCqEA,MAAMC,GAAiB,IAAIzL,IAAI,CAE7B,CAAC,SAAU0L,IACX,CAAC,aAAcC,IACf,CAAC,QAASC,IACV,CAAC,SAAUC,IACX,CAAC,UAAWC,IACZ,CAAC,UAAWC,IACZ,CAAC,OAAQC,IACT,CAAC,OAAQC,IACT,CAAC,OAAQC,IACT,CAAC,YAAaC,IAGd,CAAC,OAAQC,GAASC,GAAYC,KAC9B,CAAC,OAAQF,GAASG,GAAYC,KAC9B,CAAC,OAAQJ,GAASK,GAAYC,KAC9B,CAAC,OAAQN,GAASO,GAAYC,KAC9B,CAAC,OAAQR,GAASS,GAAYC,KAC9B,CAAC,OAAQV,GAASW,GAAYC,KAC9B,CAAC,SAAUZ,GAASa,GAAcC,KAClC,CAAC,SAAUd,GAASe,GAAcC,KAClC,CAAC,WAAYhB,GAASiB,GAAgBC,KAGtC,CAAC,OAAQC,GAAUV,GAAYC,KAC/B,CAAC,SAAUS,GAAUN,GAAcC,KAGnC,CAAC,QAASM,GAAQC,GAAaC,KAC/B,CAAC,SAAUF,GAAQG,GAAcC,KACjC,CAAC,QAASJ,GAAQK,GAAaC,KAC/B,CAAC,UAAWN,GAAQO,GAAeC,KACnC,CAAC,UAAWR,GAAQS,GAAeC,KACnC,CAAC,OAAQV,GAAQW,GAAYC,KAG7B,CAAC,QAASC,GAAQC,KAClB,CAAC,UAAWD,GAAQE,KACpB,CAAC,QAASF,GAAQG,KAClB,CAAC,UAAWH,GAAQI,KACpB,CAAC,SAAUJ,GAAQK,KACnB,CAAC,UAAWL,GAAQM,KACpB,CAAC,YAAaN,GAAQO,KACtB,CAAC,OAAQP,GAAQQ,KACjB,CAAC,OAAQR,GAAQS,KACjB,CAAC,OAAQtB,GAAQuB,GAAYC,KAC7B,CAAC,OAAQxB,GAAQyB,GAAYC,KAC7B,CAAC,OAAQ1B,GAAQ2B,GAAYC,KAC7B,CAAC,OAAQ5B,GAAQ6B,GAAYC,KAC7B,CAAC,OAAQ9B,GAAQ+B,GAAYC,KAC7B,CAAC,SAAUhC,GAAQiC,GAAcC,KACjC,CAAC,OAAQlC,GAAQmC,GAAYC,KAC7B,CAAC,OAAQpC,GAAQqC,GAAYC,KAC7B,CAAC,OAAQtC,GAAQuC,GAAYC,KAC7B,CAAC,SAAUxC,GAAQyC,GAAcC,KACjC,CAAC,SAAU1C,GAAQ2C,GAAcC,KACjC,CAAC,SAAU5C,GAAQ6C,GAAcC,KAGjC,CAAC,UAAWC,GAAgBC,KAC5B,CAAC,UAAWD,GAAgBE,OAG9B,SAASjD,GAAQkD,EAAQC,GACvB,MAAO,EAAE3uB,OAAQwI,KACL,IAANA,EAAgB,CAACkmB,EAAO,GAAG,IACrB,IAANlmB,EAAgB,CAACkmB,EAAO,GAAG,GAAIA,EAAO,GAAG,KAC7ClmB,EAAI1K,KAAK6K,IAAI,EAAG7K,KAAKuK,MAAMG,KAChB,EAAIomB,GAASD,EAAanmB,GAAKkmB,EAAOlmB,EAErD,CAEA,SAAS4hB,GAASsE,EAAQC,GACxB,MAAO,EAAE3uB,OAAQwI,KACL,IAANA,EAAgB,CAACkmB,EAAO,GAAG,GAAIA,EAAO,GAAG,KAC7ClmB,EAAI1K,KAAK6K,IAAI,EAAG7K,KAAKuK,MAAMG,KAChB,GAAKomB,GAASD,EAAanmB,GAAKkmB,EAAOlmB,EAEtD,CAEA,SAAS+iB,GAAUmD,EAAQC,GACzB,MAAO,EAAE3uB,OAAQwI,KACL,IAANA,EAAgB,CAACkmB,EAAO,GAAG,GAAIA,EAAO,GAAG,KAC7ClmB,EAAI1K,KAAK6K,IAAI,EAAG7K,KAAKuK,MAAMG,KAChB,GAAKomB,IAAUC,GAAMF,EAAY,EAAIE,IAAIrmB,GAAKkmB,EAAOlmB,GAAGtC,QAAQ4oB,SAE/E,CAEA,SAASzC,GAAQsC,GACf,MAAO,EAAE3uB,OAAQwI,KAAOomB,GAASD,EAAa7wB,KAAK6K,IAAI,EAAG7K,KAAKuK,MAAMG,IACvE,CAEA,SAAS+lB,GAAgBI,GACvB,MAAO,EAAE3uB,OAAQwI,KAAOomB,GAASD,EAAa7wB,KAAKuK,MAAMG,GAAK,GAAGtC,MAAM,GAAI,EAC7E,CAEO,SAAS6oB,GAAcL,GAC5B,MAAM/G,EAAI,GAAG+G,IAASzjB,cACtB,IAAKwe,GAAejlB,IAAImjB,GAAI,MAAM,IAAI1H,MAAM,2BAA2B0H,KACvE,OAAO8B,GAAezuB,IAAI2sB,EAC5B,CAEO,SAASqH,GAAaN,EAAQ1uB,GACnC,MAAM2nB,EAAIoH,GAAcL,GAClB7S,EAAiB,mBAAN8L,EAAmBA,EAAE,CAAC3nB,WAAW2nB,EAClD,OAAO9L,EAAE7b,SAAWA,EAAS6b,EAAE3V,MAAM,EAAGlG,GAAU6b,CACpD,CAiBA,MAAMoT,GAAsB,IAAIjR,IAAI,CAElC,CAAC,OAAQsM,IACT,CAAC,OAAQE,IACT,CAAC,OAAQE,IACT,CAAC,OAAQE,IACT,CAAC,OAAQE,IACT,CAAC,OAAQE,IACT,CAAC,SAAUE,IACX,CAAC,SAAUE,IACX,CAAC,WAAYE,IAGb,CAAC,OAASuD,GAAM/D,GAAgB,EAAI+D,IACpC,CAAC,SAAWA,GAAM3D,GAAkB,EAAI2D,IAGxC,CAAC,QAASnD,IACV,CAAC,SAAUE,IACX,CAAC,QAASE,IACV,CAAC,UAAWI,IACZ,CAAC,OAAQE,IACT,CAAC,UAAWJ,IAGZ,CAAC,QAASM,IACV,CAAC,UAAWC,IACZ,CAAC,QAASC,IACV,CAAC,UAAWC,IACZ,CAAC,SAAUC,IACX,CAAC,UAAWC,IACZ,CAAC,YAAaC,IACd,CAAC,OAAQC,IACT,CAAC,OAAQC,IACT,CAAC,OAAQE,IACT,CAAC,OAAQE,IACT,CAAC,OAAQE,IACT,CAAC,OAAQE,IACT,CAAC,SAAUI,IACX,CAAC,OAAQF,IACT,CAAC,OAAQI,IACT,CAAC,OAAQE,IACT,CAAC,SAAUI,IACX,CAAC,OAAQF,IACT,CAAC,SAAUI,IACX,CAAC,SAAUE,IAGX,CAAC,UAAWE,IACZ,CAAC,UAAWC,MAGP,SAASS,GAAmBR,GACjC,MAAM/G,EAAI,GAAG+G,IAASzjB,cACtB,IAAKgkB,GAAoBzqB,IAAImjB,GAAI,MAAM,IAAI1H,MAAM,gCAAgC0H,KACjF,OAAOsH,GAAoBj0B,IAAI2sB,EACjC,CAEA,MAAMwH,GAAmB,IAAIC,IAAI,CAC/B,OACA,OACA,OACA,OACA,OACA,OACA,SACA,SACA,WACA,OACA,WAGK,SAASC,GAAkBX,GAChC,OAAiB,MAAVA,GAAkBS,GAAiB3qB,IAAI,GAAGkqB,IAASzjB,cAC5D,CCxPO,MAAMqkB,GAAQzlB,GAAOglB,GAAMhlB,EAAE,EAAIglB,GAClCU,GAAO,CAAC,EAAG,GAEXC,GAAgB,IAAIxR,IAAI,CAE5B,CAAC,SAAUyR,IAGX,CAAC,MAAOC,IACR,CAAC,MAAOC,IACR,CAAC,MAAOC,IACR,CAAC,MAAOC,MAGH,SAASC,GAAkBnB,GAChC,MAAM9kB,EAAI,GAAG8kB,IAAc1jB,cAC3B,IAAKukB,GAAchrB,IAAIqF,GAAI,MAAM,IAAIoW,MAAM,yBAAyBpW,KACpE,OAAO2lB,GAAcx0B,IAAI6O,EAC3B,CAEO,SAASkmB,GACdrzB,EACAosB,EACAkH,GACApqB,KACEA,EAAIqqB,KACJA,EAAIC,MACJA,EAAKC,KACLA,EAAIld,OACJA,EAASmd,GAAgB1zB,EAAKszB,GAASK,QACvCA,EAAOC,MACPA,EAAK5B,OACLA,EAAM1O,SACNA,EAAQ+B,MACRA,GAAQkB,GAASjoB,IAAI0B,KAASqmB,GAC1BwN,GAAiBP,EAAU/c,GAC3BgQ,GAASjoB,IAAI0B,KAASsD,GACtBwwB,GAAiBR,EAAU/c,GAC3BgQ,GAASjoB,IAAI0B,KAASsmB,GACtBuM,QACA5xB,GAASgxB,YACbA,GAAc1L,GAASjoB,IAAI0B,KAAS0kB,GACtB,MAAVsN,QAA4B/wB,IAAVokB,EAChB2N,GACAR,QAA8BvxB,IAAX+wB,EAAuBA,EAAkB,aAAT9oB,EAAsB,UAAY,SACvF0qB,EACAG,GACAhB,IACRX,QAAIA,IAkCF,GA/BA9O,EAAWmC,GAAmBnC,EAAUpa,GAC3B,aAATA,GAAgC,eAATA,IAAuBA,EAAO,UACzDkpB,IAAYA,EAOe,mBAAhBH,IACTA,EAAcmB,GAAkBnB,IAEP,IAAvBA,EAAY3uB,QACV8uB,IACFH,EAAcW,GAAKX,GACnBG,GAAU,QAEEnxB,IAAVokB,GAEmB,KADrBA,EAAQpB,aAAa3F,KAAK/H,GAAQ,CAACyd,EAAG7mB,IAAMA,GAAKoJ,EAAOjT,OAAS,MACvDA,SAAc+hB,EAAQwN,IAElCzG,EAAM6F,aAAa5M,IAAUwN,GAAOhP,GAAWoQ,IAAsBhC,KAErE7F,EAAM6F,YAAYA,GAQhBwB,EAAM,CACR,MAAOvnB,EAAKD,GAAOioB,GAAO3d,IACtBrK,EAAM,GAAKD,EAAM,KACnBsK,EPqBC,SAAesI,EAAQ3V,EAAO8H,OACnC,OAAO6N,aAAkB3V,EAAO2V,EAAOrV,QAAUN,EAAKoV,KAAKO,EAC7D,COvBerV,CAAM+M,GACXyP,GAAQzP,KAAYnV,KAAK+yB,KAAKjoB,GAAMqK,EAAOA,EAAOjT,OAAS,GAAK,EAE/DiT,EAAO,GAAK,EAEpB,CAOD,OALI6b,IAAS7b,EAAS6d,GAAU7d,IAChC6V,EAAM7V,OAAOA,GAAQod,QAAQA,GACzBJ,IAAMnH,EAAMmH,KAMlB,SAAmBA,EAAMrqB,GACvB,OAAgB,IAATqqB,OAAgBtyB,EAA4B,iBAATsyB,EAAoBA,EP+KzD,SAA2BjQ,EAAUpa,GAE1C,IADAoa,EAAWmC,GAAmBnC,EAAUpa,KACC,mBAAlBoa,EAAS5X,KAAqB,MAAM,IAAI6X,MAAM,yCACrE,OAAOD,CACT,COnLuE+Q,CAAkBd,EAAMrqB,EAC/F,CARuBorB,CAAUf,EAAMrqB,IAASqN,EAAS6V,EAAM7V,eAC/CtV,IAAVokB,GAAqB+G,EAAM/G,MAAMA,GACjCmO,GAAOpH,EAAMoH,MAAMA,GAChB,CAACtqB,OAAMqN,SAAQ8O,QAAO+G,QAAO6F,cAAa3O,WACnD,CAcO,SAASiR,GAAev0B,EAAKszB,GAAUkB,SAACA,EAAW,KAAMzqB,IAC9D,OAAOspB,GAAarzB,EAAKy0B,KAAWD,SAASA,GAAWlB,EAAU,IAAIvpB,EAASb,KAAM,OACvF,CAwEO,SAASwrB,GACd10B,EACAszB,GACA/c,OACEA,EAAS,CAAC,GAAEod,QACZA,EAAO3B,OACPA,EAAS,SAAQC,YACjBA,EAAW5M,MACXA,QAAwBpkB,IAAhBgxB,EACJC,GAASD,EAAa1b,EAAOjT,OAAS,GACtCijB,GAASjoB,IAAI0B,KAAS0kB,GACtB4N,GAAaN,EAAQzb,EAAOjT,OAAS,QACrCrC,GACRmxB,QAAIA,IAIF,MAAM+B,EAAOnO,GADbzP,EAASsO,GAAStO,IAElB,IAAKiJ,MAAM2U,KAUb,SAAmB5d,EAAQ4d,GACzB,IAAK,IAAIhnB,EAAI,EAAGrB,EAAIyK,EAAOjT,OAAQ6hB,EAAI5O,EAAO,GAAIpJ,EAAIrB,IAAKqB,EAAG,CAC5D,MAAM8d,EAAI9E,EAAWhB,EAAIA,EAAI5O,EAAOpJ,IACpC,GAAU,IAAN8d,GAAWA,IAAMkJ,EAAM,OAAO,CACnC,CACD,OAAO,CACT,CAhBuBQ,CAAUpe,EAAQ4d,GAAO,MAAM,IAAI5Q,MAAM,OAAOvjB,sCAErE,OADIoyB,IAAS/M,EAAQ+O,GAAU/O,IACxB,CACLnc,KAAM,YACNkjB,MAAOwI,GAAeT,EAAO,EAAIC,GAAU7d,GAAUA,OAAkBtV,IAAVokB,EAAsB,GAAKA,GAAOsO,QAAQA,GACvGpd,SACA8O,QAEJ,CAcO,SAASwP,GAAYvB,EAAU9rB,EAAImY,IACxC,OAAO2T,EAAShwB,OACZ,CACE4I,GAAIonB,GAAU,EAAE3xB,gBAAsBV,IAAVU,EAAsBA,EAAQuK,GAAIvK,EAAO6F,KACrEyE,GAAIqnB,GAAU,EAAE3xB,gBAAsBV,IAAVU,EAAsBA,EAAQsK,GAAItK,EAAO6F,MAEvE,CAAC,EAAG,EACV,CAEA,SAASksB,GAAgB1zB,EAAKszB,GAC5B,MAAMpqB,EAAOqd,GAASjoB,IAAI0B,GAC1B,OAAQkJ,IAASmd,IAAUnd,IAASod,IAAWpd,IAAS5F,GAASwxB,GAAkBD,IAAavB,EAClG,CAEA,SAASwB,GAAgBxB,GACvB,MAAO,CAAC,EAAGA,EAAShwB,OAAS2I,GAAIqnB,GAAU,EAAE3xB,gBAAsBV,IAAVU,EAAsBA,EAAQsK,GAAItK,EAAOge,MAAY,EAChH,CAKA,SAASkU,GAAiBP,EAAU/c,GAClC,MAAMwe,EAAOzB,EAAS0B,MAAK,EAAE3O,iBAAuBplB,IAAXolB,IACzC,QAAaplB,IAAT8zB,EAAoB,MAAO,CAAC,EAAGA,EAAK1O,QACxC,MAAM4O,EAAMC,GAAS5B,EAAU,IAAK,EAAE3xB,gBAAsBV,IAAVU,EAAsBke,IAAMqV,GAASvzB,EAAO,IAAMme,MAC9FuF,EAAQ9O,EAAOwN,KAAKoB,GAAM,EAAI/jB,KAAKqlB,KAAKtB,EAAI8P,KAC5CtJ,EAAI,GAAK1f,GAAIoZ,GACnB,OAAOsG,EAAI,EAAItG,EAAMtB,KAAK5E,GAAMA,EAAIwM,IAAKtG,CAC3C,CAKA,SAASyO,GAAiBR,EAAU/c,GAClC,MAAM4e,EAAMC,GAAO9B,GAAU,EAAE3xB,gBAAsBV,IAAVU,EAAsBke,IAAMuV,GAAOzzB,EAAOP,KAAK8jB,OACpFG,EAAQ9O,EAAOwN,KAAKoB,GAAO,GAAKA,EAAKgQ,IACrCxJ,EAAI,GAAK1f,GAAIoZ,GACnB,OAAOsG,EAAI,EAAItG,EAAMtB,KAAK5E,GAAMA,EAAIwM,IAAKtG,CAC3C,CAEA,SAASgQ,GAAe/B,GACtB,IAAK,MAAM3xB,MAACA,KAAU2xB,EACpB,QAAcryB,IAAVU,EACF,IAAK,IAAI2zB,KAAK3zB,EAAO,CACnB,GAAI2zB,EAAI,EAAG,OAAOT,GAAYvB,EAAUxT,IACxC,GAAIwV,EAAI,EAAG,OAAOT,GAAYvB,EAAUvT,GACzC,CAGL,MAAO,CAAC,EAAG,GACb,CAEA,SAASwV,GAAoBjC,GAC3B,MAAM/c,EAAS,GACf,IAAK,MAAM5U,MAACA,KAAU2xB,EACpB,QAAcryB,IAAVU,EACJ,IAAK,MAAM2zB,KAAK3zB,EAAO4U,EAAOlR,KAAKiwB,GAErC,OAAO/e,CACT,CAEO,SAAS0d,GAAqBhC,GACnC,MAAO,CAAC9kB,EAAG+C,IAAOiiB,GAAMF,EAAY9kB,EAAIglB,GAAKjiB,EAAI/C,GACnD,CC/SA,SAASqoB,GACPx1B,EACAosB,EACAhB,EACAkI,GACApqB,KACEA,EAAIqqB,KACJA,EAAIC,MACJA,EAAKjd,OACLA,EAASse,GAAYvB,GAASK,QAC9BA,EAAO8B,MACPA,EAAQ,EAACzD,OACTA,EAAM3M,MACNA,EAAKqQ,UACLA,GAAY,EAAIzD,YAChBA,GAAc1L,GAASjoB,IAAI0B,KAAS0kB,GACtB,MAAVsN,QAA4B/wB,IAAVokB,EAChB2N,GACAR,QAA8BvxB,IAAX+wB,EAAuBA,EAAS,QACrDe,IAAiBX,QACrBA,IAGFqD,GAASA,EACT,IAAKvpB,EAAKD,GAAOsK,EAwBjB,GAvBI4P,EAAWja,EAAKD,GAAO,KAAKC,EAAKD,GAAO,CAACA,EAAKC,GAAQkmB,GAAWA,GACrElmB,EAAM9K,KAAK8K,IAAIA,EAAKupB,GACpBxpB,EAAM7K,KAAK6K,IAAIA,EAAKwpB,GAOO,mBAAhBxD,IACTA,EAAcmB,GAAkBnB,SAIpBhxB,IAAVokB,IACF4M,EACyB,IAAvBA,EAAY3uB,OAAe2wB,GAAqBhC,EAArBgC,IAAqC5O,GAASsQ,GAAU1D,EAAa5M,IAIhG+M,IAASH,EAAcW,GAAKX,IAG5ByD,EAAW,CACb,MAAME,EAAMxK,EAAUjsB,MAAMs2B,GACtBI,EAAWD,EAAMxK,EAAUjsB,MAAM+M,GACjC4pB,EAAW1K,EAAUjsB,MAAM8M,GAAO2pB,EACpCC,EAAWC,EAAU5pB,EAAMkf,EAAU2K,OAAOH,EAAME,GAC7CD,EAAWC,IAAU7pB,EAAMmf,EAAU2K,OAAOH,EAAMC,GAC5D,CAKD,OAHAzJ,EAAM7V,OAAO,CAACrK,EAAKupB,EAAOxpB,IAAM0nB,QAAQA,GAASqC,aAAa/D,GAC1DuB,GAAOpH,EAAMoH,MAAMA,GACnBD,GAAMnH,EAAMmH,KAAKA,GACd,CAACrqB,OAAMqN,OAAQ,CAACrK,EAAKD,GAAMwpB,QAAOxD,cAAa7F,QACxD,CAUO,SAAS6J,GAAwBj2B,EAAKszB,GAAUkB,SAACA,EAAW,KAAMzqB,IACvE,OAAOyrB,GAAax1B,EAAKk2B,KAAoB1B,SAAUA,GAAYA,GAmDrE,SAAsBA,GACpB,MAAoB,KAAbA,EACH2B,GACA,CACEh3B,MAAM0M,GACGzK,KAAK+yB,KAAKtoB,GAAKzK,KAAKg1B,IAAIh1B,KAAK8jB,IAAIrZ,GAAI2oB,GAE9CuB,OAAOlqB,GACEzK,KAAK+yB,KAAKtoB,GAAKzK,KAAKg1B,IAAIh1B,KAAK8jB,IAAIrZ,GAAI,EAAI2oB,GAG1D,CA9DiF6B,CAAa7B,GAAWlB,EAAU,IAC5GvpB,EACHb,KAAM,iBAEV,CAcO,SAASotB,GAA2Bt2B,EAAKszB,GAAUzP,SAACA,EAAW,KAAM9Z,IAC1E,OAAOyrB,GACLx1B,EACAu2B,KAAuB1S,SAAUA,GAAYA,GA2CjD,SAAyBA,GACvB,MAAO,CACL1kB,MAAM0M,GACGzK,KAAK+yB,KAAKtoB,GAAKzK,KAAKo1B,MAAMp1B,KAAK8jB,IAAIrZ,EAAIgY,IAEhDkS,OAAOlqB,GACEzK,KAAK+yB,KAAKtoB,GAAKzK,KAAKq1B,MAAMr1B,KAAK8jB,IAAIrZ,IAAMgY,EAGtD,CAnDI6S,CAAgB7S,GAChByP,EACAvpB,EAEJ,CAEA,MAAM4sB,GAAoB,CACxBx3B,MAAM0M,GACGA,EAETkqB,OAAOlqB,GACEA,GAIL+qB,GAAe,CACnBz3B,MAAOiC,KAAKy1B,IACZd,OAAQ30B,KAAK01B,KAGTX,GAAgB,CACpBh3B,MAAM0M,GACGzK,KAAK+yB,KAAKtoB,GAAKzK,KAAKqlB,KAAKrlB,KAAK8jB,IAAIrZ,IAE3CkqB,OAAOlqB,GACEzK,KAAK+yB,KAAKtoB,IAAMA,EAAIA,IClI/B,SAASkrB,GAAa/2B,EAAKosB,EAAOkH,EAAUvpB,GAC1C,OAAOspB,GAAarzB,EAAKosB,EAAOkH,EAAUvpB,EAC5C,CCOO,MAAMitB,GAAkB1yB,OAAO,WAEtC,SAAS2yB,GAAaj3B,EAAKosB,EAAOkH,GAAUpqB,KAACA,EAAIoa,SAAEA,EAAQ/M,OAAEA,EAAM8O,MAAEA,UAAO+M,EAAO2C,KAAEA,IAWnF,OAVAzR,EAAWmC,GAAmBnC,EAAUpa,QACzBjI,IAAXsV,IAAsBA,EAASse,GAAYvB,EAAUhQ,EAAUtjB,IACtD,gBAATkJ,GAA0BA,IAAS8tB,KAAiB9tB,EAAO,WAC3DkpB,IAAS7b,EAAS6d,GAAU7d,IAChC6V,EAAM7V,OAAOA,QACCtV,IAAVokB,IAEmB,mBAAVA,IAAsBA,EAAQA,EAAM9O,IAC/C6V,EAAM/G,MAAMA,IAEP,CAACnc,OAAMqN,SAAQ8O,QAAO+G,QAAO2I,OAAMzR,WAC5C,CAEO,SAAS4T,GAAmBl3B,EAAKszB,GAAUpqB,KAACA,EAAIoa,SAAEA,EAAQ/M,OAAEA,EAAM8O,MAAEA,EAAK2M,OAAEA,EAAM2B,QAAEA,KAAY5pB,IAGpG,IAAIgrB,EACJ,GAHAzR,EAAWmC,GAAmBnC,EAAUpa,QACzBjI,IAAXsV,IAAsBA,EAASse,GAAYvB,EAAUhQ,EAAUtjB,IAE/DumB,GAASjoB,IAAI0B,KAASqE,GACxB0wB,EAwFJ,SAAyBzB,GACvB,MAAO,CACL6D,KAAMC,GAAU9D,EAAU,QAC1B+D,OAAQD,GAAU9D,EAAU,UAEhC,CA7FWgE,CAAgBhE,GACvBjO,OAAkBpkB,IAAVokB,EA8FZ,SAA0B0P,GACxB,OAAOjP,GAAUiP,EAAKoC,MAAQI,GAAgBC,EAChD,CAhGkCC,CAAiB1C,GAAQhR,GAAIsB,EAAO6C,SAC7D,GAAI3B,GAASjoB,IAAI0B,KAAS0kB,UACjBzjB,IAAVokB,GAAiC,YAATnc,GAAsBA,IAAS8tB,KACzD3R,EJ0JC,SAA2B9O,EAAQyb,EAAS,SACjD,MAAM3M,EAAQ,IAAIqN,KACXlrB,EAAG2qB,GAAKG,GAAaN,EAAQ,GACpC,IAAK,MAAMrwB,KAAS4U,EAClB,GAAa,MAAT5U,EACJ,IAAc,IAAVA,EAAgB0jB,EAAMpQ,IAAIkd,OACzB,KAAc,IAAVxwB,EACJ,OADqB0jB,EAAMpQ,IAAIzN,EACxB,CAEd,MAAO,IAAI6d,EACb,CIpKcqS,CAAkBnhB,EAAQyb,QACpB/wB,IAAVokB,IAAqB2M,OAAS/wB,SAErBA,IAAX+wB,QAAkC/wB,IAAVokB,IAC1B2M,EAAkB,YAAT9oB,EAAqB,QAAU,kBAE3BjI,IAAX+wB,GACF,QAAc/wB,IAAVokB,EAAqB,CACvB,MAAM4M,EAAcO,GAAmBR,GACjC2F,EAAKtS,EAAM,GACfF,EAAIE,EAAM,GAAKA,EAAM,GACvBA,EAAQ,EAAE/hB,OAAQwI,KAAOomB,IAAUC,GAAMF,EAAY0F,EAAKxS,EAAIgN,IAAIrmB,EAC1E,MACQuZ,EAAQgN,GAAcL,GAI5B,GAAI2B,IAAYiE,GACd,MAAM,IAAIrU,MAAM,uBAAuBvjB,4BAEzC,OAAOi3B,GAAaj3B,EAAK63B,KAAelE,QAAQA,GAAUL,EAAU,IAAIvpB,EAASb,OAAMqN,SAAQ8O,QAAO0P,QACxG,CAyBA,SAAS+C,GAAW1L,EAAOkH,EAAUvpB,EAAS/J,GAC5C,IAAI4zB,MAACA,GAAS7pB,EAId,YAHc9I,IAAV2yB,GAAqBxH,EAAMwH,MAAOA,IAAUA,IAChDxH,EAAQ6K,GAAaj3B,EAAKosB,EAAOkH,EAAUvpB,IACrC6pB,MAAQA,EACPxH,CACT,CAEA,SAASyI,GAAYvB,EAAUhQ,EAAUtjB,GACvC,MAAM6e,EAAS,IAAIkZ,GACnB,IAAK,MAAMp2B,MAACA,EAAK4U,OAAEA,KAAW+c,EAAU,CACtC,QAAeryB,IAAXsV,EAAsB,OAAOA,IACjC,QAActV,IAAVU,EACJ,IAAK,MAAM2zB,KAAK3zB,EAAOkd,EAAO5J,IAAIqgB,EACnC,CACD,QAAiBr0B,IAAbqiB,EAAwB,CAC1B,MAAOpX,EAAKD,GAAOioB,GAAOrV,GAAQkF,IAAIT,EAAS3X,MAAO2X,GACtD,OAAOA,EAAS+B,MAAMnZ,EAAKoX,EAAS8B,OAAOnZ,GAC5C,CACD,GAAI4S,EAAOqI,KAAO,KAAQX,GAASjoB,IAAI0B,KAASomB,GAC9C,MAAM,IAAI7C,MAAM,8BAA8BvjB,uCAEhD,OAAOg4B,GAAKnZ,EAAQY,GACtB,CAGA,SAAS2X,GAAU9D,EAAUtzB,GAC3B,IAAI2B,EACJ,IAAK,MAAMozB,KAACA,KAASzB,EAAU,CAC7B,MAAM2E,EAAYlD,IAAO/0B,GACzB,QAAkBiB,IAAdg3B,EACJ,QAAch3B,IAAVU,EAAqBA,EAAQs2B,OAE5B,GAAIt2B,IAAUs2B,EAAW,MAC/B,CACD,OAAOt2B,CACT,CCuHO,SAASu2B,GAAel4B,EAAKosB,EAAO2I,GACzC,OAGF,SAAqB/0B,EAAKszB,EAAW,GAAIvpB,EAAU,CAAA,GACjD,MAAMb,EAyIR,SAAwBlJ,EAAKszB,GAAUpqB,KAACA,EAAIqN,OAAEA,EAAM8O,MAAEA,EAAK2M,OAAEA,EAAMyD,MAAEA,EAAKhN,WAAEA,IAE1E,GAAY,OAARzoB,GAAwB,OAARA,EAAc,MAAO,OAK5B,MAARA,GAAuB,MAARA,GAA8B,MAAdyoB,IAAoBvf,EAAOivB,IAK/D,IAAK,MAAOjvB,KAAMipB,KAAMmB,EACtB,QAAUryB,IAANkxB,EACC,QAAalxB,IAATiI,EAAoBA,EAAOipB,OAC/B,GAAIjpB,IAASipB,EAAG,MAAM,IAAI5O,MAAM,oCAAoCra,SAAYipB,KAIvF,GAAIjpB,IAASivB,GAAgB,OAC7B,QAAal3B,IAATiI,EAAoB,OAAOA,EAG/B,QAAejI,IAAXsV,IAAyB+c,EAAS8E,MAAK,EAAEz2B,gBAAqBV,IAAVU,IAAsB,OAG9E,MAAMsb,EAAOsJ,GAASjoB,IAAI0B,GAC1B,GAAIid,IAASoJ,GAAQ,MAAO,OAC5B,GAAIpJ,IAASqJ,IAAWrJ,IAAS3Z,GAAQ,MAAO,SAChD,GAAI2Z,IAAS5Y,GAAQ,MAAO,UAK5B,IAAKkS,GAAU8O,GAAS,IAAI/hB,OAAS,EAAG,OAAO+0B,GAAcpb,GAO7D,QAAehc,IAAXsV,EACF,OAAImP,GAAUnP,GAAgB8hB,GAAcpb,GACxC0I,GAAWpP,GAAgB,MAC3B0G,IAASyH,IAAmB,MAAT+Q,IAAiB9C,GAAkBX,GACnD,SADoE,YAK7E,MAAMnT,EAASyU,EAASvP,KAAI,EAAEpiB,WAAWA,IAAO22B,QAAQ32B,QAAoBV,IAAVU,IAClE,OAAIkd,EAAOuZ,KAAK1S,IAAmB2S,GAAcpb,GAC7C4B,EAAOuZ,KAAKzS,IAAoB,MAChC1I,IAASyH,IAAmB,MAAT+Q,IAAiB9C,GAAkBX,GACnD,SADoE,WAE7E,CA/LeuG,CAAev4B,EAAKszB,EAAUvpB,GAO3C,QACmB9I,IAAjB8I,EAAQb,WACWjI,IAAnB8I,EAAQwM,aACUtV,IAAlB8I,EAAQsb,OACY,MAApBtb,EAAQuZ,UACA,OAARtjB,GACQ,OAARA,GACAw4B,GAAe,CAACtvB,SAChB,CACA,MAAM2V,EAASyU,EAASvP,KAAI,EAAEpiB,WAAWA,IAAO22B,QAAQ32B,QAAoBV,IAAVU,IAC9Dkd,EAAOuZ,KAAKzS,IACdyC,GACE,0CAA0CpoB,iGAAmGy4B,GAC3IvvB,yQACsQlJ,0FAA4FA,eAAiBy4B,GACnXvvB,QAGG2V,EAAOuZ,KAAKxS,IACnBwC,GACE,0CAA0CpoB,uNAAyNy4B,GACjQvvB,8RAC2RlJ,eAAiBy4B,GAC5SvvB,QAGG2V,EAAOuZ,KAAKvS,KACnBuC,GACE,0CAA0CpoB,wMAA0My4B,GAClPvvB,6FAC0FlJ,+FAAiGA,eAAiBy4B,GAC5MvvB,OAGP,CAMD,OAJAa,EAAQb,KAAOA,EAIPA,GACN,IAAK,YACL,IAAK,iBACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,WACL,IAAK,aACL,IAAK,SACL,IAAK,OACL,IAAK,YACL,IAAK,WACL,IAAK,MACL,IAAK,MACL,IAAK,SACHa,EAAU2uB,GAAWpF,EAAUvpB,EAAS+Z,IACxC,MACF,IAAK,WACH,OAAQyC,GAASjoB,IAAI0B,IACnB,KAAKomB,GACHrc,EAAU2uB,GAAWpF,EAAUvpB,EAAS+Z,IACxC,MACF,KAAKzf,GACH0F,EAAU2uB,GAAWpF,EAAUvpB,EAAS4uB,IAG5C,MACF,IAAK,MACL,IAAK,OACH5uB,EAAU2uB,GAAWpF,EAAUvpB,EAASma,IAI5C,OAAQhb,GACN,IAAK,YACH,OHxPC,SAA8BlJ,EAAKszB,EAAUvpB,GAClD,OAAOyrB,GAAax1B,EAAK44B,KAAkBjC,GAAmBrD,EAAUvpB,EAC1E,CGsPa8uB,CAAqB74B,EAAKszB,EAAUvpB,GAC7C,IAAK,iBACH,OHtPC,SAAkC/J,EAAKszB,EAAUvpB,GACtD,OAAOksB,GAAwBj2B,EAAKszB,EAAU,IAAIvpB,EAASyqB,SAAU,IACvE,CGoPasE,CAAyB94B,EAAKszB,EAAUvpB,GACjD,IAAK,gBACH,OAAOksB,GAAwBj2B,EAAKszB,EAAUvpB,GAChD,IAAK,gBACH,OH/OC,SACL/J,EACAszB,GACAyF,KAACA,EAAO,GAAEtD,MAAEA,EAAQ,EAAClf,OAAEA,EAASse,GAAYvB,EAAUmC,EAAQ,EAAI1V,GAAWD,OAAc/V,IAE3F,OAAOyrB,GAAax1B,EAAKg5B,KAAoBD,KAAMA,GAAQA,GAAQnC,GAActD,EAAU,CACzF/c,SACAkf,WACG1rB,GAEP,CGqOakvB,CAAwBj5B,EAAKszB,EAAUvpB,GAChD,IAAK,mBACH,OAAOusB,GAA2Bt2B,EAAKszB,EAAUvpB,GACnD,IAAK,cACL,IAAK,UACL,KAAKitB,GACH,OAAOE,GAAmBl3B,EAAKszB,EAAUvpB,GAC3C,IAAK,WACL,IAAK,aACL,IAAK,SACH,OJhNC,SAA2B/J,EAAKszB,EAAUvpB,GAC/C,OAAOspB,GAAarzB,EAAKk5B,KAAe5F,EAAUvpB,EACpD,CI8MaovB,CAAkBn5B,EAAKszB,EAAUvpB,GAC1C,IAAK,OACH,OJ9MC,SAAyB/J,EAAKszB,EAAUvpB,GAC7C,OAAOwqB,GAAev0B,EAAKszB,EAAU,IAAIvpB,EAASyqB,SAAU,IAC9D,CI4Ma4E,CAAgBp5B,EAAKszB,EAAUvpB,GACxC,IAAK,YACH,OAAO2qB,GAAqB10B,EAAKszB,EAAUvpB,GAC7C,IAAK,WACH,OJlMC,SACL/J,EACAszB,GACAjO,MACEA,EAAKgU,UACLA,QAAsBp4B,IAAVokB,EAAsB,GAAKA,EAAQ,IAAIA,IAAQ/hB,QAAMwI,EACjEA,EAAIutB,EAASrH,OACbA,EAAS,SAAQzb,OACjBA,EAASgf,GAAoBjC,GAASK,QACtCA,EAAO1B,YACPA,EAAWG,QACXA,IAcF,YAXcnxB,IAAVokB,IACFA,OACkBpkB,IAAhBgxB,EACIC,GAASD,EAAanmB,GACtBya,GAASjoB,IAAI0B,KAAS0kB,GACtB4N,GAAaN,EAAQlmB,QACrB7K,GAEJsV,EAAOjT,OAAS,IAClBiT,EAAS+iB,GAAc/iB,OAAkBtV,IAAVokB,EAAsB,CAAC/hB,OAAQwI,GAAKuZ,GAAOgU,aAErE3E,GAAqB10B,EAAKszB,EAAU,CAAC/c,SAAQ8O,QAAO+M,UAASuB,WACtE,CIwKa4F,CAAoBv5B,EAAKszB,EAAUvpB,GAC5C,IAAK,WACH,OJxKC,SACL/J,EACAszB,GACAjO,MACEA,EAAKvZ,EACLA,QAAc7K,IAAVokB,EAAsB,GAAKA,EAAQ,IAAIA,IAAQ/hB,QAAM0uB,OACzDA,EAAS,SAAQzb,OACjBA,EAASmd,GAAgB1zB,EAAKszB,GAASK,QACvCA,EAAO1B,YACPA,EAAWG,QACXA,IAGF,MAAOlmB,EAAKD,GAAOioB,GAAO3d,GAC1B,IAAIijB,EAiBJ,YAhBcv4B,IAAVokB,GACFmU,EAAaC,GAAMvtB,EAAKD,EAAKH,GACzB0tB,EAAW,IAAMttB,GAAKstB,EAAWE,OAAO,EAAG,GAC3CF,EAAWA,EAAWl2B,OAAS,IAAM2I,GAAKutB,EAAWG,MACzD7tB,EAAI0tB,EAAWl2B,OAAS,EACxB+hB,OACkBpkB,IAAhBgxB,EACIC,GAASD,EAAanmB,GACtBya,GAASjoB,IAAI0B,KAAS0kB,GACtB4N,GAAaN,EAAQlmB,QACrB7K,IAENu4B,EAAatH,GAASa,GAAkB7mB,EAAKD,GAAMH,EAAI,GAAGtC,MAAM,GAAI,GAChE0C,aAAeiU,OAAMqZ,EAAaA,EAAWzV,KAAKlY,GAAM,IAAIsU,KAAKtU,OAEnEma,GAAQnB,GAAStO,IAAW,GAAGijB,EAAWpH,UACvCsC,GAAqB10B,EAAKszB,EAAU,CAAC/c,OAAQijB,EAAYnU,QAAO+M,UAASuB,WAClF,CIwIaiG,CAAoB55B,EAAKszB,EAAUvpB,GAC5C,IAAK,MACH,OAAOwqB,GAAev0B,EAAKszB,EAAUvpB,GACvC,IAAK,MACH,OJhNC,SAAwB/J,EAAKszB,GAAUyF,KAACA,EAAO,GAAExiB,OAAEA,EAAS8e,GAAe/B,MAAcvpB,IAC9F,OAAOspB,GAAarzB,EAAK65B,KAAWd,KAAKA,GAAOzF,EAAU,IAAIvpB,EAASwM,UACzE,CI8MaujB,CAAe95B,EAAKszB,EAAUvpB,GACvC,IAAK,SACH,OJ9MC,SAA2B/J,EAAKszB,GAAUzP,SAACA,EAAW,KAAM9Z,IACjE,OAAOspB,GAAarzB,EAAK+5B,KAAclW,SAASA,GAAWyP,EAAUvpB,EACvE,CI4MaiwB,CAAkBh6B,EAAKszB,EAAUvpB,GAC1C,IAAK,MACH,OF1VC,SAAwB/J,EAAKszB,EAAUvpB,GAC5C,OAAOgtB,GAAa/2B,EAAKi6B,KAAY3G,EAAUvpB,EACjD,CEwVamwB,CAAel6B,EAAKszB,EAAUvpB,GACvC,IAAK,OACH,OFhWC,SAAyB/J,EAAKszB,EAAUvpB,GAC7C,OAAOgtB,GAAa/2B,EAAKm6B,KAAa7G,EAAUvpB,EAClD,CE8VaqwB,CAAgBp6B,EAAKszB,EAAUvpB,GACxC,IAAK,QACH,OD7SC,SAA0B/J,EAAKszB,GAAU+G,MAACA,EAAQ,GAAGC,QAAEA,EAAU,MAAQvwB,IAC9E,OAAO+tB,GAAWyC,KAAaF,MAAMA,GAAOC,QAAQA,GAAUhH,EAAUvpB,EAAS/J,EACnF,CC2Saw6B,CAAiBx6B,EAAKszB,EAAUvpB,GACzC,IAAK,OACH,OD3SC,SACL/J,EACAszB,GACA+G,MACEA,EAAQ,GAAGC,QACXA,EAAU,GAAGG,aACbA,EAAeH,EAAOI,aACtBA,GAAuB,OAAR16B,GAAwB,OAARA,EAAe,EAAIs6B,MAC/CvwB,IAGL,OAAO+tB,GACL6C,KAAYN,MAAMA,GAAOI,aAAaA,GAAcC,aAAaA,GACjEpH,EACAvpB,EACA/J,EAEJ,CC0Ra46B,CAAgB56B,EAAKszB,EAAUvpB,GACxC,IAAK,WACH,OAAOwc,GAASjoB,IAAI0B,KAASomB,GJjH1B,CAACld,KAAM,WAAYkjB,MAAOyO,MIiHmC,CAAC3xB,KAAM,YACzE,UAAKjI,EACH,OACF,QACE,MAAM,IAAIsiB,MAAM,uBAAuBra,KAE7C,CApIS4xB,CAAY96B,OAAciB,IAAT8zB,OAAqB9zB,EAAY,CAAC,CAAC8zB,SAAQ,IAAI3I,GACzE,CAqIA,SAASqM,GAAgBvvB,GACvB,MAAuB,iBAATA,EAAoBA,EAAK6xB,YAAc7xB,CACvD,CAGA,MAAMivB,GAAiB,CAACj2B,SAAU,IAAM,cA2DxC,SAASm2B,GAAcpb,GACrB,OAAQA,GACN,KAAKmJ,GACH,MAAO,QACT,KAAK1B,GACH,OAAOsS,GACT,QACE,MAAO,UAEb,CAMO,SAASwB,IAAetvB,KAACA,IAC9B,MAAgB,YAATA,GAA+B,UAATA,GAA6B,SAATA,GAAmBA,IAAS8tB,EAC/E,CA+BA,SAAS0B,GAAWpF,GAAU/c,OAACA,KAAWxM,GAAUixB,GAClD,IAAK,MAAMC,KAAK3H,OACEryB,IAAZg6B,EAAEt5B,QACJs5B,EAAEt5B,MAAQq5B,EAAaC,EAAEt5B,QAG7B,MAAO,CACL4U,YAAmBtV,IAAXsV,EAAuBA,EAASykB,EAAazkB,MAClDxM,EAEP,CAEA,SAAS4uB,GAAc9Z,GACrB,OAAOkF,GAAIlF,EAAQqJ,GACrB,CC/eA,MAAMgT,GCJC,SAAkBC,GACvB,IAAIC,EAAYC,EAChB,MAAO,IAAIjzB,MACLizB,GAAW/3B,SAAW8E,EAAK9E,QAAU+3B,EAAUjD,MAAK,CAACzM,EAAGxe,IAAMwe,IAAMvjB,EAAK+E,QAC3EkuB,EAAYjzB,EACZgzB,EAAaD,KAAW/yB,IAEnBgzB,EAEX,CDLqBE,EAAUC,GACtB,IAAIC,KAAKC,aAAaF,KA0BxB,SAASG,GAAczb,GAC5B,OAAO0b,GAAU1b,EAAM,eACzB,CEuXO,SAAS2b,GAAcj6B,EAAOk6B,GACnC,IAAKl6B,EAAQ2M,GAAO3M,MAAYk6B,EAAc,OAAOl6B,CACvD,EFvXO,SAAoB45B,EAAS,SAClC,MAAMvvB,EApBD,SAAsBuvB,EAAS,SACpC,MAAMvb,EAASkb,GAAaK,GAC5B,OAAQpuB,GAAY,MAALA,GAAcqS,MAAMrS,QAAwBlM,EAAnB+e,EAAOA,OAAO7S,EACxD,CAiBiB2uB,CAAaP,EAE9B,CAK6BQ,GEsX7B,MAAMC,GACJ,+JAEK,SAASC,GAAe17B,GAG7B,QAAaU,IAATV,EAAoB,MAAO,cAE/B,GADAA,EAAO,GAAGA,KACLy7B,GAAex9B,KAAK+B,GAAO,MAAM,IAAIgjB,MAAM,uBAAuBhjB,KACvE,OAAOA,CACT,CAEO,SAAS27B,GAAkBC,EAAWC,GAC3C,GAAqB,iBAAVA,EACTD,EAAUE,SAAS,QAASD,QACvB,GAAa,MAATA,EACT,IAAK,MAAME,KAAWH,EACpB/9B,OAAOmR,OAAO+sB,EAAQF,MAAOA,EAGnC,CChbO,SAASG,GAAiBnQ,GAC/B,OAAOoM,GAAepM,SAA6BnrB,IAAnBmrB,EAAM9I,cAAyBriB,EAAY,cAC7E,CCAA,SAASu7B,GAAWpQ,EAAOpsB,GACzB,GAAW,MAAPA,EAAa,OAAOA,EACxB,MAAMirB,EAAImB,EAAMpsB,GAChB,IAAKirB,EAAG,MAAM,IAAI1H,MAAM,oBAAoBvjB,KAC5C,OAAOirB,CACT,CA2DA,SAASwR,GAAYrQ,EAAOriB,EAAU,CAAA,EAAI2yB,GACxC,IAAIC,QACFA,EAAOC,WACPA,EAAUC,YACVA,EAAcN,GAAiBnQ,GAAM0Q,WAErCA,EAAa,GAAEC,YACfA,EAAcD,EAAUE,aACxBA,EAAeF,EAAUvS,WACzBA,EAAa,EAACmC,UACdA,EAAS0P,MACTA,EAAKnb,MACLA,GACElX,EACJ,MAAMkd,EAAUwF,GAAc1iB,GAC9B2iB,EAAYuP,GAAevP,GAC3BkQ,ED1EK,SAA6BA,EAAYrmB,GAC9C,YAAsBtV,IAAf27B,EACHjX,GAAWpP,GACTmlB,GACAptB,GACoB,mBAAfsuB,EACPA,GACuB,iBAAfA,EAA2BjX,GAAWpP,GAAU0mB,GAAYjd,GAAU6D,IAAU+Y,EAC9F,CCkEeM,CAAoBN,EAAYxQ,EAAM7V,QAEnD,MAAM4mB,EAAWxQ,GAAO,MAAO1F,GAASmW,KACtC,QACA,GAAG1Q,cAAsBA,cAAiC,MAAXiQ,EAAkB,UAAY,UAG/E,IAAIU,EAsDJ,OApDe,MAAXV,GACFU,EAAa,IAAI3Q,uBAA+BA,6GAMjDA,uBAA+BA,8CAG/BA,uBAA+BA,+FAM9ByQ,EACGf,MAAM,UAAWO,GACjBW,YACApvB,KAAKke,EAAM7V,QACXE,QACA8mB,OAAO,OACPH,KAAK,QAAS,GAAG1Q,YACjB3tB,KAAK29B,EAAQtQ,EAAO2Q,EAAaC,GACjCj+B,MAAMmW,GACLA,EAAKqoB,OAAO,OAAOH,KAAK,QAAS,GAAG1Q,kBAA0B0Q,KAAK,QAASR,GAAYY,KAAKZ,OAGjGS,EAAa,IAAI3Q,6GAMlBA,oBAA4BA,uFAM3ByQ,EACGG,YACApvB,KAAKke,EAAM7V,QACXE,QACA8mB,OAAO,QACPH,KAAK,QAAS,GAAG1Q,YACjB3tB,KAAK29B,EAAQtQ,EAAO2Q,EAAaC,GACjCO,QAAO,WACN,OAAO97B,KAAKg8B,cAAc9mB,eAAeimB,EAAWz9B,MAAMsC,KAAMrC,WACxE,KAGS+9B,EACJp+B,MAAM2+B,GACLA,EAAIC,OAAO,QAAS,KAAKH,KACvB,IAAI9Q,yGAKTA,sEAID2Q,OAGGjB,MAAM,cAAe7R,GAAiBA,EAAJ,KAAqB,MACvD6R,MAAM,aAAmBn7B,IAAVggB,EAAsB,MAAWA,EAAJ,MAC5Cmb,MAAM,eAAgBR,GAAciB,EAAa,WACjD99B,KAAKm9B,GAAmBE,GACxB7mB,MACL,CCjKA,MAAMqoB,GAAiB,IAAItc,IAAI,CAC7B,CAAC,SDsBI,SACLjd,GACA8yB,KACEA,QAA6Bl2B,IAAtBoD,EAAO0wB,MAAMoC,KAAqB9yB,EAAO0wB,KAAKoC,KAAO,QAAM0G,YAClEA,EAAc,EAACxG,OACfA,QAAiCp2B,IAAxBoD,EAAO0wB,MAAMsC,OAAuBhzB,EAAO0wB,KAAKsC,OAASvR,GAAUqR,GAAQ,eAAiB,QAAM2G,cAC3GA,EAAgB,EAACC,YACjBA,EAAc,IAAG5e,EACjBA,EAAI,OACDpV,GACD,CAAE,EACNqiB,GAEA,MAAO4R,EAAIC,GAAM5Z,GAAkB8S,IAC5B+G,EAAIC,GAAM9Z,GAAkBgT,GAC7B+G,EAAK5B,GAAWpQ,EAAO4R,GACvBK,EAAK7B,GAAWpQ,EAAO8R,GACvBhX,EAAO/H,EAAIA,EAAI/d,KAAKgmB,GAI1B,OAHAyW,EAAcjZ,GAAmBiZ,GAAa,GAC9CC,EAAgBlZ,GAAmBkZ,GAAe,GAClDC,EAAcnZ,GAAmBmZ,GAAa,GACvCtB,GAAYp4B,EAAQ0F,GAAS,CAACoyB,EAAW/P,EAAOnL,EAAOqJ,IAC5D6R,EACGoB,OAAO,OACPH,KAAK,UAAW,eAChBA,KAAK,QAASnc,GACdmc,KAAK,SAAU9S,GACf8S,KAAK,OAAe,UAAPY,EAAkB7Y,GAAMiZ,EAAGhS,MAAMjH,GAAK8Y,GACnDb,KAAK,eAAgBS,GACrBT,KAAK,SAAiB,UAAPc,EAAkB/Y,GAAMkZ,EAAGjS,MAAMjH,GAAKgZ,GACrDf,KAAK,iBAAkBU,GACvBV,KAAK,eAAgBW,GACrBR,OAAO,QACPH,KAAK,KAAMjY,IACV,MAAMmZ,EAAIC,KAEV,OADAl6B,EAAO+nB,MAAMjH,GAAG6B,KAAKsX,EAAGpX,GACjBoX,CAAC,KAGhB,GC5DE,CAAC,QAASE,IACV,CAAC,UAgDH,UAAuBt1B,KAACA,EAAI+oB,YAAEA,KAAgB7F,IAAQqS,OAACA,GAAS,EAAI/Z,MAAEA,EAAQga,GAAI,EAAG,EAAG,MAAO30B,IAC7F,IAAKkoB,EAAa,MAAM,IAAI1O,MAAM,GAAGra,uCACtB,IAAXu1B,IAAiBA,EAAS,QAC9B,GAAkC,SAA9B,GAAGA,IAASlwB,cAA0B,MAAM,IAAIgV,MAAM,GAAGkb,uCAC7D,OAAOD,GAAY,CAACt1B,UAASkjB,EAAO6F,YAAa0M,GAAmBja,IAAS,CAAC+Z,YAAW10B,GAC3F,KAtBA,SAAS60B,IAAclS,UAACA,KAAczF,IAAU4X,MAACA,EAAKpF,MAAEA,EAAKmD,WAAEA,GAAc,CAAE,EAAE7yB,GAC/E,OjBsaK,SAAiBA,EAAU,MAAO+0B,GACvC,IAAIC,EAAIh1B,EACR,IAAK,MAAMi1B,KAAYF,EACrB,IAAK,MAAM9+B,KAAOg/B,EAChB,QAAe/9B,IAAX89B,EAAE/+B,GAAoB,CACxB,MAAM2B,EAAQq9B,EAASh/B,GACnB++B,IAAMh1B,EAASg1B,EAAI,IAAIA,EAAG/+B,CAACA,GAAM2B,GAChCo9B,EAAE/+B,GAAO2B,CACf,CAGL,OAAOo9B,CACT,CiBlbSE,CAAQl1B,EAAS,CAAC2iB,eAAczF,GAAU,CAAC4X,QAAOpF,QAAOmD,cAClE,CAEA,SAAS4B,GAAY9Z,GAAO+Z,OAACA,GAAS,KAAS10B,IAE7C,IADe,IAAX00B,IAAiBA,EAAwB,YAAf/Z,EAAMxb,KAAqB,WAAa,aACjDjI,IAAjByjB,EAAMnO,OACV,OAAQ,GAAGkoB,IAASlwB,eAClB,IAAK,WACH,ODpCC,SAAwBmW,GAAO4B,QAACA,KAAYvc,GAAW,CAAA,GAC5D,IAAKyuB,GAAe9T,KLybf,UAA0Bxb,KAACA,IAChC,MAAgB,cAATA,CACT,CK3biCg2B,CAAiBxa,GAC9C,MAAM,IAAInB,MAAM,kEAAkEmB,EAAMxb,SAC1F,OAAOuzB,GAAY/X,EAAO3a,GAAS,CAACoyB,EAAW/P,EAAOnL,EAAOqJ,IAC3D6R,EACGoB,OAAO,OACPH,KAAK,QAASnc,GACdmc,KAAK,SAAU9S,GACf8S,KAAK,OAAQhR,EAAMA,OACnBgR,KAAK,eAAgBxY,GAAmB0B,GAAS,IACjDiX,OAAO,QACPH,KAAK,QAAS,QACdA,KAAK,SAAU,SAEtB,CCsBa+B,CAAeza,EAAO3a,GAC/B,IAAK,OACH,OC7CC,SAAoB2a,EAAO3a,GAChC,IAAI80B,MACFA,EAAQna,EAAMma,MAAKO,SACnBA,EAAW,EAACne,MACZA,EAAQ,IAAGqJ,OACXA,EAAS,GAAK8U,EAAQ3U,UACtBA,EAAY,GAAED,YACdA,EAAc,EAACE,aACfA,EAAe,GAAK0U,EAAQ7U,WAC5BA,EAAa,EAAC6R,MACdA,EAAK3C,MACLA,GAASxY,EAAQsJ,EAAaC,GAAe,GAAEoS,WAC/CA,EAAUC,YACVA,EAAcN,GAAiB7X,GAAMkP,MACrCA,GAAQ,EAAItN,QACZA,EAAOoG,UACPA,GACE3iB,EACJ,MAAMkd,EAAUwF,GAAc1iB,GAC9B2iB,EAAYuP,GAAevP,GAC3BpG,EAAU1B,GAAmB0B,GAAS,GACnB,OAAfsW,IAAqBA,EAAa,IAAM,MAE5C,MAAMyC,EAAM1S,GAAO,MAAO1F,GACvBmW,KAAK,QAAS,GAAG1Q,UACjB0Q,KAAK,cAAe,yBACpBA,KAAK,YAAa,IAClBA,KAAK,QAASnc,GACdmc,KAAK,SAAU9S,GACf8S,KAAK,UAAW,OAAOnc,KAASqJ,KAChCvrB,MAAMsgC,GAELA,EAAI9B,OAAO,SAASC,KAClB,IAAI9Q,2IAQTA,2CAKE3tB,KAAKm9B,GAAmBE,GAE3B,IAEIvwB,EAFAyzB,EAAcC,GAAMA,EAAEjC,UAAU,cAAcF,KAAK,KAAM3S,EAAYC,EAAeJ,GAMxF,MAAMkV,EAAa5L,EAAQ,CAAC/nB,EAAGwZ,IAAUxZ,EAAE4zB,WAAWpa,GAAS,CAACxZ,EAAGwZ,IAAUxZ,EAAEwZ,MAAMA,IAE/Enc,KAACA,EAAIqN,OAAEA,EAAM8O,MAAEA,EAAK4M,YAAEA,EAAW7F,MAAEA,EAAKqJ,MAAEA,GAAS/Q,EAGzD,GAAIuN,EAAa,CAIf,MAAM+D,OACM/0B,IAAVokB,EACI4M,EACA0D,GAAiC,IAAvB1D,EAAY3uB,OAAe2wB,GAAqBhC,GAAeA,EAAa5M,GAO5FxZ,EAAI2zB,EACFpT,EAAMsT,OACNxN,GACEa,GAAkBxI,EAAYtJ,EAAQuJ,GACtCppB,KAAK8K,IAAIqK,EAAOjT,aAAoBrC,IAAVw0B,QAAgCx0B,IAAVokB,EAAsBsa,IAAWta,EAAM/hB,UAK3F,MAAMwI,EAAI,IACJ8zB,EAAS3Y,EAAQpmB,SAAS8B,cAAc,UAC9Ci9B,EAAO3e,MAAQnV,EACf8zB,EAAOtV,OAAS,EAChB,MAAMuV,EAAWD,EAAOE,WAAW,MACnC,IAAK,IAAI3yB,EAAI,EAAG+C,EAAIpE,EAAI,EAAGqB,EAAIrB,IAAKqB,EAClC0yB,EAASE,UAAY/J,EAAa7oB,EAAI+C,GACtC2vB,EAASG,SAAS7yB,EAAG,EAAG,EAAG,GAG7BkyB,EACG9B,OAAO,SACPH,KAAK,UAAW9W,GAChB8W,KAAK,IAAK7S,GACV6S,KAAK,IAAK3S,GACV2S,KAAK,QAASnc,EAAQsJ,EAAaC,GACnC4S,KAAK,SAAU9S,EAASG,EAAYC,GACpC0S,KAAK,sBAAuB,QAC5BA,KAAK,aAAcwC,EAAOK,YAC9B,MAGI,GAAa,cAAT/2B,EAAsB,CAC7B,MAAMswB,EAAajjB,EAEb2pB,OACWj/B,IAAf27B,EAA4BzX,GAAMA,EAA0B,iBAAfyX,EAA0B5c,GAAO4c,GAAcA,EAI9F/wB,EAAI2zB,EAAWtG,KAAc3iB,OAAO,EAAE,EAAG8O,EAAM/hB,OAAS,IAAK,CAACinB,EAAYtJ,EAAQuJ,IAElF6U,EACG9B,OAAO,KACPH,KAAK,eAAgB9W,GACrBgX,YACApvB,KAAKmX,GACL5O,QACA8mB,OAAO,QACPH,KAAK,KAAK,CAACjY,EAAGhY,IAAMtB,EAAEsB,EAAI,KAC1BiwB,KAAK,IAAK3S,GACV2S,KAAK,SAAS,CAACjY,EAAGhY,IAAMtB,EAAEsB,GAAKtB,EAAEsB,EAAI,KACrCiwB,KAAK,SAAU9S,EAASG,EAAYC,GACpC0S,KAAK,QAASjY,GAAMA,IAEvBsU,EAAQ1V,GAAIyV,GAAY,CAACxF,EAAG7mB,IAAMA,IAClCyvB,EAAczvB,GAAM+yB,EAAgB1G,EAAWrsB,GAAIA,EACpD,MAICtB,EAAI2zB,EAAW7E,KAAYpkB,OAAOA,GAAS,CAACgU,EAAYtJ,EAAQuJ,IAEhE6U,EACG9B,OAAO,KACPH,KAAK,eAAgB9W,GACrBgX,YACApvB,KAAKqI,GACLE,QACA8mB,OAAO,QACPH,KAAK,IAAKvxB,GACVuxB,KAAK,IAAK3S,GACV2S,KAAK,QAASh8B,KAAK6K,IAAI,EAAGJ,EAAEs0B,YAAc,IAC1C/C,KAAK,SAAU9S,EAASG,EAAYC,GACpC0S,KAAK,OAAQhR,GAEhBkT,EAAa,OA6Bf,OA1BAD,EACG9B,OAAO,KACPH,KAAK,YAAa,eAAe9S,EAASI,MAC1C3rB,KACCqhC,GAAWv0B,GACR4tB,MAAMzoB,MAAMqvB,QAAQ5G,GAAS,KAAOA,EAA6B,iBAAfmD,EAA0BA,OAAa37B,GACzF27B,WAAiC,mBAAfA,EAA4BA,OAAa37B,GAC3Dm+B,SAASA,GACTkB,WAAWtvB,MAAMqvB,QAAQ5G,GAASA,EAAQ,OAE9C2D,KAAK,YAAa,MAClBA,KAAK,cAAe,MACpBA,KAAK,eAAgBxB,GAAciB,EAAa,WAChD99B,KAAKugC,GACLvgC,MAAMwgC,GAAMA,EAAE3S,OAAO,WAAW2T,gBAErBt/B,IAAV49B,GACFQ,EACG9B,OAAO,QACPH,KAAK,IAAK7S,GACV6S,KAAK,IAAK3S,EAAY,GACtB2S,KAAK,OAAQ,gBACbA,KAAK,cAAe,QACpBI,KAAKqB,GAGHQ,EAAI9pB,MACb,CDrIairB,CAAW9b,EAAO3a,GAC3B,QACE,MAAM,IAAIwZ,MAAM,wBAAwBkb,KAE9C,CASA,SAASE,GAAmBja,GAC1B,MAAMvF,EAACA,EAACogB,EAAEA,EAAC9vB,EAAEA,GAAKivB,GAAIha,IAAUga,GAAI,EAAG,EAAG,GAC1C,OAAQvM,GAAM,QAAQhT,KAAKogB,KAAK9vB,KAAK0iB,IACvC,CEvDA,IAAMsO,GAAmB,oBAEnBC,GAAgC,CAEpCC,SAAS,EAETC,aAAc,KAEd/B,MAAO,KAEP5d,MAAO,KAGY4f,GAAM,WAWzB,SAAAA,EAAYC,gGAAoBC,MAAAF,GAVhCp/B,KAAIlB,KAAG,SAWLkB,KAAKq/B,SAAWA,EAChBr/B,KAAKu/B,KAAO,KACZv/B,KAAKw/B,OAAQ,EACbx/B,KAAKsI,QAAU22B,EACjB,WA6CC,SA7CAG,IAAA,CAAA,CAAA7gC,IAAA,QAAA2B,MAED,SAAMu/B,GACJz/B,KAAKsI,QAAO3L,OAAAmR,OAAAnR,OAAAmR,OAAA,GAAQmxB,IAAmBQ,EACzC,GAAC,CAAAlhC,IAAA,QAAA2B,MAED,WACE,IAAMw/B,EAAe1/B,KAAKq/B,SAAS/2B,QAAQA,QAAQqiB,MACnDgV,EAAkC3/B,KAAKsI,QAA/B42B,EAAOS,EAAPT,QAASC,EAAYQ,EAAZR,aAEjB,IAAKD,GAAYC,GAAgBhU,EAAOgU,GAAcvvB,QACpD,OAAO5P,KAAK4/B,UAGd5/B,KAAKw/B,OAAQ,EAEbx/B,KAAKu/B,KAAOpU,EACVgU,GAAgBn/B,KAAKq/B,SAAS/2B,QAAQA,QAAQ62B,cAG5Cn/B,KAAKu/B,KAAKpU,OAAO6T,IAAkBpvB,QACrC5P,KAAKu/B,KAAOv/B,KAAKu/B,KAAKzD,OAAO,OAAOH,KAAK,KAAMqD,GAAiBj3B,MAAM,IAEtE/H,KAAKu/B,KAAOv/B,KAAKu/B,KAAKpU,OAAO6T,IAI/B,IAAMlrB,EFxDH,SAAgBxL,EAAU,IAC/B,IAAK,MAAO/J,EAAK2B,KAAUi8B,GAAgB,CACzC,MAAMxR,EAAQriB,EAAQ/J,GACtB,GAAI+kB,GAAeqH,GAAQ,CAEzB,MAAMnF,EAAUwF,GAAc1iB,GAC9B,IAAIgrB,EAEJ,GAAY,WAAR/0B,EAAkB,CACpB,MAAMm3B,KAACA,EAAIE,OAAEA,QAAkBp2B,IAATk2B,GAAsBpS,GAAehb,EAAQ2a,OAAS,aAAUzjB,IAAa8I,EACnGgrB,EAAO,CAACoC,OAAME,SACf,CACD,OAAO11B,EAAMu2B,GAAel4B,EAAKosB,EAAO2I,GAAO6J,GAAc3X,EAASmF,EAAOriB,IAAW/J,GACtF+kB,GAAehb,EAAQ/J,IAAQk4B,GAAel4B,EAAK+J,EAAQ/J,IAAQ,MAEtE,CACF,CACD,MAAM,IAAIujB,MAAM,sCAClB,CEsCiBkb,CACRrgC,OAAAmR,OAAAnR,OAAAmR,OAAA,CAAA,EAAA4xB,GACA1/B,KAAKsI,UAMV,OAHAtI,KAAKu/B,KAAK1D,UAAU,KAAKiD,SACzB9+B,KAAKu/B,KAAKzD,QAAO,WAAA,OAAMhoB,KAEhBW,QAAQQ,SACjB,GAAC,CAAA1W,IAAA,UAAA2B,MAED,WAME,OALkB,OAAdF,KAAKu/B,OACPv/B,KAAKu/B,KAAKT,SACV9+B,KAAKu/B,KAAO,MAGP9qB,QAAQQ,SACjB,uFAACmqB,CAAA,CA7DwB,UA6DxBA","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140]} \ No newline at end of file diff --git a/static/javascripts/cal-heatmap/plugins/Legend.min.js b/static/javascripts/cal-heatmap/plugins/Legend.min.js new file mode 100644 index 000000000..5400e4ff1 --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/Legend.min.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("d3-selection"),require("d3")):"function"==typeof define&&define.amd?define(["d3-selection","d3"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Legend=e(t.d3,t.d3)}(this,(function(t,e){"use strict";function n(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,(o=r.key,i=void 0,"symbol"==typeof(i=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(o,"string"))?i:String(i)),r)}var o,i}var r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},o=function(t){try{return!!t()}catch(t){return!0}},i=!o((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),a=!o((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})),u=a,c=Function.prototype,s=c.call,l=u&&c.bind.bind(s,s),f=u?l:function(t){return function(){return s.apply(t,arguments)}},p=function(t){return null==t},d=p,h=TypeError,m=function(t){if(d(t))throw h("Can't call method on "+t);return t},g=m,y=Object,v=function(t){return y(g(t))},b=v,w=f({}.hasOwnProperty),S=Object.hasOwn||function(t,e){return w(b(t),e)},O=i,j=S,M=Function.prototype,P=O&&Object.getOwnPropertyDescriptor,T=j(M,"name"),$={EXISTS:T,PROPER:T&&"something"===function(){}.name,CONFIGURABLE:T&&(!O||O&&P(M,"name").configurable)},k={exports:{}},x="object"==typeof document&&document.all,E={all:x,IS_HTMLDDA:void 0===x&&void 0!==x},R=E.all,C=E.IS_HTMLDDA?function(t){return"function"==typeof t||t===R}:function(t){return"function"==typeof t},N=function(t){return t&&t.Math==Math&&t},B=N("object"==typeof globalThis&&globalThis)||N("object"==typeof window&&window)||N("object"==typeof self&&self)||N("object"==typeof r&&r)||function(){return this}()||r||Function("return this")(),q=B,D=Object.defineProperty,A=function(t,e){try{D(q,t,{value:e,configurable:!0,writable:!0})}catch(n){q[t]=e}return e},I=A,G="__core-js_shared__",L=B[G]||I(G,{}),z=C,F=L,Y=f(Function.toString);z(F.inspectSource)||(F.inspectSource=function(t){return Y(t)});var _,U,W=F.inspectSource,H=C,V=B.WeakMap,J=H(V)&&/native code/.test(String(V)),K=C,X=E.all,Z=E.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:K(t)||t===X}:function(t){return"object"==typeof t?null!==t:K(t)},Q={},tt=Z,et=B.document,nt=tt(et)&&tt(et.createElement),rt=function(t){return nt?et.createElement(t):{}},ot=rt,it=!i&&!o((function(){return 7!=Object.defineProperty(ot("div"),"a",{get:function(){return 7}}).a})),at=i&&o((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),ut=Z,ct=String,st=TypeError,lt=function(t){if(ut(t))return t;throw st(ct(t)+" is not an object")},ft=a,pt=Function.prototype.call,dt=ft?pt.bind(pt):function(){return pt.apply(pt,arguments)},ht=B,mt=C,gt=function(t,e){return arguments.length<2?(n=ht[t],mt(n)?n:void 0):ht[t]&&ht[t][e];var n},yt=f({}.isPrototypeOf),vt="undefined"!=typeof navigator&&String(navigator.userAgent)||"",bt=B,wt=vt,St=bt.process,Ot=bt.Deno,jt=St&&St.versions||Ot&&Ot.version,Mt=jt&&jt.v8;Mt&&(U=(_=Mt.split("."))[0]>0&&_[0]<4?1:+(_[0]+_[1])),!U&&wt&&(!(_=wt.match(/Edge\/(\d+)/))||_[1]>=74)&&(_=wt.match(/Chrome\/(\d+)/))&&(U=+_[1]);var Pt=U,Tt=Pt,$t=o,kt=B.String,xt=!!Object.getOwnPropertySymbols&&!$t((function(){var t=Symbol();return!kt(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&Tt&&Tt<41})),Et=xt&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Rt=gt,Ct=C,Nt=yt,Bt=Object,qt=Et?function(t){return"symbol"==typeof t}:function(t){var e=Rt("Symbol");return Ct(e)&&Nt(e.prototype,Bt(t))},Dt=String,At=function(t){try{return Dt(t)}catch(t){return"Object"}},It=C,Gt=At,Lt=TypeError,zt=function(t){if(It(t))return t;throw Lt(Gt(t)+" is not a function")},Ft=zt,Yt=p,_t=function(t,e){var n=t[e];return Yt(n)?void 0:Ft(n)},Ut=dt,Wt=C,Ht=Z,Vt=TypeError,Jt={exports:{}},Kt=L;(Jt.exports=function(t,e){return Kt[t]||(Kt[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.30.2",mode:"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE",source:"https://github.com/zloirock/core-js"});var Xt=Jt.exports,Zt=f,Qt=0,te=Math.random(),ee=Zt(1..toString),ne=function(t){return"Symbol("+(void 0===t?"":t)+")_"+ee(++Qt+te,36)},re=Xt,oe=S,ie=ne,ae=xt,ue=Et,ce=B.Symbol,se=re("wks"),le=ue?ce.for||ce:ce&&ce.withoutSetter||ie,fe=function(t){return oe(se,t)||(se[t]=ae&&oe(ce,t)?ce[t]:le("Symbol."+t)),se[t]},pe=dt,de=Z,he=qt,me=_t,ge=function(t,e){var n,r;if("string"===e&&Wt(n=t.toString)&&!Ht(r=Ut(n,t)))return r;if(Wt(n=t.valueOf)&&!Ht(r=Ut(n,t)))return r;if("string"!==e&&Wt(n=t.toString)&&!Ht(r=Ut(n,t)))return r;throw Vt("Can't convert object to primitive value")},ye=TypeError,ve=fe("toPrimitive"),be=function(t,e){if(!de(t)||he(t))return t;var n,r=me(t,ve);if(r){if(void 0===e&&(e="default"),n=pe(r,t,e),!de(n)||he(n))return n;throw ye("Can't convert object to primitive value")}return void 0===e&&(e="number"),ge(t,e)},we=qt,Se=function(t){var e=be(t,"string");return we(e)?e:e+""},Oe=i,je=it,Me=at,Pe=lt,Te=Se,$e=TypeError,ke=Object.defineProperty,xe=Object.getOwnPropertyDescriptor,Ee="enumerable",Re="configurable",Ce="writable";Q.f=Oe?Me?function(t,e,n){if(Pe(t),e=Te(e),Pe(n),"function"==typeof t&&"prototype"===e&&"value"in n&&Ce in n&&!n[Ce]){var r=xe(t,e);r&&r[Ce]&&(t[e]=n.value,n={configurable:Re in n?n[Re]:r[Re],enumerable:Ee in n?n[Ee]:r[Ee],writable:!1})}return ke(t,e,n)}:ke:function(t,e,n){if(Pe(t),e=Te(e),Pe(n),je)try{return ke(t,e,n)}catch(t){}if("get"in n||"set"in n)throw $e("Accessors not supported");return"value"in n&&(t[e]=n.value),t};var Ne,Be,qe,De=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},Ae=Q,Ie=De,Ge=i?function(t,e,n){return Ae.f(t,e,Ie(1,n))}:function(t,e,n){return t[e]=n,t},Le=ne,ze=Xt("keys"),Fe={},Ye=J,_e=B,Ue=Z,We=Ge,He=S,Ve=L,Je=function(t){return ze[t]||(ze[t]=Le(t))},Ke=Fe,Xe="Object already initialized",Ze=_e.TypeError,Qe=_e.WeakMap;if(Ye||Ve.state){var tn=Ve.state||(Ve.state=new Qe);tn.get=tn.get,tn.has=tn.has,tn.set=tn.set,Ne=function(t,e){if(tn.has(t))throw Ze(Xe);return e.facade=t,tn.set(t,e),e},Be=function(t){return tn.get(t)||{}},qe=function(t){return tn.has(t)}}else{var en=Je("state");Ke[en]=!0,Ne=function(t,e){if(He(t,en))throw Ze(Xe);return e.facade=t,We(t,en,e),e},Be=function(t){return He(t,en)?t[en]:{}},qe=function(t){return He(t,en)}}var nn={set:Ne,get:Be,has:qe,enforce:function(t){return qe(t)?Be(t):Ne(t,{})},getterFor:function(t){return function(e){var n;if(!Ue(e)||(n=Be(e)).type!==t)throw Ze("Incompatible receiver, "+t+" required");return n}}},rn=f,on=o,an=C,un=S,cn=i,sn=$.CONFIGURABLE,ln=W,fn=nn.enforce,pn=nn.get,dn=String,hn=Object.defineProperty,mn=rn("".slice),gn=rn("".replace),yn=rn([].join),vn=cn&&!on((function(){return 8!==hn((function(){}),"length",{value:8}).length})),bn=String(String).split("String"),wn=k.exports=function(t,e,n){"Symbol("===mn(dn(e),0,7)&&(e="["+gn(dn(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!un(t,"name")||sn&&t.name!==e)&&(cn?hn(t,"name",{value:e,configurable:!0}):t.name=e),vn&&n&&un(n,"arity")&&t.length!==n.arity&&hn(t,"length",{value:n.arity});try{n&&un(n,"constructor")&&n.constructor?cn&&hn(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=fn(t);return un(r,"source")||(r.source=yn(bn,"string"==typeof e?e:"")),t};Function.prototype.toString=wn((function(){return an(this)&&pn(this).source||ln(this)}),"toString");var Sn=k.exports,On=Sn,jn=Q,Mn=function(t,e,n){return n.get&&On(n.get,e,{getter:!0}),n.set&&On(n.set,e,{setter:!0}),jn.f(t,e,n)},Pn=i,Tn=$.EXISTS,$n=f,kn=Mn,xn=Function.prototype,En=$n(xn.toString),Rn=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,Cn=$n(Rn.exec);Pn&&!Tn&&kn(xn,"name",{configurable:!0,get:function(){try{return Cn(Rn,En(this))[1]}catch(t){return""}}});var Nn={},Bn={},qn={}.propertyIsEnumerable,Dn=Object.getOwnPropertyDescriptor,An=Dn&&!qn.call({1:2},1);Bn.f=An?function(t){var e=Dn(this,t);return!!e&&e.enumerable}:qn;var In=f,Gn=In({}.toString),Ln=In("".slice),zn=function(t){return Ln(Gn(t),8,-1)},Fn=o,Yn=zn,_n=Object,Un=f("".split),Wn=Fn((function(){return!_n("z").propertyIsEnumerable(0)}))?function(t){return"String"==Yn(t)?Un(t,""):_n(t)}:_n,Hn=Wn,Vn=m,Jn=function(t){return Hn(Vn(t))},Kn=i,Xn=dt,Zn=Bn,Qn=De,tr=Jn,er=Se,nr=S,rr=it,or=Object.getOwnPropertyDescriptor;Nn.f=Kn?or:function(t,e){if(t=tr(t),e=er(e),rr)try{return or(t,e)}catch(t){}if(nr(t,e))return Qn(!Xn(Zn.f,t,e),t[e])};var ir=C,ar=Q,ur=Sn,cr=A,sr=function(t,e,n,r){r||(r={});var o=r.enumerable,i=void 0!==r.name?r.name:e;if(ir(n)&&ur(n,i,r),r.global)o?t[e]=n:cr(e,n);else{try{r.unsafe?t[e]&&(o=!0):delete t[e]}catch(t){}o?t[e]=n:ar.f(t,e,{value:n,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return t},lr={},fr=Math.ceil,pr=Math.floor,dr=Math.trunc||function(t){var e=+t;return(e>0?pr:fr)(e)},hr=function(t){var e=+t;return e!=e||0===e?0:dr(e)},mr=hr,gr=Math.max,yr=Math.min,vr=hr,br=Math.min,wr=function(t){return t>0?br(vr(t),9007199254740991):0},Sr=function(t){return wr(t.length)},Or=Jn,jr=function(t,e){var n=mr(t);return n<0?gr(n+e,0):yr(n,e)},Mr=Sr,Pr=function(t){return function(e,n,r){var o,i=Or(e),a=Mr(i),u=jr(r,a);if(t&&n!=n){for(;a>u;)if((o=i[u++])!=o)return!0}else for(;a>u;u++)if((t||u in i)&&i[u]===n)return t||u||0;return!t&&-1}},Tr={includes:Pr(!0),indexOf:Pr(!1)},$r=S,kr=Jn,xr=Tr.indexOf,Er=Fe,Rr=f([].push),Cr=function(t,e){var n,r=kr(t),o=0,i=[];for(n in r)!$r(Er,n)&&$r(r,n)&&Rr(i,n);for(;e.length>o;)$r(r,n=e[o++])&&(~xr(i,n)||Rr(i,n));return i},Nr=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Br=Cr,qr=Nr.concat("length","prototype");lr.f=Object.getOwnPropertyNames||function(t){return Br(t,qr)};var Dr={};Dr.f=Object.getOwnPropertySymbols;var Ar=gt,Ir=lr,Gr=Dr,Lr=lt,zr=f([].concat),Fr=Ar("Reflect","ownKeys")||function(t){var e=Ir.f(Lr(t)),n=Gr.f;return n?zr(e,n(t)):e},Yr=S,_r=Fr,Ur=Nn,Wr=Q,Hr=o,Vr=C,Jr=/#|\.prototype\./,Kr=function(t,e){var n=Zr[Xr(t)];return n==to||n!=Qr&&(Vr(e)?Hr(e):!!e)},Xr=Kr.normalize=function(t){return String(t).replace(Jr,".").toLowerCase()},Zr=Kr.data={},Qr=Kr.NATIVE="N",to=Kr.POLYFILL="P",eo=Kr,no=B,ro=Nn.f,oo=Ge,io=sr,ao=A,uo=function(t,e,n){for(var r=_r(e),o=Wr.f,i=Ur.f,a=0;a<r.length;a++){var u=r[a];Yr(t,u)||n&&Yr(n,u)||o(t,u,i(e,u))}},co=eo,so=function(t,e){var n,r,o,i,a,u=t.target,c=t.global,s=t.stat;if(n=c?no:s?no[u]||ao(u,{}):(no[u]||{}).prototype)for(r in e){if(i=e[r],o=t.dontCallGetSet?(a=ro(n,r))&&a.value:n[r],!co(c?r:u+(s?".":"#")+r,t.forced)&&void 0!==o){if(typeof i==typeof o)continue;uo(i,o)}(t.sham||o&&o.sham)&&oo(i,"sham",!0),io(n,r,i,t)}},lo=Cr,fo=Nr,po=Object.keys||function(t){return lo(t,fo)},ho=i,mo=f,go=dt,yo=o,vo=po,bo=Dr,wo=Bn,So=v,Oo=Wn,jo=Object.assign,Mo=Object.defineProperty,Po=mo([].concat),To=!jo||yo((function(){if(ho&&1!==jo({b:1},jo(Mo({},"a",{enumerable:!0,get:function(){Mo(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach((function(t){e[t]=t})),7!=jo({},t)[n]||vo(jo({},e)).join("")!=r}))?function(t,e){for(var n=So(t),r=arguments.length,o=1,i=bo.f,a=wo.f;r>o;)for(var u,c=Oo(arguments[o++]),s=i?Po(vo(c),i(c)):vo(c),l=s.length,f=0;l>f;)u=s[f++],ho&&!go(a,c,u)||(n[u]=c[u]);return n}:jo,$o=To;so({target:"Object",stat:!0,arity:2,forced:Object.assign!==$o},{assign:$o});var ko={};ko[fe("toStringTag")]="z";var xo="[object z]"===String(ko),Eo=xo,Ro=C,Co=zn,No=fe("toStringTag"),Bo=Object,qo="Arguments"==Co(function(){return arguments}()),Do=Eo?Co:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Bo(t),No))?n:qo?Co(e):"Object"==(r=Co(e))&&Ro(e.callee)?"Arguments":r},Ao=Do,Io=xo?{}.toString:function(){return"[object "+Ao(this)+"]"};xo||sr(Object.prototype,"toString",Io,{unsafe:!0});var Go="undefined"!=typeof process&&"process"==zn(process),Lo=f,zo=zt,Fo=C,Yo=String,_o=TypeError,Uo=function(t,e,n){try{return Lo(zo(Object.getOwnPropertyDescriptor(t,e)[n]))}catch(t){}},Wo=lt,Ho=function(t){if("object"==typeof t||Fo(t))return t;throw _o("Can't set "+Yo(t)+" as a prototype")},Vo=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=Uo(Object.prototype,"__proto__","set"))(n,[]),e=n instanceof Array}catch(t){}return function(n,r){return Wo(n),Ho(r),e?t(n,r):n.__proto__=r,n}}():void 0),Jo=Q.f,Ko=S,Xo=fe("toStringTag"),Zo=gt,Qo=Mn,ti=i,ei=fe("species"),ni=yt,ri=TypeError,oi=f,ii=o,ai=C,ui=Do,ci=W,si=function(){},li=[],fi=gt("Reflect","construct"),pi=/^\s*(?:class|function)\b/,di=oi(pi.exec),hi=!pi.exec(si),mi=function(t){if(!ai(t))return!1;try{return fi(si,li,t),!0}catch(t){return!1}},gi=function(t){if(!ai(t))return!1;switch(ui(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return hi||!!di(pi,ci(t))}catch(t){return!0}};gi.sham=!0;var yi,vi,bi,wi,Si=!fi||ii((function(){var t;return mi(mi.call)||!mi(Object)||!mi((function(){t=!0}))||t}))?gi:mi,Oi=Si,ji=At,Mi=TypeError,Pi=lt,Ti=function(t){if(Oi(t))return t;throw Mi(ji(t)+" is not a constructor")},$i=p,ki=fe("species"),xi=a,Ei=Function.prototype,Ri=Ei.apply,Ci=Ei.call,Ni="object"==typeof Reflect&&Reflect.apply||(xi?Ci.bind(Ri):function(){return Ci.apply(Ri,arguments)}),Bi=zn,qi=f,Di=function(t){if("Function"===Bi(t))return qi(t)},Ai=zt,Ii=a,Gi=Di(Di.bind),Li=function(t,e){return Ai(t),void 0===e?t:Ii?Gi(t,e):function(){return t.apply(e,arguments)}},zi=gt("document","documentElement"),Fi=f([].slice),Yi=TypeError,_i=/(?:ipad|iphone|ipod).*applewebkit/i.test(vt),Ui=B,Wi=Ni,Hi=Li,Vi=C,Ji=S,Ki=o,Xi=zi,Zi=Fi,Qi=rt,ta=function(t,e){if(t<e)throw Yi("Not enough arguments");return t},ea=_i,na=Go,ra=Ui.setImmediate,oa=Ui.clearImmediate,ia=Ui.process,aa=Ui.Dispatch,ua=Ui.Function,ca=Ui.MessageChannel,sa=Ui.String,la=0,fa={},pa="onreadystatechange";Ki((function(){yi=Ui.location}));var da=function(t){if(Ji(fa,t)){var e=fa[t];delete fa[t],e()}},ha=function(t){return function(){da(t)}},ma=function(t){da(t.data)},ga=function(t){Ui.postMessage(sa(t),yi.protocol+"//"+yi.host)};ra&&oa||(ra=function(t){ta(arguments.length,1);var e=Vi(t)?t:ua(t),n=Zi(arguments,1);return fa[++la]=function(){Wi(e,void 0,n)},vi(la),la},oa=function(t){delete fa[t]},na?vi=function(t){ia.nextTick(ha(t))}:aa&&aa.now?vi=function(t){aa.now(ha(t))}:ca&&!ea?(wi=(bi=new ca).port2,bi.port1.onmessage=ma,vi=Hi(wi.postMessage,wi)):Ui.addEventListener&&Vi(Ui.postMessage)&&!Ui.importScripts&&yi&&"file:"!==yi.protocol&&!Ki(ga)?(vi=ga,Ui.addEventListener("message",ma,!1)):vi=pa in Qi("script")?function(t){Xi.appendChild(Qi("script"))[pa]=function(){Xi.removeChild(this),da(t)}}:function(t){setTimeout(ha(t),0)});var ya={set:ra,clear:oa},va=function(){this.head=null,this.tail=null};va.prototype={add:function(t){var e={item:t,next:null},n=this.tail;n?n.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}};var ba,wa,Sa,Oa,ja,Ma=va,Pa=/ipad|iphone|ipod/i.test(vt)&&"undefined"!=typeof Pebble,Ta=/web0s(?!.*chrome)/i.test(vt),$a=B,ka=Li,xa=Nn.f,Ea=ya.set,Ra=Ma,Ca=_i,Na=Pa,Ba=Ta,qa=Go,Da=$a.MutationObserver||$a.WebKitMutationObserver,Aa=$a.document,Ia=$a.process,Ga=$a.Promise,La=xa($a,"queueMicrotask"),za=La&&La.value;if(!za){var Fa=new Ra,Ya=function(){var t,e;for(qa&&(t=Ia.domain)&&t.exit();e=Fa.get();)try{e()}catch(t){throw Fa.head&&ba(),t}t&&t.enter()};Ca||qa||Ba||!Da||!Aa?!Na&&Ga&&Ga.resolve?((Oa=Ga.resolve(void 0)).constructor=Ga,ja=ka(Oa.then,Oa),ba=function(){ja(Ya)}):qa?ba=function(){Ia.nextTick(Ya)}:(Ea=ka(Ea,$a),ba=function(){Ea(Ya)}):(wa=!0,Sa=Aa.createTextNode(""),new Da(Ya).observe(Sa,{characterData:!0}),ba=function(){Sa.data=wa=!wa}),za=function(t){Fa.head||ba(),Fa.add(t)}}var _a=za,Ua=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},Wa=B.Promise,Ha="object"==typeof Deno&&Deno&&"object"==typeof Deno.version,Va=!Ha&&!Go&&"object"==typeof window&&"object"==typeof document,Ja=B,Ka=Wa,Xa=C,Za=eo,Qa=W,tu=fe,eu=Va,nu=Ha,ru=Pt;Ka&&Ka.prototype;var ou=tu("species"),iu=!1,au=Xa(Ja.PromiseRejectionEvent),uu=Za("Promise",(function(){var t=Qa(Ka),e=t!==String(Ka);if(!e&&66===ru)return!0;if(!ru||ru<51||!/native code/.test(t)){var n=new Ka((function(t){t(1)})),r=function(t){t((function(){}),(function(){}))};if((n.constructor={})[ou]=r,!(iu=n.then((function(){}))instanceof r))return!0}return!e&&(eu||nu)&&!au})),cu={CONSTRUCTOR:uu,REJECTION_EVENT:au,SUBCLASSING:iu},su={},lu=zt,fu=TypeError,pu=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw fu("Bad Promise constructor");e=t,n=r})),this.resolve=lu(e),this.reject=lu(n)};su.f=function(t){return new pu(t)};var du,hu,mu,gu=so,yu=Go,vu=B,bu=dt,wu=sr,Su=Vo,Ou=function(t,e,n){t&&!n&&(t=t.prototype),t&&!Ko(t,Xo)&&Jo(t,Xo,{configurable:!0,value:e})},ju=function(t){var e=Zo(t);ti&&e&&!e[ei]&&Qo(e,ei,{configurable:!0,get:function(){return this}})},Mu=zt,Pu=C,Tu=Z,$u=function(t,e){if(ni(e,t))return t;throw ri("Incorrect invocation")},ku=function(t,e){var n,r=Pi(t).constructor;return void 0===r||$i(n=Pi(r)[ki])?e:Ti(n)},xu=ya.set,Eu=_a,Ru=function(t,e){try{1==arguments.length?console.error(t):console.error(t,e)}catch(t){}},Cu=Ua,Nu=Ma,Bu=nn,qu=Wa,Du=su,Au="Promise",Iu=cu.CONSTRUCTOR,Gu=cu.REJECTION_EVENT,Lu=cu.SUBCLASSING,zu=Bu.getterFor(Au),Fu=Bu.set,Yu=qu&&qu.prototype,_u=qu,Uu=Yu,Wu=vu.TypeError,Hu=vu.document,Vu=vu.process,Ju=Du.f,Ku=Ju,Xu=!!(Hu&&Hu.createEvent&&vu.dispatchEvent),Zu="unhandledrejection",Qu=function(t){var e;return!(!Tu(t)||!Pu(e=t.then))&&e},tc=function(t,e){var n,r,o,i=e.value,a=1==e.state,u=a?t.ok:t.fail,c=t.resolve,s=t.reject,l=t.domain;try{u?(a||(2===e.rejection&&ic(e),e.rejection=1),!0===u?n=i:(l&&l.enter(),n=u(i),l&&(l.exit(),o=!0)),n===t.promise?s(Wu("Promise-chain cycle")):(r=Qu(n))?bu(r,n,c,s):c(n)):s(i)}catch(t){l&&!o&&l.exit(),s(t)}},ec=function(t,e){t.notified||(t.notified=!0,Eu((function(){for(var n,r=t.reactions;n=r.get();)tc(n,t);t.notified=!1,e&&!t.rejection&&rc(t)})))},nc=function(t,e,n){var r,o;Xu?((r=Hu.createEvent("Event")).promise=e,r.reason=n,r.initEvent(t,!1,!0),vu.dispatchEvent(r)):r={promise:e,reason:n},!Gu&&(o=vu["on"+t])?o(r):t===Zu&&Ru("Unhandled promise rejection",n)},rc=function(t){bu(xu,vu,(function(){var e,n=t.facade,r=t.value;if(oc(t)&&(e=Cu((function(){yu?Vu.emit("unhandledRejection",r,n):nc(Zu,n,r)})),t.rejection=yu||oc(t)?2:1,e.error))throw e.value}))},oc=function(t){return 1!==t.rejection&&!t.parent},ic=function(t){bu(xu,vu,(function(){var e=t.facade;yu?Vu.emit("rejectionHandled",e):nc("rejectionhandled",e,t.value)}))},ac=function(t,e,n){return function(r){t(e,r,n)}},uc=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=2,ec(t,!0))},cc=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw Wu("Promise can't be resolved itself");var r=Qu(e);r?Eu((function(){var n={done:!1};try{bu(r,e,ac(cc,n,t),ac(uc,n,t))}catch(e){uc(n,e,t)}})):(t.value=e,t.state=1,ec(t,!1))}catch(e){uc({done:!1},e,t)}}};if(Iu&&(Uu=(_u=function(t){$u(this,Uu),Mu(t),bu(du,this);var e=zu(this);try{t(ac(cc,e),ac(uc,e))}catch(t){uc(e,t)}}).prototype,(du=function(t){Fu(this,{type:Au,done:!1,notified:!1,parent:!1,reactions:new Nu,rejection:!1,state:0,value:void 0})}).prototype=wu(Uu,"then",(function(t,e){var n=zu(this),r=Ju(ku(this,_u));return n.parent=!0,r.ok=!Pu(t)||t,r.fail=Pu(e)&&e,r.domain=yu?Vu.domain:void 0,0==n.state?n.reactions.add(r):Eu((function(){tc(r,n)})),r.promise})),hu=function(){var t=new du,e=zu(t);this.promise=t,this.resolve=ac(cc,e),this.reject=ac(uc,e)},Du.f=Ju=function(t){return t===_u||undefined===t?new hu(t):Ku(t)},Pu(qu)&&Yu!==Object.prototype)){mu=Yu.then,Lu||wu(Yu,"then",(function(t,e){var n=this;return new _u((function(t,e){bu(mu,n,t,e)})).then(t,e)}),{unsafe:!0});try{delete Yu.constructor}catch(t){}Su&&Su(Yu,Uu)}gu({global:!0,constructor:!0,wrap:!0,forced:Iu},{Promise:_u}),Ou(_u,Au,!1),ju(Au);var sc={},lc=sc,fc=fe("iterator"),pc=Array.prototype,dc=Do,hc=_t,mc=p,gc=sc,yc=fe("iterator"),vc=function(t){if(!mc(t))return hc(t,yc)||hc(t,"@@iterator")||gc[dc(t)]},bc=dt,wc=zt,Sc=lt,Oc=At,jc=vc,Mc=TypeError,Pc=dt,Tc=lt,$c=_t,kc=Li,xc=dt,Ec=lt,Rc=At,Cc=function(t){return void 0!==t&&(lc.Array===t||pc[fc]===t)},Nc=Sr,Bc=yt,qc=function(t,e){var n=arguments.length<2?jc(t):e;if(wc(n))return Sc(bc(n,t));throw Mc(Oc(t)+" is not iterable")},Dc=vc,Ac=function(t,e,n){var r,o;Tc(t);try{if(!(r=$c(t,"return"))){if("throw"===e)throw n;return n}r=Pc(r,t)}catch(t){o=!0,r=t}if("throw"===e)throw n;if(o)throw r;return Tc(r),n},Ic=TypeError,Gc=function(t,e){this.stopped=t,this.result=e},Lc=Gc.prototype,zc=function(t,e,n){var r,o,i,a,u,c,s,l=n&&n.that,f=!(!n||!n.AS_ENTRIES),p=!(!n||!n.IS_RECORD),d=!(!n||!n.IS_ITERATOR),h=!(!n||!n.INTERRUPTED),m=kc(e,l),g=function(t){return r&&Ac(r,"normal",t),new Gc(!0,t)},y=function(t){return f?(Ec(t),h?m(t[0],t[1],g):m(t[0],t[1])):h?m(t,g):m(t)};if(p)r=t.iterator;else if(d)r=t;else{if(!(o=Dc(t)))throw Ic(Rc(t)+" is not iterable");if(Cc(o)){for(i=0,a=Nc(t);a>i;i++)if((u=y(t[i]))&&Bc(Lc,u))return u;return new Gc(!1)}r=qc(t,o)}for(c=p?t.next:r.next;!(s=xc(c,r)).done;){try{u=y(s.value)}catch(t){Ac(r,"throw",t)}if("object"==typeof u&&u&&Bc(Lc,u))return u}return new Gc(!1)},Fc=fe("iterator"),Yc=!1;try{var _c=0,Uc={next:function(){return{done:!!_c++}},return:function(){Yc=!0}};Uc[Fc]=function(){return this},Array.from(Uc,(function(){throw 2}))}catch(t){}var Wc=Wa,Hc=function(t,e){if(!e&&!Yc)return!1;var n=!1;try{var r={};r[Fc]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(t){}return n},Vc=cu.CONSTRUCTOR||!Hc((function(t){Wc.all(t).then(void 0,(function(){}))})),Jc=dt,Kc=zt,Xc=su,Zc=Ua,Qc=zc;so({target:"Promise",stat:!0,forced:Vc},{all:function(t){var e=this,n=Xc.f(e),r=n.resolve,o=n.reject,i=Zc((function(){var n=Kc(e.resolve),i=[],a=0,u=1;Qc(t,(function(t){var c=a++,s=!1;u++,Jc(n,e,t).then((function(t){s||(s=!0,i[c]=t,--u||r(i))}),o)})),--u||r(i)}));return i.error&&o(i.value),n.promise}});var ts=so,es=cu.CONSTRUCTOR,ns=Wa,rs=gt,os=C,is=sr,as=ns&&ns.prototype;if(ts({target:"Promise",proto:!0,forced:es,real:!0},{catch:function(t){return this.then(void 0,t)}}),os(ns)){var us=rs("Promise").prototype.catch;as.catch!==us&&is(as,"catch",us,{unsafe:!0})}var cs=dt,ss=zt,ls=su,fs=Ua,ps=zc;so({target:"Promise",stat:!0,forced:Vc},{race:function(t){var e=this,n=ls.f(e),r=n.reject,o=fs((function(){var o=ss(e.resolve);ps(t,(function(t){cs(o,e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}});var ds=dt,hs=su;so({target:"Promise",stat:!0,forced:cu.CONSTRUCTOR},{reject:function(t){var e=hs.f(this);return ds(e.reject,void 0,t),e.promise}});var ms=lt,gs=Z,ys=su,vs=so,bs=cu.CONSTRUCTOR,ws=function(t,e){if(ms(t),gs(e)&&e.constructor===t)return e;var n=ys.f(t);return(0,n.resolve)(e),n.promise};function Ss(t){return null!=t&&!Number.isNaN(t)}function Os(t,n){return+Ss(n)-+Ss(t)||e.ascending(t,n)}function js(t){return isFinite(t)?t:NaN}function Ms(t){return t>0&&isFinite(t)?t:NaN}function Ps(t){return t<0&&isFinite(t)?t:NaN}function Ts(t,e){if(t instanceof Date||(t=new Date(+t)),isNaN(t))return"function"==typeof e?e(t):e;const n=t.getUTCHours(),r=t.getUTCMinutes(),o=t.getUTCSeconds(),i=t.getUTCMilliseconds();return`${a=t.getUTCFullYear(),a<0?`-${$s(-a,6)}`:a>9999?`+${$s(a,6)}`:$s(a,4)}-${$s(t.getUTCMonth()+1,2)}-${$s(t.getUTCDate(),2)}${n||r||o||i?`T${$s(n,2)}:${$s(r,2)}${o||i?`:${$s(o,2)}${i?`.${$s(i,3)}`:""}`:""}Z`:""}`;var a}function $s(t,e){return`${t}`.padStart(e,"0")}gt("Promise"),vs({target:"Promise",stat:!0,forced:bs},{resolve:function(t){return ws(this,t)}});const ks=/^(?:[-+]\d{2})?\d{4}(?:-\d{2}(?:-\d{2})?)?(?:T\d{2}:\d{2}(?::\d{2}(?:\.\d{3})?)?(?:Z|[-+]\d{2}:?\d{2})?)?$/;function xs(t,e){return ks.test(t+="")?new Date(t):"function"==typeof e?e(t):e}const Es=new Map([["second",e.timeSecond],["minute",e.timeMinute],["hour",e.timeHour],["day",e.timeDay],["week",e.timeWeek],["month",e.timeMonth],["quarter",e.timeMonth.every(3)],["half",e.timeMonth.every(6)],["year",e.timeYear],["monday",e.timeMonday],["tuesday",e.timeTuesday],["wednesday",e.timeWednesday],["thursday",e.timeThursday],["friday",e.timeFriday],["saturday",e.timeSaturday],["sunday",e.timeSunday]]),Rs=new Map([["second",e.utcSecond],["minute",e.utcMinute],["hour",e.utcHour],["day",e.utcDay],["week",e.utcWeek],["month",e.utcMonth],["quarter",e.utcMonth.every(3)],["half",e.utcMonth.every(6)],["year",e.utcYear],["monday",e.utcMonday],["tuesday",e.utcTuesday],["wednesday",e.utcWednesday],["thursday",e.utcThursday],["friday",e.utcFriday],["saturday",e.utcSaturday],["sunday",e.utcSunday]]);function Cs(t){const e=Es.get(`${t}`.toLowerCase());if(!e)throw new Error(`unknown interval: ${t}`);return e}function Ns(t){const e=Rs.get(`${t}`.toLowerCase());if(!e)throw new Error(`unknown interval: ${t}`);return e}const Bs=Object.getPrototypeOf(Uint8Array),qs=Object.prototype.toString,Ds=t=>null==t?t:`${t}`,As=t=>()=>t;function Is(t){return t instanceof Bs?t:Us(t,Gs,Float64Array)}function Gs(t){return null==t?NaN:Number(t)}function Ls(t){return Us(t,zs)}function zs(t){return t instanceof Date&&!isNaN(t)?t:"string"==typeof t?xs(t):null==t||isNaN(t=+t)?void 0:new Date(t)}function Fs(t,n){return void 0===t&&(t=n),null===t?[void 0,"none"]:function(t){return"string"==typeof t&&(t=t.toLowerCase().trim(),"none"===t||"currentcolor"===t||t.startsWith("url(")&&t.endsWith(")")||t.startsWith("var(")&&t.endsWith(")")||null!==e.color(t))}(t)?[void 0,t]:[t,void 0]}function Ys(t,e){return void 0===t&&(t=e),null===t||"number"==typeof t?[void 0,t]:[t,void 0]}function _s(t){return null==t||t instanceof Array||t instanceof Bs?t:Array.from(t)}function Us(t,e,n=Array){return null==t?t:t instanceof n?t.map(e):n.from(t,e)}function Ws(t){return t?.toString===qs}function Hs(t){return Ws(t)&&(void 0!==t.type||void 0!==t.domain)}function Vs(t,n){if(null!=t){if("number"==typeof t){0<t&&t<1&&Number.isInteger(1/t)&&(t=-1/t);const n=Math.abs(t);return t<0?{floor:t=>Math.floor(t*n)/n,offset:t=>(t*n+1)/n,range:(t,r)=>e.range(Math.ceil(t*n),r*n).map((t=>t/n))}:{floor:t=>Math.floor(t/n)*n,offset:t=>t+n,range:(t,r)=>e.range(Math.ceil(t/n),r/n).map((t=>t*n))}}if("string"==typeof t)return("time"===n?Cs:Ns)(t);if("function"!=typeof t.floor)throw new Error("invalid interval; missing floor method");if("function"!=typeof t.offset)throw new Error("invalid interval; missing offset method");return t}}function Js(t,e){if((t=Vs(t,e))&&"function"!=typeof t.range)throw new Error("invalid interval: missing range method");return t}function Ks(t){for(const e of t){if(null==e)continue;const t=typeof e;return"string"===t||"boolean"===t}}function Xs(t){for(const e of t)if(null!=e)return e instanceof Date}function Zs(t){for(const e of t)if(null!=e)return"string"==typeof e&&isNaN(e)&&xs(e)}function Qs(t){for(const e of t)if(null!=e){if("string"!=typeof e)return!1;if(e.trim())return!isNaN(e)}}function tl(t){return null==t||function(t){return/^\s*none\s*$/i.test(t)}(t)}function el(t){if(null==t)return;const n=t[0],r=t[t.length-1];return e.descending(n,r)}const nl=Symbol("position"),rl=Symbol("color"),ol=Symbol("radius"),il=Symbol("length"),al=Symbol("opacity"),ul=Symbol("symbol"),cl=new Map([["x",nl],["y",nl],["fx",nl],["fy",nl],["r",ol],["color",rl],["opacity",al],["symbol",ul],["length",il]]),sl=2/Math.sqrt(3),ll={draw(t,e){const n=Math.sqrt(e/Math.PI),r=n*sl,o=r/2;t.moveTo(0,r),t.lineTo(n,o),t.lineTo(n,-o),t.lineTo(0,-r),t.lineTo(-n,-o),t.lineTo(-n,o),t.closePath()}},fl=new Map([["asterisk",e.symbolAsterisk],["circle",e.symbolCircle],["cross",e.symbolCross],["diamond",e.symbolDiamond],["diamond2",e.symbolDiamond2],["hexagon",ll],["plus",e.symbolPlus],["square",e.symbolSquare],["square2",e.symbolSquare2],["star",e.symbolStar],["times",e.symbolTimes],["triangle",e.symbolTriangle],["triangle2",e.symbolTriangle2],["wye",e.symbolWye]]);function pl(t){if(null==t||function(t){return t&&"function"==typeof t.draw}(t))return t;const e=fl.get(`${t}`.toLowerCase());if(e)return e;throw new Error(`invalid symbol: ${t}`)}function dl(t){console.warn(t)}const hl=Math.PI,ml=2*hl;function gl({projection:t,inset:n=0,insetTop:r=n,insetRight:o=n,insetBottom:i=n,insetLeft:a=n}={},u){if(null==t)return;if("function"==typeof t.stream)return t;let c,s,l="frame";if(Ws(t)){let e;if(({type:t,domain:s,inset:e,insetTop:r=(void 0!==e?e:r),insetRight:o=(void 0!==e?e:o),insetBottom:i=(void 0!==e?e:i),insetLeft:a=(void 0!==e?e:a),clip:l=l,...c}=t),null==t)return}"function"!=typeof t&&({type:t}=function(t){switch(`${t}`.toLowerCase()){case"albers-usa":return yl(e.geoAlbersUsa,.7463,.4673);case"albers":return vl(e.geoAlbers,.7463,.4673);case"azimuthal-equal-area":return yl(e.geoAzimuthalEqualArea,4,4);case"azimuthal-equidistant":return yl(e.geoAzimuthalEquidistant,ml,ml);case"conic-conformal":return vl(e.geoConicConformal,ml,ml);case"conic-equal-area":return vl(e.geoConicEqualArea,6.1702,2.9781);case"conic-equidistant":return vl(e.geoConicEquidistant,7.312,3.6282);case"equal-earth":return yl(e.geoEqualEarth,5.4133,2.6347);case"equirectangular":return yl(e.geoEquirectangular,ml,hl);case"gnomonic":return yl(e.geoGnomonic,3.4641,3.4641);case"identity":return{type:bl};case"reflect-y":return{type:wl};case"mercator":return yl(e.geoMercator,ml,ml);case"orthographic":return yl(e.geoOrthographic,2,2);case"stereographic":return yl(e.geoStereographic,2,2);case"transverse-mercator":return yl(e.geoTransverseMercator,ml,ml);default:throw new Error(`unknown projection type: ${t}`)}}(t));const{width:f,height:p,marginLeft:d,marginRight:h,marginTop:m,marginBottom:g}=u,y=f-d-h-a-o,v=p-m-g-r-i;if(t=t?.({width:y,height:v,clip:l,...c}),null==t)return;l=function(t,n,r,o,i){if(!1===t||null==t||"number"==typeof t)return t=>t;!0===t&&(t="frame");if("frame"===`${t}`.toLowerCase())return e.geoClipRectangle(n,r,o,i);throw new Error(`unknown projection clip type: ${t}`)}(l,d,m,f-h,p-g);let b,w=d+a,S=m+r;if(null!=s){const[[n,r],[o,i]]=e.geoPath(t).bounds(s),a=Math.min(y/(o-n),v/(i-r));a>0?(w-=(a*(n+o)-y)/2,S-=(a*(r+i)-v)/2,b=e.geoTransform({point(t,e){this.stream.point(t*a+w,e*a+S)}})):dl("Warning: the projection could not be fit to the specified domain; using the default scale.")}return b??=0===w&&0===S?bl():e.geoTransform({point(t,e){this.stream.point(t+w,e+S)}}),{stream:e=>t.stream(b.stream(l(e)))}}function yl(t,e,n){return{type:({width:r,height:o,rotate:i,precision:a=.15,clip:u})=>{const c=t();return null!=a&&c.precision?.(a),null!=i&&c.rotate?.(i),"number"==typeof u&&c.clipAngle?.(u),c.scale(Math.min(r/e,o/n)),c.translate([r/2,o/2]),c},aspectRatio:n/e}}function vl(t,e,n){const{type:r,aspectRatio:o}=yl(t,e,n);return{type:t=>{const{parallels:e,domain:n,width:o,height:i}=t,a=r(t);return null!=e&&(a.parallels(e),void 0===n&&a.fitSize([o,i],{type:"Sphere"})),a},aspectRatio:o}}const bl=As({stream:t=>t}),wl=As(e.geoTransform({point(t,e){this.stream.point(t,-e)}}));function Sl(t={},e,n){const{document:r=("undefined"!=typeof window?window.document:void 0)}=t;return{document:r,className:n,projection:gl(t,e)}}function Ol(t,{document:n}){return e.select(e.creator(t).call(n.documentElement))}const jl=new Map([["accent",e.schemeAccent],["category10",e.schemeCategory10],["dark2",e.schemeDark2],["paired",e.schemePaired],["pastel1",e.schemePastel1],["pastel2",e.schemePastel2],["set1",e.schemeSet1],["set2",e.schemeSet2],["set3",e.schemeSet3],["tableau10",e.schemeTableau10],["brbg",Pl(e.schemeBrBG,e.interpolateBrBG)],["prgn",Pl(e.schemePRGn,e.interpolatePRGn)],["piyg",Pl(e.schemePiYG,e.interpolatePiYG)],["puor",Pl(e.schemePuOr,e.interpolatePuOr)],["rdbu",Pl(e.schemeRdBu,e.interpolateRdBu)],["rdgy",Pl(e.schemeRdGy,e.interpolateRdGy)],["rdylbu",Pl(e.schemeRdYlBu,e.interpolateRdYlBu)],["rdylgn",Pl(e.schemeRdYlGn,e.interpolateRdYlGn)],["spectral",Pl(e.schemeSpectral,e.interpolateSpectral)],["burd",Tl(e.schemeRdBu,e.interpolateRdBu)],["buylrd",Tl(e.schemeRdYlBu,e.interpolateRdYlBu)],["blues",Ml(e.schemeBlues,e.interpolateBlues)],["greens",Ml(e.schemeGreens,e.interpolateGreens)],["greys",Ml(e.schemeGreys,e.interpolateGreys)],["oranges",Ml(e.schemeOranges,e.interpolateOranges)],["purples",Ml(e.schemePurples,e.interpolatePurples)],["reds",Ml(e.schemeReds,e.interpolateReds)],["turbo",$l(e.interpolateTurbo)],["viridis",$l(e.interpolateViridis)],["magma",$l(e.interpolateMagma)],["inferno",$l(e.interpolateInferno)],["plasma",$l(e.interpolatePlasma)],["cividis",$l(e.interpolateCividis)],["cubehelix",$l(e.interpolateCubehelixDefault)],["warm",$l(e.interpolateWarm)],["cool",$l(e.interpolateCool)],["bugn",Ml(e.schemeBuGn,e.interpolateBuGn)],["bupu",Ml(e.schemeBuPu,e.interpolateBuPu)],["gnbu",Ml(e.schemeGnBu,e.interpolateGnBu)],["orrd",Ml(e.schemeOrRd,e.interpolateOrRd)],["pubu",Ml(e.schemePuBu,e.interpolatePuBu)],["pubugn",Ml(e.schemePuBuGn,e.interpolatePuBuGn)],["purd",Ml(e.schemePuRd,e.interpolatePuRd)],["rdpu",Ml(e.schemeRdPu,e.interpolateRdPu)],["ylgn",Ml(e.schemeYlGn,e.interpolateYlGn)],["ylgnbu",Ml(e.schemeYlGnBu,e.interpolateYlGnBu)],["ylorbr",Ml(e.schemeYlOrBr,e.interpolateYlOrBr)],["ylorrd",Ml(e.schemeYlOrRd,e.interpolateYlOrRd)],["rainbow",kl(e.interpolateRainbow)],["sinebow",kl(e.interpolateSinebow)]]);function Ml(t,n){return({length:r})=>1===r?[t[3][1]]:2===r?[t[3][1],t[3][2]]:(r=Math.max(3,Math.floor(r)))>9?e.quantize(n,r):t[r]}function Pl(t,n){return({length:r})=>2===r?[t[3][0],t[3][2]]:(r=Math.max(3,Math.floor(r)))>11?e.quantize(n,r):t[r]}function Tl(t,n){return({length:r})=>2===r?[t[3][2],t[3][0]]:(r=Math.max(3,Math.floor(r)))>11?e.quantize((t=>n(1-t)),r):t[r].slice().reverse()}function $l(t){return({length:n})=>e.quantize(t,Math.max(2,Math.floor(n)))}function kl(t){return({length:n})=>e.quantize(t,Math.floor(n)+1).slice(0,-1)}function xl(t){const e=`${t}`.toLowerCase();if(!jl.has(e))throw new Error(`unknown ordinal scheme: ${e}`);return jl.get(e)}function El(t,e){const n=xl(t),r="function"==typeof n?n({length:e}):n;return r.length!==e?r.slice(0,e):r}const Rl=new Map([["brbg",e.interpolateBrBG],["prgn",e.interpolatePRGn],["piyg",e.interpolatePiYG],["puor",e.interpolatePuOr],["rdbu",e.interpolateRdBu],["rdgy",e.interpolateRdGy],["rdylbu",e.interpolateRdYlBu],["rdylgn",e.interpolateRdYlGn],["spectral",e.interpolateSpectral],["burd",t=>e.interpolateRdBu(1-t)],["buylrd",t=>e.interpolateRdYlBu(1-t)],["blues",e.interpolateBlues],["greens",e.interpolateGreens],["greys",e.interpolateGreys],["purples",e.interpolatePurples],["reds",e.interpolateReds],["oranges",e.interpolateOranges],["turbo",e.interpolateTurbo],["viridis",e.interpolateViridis],["magma",e.interpolateMagma],["inferno",e.interpolateInferno],["plasma",e.interpolatePlasma],["cividis",e.interpolateCividis],["cubehelix",e.interpolateCubehelixDefault],["warm",e.interpolateWarm],["cool",e.interpolateCool],["bugn",e.interpolateBuGn],["bupu",e.interpolateBuPu],["gnbu",e.interpolateGnBu],["orrd",e.interpolateOrRd],["pubugn",e.interpolatePuBuGn],["pubu",e.interpolatePuBu],["purd",e.interpolatePuRd],["rdpu",e.interpolateRdPu],["ylgnbu",e.interpolateYlGnBu],["ylgn",e.interpolateYlGn],["ylorbr",e.interpolateYlOrBr],["ylorrd",e.interpolateYlOrRd],["rainbow",e.interpolateRainbow],["sinebow",e.interpolateSinebow]]);function Cl(t){const e=`${t}`.toLowerCase();if(!Rl.has(e))throw new Error(`unknown quantitative scheme: ${e}`);return Rl.get(e)}const Nl=new Set(["brbg","prgn","piyg","puor","rdbu","rdgy","rdylbu","rdylgn","spectral","burd","buylrd"]);function Bl(t){return null!=t&&Nl.has(`${t}`.toLowerCase())}const ql=t=>e=>t(1-e),Dl=[0,1],Al=new Map([["number",e.interpolateNumber],["rgb",e.interpolateRgb],["hsl",e.interpolateHsl],["hcl",e.interpolateHcl],["lab",e.interpolateLab]]);function Il(t){const e=`${t}`.toLowerCase();if(!Al.has(e))throw new Error(`unknown interpolator: ${e}`);return Al.get(e)}function Gl(t,n,r,{type:o,nice:i,clamp:a,zero:u,domain:c=Yl(t,r),unknown:s,round:l,scheme:f,interval:p,range:d=(cl.get(t)===ol?Ul(r,c):cl.get(t)===il?Wl(r,c):cl.get(t)===al?Dl:void 0),interpolate:h=(cl.get(t)===rl?null==f&&void 0!==d?e.interpolateRgb:Cl(void 0!==f?f:"cyclical"===o?"rainbow":"turbo"):l?e.interpolateRound:e.interpolateNumber),reverse:m}){if(p=Js(p,o),"cyclical"!==o&&"sequential"!==o||(o="linear"),m=!!m,"function"!=typeof h&&(h=Il(h)),1===h.length?(m&&(h=ql(h),m=!1),void 0===d&&2===(d=Float64Array.from(c,((t,e)=>e/(c.length-1)))).length&&(d=Dl),n.interpolate((d===Dl?As:Jl)(h))):n.interpolate(h),u){const[t,n]=e.extent(c);(t>0||n<0)&&(c=function(t,e=Array){return t instanceof e?t.slice():e.from(t)}(c),el(c)!==Math.sign(t)?c[c.length-1]=0:c[0]=0)}return m&&(c=e.reverse(c)),n.domain(c).unknown(s),i&&(n.nice(function(t,e){return!0===t?void 0:"number"==typeof t?t:function(t,e){if((t=Js(t,e))&&"function"!=typeof t.ceil)throw new Error("invalid interval: missing ceil method");return t}(t,e)}(i,o)),c=n.domain()),void 0!==d&&n.range(d),a&&n.clamp(a),{type:o,domain:c,range:d,scale:n,interpolate:h,interval:p}}function Ll(t,n,{exponent:r=1,...o}){return Gl(t,e.scalePow().exponent(r),n,{...o,type:"pow"})}function zl(t,n,{domain:r=[0],unknown:o,scheme:i="rdylbu",interpolate:a,range:u=(void 0!==a?e.quantize(a,r.length+1):cl.get(t)===rl?El(i,r.length+1):void 0),reverse:c}){const s=el(r=_s(r));if(!isNaN(s)&&!function(t,n){for(let r=1,o=t.length,i=t[0];r<o;++r){const o=e.descending(i,i=t[r]);if(0!==o&&o!==n)return!1}return!0}(r,s))throw new Error(`the ${t} scale has a non-monotonic domain`);return c&&(u=e.reverse(u)),{type:"threshold",scale:e.scaleThreshold(s<0?e.reverse(r):r,void 0===u?[]:u).unknown(o),domain:r,range:u}}function Fl(t,n=js){return t.length?[e.min(t,(({value:t})=>void 0===t?t:e.min(t,n))),e.max(t,(({value:t})=>void 0===t?t:e.max(t,n)))]:[0,1]}function Yl(t,e){const n=cl.get(t);return(n===ol||n===al||n===il?_l:Fl)(e)}function _l(t){return[0,t.length?e.max(t,(({value:t})=>void 0===t?t:e.max(t,js))):1]}function Ul(t,n){const r=t.find((({radius:t})=>void 0!==t));if(void 0!==r)return[0,r.radius];const o=e.quantile(t,.5,(({value:t})=>void 0===t?NaN:e.quantile(t,.25,Ms))),i=n.map((t=>3*Math.sqrt(t/o))),a=30/e.max(i);return a<1?i.map((t=>t*a)):i}function Wl(t,n){const r=e.median(t,(({value:t})=>void 0===t?NaN:e.median(t,Math.abs))),o=n.map((t=>12*t/r)),i=60/e.max(o);return i<1?o.map((t=>t*i)):o}function Hl(t){for(const{value:e}of t)if(void 0!==e)for(let n of e){if(n>0)return Fl(t,Ms);if(n<0)return Fl(t,Ps)}return[1,10]}function Vl(t){const e=[];for(const{value:n}of t)if(void 0!==n)for(const t of n)e.push(t);return e}function Jl(t){return(e,n)=>r=>t(e+r*(n-e))}function Kl(t,n,r,o,{type:i,nice:a,clamp:u,domain:c=Fl(o),unknown:s,pivot:l=0,scheme:f,range:p,symmetric:d=!0,interpolate:h=(cl.get(t)===rl?null==f&&void 0!==p?e.interpolateRgb:Cl(void 0!==f?f:"rdbu"):e.interpolateNumber),reverse:m}){l=+l;let[g,y]=c;if(e.descending(g,y)<0&&([g,y]=[y,g],m=!m),g=Math.min(g,l),y=Math.max(y,l),"function"!=typeof h&&(h=Il(h)),void 0!==p&&(h=1===h.length?Jl(h)(...p):e.piecewise(h,p)),m&&(h=ql(h)),d){const t=r.apply(l),e=t-r.apply(g),n=r.apply(y)-t;e<n?g=r.invert(t-n):e>n&&(y=r.invert(t+e))}return n.domain([g,l,y]).unknown(s).interpolator(h),u&&n.clamp(u),a&&n.nice(a),{type:i,domain:[g,y],pivot:l,interpolate:h,scale:n}}function Xl(t,n,{exponent:r=1,...o}){return Kl(t,e.scaleDivergingPow().exponent(r=+r),function(t){return.5===t?ef:{apply:e=>Math.sign(e)*Math.pow(Math.abs(e),t),invert:e=>Math.sign(e)*Math.pow(Math.abs(e),1/t)}}(r),n,{...o,type:"diverging-pow"})}function Zl(t,n,{constant:r=1,...o}){return Kl(t,e.scaleDivergingSymlog().constant(r=+r),function(t){return{apply:e=>Math.sign(e)*Math.log1p(Math.abs(e/t)),invert:e=>Math.sign(e)*Math.expm1(Math.abs(e))*t}}(r),n,o)}const Ql={apply:t=>t,invert:t=>t},tf={apply:Math.log,invert:Math.exp},ef={apply:t=>Math.sign(t)*Math.sqrt(Math.abs(t)),invert:t=>Math.sign(t)*(t*t)};function nf(t,e,n,r){return Gl(t,e,n,r)}const rf=Symbol("ordinal");function of(t,n,r,{type:o,interval:i,domain:a,range:u,reverse:c,hint:s}){return i=Js(i,o),void 0===a&&(a=cf(r,i,t)),"categorical"!==o&&o!==rf||(o="ordinal"),c&&(a=e.reverse(a)),n.domain(a),void 0!==u&&("function"==typeof u&&(u=u(a)),n.range(u)),{type:o,domain:a,range:u,scale:n,hint:s,interval:i}}function af(t,n,{type:r,interval:o,domain:i,range:a,scheme:u,unknown:c,...s}){let l;if(o=Js(o,r),void 0===i&&(i=cf(n,o,t)),cl.get(t)===ul)l=function(t){return{fill:sf(t,"fill"),stroke:sf(t,"stroke")}}(n),a=void 0===a?function(t){return tl(t.fill)?e.symbolsStroke:e.symbolsFill}(l):Us(a,pl);else if(cl.get(t)===rl&&(void 0!==a||"ordinal"!==r&&r!==rf||(a=function(t,e="greys"){const n=new Set,[r,o]=El(e,2);for(const e of t)if(null!=e)if(!0===e)n.add(o);else{if(!1!==e)return;n.add(r)}return[...n]}(i,u),void 0!==a&&(u=void 0)),void 0===u&&void 0===a&&(u="ordinal"===r?"turbo":"tableau10"),void 0!==u))if(void 0!==a){const t=Cl(u),n=a[0],r=a[1]-a[0];a=({length:o})=>e.quantize((e=>t(n+r*e)),o)}else a=xl(u);if(c===e.scaleImplicit)throw new Error(`implicit unknown on ${t} scale is not supported`);return of(t,e.scaleOrdinal().unknown(c),n,{...s,type:r,domain:i,range:a,hint:l})}function uf(t,e,n,r){let{round:o}=n;return void 0!==o&&t.round(o=!!o),(t=of(r,t,e,n)).round=o,t}function cf(t,n,r){const o=new e.InternSet;for(const{value:e,domain:n}of t){if(void 0!==n)return n();if(void 0!==e)for(const t of e)o.add(t)}if(void 0!==n){const[t,r]=e.extent(o).map(n.floor,n);return n.range(t,n.offset(r))}if(o.size>1e4&&cl.get(r)===nl)throw new Error(`implicit ordinal domain of ${r} scale has more than 10,000 values`);return e.sort(o,Os)}function sf(t,e){let n;for(const{hint:r}of t){const t=r?.[e];if(void 0!==t)if(void 0===n)n=t;else if(n!==t)return}return n}function lf(t,n,r){return function(t,n=[],r={}){const o=function(t,e,{type:n,domain:r,range:o,scheme:i,pivot:a,projection:u}){if("fx"===t||"fy"===t)return"band";"x"!==t&&"y"!==t||null==u||(n=pf);for(const{type:t}of e)if(void 0!==t)if(void 0===n)n=t;else if(n!==t)throw new Error(`scale incompatible with channel: ${n} !== ${t}`);if(n===pf)return;if(void 0!==n)return n;if(void 0===r&&!e.some((({value:t})=>void 0!==t)))return;const c=cl.get(t);if(c===ol)return"sqrt";if(c===al||c===il)return"linear";if(c===ul)return"ordinal";if((r||o||[]).length>2)return df(c);if(void 0!==r)return Ks(r)?df(c):Xs(r)?"utc":c!==rl||null==a&&!Bl(i)?"linear":"diverging";const s=e.map((({value:t})=>t)).filter((t=>void 0!==t));return s.some(Ks)?df(c):s.some(Xs)?"utc":c!==rl||null==a&&!Bl(i)?"linear":"diverging"}(t,n,r);if(void 0===r.type&&void 0===r.domain&&void 0===r.range&&null==r.interval&&"fx"!==t&&"fy"!==t&&hf({type:o})){const e=n.map((({value:t})=>t)).filter((t=>void 0!==t));e.some(Xs)?dl(`Warning: some data associated with the ${t} scale are dates. Dates are typically associated with a "utc" or "time" scale rather than a "${ff(o)}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can specify the interval of the ${t} scale (e.g., d3.utcDay), or you can suppress this warning by setting the type of the ${t} scale to "${ff(o)}".`):e.some(Zs)?dl(`Warning: some data associated with the ${t} scale are strings that appear to be dates (e.g., YYYY-MM-DD). If these strings represent dates, you should parse them to Date objects. Dates are typically associated with a "utc" or "time" scale rather than a "${ff(o)}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can suppress this warning by setting the type of the ${t} scale to "${ff(o)}".`):e.some(Qs)&&dl(`Warning: some data associated with the ${t} scale are strings that appear to be numbers. If these strings represent numbers, you should parse or coerce them to numbers. Numbers are typically associated with a "linear" scale rather than a "${ff(o)}" scale. If you want to treat this data as ordinal, you can specify the interval of the ${t} scale (e.g., 1 for integers), or you can suppress this warning by setting the type of the ${t} scale to "${ff(o)}".`)}switch(r.type=o,o){case"diverging":case"diverging-sqrt":case"diverging-pow":case"diverging-log":case"diverging-symlog":case"cyclical":case"sequential":case"linear":case"sqrt":case"threshold":case"quantile":case"pow":case"log":case"symlog":r=mf(n,r,Is);break;case"identity":switch(cl.get(t)){case nl:r=mf(n,r,Is);break;case ul:r=mf(n,r,gf)}break;case"utc":case"time":r=mf(n,r,Ls)}switch(o){case"diverging":return function(t,n,r){return Kl(t,e.scaleDiverging(),Ql,n,r)}(t,n,r);case"diverging-sqrt":return function(t,e,n){return Xl(t,e,{...n,exponent:.5})}(t,n,r);case"diverging-pow":return Xl(t,n,r);case"diverging-log":return function(t,n,{base:r=10,pivot:o=1,domain:i=Fl(n,o<0?Ps:Ms),...a}){return Kl(t,e.scaleDivergingLog().base(r=+r),tf,n,{domain:i,pivot:o,...a})}(t,n,r);case"diverging-symlog":return Zl(t,n,r);case"categorical":case"ordinal":case rf:return af(t,n,r);case"cyclical":case"sequential":case"linear":return function(t,n,r){return Gl(t,e.scaleLinear(),n,r)}(t,n,r);case"sqrt":return function(t,e,n){return Ll(t,e,{...n,exponent:.5})}(t,n,r);case"threshold":return zl(t,0,r);case"quantile":return function(t,n,{range:r,quantiles:o=(void 0===r?5:(r=[...r]).length),n:i=o,scheme:a="rdylbu",domain:u=Vl(n),unknown:c,interpolate:s,reverse:l}){return void 0===r&&(r=void 0!==s?e.quantize(s,i):cl.get(t)===rl?El(a,i):void 0),u.length>0&&(u=e.scaleQuantile(u,void 0===r?{length:i}:r).quantiles()),zl(t,0,{domain:u,range:r,reverse:l,unknown:c})}(t,n,r);case"quantize":return function(t,n,{range:r,n:o=(void 0===r?5:(r=[...r]).length),scheme:i="rdylbu",domain:a=Yl(t,n),unknown:u,interpolate:c,reverse:s}){const[l,f]=e.extent(a);let p;return void 0===r?(p=e.ticks(l,f,o),p[0]<=l&&p.splice(0,1),p[p.length-1]>=f&&p.pop(),o=p.length+1,r=void 0!==c?e.quantize(c,o):cl.get(t)===rl?El(i,o):void 0):(p=e.quantize(e.interpolateNumber(l,f),o+1).slice(1,-1),l instanceof Date&&(p=p.map((t=>new Date(t))))),el(_s(a))<0&&p.reverse(),zl(t,0,{domain:p,range:r,reverse:s,unknown:u})}(t,n,r);case"pow":return Ll(t,n,r);case"log":return function(t,n,{base:r=10,domain:o=Hl(n),...i}){return Gl(t,e.scaleLog().base(r),n,{...i,domain:o})}(t,n,r);case"symlog":return function(t,n,{constant:r=1,...o}){return Gl(t,e.scaleSymlog().constant(r),n,o)}(t,n,r);case"utc":return function(t,n,r){return nf(t,e.scaleUtc(),n,r)}(t,n,r);case"time":return function(t,n,r){return nf(t,e.scaleTime(),n,r)}(t,n,r);case"point":return function(t,n,{align:r=.5,padding:o=.5,...i}){return uf(e.scalePoint().align(r).padding(o),n,i,t)}(t,n,r);case"band":return function(t,n,{align:r=.5,padding:o=.1,paddingInner:i=o,paddingOuter:a=("fx"===t||"fy"===t?0:o),...u}){return uf(e.scaleBand().align(r).paddingInner(i).paddingOuter(a),n,u,t)}(t,n,r);case"identity":return cl.get(t)===nl?{type:"identity",scale:e.scaleIdentity()}:{type:"identity"};case void 0:return;default:throw new Error(`unknown scale type: ${o}`)}}(t,void 0===r?void 0:[{hint:r}],{...n})}function ff(t){return"symbol"==typeof t?t.description:t}const pf={toString:()=>"projection"};function df(t){switch(t){case nl:return"point";case rl:return rf;default:return"ordinal"}}function hf({type:t}){return"ordinal"===t||"point"===t||"band"===t||t===rf}function mf(t,{domain:e,...n},r){for(const e of t)void 0!==e.value&&(e.value=r(e.value));return{domain:void 0===e?e:r(e),...n}}function gf(t){return Us(t,pl)}const yf=function(t){let e,n;return(...r)=>((n?.length!==r.length||n.some(((t,e)=>t!==r[e])))&&(n=r,e=t(...r)),e)}((t=>new Intl.NumberFormat(t)));function vf(t){return Ts(t,"Invalid Date")}function bf(t,e){if((t=Ds(t))!==e)return t}!function(t="en-US"){const e=function(t="en-US"){const e=yf(t);return t=>null==t||isNaN(t)?void 0:e.format(t)}(t)}();const wf=/^-?([_a-z]|[\240-\377]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])([_a-z0-9-]|[\240-\377]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*$/i;function Sf(t){if(void 0===t)return"plot-d6a7b5";if(t=`${t}`,!wf.test(t))throw new Error(`invalid class name: ${t}`);return t}function Of(t,e){if("string"==typeof e)t.property("style",e);else if(null!=e)for(const n of t)Object.assign(n.style,e)}function jf(t){return hf(t)&&void 0===t.interval?void 0:"tabular-nums"}function Mf(t,e){if(null==e)return e;const n=t(e);if(!n)throw new Error(`scale not found: ${e}`);return n}function Pf(t,n={},r){let{columns:o,tickFormat:i,fontVariant:a=jf(t),swatchSize:u=15,swatchWidth:c=u,swatchHeight:s=u,marginLeft:l=0,className:f,style:p,width:d}=n;const h=Sl(n);f=Sf(f),i=function(t,n){return void 0===t?Xs(n)?vf:Ds:"function"==typeof t?t:("string"==typeof t?Xs(n)?e.utcFormat:e.format:As)(t)}(i,t.domain);const m=Ol("div",h).attr("class",`${f}-swatches ${f}-swatches-${null!=o?"columns":"wrap"}`);let g;return null!=o?(g=`.${f}-swatches-columns .${f}-swatch {\n display: flex;\n align-items: center;\n break-inside: avoid;\n padding-bottom: 1px;\n}\n.${f}-swatches-columns .${f}-swatch::before {\n flex-shrink: 0;\n}\n.${f}-swatches-columns .${f}-swatch-label {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}`,m.style("columns",o).selectAll().data(t.domain).enter().append("div").attr("class",`${f}-swatch`).call(r,t,c,s).call((t=>t.append("div").attr("class",`${f}-swatch-label`).attr("title",i).text(i)))):(g=`.${f}-swatches-wrap {\n display: flex;\n align-items: center;\n min-height: 33px;\n flex-wrap: wrap;\n}\n.${f}-swatches-wrap .${f}-swatch {\n display: inline-flex;\n align-items: center;\n margin-right: 1em;\n}`,m.selectAll().data(t.domain).enter().append("span").attr("class",`${f}-swatch`).call(r,t,c,s).append((function(){return this.ownerDocument.createTextNode(i.apply(this,arguments))}))),m.call((t=>t.insert("style","*").text(`.${f}-swatches {\n font-family: system-ui, sans-serif;\n font-size: 10px;\n margin-bottom: 0.5em;\n}\n.${f}-swatch > svg {\n margin-right: 0.5em;\n overflow: visible;\n}\n${g}`))).style("margin-left",l?+l+"px":null).style("width",void 0===d?null:+d+"px").style("font-variant",bf(a,"normal")).call(Of,p).node()}const Tf=new Map([["symbol",function(t,{fill:n=(void 0!==t.hint?.fill?t.hint.fill:"none"),fillOpacity:r=1,stroke:o=(void 0!==t.hint?.stroke?t.hint.stroke:tl(n)?"currentColor":"none"),strokeOpacity:i=1,strokeWidth:a=1.5,r:u=4.5,...c}={},s){const[l,f]=Fs(n),[p,d]=Fs(o),h=Mf(s,l),m=Mf(s,p),g=u*u*Math.PI;return r=Ys(r)[1],i=Ys(i)[1],a=Ys(a)[1],Pf(t,c,((n,o,u,c)=>n.append("svg").attr("viewBox","-8 -8 16 16").attr("width",u).attr("height",c).attr("fill","color"===l?t=>h.scale(t):f).attr("fill-opacity",r).attr("stroke","color"===p?t=>m.scale(t):d).attr("stroke-opacity",i).attr("stroke-width",a).append("path").attr("d",(n=>{const r=e.pathRound();return t.scale(n).draw(r,g),r}))))}],["color",kf],["opacity",function({type:t,interpolate:n,...r},{legend:o=!0,color:i=e.rgb(0,0,0),...a}){if(!n)throw new Error(`${t} opacity scales are not supported`);!0===o&&(o="ramp");if("ramp"!==`${o}`.toLowerCase())throw new Error(`${o} opacity legends are not supported`);return kf({type:t,...r,interpolate:xf(i)},{legend:o,...a})}]]);function $f({className:t,...e},{label:n,ticks:r,tickFormat:o}={},i){return function(t={},...e){let n=t;for(const r of e)for(const e in r)if(void 0===n[e]){const o=r[e];n===t?n={...n,[e]:o}:n[e]=o}return n}(i,{className:t,...e},{label:n,ticks:r,tickFormat:o})}function kf(t,{legend:n=!0,...r}){if(!0===n&&(n="ordinal"===t.type?"swatches":"ramp"),void 0!==t.domain)switch(`${n}`.toLowerCase()){case"swatches":return function(t,{opacity:e,...n}={}){if(!hf(t)&&!function({type:t}){return"threshold"===t}(t))throw new Error(`swatches legend requires ordinal or threshold color scale (not ${t.type})`);return Pf(t,n,((t,n,r,o)=>t.append("svg").attr("width",r).attr("height",o).attr("fill",n.scale).attr("fill-opacity",Ys(e)[1]).append("rect").attr("width","100%").attr("height","100%")))}(t,r);case"ramp":return function(t,n){let{label:r=t.label,tickSize:o=6,width:i=240,height:a=44+o,marginTop:u=18,marginRight:c=0,marginBottom:s=16+o,marginLeft:l=0,style:f,ticks:p=(i-l-c)/64,tickFormat:d,fontVariant:h=jf(t),round:m=!0,opacity:g,className:y}=n;const v=Sl(n);y=Sf(y),g=Ys(g)[1],null===d&&(d=()=>null);const b=Ol("svg",v).attr("class",`${y}-ramp`).attr("font-family","system-ui, sans-serif").attr("font-size",10).attr("width",i).attr("height",a).attr("viewBox",`0 0 ${i} ${a}`).call((t=>t.append("style").text(`.${y}-ramp {\n display: block;\n background: white;\n height: auto;\n height: intrinsic;\n max-width: 100%;\n overflow: visible;\n}\n.${y}-ramp text {\n white-space: pre;\n}`))).call(Of,f);let w,S=t=>t.selectAll(".tick line").attr("y1",u+s-a);const O=m?(t,e)=>t.rangeRound(e):(t,e)=>t.range(e),{type:j,domain:M,range:P,interpolate:T,scale:$,pivot:k}=t;if(T){const t=void 0===P?T:e.piecewise(1===T.length?Jl(T):T,P);w=O($.copy(),e.quantize(e.interpolateNumber(l,i-c),Math.min(M.length+(void 0!==k),void 0===P?1/0:P.length)));const n=256,r=v.document.createElement("canvas");r.width=n,r.height=1;const o=r.getContext("2d");for(let e=0,r=n-1;e<n;++e)o.fillStyle=t(e/r),o.fillRect(e,0,1,1);b.append("image").attr("opacity",g).attr("x",l).attr("y",u).attr("width",i-l-c).attr("height",a-u-s).attr("preserveAspectRatio","none").attr("xlink:href",r.toDataURL())}else if("threshold"===j){const t=M,n=void 0===d?t=>t:"string"==typeof d?e.format(d):d;w=O(e.scaleLinear().domain([-1,P.length-1]),[l,i-c]),b.append("g").attr("fill-opacity",g).selectAll().data(P).enter().append("rect").attr("x",((t,e)=>w(e-1))).attr("y",u).attr("width",((t,e)=>w(e)-w(e-1))).attr("height",a-u-s).attr("fill",(t=>t)),p=Us(t,((t,e)=>e)),d=e=>n(t[e],e)}else w=O(e.scaleBand().domain(M),[l,i-c]),b.append("g").attr("fill-opacity",g).selectAll().data(M).enter().append("rect").attr("x",w).attr("y",u).attr("width",Math.max(0,w.bandwidth()-1)).attr("height",a-u-s).attr("fill",$),S=()=>{};return b.append("g").attr("transform",`translate(0,${a-s})`).call(e.axisBottom(w).ticks(Array.isArray(p)?null:p,"string"==typeof d?d:void 0).tickFormat("function"==typeof d?d:void 0).tickSize(o).tickValues(Array.isArray(p)?p:null)).attr("font-size",null).attr("font-family",null).attr("font-variant",bf(h,"normal")).call(S).call((t=>t.select(".domain").remove())),void 0!==r&&b.append("text").attr("x",l).attr("y",u-6).attr("fill","currentColor").attr("font-weight","bold").text(r),b.node()}(t,r);default:throw new Error(`unknown legend type: ${n}`)}}function xf(t){const{r:n,g:r,b:o}=e.rgb(t)||e.rgb(0,0,0);return t=>`rgba(${n},${r},${o},${t})`}var Ef="#ch-plugin-legend",Rf={enabled:!0,itemSelector:null,label:null,width:130},Cf=function(){function e(t){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),this.name="Legend",this.calendar=t,this.root=null,this.shown=!1,this.options=Rf}var r,o,i;return r=e,o=[{key:"setup",value:function(t){this.options=Object.assign(Object.assign({},Rf),t)}},{key:"paint",value:function(){var e=this.calendar.options.options.scale,n=this.options,r=n.enabled,o=n.itemSelector;if(!r||o&&t.select(o).empty())return this.destroy();this.shown=!0,this.root=t.select(o||this.calendar.options.options.itemSelector),this.root.select(Ef).empty()?this.root=this.root.append("div").attr("id",Ef.slice(1)):this.root=this.root.select(Ef);var i=function(t={}){for(const[e,n]of Tf){const r=t[e];if(Hs(r)){const o=Sl(t);let i;if("symbol"===e){const{fill:e,stroke:n=(void 0===e&&Hs(t.color)?"color":void 0)}=t;i={fill:e,stroke:n}}return n(lf(e,r,i),$f(o,r,t),(e=>Hs(t[e])?lf(e,t[e]):null))}}throw new Error("unknown legend type; no scale found")}(Object.assign(Object.assign({},e),this.options));return this.root.selectAll("*").remove(),this.root.append((function(){return i})),Promise.resolve()}},{key:"destroy",value:function(){return null!==this.root&&(this.root.remove(),this.root=null),Promise.resolve()}}],o&&n(r.prototype,o),i&&n(r,i),Object.defineProperty(r,"prototype",{writable:!1}),e}();return Cf}));//# sourceMappingURL=Legend.min.js.map diff --git a/static/javascripts/cal-heatmap/plugins/Legend.min.js.map b/static/javascripts/cal-heatmap/plugins/Legend.min.js.map new file mode 100644 index 000000000..11f144077 --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/Legend.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Legend.min.js","sources":["../../node_modules/core-js/internals/fails.js","../../node_modules/core-js/internals/descriptors.js","../../node_modules/core-js/internals/function-bind-native.js","../../node_modules/core-js/internals/function-uncurry-this.js","../../node_modules/core-js/internals/is-null-or-undefined.js","../../node_modules/core-js/internals/require-object-coercible.js","../../node_modules/core-js/internals/to-object.js","../../node_modules/core-js/internals/has-own-property.js","../../node_modules/core-js/internals/function-name.js","../../node_modules/core-js/internals/document-all.js","../../node_modules/core-js/internals/is-callable.js","../../node_modules/core-js/internals/global.js","../../node_modules/core-js/internals/define-global-property.js","../../node_modules/core-js/internals/shared-store.js","../../node_modules/core-js/internals/inspect-source.js","../../node_modules/core-js/internals/engine-v8-version.js","../../node_modules/core-js/internals/weak-map-basic-detection.js","../../node_modules/core-js/internals/is-object.js","../../node_modules/core-js/internals/document-create-element.js","../../node_modules/core-js/internals/ie8-dom-define.js","../../node_modules/core-js/internals/v8-prototype-define-bug.js","../../node_modules/core-js/internals/an-object.js","../../node_modules/core-js/internals/function-call.js","../../node_modules/core-js/internals/get-built-in.js","../../node_modules/core-js/internals/object-is-prototype-of.js","../../node_modules/core-js/internals/engine-user-agent.js","../../node_modules/core-js/internals/symbol-constructor-detection.js","../../node_modules/core-js/internals/use-symbol-as-uid.js","../../node_modules/core-js/internals/is-symbol.js","../../node_modules/core-js/internals/try-to-string.js","../../node_modules/core-js/internals/a-callable.js","../../node_modules/core-js/internals/get-method.js","../../node_modules/core-js/internals/ordinary-to-primitive.js","../../node_modules/core-js/internals/shared.js","../../node_modules/core-js/internals/uid.js","../../node_modules/core-js/internals/well-known-symbol.js","../../node_modules/core-js/internals/to-primitive.js","../../node_modules/core-js/internals/to-property-key.js","../../node_modules/core-js/internals/object-define-property.js","../../node_modules/core-js/internals/create-property-descriptor.js","../../node_modules/core-js/internals/internal-state.js","../../node_modules/core-js/internals/create-non-enumerable-property.js","../../node_modules/core-js/internals/shared-key.js","../../node_modules/core-js/internals/hidden-keys.js","../../node_modules/core-js/internals/make-built-in.js","../../node_modules/core-js/internals/define-built-in-accessor.js","../../node_modules/core-js/modules/es.function.name.js","../../node_modules/core-js/internals/object-property-is-enumerable.js","../../node_modules/core-js/internals/classof-raw.js","../../node_modules/core-js/internals/indexed-object.js","../../node_modules/core-js/internals/to-indexed-object.js","../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../node_modules/core-js/internals/define-built-in.js","../../node_modules/core-js/internals/math-trunc.js","../../node_modules/core-js/internals/to-integer-or-infinity.js","../../node_modules/core-js/internals/to-absolute-index.js","../../node_modules/core-js/internals/to-length.js","../../node_modules/core-js/internals/length-of-array-like.js","../../node_modules/core-js/internals/array-includes.js","../../node_modules/core-js/internals/object-keys-internal.js","../../node_modules/core-js/internals/enum-bug-keys.js","../../node_modules/core-js/internals/object-get-own-property-names.js","../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../node_modules/core-js/internals/own-keys.js","../../node_modules/core-js/internals/copy-constructor-properties.js","../../node_modules/core-js/internals/is-forced.js","../../node_modules/core-js/internals/export.js","../../node_modules/core-js/internals/object-keys.js","../../node_modules/core-js/internals/object-assign.js","../../node_modules/core-js/modules/es.object.assign.js","../../node_modules/core-js/internals/to-string-tag-support.js","../../node_modules/core-js/internals/classof.js","../../node_modules/core-js/internals/object-to-string.js","../../node_modules/core-js/modules/es.object.to-string.js","../../node_modules/core-js/internals/engine-is-node.js","../../node_modules/core-js/internals/function-uncurry-this-accessor.js","../../node_modules/core-js/internals/a-possible-prototype.js","../../node_modules/core-js/internals/object-set-prototype-of.js","../../node_modules/core-js/internals/set-to-string-tag.js","../../node_modules/core-js/internals/set-species.js","../../node_modules/core-js/internals/an-instance.js","../../node_modules/core-js/internals/is-constructor.js","../../node_modules/core-js/internals/task.js","../../node_modules/core-js/internals/a-constructor.js","../../node_modules/core-js/internals/species-constructor.js","../../node_modules/core-js/internals/function-apply.js","../../node_modules/core-js/internals/function-uncurry-this-clause.js","../../node_modules/core-js/internals/function-bind-context.js","../../node_modules/core-js/internals/html.js","../../node_modules/core-js/internals/array-slice.js","../../node_modules/core-js/internals/validate-arguments-length.js","../../node_modules/core-js/internals/engine-is-ios.js","../../node_modules/core-js/internals/queue.js","../../node_modules/core-js/internals/microtask.js","../../node_modules/core-js/internals/engine-is-ios-pebble.js","../../node_modules/core-js/internals/engine-is-webos-webkit.js","../../node_modules/core-js/internals/perform.js","../../node_modules/core-js/internals/promise-native-constructor.js","../../node_modules/core-js/internals/engine-is-deno.js","../../node_modules/core-js/internals/engine-is-browser.js","../../node_modules/core-js/internals/promise-constructor-detection.js","../../node_modules/core-js/internals/new-promise-capability.js","../../node_modules/core-js/modules/es.promise.constructor.js","../../node_modules/core-js/internals/host-report-errors.js","../../node_modules/core-js/internals/iterators.js","../../node_modules/core-js/internals/is-array-iterator-method.js","../../node_modules/core-js/internals/get-iterator-method.js","../../node_modules/core-js/internals/get-iterator.js","../../node_modules/core-js/internals/iterator-close.js","../../node_modules/core-js/internals/iterate.js","../../node_modules/core-js/internals/check-correctness-of-iteration.js","../../node_modules/core-js/internals/promise-statics-incorrect-iteration.js","../../node_modules/core-js/modules/es.promise.all.js","../../node_modules/core-js/modules/es.promise.catch.js","../../node_modules/core-js/modules/es.promise.race.js","../../node_modules/core-js/modules/es.promise.reject.js","../../node_modules/core-js/internals/promise-resolve.js","../../node_modules/core-js/modules/es.promise.resolve.js","../../node_modules/@observablehq/plot/src/defined.js","../../node_modules/isoformat/src/format.js","../../node_modules/isoformat/src/parse.js","../../node_modules/@observablehq/plot/src/time.js","../../node_modules/@observablehq/plot/src/options.js","../../node_modules/@observablehq/plot/src/scales/index.js","../../node_modules/@observablehq/plot/src/symbol.js","../../node_modules/@observablehq/plot/src/warnings.js","../../node_modules/@observablehq/plot/src/projection.js","../../node_modules/@observablehq/plot/src/context.js","../../node_modules/@observablehq/plot/src/scales/schemes.js","../../node_modules/@observablehq/plot/src/scales/quantitative.js","../../node_modules/@observablehq/plot/src/scales/diverging.js","../../node_modules/@observablehq/plot/src/scales/temporal.js","../../node_modules/@observablehq/plot/src/scales/ordinal.js","../../node_modules/@observablehq/plot/src/scales.js","../../node_modules/@observablehq/plot/src/format.js","../../node_modules/@observablehq/plot/src/memoize.js","../../node_modules/@observablehq/plot/src/style.js","../../node_modules/@observablehq/plot/src/axes.js","../../node_modules/@observablehq/plot/src/legends/swatches.js","../../node_modules/@observablehq/plot/src/legends.js","../../node_modules/@observablehq/plot/src/legends/ramp.js","../../../src/plugins/Legend.ts"],"sourcesContent":["module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.30.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineBuiltInAccessor(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var classof = require('../internals/classof-raw');\n\nmodule.exports = typeof process != 'undefined' && classof(process) == 'process';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","module.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","module.exports = {};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","import {ascending, descending} from \"d3\";\n\nexport function defined(x) {\n return x != null && !Number.isNaN(x);\n}\n\nexport function ascendingDefined(a, b) {\n return +defined(b) - +defined(a) || ascending(a, b);\n}\n\nexport function descendingDefined(a, b) {\n return +defined(b) - +defined(a) || descending(a, b);\n}\n\nexport function nonempty(x) {\n return x != null && `${x}` !== \"\";\n}\n\nexport function finite(x) {\n return isFinite(x) ? x : NaN;\n}\n\nexport function positive(x) {\n return x > 0 && isFinite(x) ? x : NaN;\n}\n\nexport function negative(x) {\n return x < 0 && isFinite(x) ? x : NaN;\n}\n","export default function format(date, fallback) {\n if (!(date instanceof Date)) date = new Date(+date);\n if (isNaN(date)) return typeof fallback === \"function\" ? fallback(date) : fallback;\n const hours = date.getUTCHours();\n const minutes = date.getUTCMinutes();\n const seconds = date.getUTCSeconds();\n const milliseconds = date.getUTCMilliseconds();\n return `${formatYear(date.getUTCFullYear(), 4)}-${pad(date.getUTCMonth() + 1, 2)}-${pad(date.getUTCDate(), 2)}${\n hours || minutes || seconds || milliseconds ? `T${pad(hours, 2)}:${pad(minutes, 2)}${\n seconds || milliseconds ? `:${pad(seconds, 2)}${\n milliseconds ? `.${pad(milliseconds, 3)}` : ``\n }` : ``\n }Z` : ``\n }`;\n}\n\nfunction formatYear(year) {\n return year < 0 ? `-${pad(-year, 6)}`\n : year > 9999 ? `+${pad(year, 6)}`\n : pad(year, 4);\n}\n\nfunction pad(value, width) {\n return `${value}`.padStart(width, \"0\");\n}\n","const re = /^(?:[-+]\\d{2})?\\d{4}(?:-\\d{2}(?:-\\d{2})?)?(?:T\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{3})?)?(?:Z|[-+]\\d{2}:?\\d{2})?)?$/;\n\nexport default function parse(string, fallback) {\n if (!re.test(string += \"\")) return typeof fallback === \"function\" ? fallback(string) : fallback;\n return new Date(string);\n}\n","import {utcSecond, utcMinute, utcHour, utcDay, utcWeek, utcMonth, utcYear} from \"d3\";\nimport {utcMonday, utcTuesday, utcWednesday, utcThursday, utcFriday, utcSaturday, utcSunday} from \"d3\";\nimport {timeSecond, timeMinute, timeHour, timeDay, timeWeek, timeMonth, timeYear} from \"d3\";\nimport {timeMonday, timeTuesday, timeWednesday, timeThursday, timeFriday, timeSaturday, timeSunday} from \"d3\";\n\nconst timeIntervals = new Map([\n [\"second\", timeSecond],\n [\"minute\", timeMinute],\n [\"hour\", timeHour],\n [\"day\", timeDay],\n [\"week\", timeWeek],\n [\"month\", timeMonth],\n [\"quarter\", timeMonth.every(3)],\n [\"half\", timeMonth.every(6)],\n [\"year\", timeYear],\n [\"monday\", timeMonday],\n [\"tuesday\", timeTuesday],\n [\"wednesday\", timeWednesday],\n [\"thursday\", timeThursday],\n [\"friday\", timeFriday],\n [\"saturday\", timeSaturday],\n [\"sunday\", timeSunday]\n]);\n\nconst utcIntervals = new Map([\n [\"second\", utcSecond],\n [\"minute\", utcMinute],\n [\"hour\", utcHour],\n [\"day\", utcDay],\n [\"week\", utcWeek],\n [\"month\", utcMonth],\n [\"quarter\", utcMonth.every(3)],\n [\"half\", utcMonth.every(6)],\n [\"year\", utcYear],\n [\"monday\", utcMonday],\n [\"tuesday\", utcTuesday],\n [\"wednesday\", utcWednesday],\n [\"thursday\", utcThursday],\n [\"friday\", utcFriday],\n [\"saturday\", utcSaturday],\n [\"sunday\", utcSunday]\n]);\n\nexport function maybeTimeInterval(interval) {\n const i = timeIntervals.get(`${interval}`.toLowerCase());\n if (!i) throw new Error(`unknown interval: ${interval}`);\n return i;\n}\n\nexport function maybeUtcInterval(interval) {\n const i = utcIntervals.get(`${interval}`.toLowerCase());\n if (!i) throw new Error(`unknown interval: ${interval}`);\n return i;\n}\n","import {parse as isoParse} from \"isoformat\";\nimport {color, descending, range as rangei, quantile} from \"d3\";\nimport {maybeTimeInterval, maybeUtcInterval} from \"./time.js\";\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray\nexport const TypedArray = Object.getPrototypeOf(Uint8Array);\nconst objectToString = Object.prototype.toString;\n\nexport function valueof(data, value, type) {\n const valueType = typeof value;\n return valueType === \"string\"\n ? maybeTypedMap(data, field(value), type)\n : valueType === \"function\"\n ? maybeTypedMap(data, value, type)\n : valueType === \"number\" || value instanceof Date || valueType === \"boolean\"\n ? map(data, constant(value), type)\n : typeof value?.transform === \"function\"\n ? maybeTypedArrayify(value.transform(data), type)\n : maybeTypedArrayify(value, type);\n}\n\nfunction maybeTypedMap(data, f, type) {\n return map(data, type?.prototype instanceof TypedArray ? floater(f) : f, type);\n}\n\nfunction maybeTypedArrayify(data, type) {\n return type === undefined\n ? arrayify(data) // preserve undefined type\n : data instanceof type\n ? data\n : type.prototype instanceof TypedArray && !(data instanceof TypedArray)\n ? type.from(data, coerceNumber)\n : type.from(data);\n}\n\nfunction floater(f) {\n return (d, i) => coerceNumber(f(d, i));\n}\n\nexport const field = (name) => (d) => d[name];\nexport const indexOf = {transform: range};\nexport const identity = {transform: (d) => d};\nexport const zero = () => 0;\nexport const one = () => 1;\nexport const yes = () => true;\nexport const string = (x) => (x == null ? x : `${x}`);\nexport const number = (x) => (x == null ? x : +x);\nexport const boolean = (x) => (x == null ? x : !!x);\nexport const first = (x) => (x ? x[0] : undefined);\nexport const second = (x) => (x ? x[1] : undefined);\nexport const third = (x) => (x ? x[2] : undefined);\nexport const constant = (x) => () => x;\n\n// Converts a string like “p25†into a function that takes an index I and an\n// accessor function f, returning the corresponding percentile value.\nexport function percentile(reduce) {\n const p = +`${reduce}`.slice(1) / 100;\n return (I, f) => quantile(I, p, f);\n}\n\n// If the values are specified as a typed array, no coercion is required.\nexport function coerceNumbers(values) {\n return values instanceof TypedArray ? values : map(values, coerceNumber, Float64Array);\n}\n\n// Unlike Mark’s number, here we want to convert null and undefined to NaN since\n// the result will be stored in a Float64Array and we don’t want null to be\n// coerced to zero. We use Number instead of unary + to allow BigInt coercion.\nfunction coerceNumber(x) {\n return x == null ? NaN : Number(x);\n}\n\nexport function coerceDates(values) {\n return map(values, coerceDate);\n}\n\n// When coercing strings to dates, we only want to allow the ISO 8601 format\n// since the built-in string parsing of the Date constructor varies across\n// browsers. (In the future, this could be made more liberal if desired, though\n// it is still generally preferable to do date parsing yourself explicitly,\n// rather than rely on Plot.) Any non-string values are coerced to number first\n// and treated as milliseconds since UNIX epoch.\nexport function coerceDate(x) {\n return x instanceof Date && !isNaN(x)\n ? x\n : typeof x === \"string\"\n ? isoParse(x)\n : x == null || isNaN((x = +x))\n ? undefined\n : new Date(x);\n}\n\n// Some channels may allow a string constant to be specified; to differentiate\n// string constants (e.g., \"red\") from named fields (e.g., \"date\"), this\n// function tests whether the given value is a CSS color string and returns a\n// tuple [channel, constant] where one of the two is undefined, and the other is\n// the given value. If you wish to reference a named field that is also a valid\n// CSS color, use an accessor (d => d.red) instead.\nexport function maybeColorChannel(value, defaultValue) {\n if (value === undefined) value = defaultValue;\n return value === null ? [undefined, \"none\"] : isColor(value) ? [undefined, value] : [value, undefined];\n}\n\n// Similar to maybeColorChannel, this tests whether the given value is a number\n// indicating a constant, and otherwise assumes that it’s a channel value.\nexport function maybeNumberChannel(value, defaultValue) {\n if (value === undefined) value = defaultValue;\n return value === null || typeof value === \"number\" ? [undefined, value] : [value, undefined];\n}\n\n// Validates the specified optional string against the allowed list of keywords.\nexport function maybeKeyword(input, name, allowed) {\n if (input != null) return keyword(input, name, allowed);\n}\n\n// Validates the specified required string against the allowed list of keywords.\nexport function keyword(input, name, allowed) {\n const i = `${input}`.toLowerCase();\n if (!allowed.includes(i)) throw new Error(`invalid ${name}: ${input}`);\n return i;\n}\n\n// Promotes the specified data to an array as needed.\nexport function arrayify(data) {\n return data == null || data instanceof Array || data instanceof TypedArray ? data : Array.from(data);\n}\n\n// An optimization of type.from(values, f): if the given values are already an\n// instanceof the desired array type, the faster values.map method is used.\nexport function map(values, f, type = Array) {\n return values == null ? values : values instanceof type ? values.map(f) : type.from(values, f);\n}\n\n// An optimization of type.from(values): if the given values are already an\n// instanceof the desired array type, the faster values.slice method is used.\nexport function slice(values, type = Array) {\n return values instanceof type ? values.slice() : type.from(values);\n}\n\n// Disambiguates an options object (e.g., {y: \"x2\"}) from a primitive value.\nexport function isObject(option) {\n return option?.toString === objectToString;\n}\n\n// Disambiguates a scale options object (e.g., {color: {type: \"linear\"}}) from\n// some other option (e.g., {color: \"red\"}). When creating standalone legends,\n// this is used to test whether a scale is defined; this should be consistent\n// with inferScaleType when there are no channels associated with the scale, and\n// if this returns true, then normalizeScale must return non-null.\nexport function isScaleOptions(option) {\n return isObject(option) && (option.type !== undefined || option.domain !== undefined);\n}\n\n// Disambiguates an options object (e.g., {y: \"x2\"}) from a channel value\n// definition expressed as a channel transform (e.g., {transform: …}).\nexport function isOptions(option) {\n return isObject(option) && typeof option.transform !== \"function\";\n}\n\n// Disambiguates a sort transform (e.g., {sort: \"date\"}) from a channel domain\n// sort definition (e.g., {sort: {y: \"x\"}}).\nexport function isDomainSort(sort) {\n return isOptions(sort) && sort.value === undefined && sort.channel === undefined;\n}\n\n// For marks specified either as [0, x] or [x1, x2], such as areas and bars.\nexport function maybeZero(x, x1, x2, x3 = identity) {\n if (x1 === undefined && x2 === undefined) {\n // {x} or {}\n (x1 = 0), (x2 = x === undefined ? x3 : x);\n } else if (x1 === undefined) {\n // {x, x2} or {x2}\n x1 = x === undefined ? 0 : x;\n } else if (x2 === undefined) {\n // {x, x1} or {x1}\n x2 = x === undefined ? 0 : x;\n }\n return [x1, x2];\n}\n\n// For marks that have x and y channels (e.g., cell, dot, line, text).\nexport function maybeTuple(x, y) {\n return x === undefined && y === undefined ? [first, second] : [x, y];\n}\n\n// A helper for extracting the z channel, if it is variable. Used by transforms\n// that require series, such as moving average and normalize.\nexport function maybeZ({z, fill, stroke} = {}) {\n if (z === undefined) [z] = maybeColorChannel(fill);\n if (z === undefined) [z] = maybeColorChannel(stroke);\n return z;\n}\n\n// Returns a Uint32Array with elements [0, 1, 2, … data.length - 1].\nexport function range(data) {\n const n = data.length;\n const r = new Uint32Array(n);\n for (let i = 0; i < n; ++i) r[i] = i;\n return r;\n}\n\n// Returns a filtered range of data given the test function.\nexport function where(data, test) {\n return range(data).filter((i) => test(data[i], i, data));\n}\n\n// Returns an array [values[index[0]], values[index[1]], …].\nexport function take(values, index) {\n return map(index, (i) => values[i]);\n}\n\n// Based on InternMap (d3.group).\nexport function keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n\nexport function maybeInput(key, options) {\n if (options[key] !== undefined) return options[key];\n switch (key) {\n case \"x1\":\n case \"x2\":\n key = \"x\";\n break;\n case \"y1\":\n case \"y2\":\n key = \"y\";\n break;\n }\n return options[key];\n}\n\nexport function column(source) {\n // Defines a column whose values are lazily populated by calling the returned\n // setter. If the given source is labeled, the label is propagated to the\n // returned column definition.\n let value;\n return [\n {\n transform: () => value,\n label: labelof(source)\n },\n (v) => (value = v)\n ];\n}\n\n// Like column, but allows the source to be null.\nexport function maybeColumn(source) {\n return source == null ? [source] : column(source);\n}\n\nexport function labelof(value, defaultValue) {\n return typeof value === \"string\" ? value : value && value.label !== undefined ? value.label : defaultValue;\n}\n\n// Assuming that both x1 and x2 and lazy columns (per above), this derives a new\n// a column that’s the average of the two, and which inherits the column label\n// (if any). Both input columns are assumed to be quantitative. If either column\n// is temporal, the returned column is also temporal.\nexport function mid(x1, x2) {\n return {\n transform(data) {\n const X1 = x1.transform(data);\n const X2 = x2.transform(data);\n return isTemporal(X1) || isTemporal(X2)\n ? map(X1, (_, i) => new Date((+X1[i] + +X2[i]) / 2))\n : map(X1, (_, i) => (+X1[i] + +X2[i]) / 2, Float64Array);\n },\n label: x1.label\n };\n}\n\n// If interval is not nullish, converts interval shorthand such as a number (for\n// multiples) or a time interval name (such as “dayâ€) to a {floor, offset,\n// range} object similar to a D3 time interval.\nexport function maybeInterval(interval, type) {\n if (interval == null) return;\n if (typeof interval === \"number\") {\n if (0 < interval && interval < 1 && Number.isInteger(1 / interval)) interval = -1 / interval;\n const n = Math.abs(interval);\n return interval < 0\n ? {\n floor: (d) => Math.floor(d * n) / n,\n offset: (d) => (d * n + 1) / n, // note: no optional step for simplicity\n range: (lo, hi) => rangei(Math.ceil(lo * n), hi * n).map((x) => x / n)\n }\n : {\n floor: (d) => Math.floor(d / n) * n,\n offset: (d) => d + n, // note: no optional step for simplicity\n range: (lo, hi) => rangei(Math.ceil(lo / n), hi / n).map((x) => x * n)\n };\n }\n if (typeof interval === \"string\") return (type === \"time\" ? maybeTimeInterval : maybeUtcInterval)(interval);\n if (typeof interval.floor !== \"function\") throw new Error(\"invalid interval; missing floor method\");\n if (typeof interval.offset !== \"function\") throw new Error(\"invalid interval; missing offset method\");\n return interval;\n}\n\n// Like maybeInterval, but requires a range method too.\nexport function maybeRangeInterval(interval, type) {\n interval = maybeInterval(interval, type);\n if (interval && typeof interval.range !== \"function\") throw new Error(\"invalid interval: missing range method\");\n return interval;\n}\n\n// Like maybeRangeInterval, but requires a ceil method too.\nexport function maybeNiceInterval(interval, type) {\n interval = maybeRangeInterval(interval, type);\n if (interval && typeof interval.ceil !== \"function\") throw new Error(\"invalid interval: missing ceil method\");\n return interval;\n}\n\n// This distinguishes between per-dimension options and a standalone value.\nexport function maybeValue(value) {\n return value === undefined || isOptions(value) ? value : {value};\n}\n\n// Coerces the given channel values (if any) to numbers. This is useful when\n// values will be interpolated into other code, such as an SVG transform, and\n// where we don’t wish to allow unexpected behavior for weird input.\nexport function numberChannel(source) {\n return source == null\n ? null\n : {\n transform: (data) => valueof(data, source, Float64Array),\n label: labelof(source)\n };\n}\n\nexport function isTuples(data) {\n if (!isIterable(data)) return false;\n for (const d of data) {\n if (d == null) continue;\n return typeof d === \"object\" && \"0\" in d && \"1\" in d;\n }\n}\n\nexport function isIterable(value) {\n return value && typeof value[Symbol.iterator] === \"function\";\n}\n\nexport function isTextual(values) {\n for (const value of values) {\n if (value == null) continue;\n return typeof value !== \"object\" || value instanceof Date;\n }\n}\n\nexport function isOrdinal(values) {\n for (const value of values) {\n if (value == null) continue;\n const type = typeof value;\n return type === \"string\" || type === \"boolean\";\n }\n}\n\nexport function isTemporal(values) {\n for (const value of values) {\n if (value == null) continue;\n return value instanceof Date;\n }\n}\n\n// Are these strings that might represent dates? This is stricter than ISO 8601\n// because we want to ignore false positives on numbers; for example, the string\n// \"1192\" is more likely to represent a number than a date even though it is\n// valid ISO 8601 representing 1192-01-01.\nexport function isTemporalString(values) {\n for (const value of values) {\n if (value == null) continue;\n return typeof value === \"string\" && isNaN(value) && isoParse(value);\n }\n}\n\n// Are these strings that might represent numbers? This is stricter than\n// coercion because we want to ignore false positives on e.g. empty strings.\nexport function isNumericString(values) {\n for (const value of values) {\n if (value == null) continue;\n if (typeof value !== \"string\") return false;\n if (!value.trim()) continue;\n return !isNaN(value);\n }\n}\n\nexport function isNumeric(values) {\n for (const value of values) {\n if (value == null) continue;\n return typeof value === \"number\";\n }\n}\n\n// Returns true if every non-null value in the specified iterable of values\n// passes the specified predicate, and there is at least one non-null value;\n// returns false if at least one non-null value does not pass the specified\n// predicate; otherwise returns undefined (as if all values are null).\nexport function isEvery(values, is) {\n let every;\n for (const value of values) {\n if (value == null) continue;\n if (!is(value)) return false;\n every = true;\n }\n return every;\n}\n\n// Mostly relies on d3-color, with a few extra color keywords. Currently this\n// strictly requires that the value be a string; we might want to apply string\n// coercion here, though note that d3-color instances would need to support\n// valueOf to work correctly with InternMap.\n// https://www.w3.org/TR/SVG11/painting.html#SpecifyingPaint\nexport function isColor(value) {\n if (typeof value !== \"string\") return false;\n value = value.toLowerCase().trim();\n return (\n value === \"none\" ||\n value === \"currentcolor\" ||\n (value.startsWith(\"url(\") && value.endsWith(\")\")) || // <funciri>, e.g. pattern or gradient\n (value.startsWith(\"var(\") && value.endsWith(\")\")) || // CSS variable\n color(value) !== null\n );\n}\n\nexport function isOpacity(value) {\n return typeof value === \"number\" && ((0 <= value && value <= 1) || isNaN(value));\n}\n\nexport function isNoneish(value) {\n return value == null || isNone(value);\n}\n\nexport function isNone(value) {\n return /^\\s*none\\s*$/i.test(value);\n}\n\nexport function isRound(value) {\n return /^\\s*round\\s*$/i.test(value);\n}\n\nexport function maybeFrameAnchor(value = \"middle\") {\n return keyword(value, \"frameAnchor\", [\n \"middle\",\n \"top-left\",\n \"top\",\n \"top-right\",\n \"right\",\n \"bottom-right\",\n \"bottom\",\n \"bottom-left\",\n \"left\"\n ]);\n}\n\n// Like a sort comparator, returns a positive value if the given array of values\n// is in ascending order, a negative value if the values are in descending\n// order. Assumes monotonicity; only tests the first and last values.\nexport function orderof(values) {\n if (values == null) return;\n const first = values[0];\n const last = values[values.length - 1];\n return descending(first, last);\n}\n\n// Unlike {...defaults, ...options}, this ensures that any undefined (but\n// present) properties in options inherit the given default value.\nexport function inherit(options = {}, ...rest) {\n let o = options;\n for (const defaults of rest) {\n for (const key in defaults) {\n if (o[key] === undefined) {\n const value = defaults[key];\n if (o === options) o = {...o, [key]: value};\n else o[key] = value;\n }\n }\n }\n return o;\n}\n\n// Given an iterable of named things (objects with a name property), returns a\n// corresponding object with properties associated with the given name.\nexport function named(things) {\n console.warn(\"named iterables are deprecated; please use an object instead\");\n const names = new Set();\n return Object.fromEntries(\n Array.from(things, (thing) => {\n const {name} = thing;\n if (name == null) throw new Error(\"missing name\");\n const key = `${name}`;\n if (key === \"__proto__\") throw new Error(`illegal name: ${key}`);\n if (names.has(key)) throw new Error(`duplicate name: ${key}`);\n names.add(key);\n return [name, thing];\n })\n );\n}\n\nexport function maybeNamed(things) {\n return isIterable(things) ? named(things) : things;\n}\n","// Positional scales have associated axes, and for ordinal data, a point or band\n// scale is used instead of an ordinal scale.\nexport const position = Symbol(\"position\");\n\n// Color scales default to the turbo interpolator for quantitative data, and to\n// the Tableau10 scheme for ordinal data. Color scales may also have an\n// associated legend.\nexport const color = Symbol(\"color\");\n\n// Radius scales default to the sqrt type, have a default range of [0, 3], and a\n// default domain from 0 to the median first quartile of associated channels.\nexport const radius = Symbol(\"radius\");\n\n// Length scales default to the linear type, have a default range of [0, 12],\n// and a default domain from 0 to the median median of associated channels.\nexport const length = Symbol(\"length\");\n\n// Opacity scales have a default range of [0, 1], and a default domain from 0 to\n// the maximum value of associated channels.\nexport const opacity = Symbol(\"opacity\");\n\n// Symbol scales have a default range of categorical symbols.\nexport const symbol = Symbol(\"symbol\");\n\n// TODO Rather than hard-coding the list of known scale names, collect the names\n// and categories for each plot specification, so that custom marks can register\n// custom scales.\nexport const registry = new Map([\n [\"x\", position],\n [\"y\", position],\n [\"fx\", position],\n [\"fy\", position],\n [\"r\", radius],\n [\"color\", color],\n [\"opacity\", opacity],\n [\"symbol\", symbol],\n [\"length\", length]\n]);\n","import {symbolAsterisk, symbolDiamond2, symbolPlus, symbolSquare2, symbolTriangle2, symbolTimes} from \"d3\";\nimport {symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye} from \"d3\";\n\nexport const sqrt3 = Math.sqrt(3);\nexport const sqrt4_3 = 2 / sqrt3;\n\nconst symbolHexagon = {\n draw(context, size) {\n const rx = Math.sqrt(size / Math.PI),\n ry = rx * sqrt4_3,\n hy = ry / 2;\n context.moveTo(0, ry);\n context.lineTo(rx, hy);\n context.lineTo(rx, -hy);\n context.lineTo(0, -ry);\n context.lineTo(-rx, -hy);\n context.lineTo(-rx, hy);\n context.closePath();\n }\n};\n\nconst symbols = new Map([\n [\"asterisk\", symbolAsterisk],\n [\"circle\", symbolCircle],\n [\"cross\", symbolCross],\n [\"diamond\", symbolDiamond],\n [\"diamond2\", symbolDiamond2],\n [\"hexagon\", symbolHexagon],\n [\"plus\", symbolPlus],\n [\"square\", symbolSquare],\n [\"square2\", symbolSquare2],\n [\"star\", symbolStar],\n [\"times\", symbolTimes],\n [\"triangle\", symbolTriangle],\n [\"triangle2\", symbolTriangle2],\n [\"wye\", symbolWye]\n]);\n\nfunction isSymbolObject(value) {\n return value && typeof value.draw === \"function\";\n}\n\nexport function isSymbol(value) {\n if (isSymbolObject(value)) return true;\n if (typeof value !== \"string\") return false;\n return symbols.has(value.toLowerCase());\n}\n\nexport function maybeSymbol(symbol) {\n if (symbol == null || isSymbolObject(symbol)) return symbol;\n const value = symbols.get(`${symbol}`.toLowerCase());\n if (value) return value;\n throw new Error(`invalid symbol: ${symbol}`);\n}\n\nexport function maybeSymbolChannel(symbol) {\n if (symbol == null || isSymbolObject(symbol)) return [undefined, symbol];\n if (typeof symbol === \"string\") {\n const value = symbols.get(`${symbol}`.toLowerCase());\n if (value) return [undefined, value];\n }\n return [symbol, undefined];\n}\n","let warnings = 0;\n\nexport function consumeWarnings() {\n const w = warnings;\n warnings = 0;\n return w;\n}\n\nexport function warn(message) {\n console.warn(message);\n ++warnings;\n}\n","import {\n geoAlbers,\n geoAlbersUsa,\n geoAzimuthalEqualArea,\n geoAzimuthalEquidistant,\n geoClipRectangle,\n geoConicConformal,\n geoConicEqualArea,\n geoConicEquidistant,\n geoEqualEarth,\n geoEquirectangular,\n geoGnomonic,\n geoMercator,\n geoOrthographic,\n geoPath,\n geoStereographic,\n geoTransform,\n geoTransverseMercator\n} from \"d3\";\nimport {valueObject} from \"./channel.js\";\nimport {coerceNumbers, constant, isObject} from \"./options.js\";\nimport {warn} from \"./warnings.js\";\n\nconst pi = Math.PI;\nconst tau = 2 * pi;\nconst defaultAspectRatio = 0.618;\n\nexport function createProjection(\n {\n projection,\n inset: globalInset = 0,\n insetTop = globalInset,\n insetRight = globalInset,\n insetBottom = globalInset,\n insetLeft = globalInset\n } = {},\n dimensions\n) {\n if (projection == null) return;\n if (typeof projection.stream === \"function\") return projection; // d3 projection\n let options;\n let domain;\n let clip = \"frame\";\n\n // If the projection was specified as an object with additional options,\n // extract those. The order of precedence for insetTop (and other insets) is:\n // projection.insetTop, projection.inset, (global) insetTop, (global) inset.\n // Any other options on this object will be passed through to the initializer.\n if (isObject(projection)) {\n let inset;\n ({\n type: projection,\n domain,\n inset,\n insetTop = inset !== undefined ? inset : insetTop,\n insetRight = inset !== undefined ? inset : insetRight,\n insetBottom = inset !== undefined ? inset : insetBottom,\n insetLeft = inset !== undefined ? inset : insetLeft,\n clip = clip,\n ...options\n } = projection);\n if (projection == null) return;\n }\n\n // For named projections, retrieve the corresponding projection initializer.\n if (typeof projection !== \"function\") ({type: projection} = namedProjection(projection));\n\n // Compute the frame dimensions and invoke the projection initializer.\n const {width, height, marginLeft, marginRight, marginTop, marginBottom} = dimensions;\n const dx = width - marginLeft - marginRight - insetLeft - insetRight;\n const dy = height - marginTop - marginBottom - insetTop - insetBottom;\n projection = projection?.({width: dx, height: dy, clip, ...options});\n\n // The projection initializer might decide to not use a projection.\n if (projection == null) return;\n clip = maybePostClip(clip, marginLeft, marginTop, width - marginRight, height - marginBottom);\n\n // Translate the origin to the top-left corner, respecting margins and insets.\n let tx = marginLeft + insetLeft;\n let ty = marginTop + insetTop;\n let transform;\n\n // If a domain is specified, fit the projection to the frame.\n if (domain != null) {\n const [[x0, y0], [x1, y1]] = geoPath(projection).bounds(domain);\n const k = Math.min(dx / (x1 - x0), dy / (y1 - y0));\n if (k > 0) {\n tx -= (k * (x0 + x1) - dx) / 2;\n ty -= (k * (y0 + y1) - dy) / 2;\n transform = geoTransform({\n point(x, y) {\n this.stream.point(x * k + tx, y * k + ty);\n }\n });\n } else {\n warn(`Warning: the projection could not be fit to the specified domain; using the default scale.`);\n }\n }\n\n transform ??=\n tx === 0 && ty === 0\n ? identity()\n : geoTransform({\n point(x, y) {\n this.stream.point(x + tx, y + ty);\n }\n });\n\n return {stream: (s) => projection.stream(transform.stream(clip(s)))};\n}\n\nfunction namedProjection(projection) {\n switch (`${projection}`.toLowerCase()) {\n case \"albers-usa\":\n return scaleProjection(geoAlbersUsa, 0.7463, 0.4673);\n case \"albers\":\n return conicProjection(geoAlbers, 0.7463, 0.4673);\n case \"azimuthal-equal-area\":\n return scaleProjection(geoAzimuthalEqualArea, 4, 4);\n case \"azimuthal-equidistant\":\n return scaleProjection(geoAzimuthalEquidistant, tau, tau);\n case \"conic-conformal\":\n return conicProjection(geoConicConformal, tau, tau);\n case \"conic-equal-area\":\n return conicProjection(geoConicEqualArea, 6.1702, 2.9781);\n case \"conic-equidistant\":\n return conicProjection(geoConicEquidistant, 7.312, 3.6282);\n case \"equal-earth\":\n return scaleProjection(geoEqualEarth, 5.4133, 2.6347);\n case \"equirectangular\":\n return scaleProjection(geoEquirectangular, tau, pi);\n case \"gnomonic\":\n return scaleProjection(geoGnomonic, 3.4641, 3.4641);\n case \"identity\":\n return {type: identity};\n case \"reflect-y\":\n return {type: reflectY};\n case \"mercator\":\n return scaleProjection(geoMercator, tau, tau);\n case \"orthographic\":\n return scaleProjection(geoOrthographic, 2, 2);\n case \"stereographic\":\n return scaleProjection(geoStereographic, 2, 2);\n case \"transverse-mercator\":\n return scaleProjection(geoTransverseMercator, tau, tau);\n default:\n throw new Error(`unknown projection type: ${projection}`);\n }\n}\n\nfunction maybePostClip(clip, x1, y1, x2, y2) {\n if (clip === false || clip == null || typeof clip === \"number\") return (s) => s;\n if (clip === true) clip = \"frame\";\n switch (`${clip}`.toLowerCase()) {\n case \"frame\":\n return geoClipRectangle(x1, y1, x2, y2);\n default:\n throw new Error(`unknown projection clip type: ${clip}`);\n }\n}\n\nfunction scaleProjection(createProjection, kx, ky) {\n return {\n type: ({width, height, rotate, precision = 0.15, clip}) => {\n const projection = createProjection();\n if (precision != null) projection.precision?.(precision);\n if (rotate != null) projection.rotate?.(rotate);\n if (typeof clip === \"number\") projection.clipAngle?.(clip);\n projection.scale(Math.min(width / kx, height / ky));\n projection.translate([width / 2, height / 2]);\n return projection;\n },\n aspectRatio: ky / kx\n };\n}\n\nfunction conicProjection(createProjection, kx, ky) {\n const {type, aspectRatio} = scaleProjection(createProjection, kx, ky);\n return {\n type: (options) => {\n const {parallels, domain, width, height} = options;\n const projection = type(options);\n if (parallels != null) {\n projection.parallels(parallels);\n if (domain === undefined) {\n projection.fitSize([width, height], {type: \"Sphere\"});\n }\n }\n return projection;\n },\n aspectRatio\n };\n}\n\nconst identity = constant({stream: (stream) => stream});\n\nconst reflectY = constant(\n geoTransform({\n point(x, y) {\n this.stream.point(x, -y);\n }\n })\n);\n\n// Applies a point-wise projection to the given paired x and y channels.\n// Note: mutates values!\nexport function maybeProject(cx, cy, channels, values, context) {\n const x = channels[cx] && channels[cx].scale === \"x\";\n const y = channels[cy] && channels[cy].scale === \"y\";\n if (x && y) {\n project(cx, cy, values, context.projection);\n } else if (x) {\n throw new Error(`projection requires paired x and y channels; ${cx} is missing ${cy}`);\n } else if (y) {\n throw new Error(`projection requires paired x and y channels; ${cy} is missing ${cx}`);\n }\n}\n\nfunction project(cx, cy, values, projection) {\n const x = values[cx];\n const y = values[cy];\n const n = x.length;\n const X = (values[cx] = new Float64Array(n).fill(NaN));\n const Y = (values[cy] = new Float64Array(n).fill(NaN));\n let i;\n const stream = projection.stream({\n point(x, y) {\n X[i] = x;\n Y[i] = y;\n }\n });\n for (i = 0; i < n; ++i) {\n stream.point(x[i], y[i]);\n }\n}\n\n// When a named projection is specified, we can use its natural aspect ratio to\n// determine a good value for the projection’s height based on the desired\n// width. When we don’t have a way to know, the golden ratio is our best guess.\n// Due to a circular dependency (we need to know the height before we can\n// construct the projection), we have to test the raw projection option rather\n// than the materialized projection; therefore we must be extremely careful that\n// the logic of this function exactly matches Projection above!\nexport function projectionAspectRatio(projection, marks) {\n if (typeof projection?.stream === \"function\") return defaultAspectRatio;\n if (isObject(projection)) projection = projection.type;\n if (projection == null) return hasGeometry(marks) ? defaultAspectRatio : undefined;\n if (typeof projection !== \"function\") {\n const {aspectRatio} = namedProjection(projection);\n if (aspectRatio) return aspectRatio;\n }\n return defaultAspectRatio;\n}\n\n// Extract the (possibly) scaled values for the x and y channels, and apply the\n// projection if any.\nexport function applyPosition(channels, scales, context) {\n const {x, y} = channels;\n let position = {};\n if (x) position.x = x;\n if (y) position.y = y;\n position = valueObject(position, scales);\n if (context.projection) maybeProject(\"x\", \"y\", channels, position, context);\n if (x) position.x = coerceNumbers(position.x);\n if (y) position.y = coerceNumbers(position.y);\n return position;\n}\n\nfunction hasGeometry(marks) {\n for (const mark of marks) if (mark.channels.geometry) return true;\n return false;\n}\n","import {creator, select} from \"d3\";\nimport {createProjection} from \"./projection.js\";\n\nexport function createContext(options = {}, dimensions, className) {\n const {document = typeof window !== \"undefined\" ? window.document : undefined} = options;\n return {document, className, projection: createProjection(options, dimensions)};\n}\n\nexport function create(name, {document}) {\n return select(creator(name).call(document.documentElement));\n}\n","import {\n interpolateBlues,\n interpolateBrBG,\n interpolateBuGn,\n interpolateBuPu,\n interpolateGnBu,\n interpolateGreens,\n interpolateGreys,\n interpolateOranges,\n interpolateOrRd,\n interpolatePiYG,\n interpolatePRGn,\n interpolatePuBu,\n interpolatePuBuGn,\n interpolatePuOr,\n interpolatePuRd,\n interpolatePurples,\n interpolateRdBu,\n interpolateRdGy,\n interpolateRdPu,\n interpolateRdYlBu,\n interpolateRdYlGn,\n interpolateReds,\n interpolateSpectral,\n interpolateYlGn,\n interpolateYlGnBu,\n interpolateYlOrBr,\n interpolateYlOrRd,\n interpolateTurbo,\n interpolateViridis,\n interpolateMagma,\n interpolateInferno,\n interpolatePlasma,\n interpolateCividis,\n interpolateCubehelixDefault,\n interpolateWarm,\n interpolateCool,\n interpolateRainbow,\n interpolateSinebow,\n quantize,\n schemeAccent,\n schemeBlues,\n schemeBrBG,\n schemeBuGn,\n schemeBuPu,\n schemeCategory10,\n schemeDark2,\n schemeGnBu,\n schemeGreens,\n schemeGreys,\n schemeOranges,\n schemeOrRd,\n schemePaired,\n schemePastel1,\n schemePastel2,\n schemePiYG,\n schemePRGn,\n schemePuBu,\n schemePuBuGn,\n schemePuOr,\n schemePuRd,\n schemePurples,\n schemeRdBu,\n schemeRdGy,\n schemeRdPu,\n schemeRdYlBu,\n schemeRdYlGn,\n schemeReds,\n schemeSet1,\n schemeSet2,\n schemeSet3,\n schemeSpectral,\n schemeTableau10,\n schemeYlGn,\n schemeYlGnBu,\n schemeYlOrBr,\n schemeYlOrRd\n} from \"d3\";\n\nconst ordinalSchemes = new Map([\n // categorical\n [\"accent\", schemeAccent],\n [\"category10\", schemeCategory10],\n [\"dark2\", schemeDark2],\n [\"paired\", schemePaired],\n [\"pastel1\", schemePastel1],\n [\"pastel2\", schemePastel2],\n [\"set1\", schemeSet1],\n [\"set2\", schemeSet2],\n [\"set3\", schemeSet3],\n [\"tableau10\", schemeTableau10],\n\n // diverging\n [\"brbg\", scheme11(schemeBrBG, interpolateBrBG)],\n [\"prgn\", scheme11(schemePRGn, interpolatePRGn)],\n [\"piyg\", scheme11(schemePiYG, interpolatePiYG)],\n [\"puor\", scheme11(schemePuOr, interpolatePuOr)],\n [\"rdbu\", scheme11(schemeRdBu, interpolateRdBu)],\n [\"rdgy\", scheme11(schemeRdGy, interpolateRdGy)],\n [\"rdylbu\", scheme11(schemeRdYlBu, interpolateRdYlBu)],\n [\"rdylgn\", scheme11(schemeRdYlGn, interpolateRdYlGn)],\n [\"spectral\", scheme11(schemeSpectral, interpolateSpectral)],\n\n // reversed diverging (for temperature data)\n [\"burd\", scheme11r(schemeRdBu, interpolateRdBu)],\n [\"buylrd\", scheme11r(schemeRdYlBu, interpolateRdYlBu)],\n\n // sequential (single-hue)\n [\"blues\", scheme9(schemeBlues, interpolateBlues)],\n [\"greens\", scheme9(schemeGreens, interpolateGreens)],\n [\"greys\", scheme9(schemeGreys, interpolateGreys)],\n [\"oranges\", scheme9(schemeOranges, interpolateOranges)],\n [\"purples\", scheme9(schemePurples, interpolatePurples)],\n [\"reds\", scheme9(schemeReds, interpolateReds)],\n\n // sequential (multi-hue)\n [\"turbo\", schemei(interpolateTurbo)],\n [\"viridis\", schemei(interpolateViridis)],\n [\"magma\", schemei(interpolateMagma)],\n [\"inferno\", schemei(interpolateInferno)],\n [\"plasma\", schemei(interpolatePlasma)],\n [\"cividis\", schemei(interpolateCividis)],\n [\"cubehelix\", schemei(interpolateCubehelixDefault)],\n [\"warm\", schemei(interpolateWarm)],\n [\"cool\", schemei(interpolateCool)],\n [\"bugn\", scheme9(schemeBuGn, interpolateBuGn)],\n [\"bupu\", scheme9(schemeBuPu, interpolateBuPu)],\n [\"gnbu\", scheme9(schemeGnBu, interpolateGnBu)],\n [\"orrd\", scheme9(schemeOrRd, interpolateOrRd)],\n [\"pubu\", scheme9(schemePuBu, interpolatePuBu)],\n [\"pubugn\", scheme9(schemePuBuGn, interpolatePuBuGn)],\n [\"purd\", scheme9(schemePuRd, interpolatePuRd)],\n [\"rdpu\", scheme9(schemeRdPu, interpolateRdPu)],\n [\"ylgn\", scheme9(schemeYlGn, interpolateYlGn)],\n [\"ylgnbu\", scheme9(schemeYlGnBu, interpolateYlGnBu)],\n [\"ylorbr\", scheme9(schemeYlOrBr, interpolateYlOrBr)],\n [\"ylorrd\", scheme9(schemeYlOrRd, interpolateYlOrRd)],\n\n // cyclical\n [\"rainbow\", schemeicyclical(interpolateRainbow)],\n [\"sinebow\", schemeicyclical(interpolateSinebow)]\n]);\n\nfunction scheme9(scheme, interpolate) {\n return ({length: n}) => {\n if (n === 1) return [scheme[3][1]]; // favor midpoint\n if (n === 2) return [scheme[3][1], scheme[3][2]]; // favor darker\n n = Math.max(3, Math.floor(n));\n return n > 9 ? quantize(interpolate, n) : scheme[n];\n };\n}\n\nfunction scheme11(scheme, interpolate) {\n return ({length: n}) => {\n if (n === 2) return [scheme[3][0], scheme[3][2]]; // favor diverging extrema\n n = Math.max(3, Math.floor(n));\n return n > 11 ? quantize(interpolate, n) : scheme[n];\n };\n}\n\nfunction scheme11r(scheme, interpolate) {\n return ({length: n}) => {\n if (n === 2) return [scheme[3][2], scheme[3][0]]; // favor diverging extrema\n n = Math.max(3, Math.floor(n));\n return n > 11 ? quantize((t) => interpolate(1 - t), n) : scheme[n].slice().reverse();\n };\n}\n\nfunction schemei(interpolate) {\n return ({length: n}) => quantize(interpolate, Math.max(2, Math.floor(n)));\n}\n\nfunction schemeicyclical(interpolate) {\n return ({length: n}) => quantize(interpolate, Math.floor(n) + 1).slice(0, -1);\n}\n\nexport function ordinalScheme(scheme) {\n const s = `${scheme}`.toLowerCase();\n if (!ordinalSchemes.has(s)) throw new Error(`unknown ordinal scheme: ${s}`);\n return ordinalSchemes.get(s);\n}\n\nexport function ordinalRange(scheme, length) {\n const s = ordinalScheme(scheme);\n const r = typeof s === \"function\" ? s({length}) : s;\n return r.length !== length ? r.slice(0, length) : r;\n}\n\n// If the specified domain contains only booleans (ignoring null and undefined),\n// returns a corresponding range where false is mapped to the low color and true\n// is mapped to the high color of the specified scheme.\nexport function maybeBooleanRange(domain, scheme = \"greys\") {\n const range = new Set();\n const [f, t] = ordinalRange(scheme, 2);\n for (const value of domain) {\n if (value == null) continue;\n if (value === true) range.add(t);\n else if (value === false) range.add(f);\n else return;\n }\n return [...range];\n}\n\nconst quantitativeSchemes = new Map([\n // diverging\n [\"brbg\", interpolateBrBG],\n [\"prgn\", interpolatePRGn],\n [\"piyg\", interpolatePiYG],\n [\"puor\", interpolatePuOr],\n [\"rdbu\", interpolateRdBu],\n [\"rdgy\", interpolateRdGy],\n [\"rdylbu\", interpolateRdYlBu],\n [\"rdylgn\", interpolateRdYlGn],\n [\"spectral\", interpolateSpectral],\n\n // reversed diverging (for temperature data)\n [\"burd\", (t) => interpolateRdBu(1 - t)],\n [\"buylrd\", (t) => interpolateRdYlBu(1 - t)],\n\n // sequential (single-hue)\n [\"blues\", interpolateBlues],\n [\"greens\", interpolateGreens],\n [\"greys\", interpolateGreys],\n [\"purples\", interpolatePurples],\n [\"reds\", interpolateReds],\n [\"oranges\", interpolateOranges],\n\n // sequential (multi-hue)\n [\"turbo\", interpolateTurbo],\n [\"viridis\", interpolateViridis],\n [\"magma\", interpolateMagma],\n [\"inferno\", interpolateInferno],\n [\"plasma\", interpolatePlasma],\n [\"cividis\", interpolateCividis],\n [\"cubehelix\", interpolateCubehelixDefault],\n [\"warm\", interpolateWarm],\n [\"cool\", interpolateCool],\n [\"bugn\", interpolateBuGn],\n [\"bupu\", interpolateBuPu],\n [\"gnbu\", interpolateGnBu],\n [\"orrd\", interpolateOrRd],\n [\"pubugn\", interpolatePuBuGn],\n [\"pubu\", interpolatePuBu],\n [\"purd\", interpolatePuRd],\n [\"rdpu\", interpolateRdPu],\n [\"ylgnbu\", interpolateYlGnBu],\n [\"ylgn\", interpolateYlGn],\n [\"ylorbr\", interpolateYlOrBr],\n [\"ylorrd\", interpolateYlOrRd],\n\n // cyclical\n [\"rainbow\", interpolateRainbow],\n [\"sinebow\", interpolateSinebow]\n]);\n\nexport function quantitativeScheme(scheme) {\n const s = `${scheme}`.toLowerCase();\n if (!quantitativeSchemes.has(s)) throw new Error(`unknown quantitative scheme: ${s}`);\n return quantitativeSchemes.get(s);\n}\n\nconst divergingSchemes = new Set([\n \"brbg\",\n \"prgn\",\n \"piyg\",\n \"puor\",\n \"rdbu\",\n \"rdgy\",\n \"rdylbu\",\n \"rdylgn\",\n \"spectral\",\n \"burd\",\n \"buylrd\"\n]);\n\nexport function isDivergingScheme(scheme) {\n return scheme != null && divergingSchemes.has(`${scheme}`.toLowerCase());\n}\n","import {\n descending,\n extent,\n interpolateHcl,\n interpolateHsl,\n interpolateLab,\n interpolateNumber,\n interpolateRgb,\n interpolateRound,\n min,\n max,\n median,\n quantile,\n quantize,\n reverse as reverseof,\n scaleLinear,\n scaleLog,\n scalePow,\n scaleQuantile,\n scaleSymlog,\n scaleThreshold,\n scaleIdentity,\n ticks\n} from \"d3\";\nimport {positive, negative, finite} from \"../defined.js\";\nimport {arrayify, constant, orderof, slice, maybeNiceInterval, maybeRangeInterval} from \"../options.js\";\nimport {ordinalRange, quantitativeScheme} from \"./schemes.js\";\nimport {registry, radius, opacity, color, length} from \"./index.js\";\n\nexport const flip = (i) => (t) => i(1 - t);\nconst unit = [0, 1];\n\nconst interpolators = new Map([\n // numbers\n [\"number\", interpolateNumber],\n\n // color spaces\n [\"rgb\", interpolateRgb],\n [\"hsl\", interpolateHsl],\n [\"hcl\", interpolateHcl],\n [\"lab\", interpolateLab]\n]);\n\nexport function maybeInterpolator(interpolate) {\n const i = `${interpolate}`.toLowerCase();\n if (!interpolators.has(i)) throw new Error(`unknown interpolator: ${i}`);\n return interpolators.get(i);\n}\n\nexport function createScaleQ(\n key,\n scale,\n channels,\n {\n type,\n nice,\n clamp,\n zero,\n domain = inferAutoDomain(key, channels),\n unknown,\n round,\n scheme,\n interval,\n range = registry.get(key) === radius\n ? inferRadialRange(channels, domain)\n : registry.get(key) === length\n ? inferLengthRange(channels, domain)\n : registry.get(key) === opacity\n ? unit\n : undefined,\n interpolate = registry.get(key) === color\n ? scheme == null && range !== undefined\n ? interpolateRgb\n : quantitativeScheme(scheme !== undefined ? scheme : type === \"cyclical\" ? \"rainbow\" : \"turbo\")\n : round\n ? interpolateRound\n : interpolateNumber,\n reverse\n }\n) {\n interval = maybeRangeInterval(interval, type);\n if (type === \"cyclical\" || type === \"sequential\") type = \"linear\"; // shorthand for color schemes\n reverse = !!reverse;\n\n // Sometimes interpolate is a named interpolator, such as \"lab\" for Lab color\n // space. Other times interpolate is a function that takes two arguments and\n // is used in conjunction with the range. And other times the interpolate\n // function is a “fixed†interpolator on the [0, 1] interval, as when a\n // color scheme such as interpolateRdBu is used.\n if (typeof interpolate !== \"function\") {\n interpolate = maybeInterpolator(interpolate);\n }\n if (interpolate.length === 1) {\n if (reverse) {\n interpolate = flip(interpolate);\n reverse = false;\n }\n if (range === undefined) {\n range = Float64Array.from(domain, (_, i) => i / (domain.length - 1));\n if (range.length === 2) range = unit; // optimize common case of [0, 1]\n }\n scale.interpolate((range === unit ? constant : interpolatePiecewise)(interpolate));\n } else {\n scale.interpolate(interpolate);\n }\n\n // If a zero option is specified, we assume that the domain is numeric, and we\n // want to ensure that the domain crosses zero. However, note that the domain\n // may be reversed (descending) so we shouldn’t assume that the first value is\n // smaller than the last; and also it’s possible that the domain has more than\n // two values for a “poly†scale. And lastly be careful not to mutate input!\n if (zero) {\n const [min, max] = extent(domain);\n if (min > 0 || max < 0) {\n domain = slice(domain);\n if (orderof(domain) !== Math.sign(min)) domain[domain.length - 1] = 0;\n // [2, 1] or [-2, -1]\n else domain[0] = 0; // [1, 2] or [-1, -2]\n }\n }\n\n if (reverse) domain = reverseof(domain);\n scale.domain(domain).unknown(unknown);\n if (nice) scale.nice(maybeNice(nice, type)), (domain = scale.domain());\n if (range !== undefined) scale.range(range);\n if (clamp) scale.clamp(clamp);\n return {type, domain, range, scale, interpolate, interval};\n}\n\nfunction maybeNice(nice, type) {\n return nice === true ? undefined : typeof nice === \"number\" ? nice : maybeNiceInterval(nice, type);\n}\n\nexport function createScaleLinear(key, channels, options) {\n return createScaleQ(key, scaleLinear(), channels, options);\n}\n\nexport function createScaleSqrt(key, channels, options) {\n return createScalePow(key, channels, {...options, exponent: 0.5});\n}\n\nexport function createScalePow(key, channels, {exponent = 1, ...options}) {\n return createScaleQ(key, scalePow().exponent(exponent), channels, {...options, type: \"pow\"});\n}\n\nexport function createScaleLog(key, channels, {base = 10, domain = inferLogDomain(channels), ...options}) {\n return createScaleQ(key, scaleLog().base(base), channels, {...options, domain});\n}\n\nexport function createScaleSymlog(key, channels, {constant = 1, ...options}) {\n return createScaleQ(key, scaleSymlog().constant(constant), channels, options);\n}\n\nexport function createScaleQuantile(\n key,\n channels,\n {\n range,\n quantiles = range === undefined ? 5 : (range = [...range]).length, // deprecated; use n instead\n n = quantiles,\n scheme = \"rdylbu\",\n domain = inferQuantileDomain(channels),\n unknown,\n interpolate,\n reverse\n }\n) {\n if (range === undefined) {\n range =\n interpolate !== undefined\n ? quantize(interpolate, n)\n : registry.get(key) === color\n ? ordinalRange(scheme, n)\n : undefined;\n }\n if (domain.length > 0) {\n domain = scaleQuantile(domain, range === undefined ? {length: n} : range).quantiles();\n }\n return createScaleThreshold(key, channels, {domain, range, reverse, unknown});\n}\n\nexport function createScaleQuantize(\n key,\n channels,\n {\n range,\n n = range === undefined ? 5 : (range = [...range]).length,\n scheme = \"rdylbu\",\n domain = inferAutoDomain(key, channels),\n unknown,\n interpolate,\n reverse\n }\n) {\n const [min, max] = extent(domain);\n let thresholds;\n if (range === undefined) {\n thresholds = ticks(min, max, n); // approximate number of nice, round thresholds\n if (thresholds[0] <= min) thresholds.splice(0, 1); // drop exact lower bound\n if (thresholds[thresholds.length - 1] >= max) thresholds.pop(); // drop exact upper bound\n n = thresholds.length + 1;\n range =\n interpolate !== undefined\n ? quantize(interpolate, n)\n : registry.get(key) === color\n ? ordinalRange(scheme, n)\n : undefined;\n } else {\n thresholds = quantize(interpolateNumber(min, max), n + 1).slice(1, -1); // exactly n - 1 thresholds to match range\n if (min instanceof Date) thresholds = thresholds.map((x) => new Date(x)); // preserve date types\n }\n if (orderof(arrayify(domain)) < 0) thresholds.reverse(); // preserve descending domain\n return createScaleThreshold(key, channels, {domain: thresholds, range, reverse, unknown});\n}\n\nexport function createScaleThreshold(\n key,\n channels,\n {\n domain = [0], // explicit thresholds in ascending order\n unknown,\n scheme = \"rdylbu\",\n interpolate,\n range = interpolate !== undefined\n ? quantize(interpolate, domain.length + 1)\n : registry.get(key) === color\n ? ordinalRange(scheme, domain.length + 1)\n : undefined,\n reverse\n }\n) {\n domain = arrayify(domain);\n const sign = orderof(domain); // preserve descending domain\n if (!isNaN(sign) && !isOrdered(domain, sign)) throw new Error(`the ${key} scale has a non-monotonic domain`);\n if (reverse) range = reverseof(range); // domain ascending, so reverse range\n return {\n type: \"threshold\",\n scale: scaleThreshold(sign < 0 ? reverseof(domain) : domain, range === undefined ? [] : range).unknown(unknown),\n domain,\n range\n };\n}\n\nfunction isOrdered(domain, sign) {\n for (let i = 1, n = domain.length, d = domain[0]; i < n; ++i) {\n const s = descending(d, (d = domain[i]));\n if (s !== 0 && s !== sign) return false;\n }\n return true;\n}\n\nexport function createScaleIdentity() {\n return {type: \"identity\", scale: scaleIdentity()};\n}\n\nexport function inferDomain(channels, f = finite) {\n return channels.length\n ? [\n min(channels, ({value}) => (value === undefined ? value : min(value, f))),\n max(channels, ({value}) => (value === undefined ? value : max(value, f)))\n ]\n : [0, 1];\n}\n\nfunction inferAutoDomain(key, channels) {\n const type = registry.get(key);\n return (type === radius || type === opacity || type === length ? inferZeroDomain : inferDomain)(channels);\n}\n\nfunction inferZeroDomain(channels) {\n return [0, channels.length ? max(channels, ({value}) => (value === undefined ? value : max(value, finite))) : 1];\n}\n\n// We don’t want the upper bound of the radial domain to be zero, as this would\n// be degenerate, so we ignore nonpositive values. We also don’t want the\n// maximum default radius to exceed 30px.\nfunction inferRadialRange(channels, domain) {\n const hint = channels.find(({radius}) => radius !== undefined);\n if (hint !== undefined) return [0, hint.radius]; // a natural maximum radius, e.g. hexbins\n const h25 = quantile(channels, 0.5, ({value}) => (value === undefined ? NaN : quantile(value, 0.25, positive)));\n const range = domain.map((d) => 3 * Math.sqrt(d / h25));\n const k = 30 / max(range);\n return k < 1 ? range.map((r) => r * k) : range;\n}\n\n// We want a length scale’s domain to go from zero to a positive value, and to\n// treat negative lengths if any as inverted vectors of equivalent magnitude. We\n// also don’t want the maximum default length to exceed 60px.\nfunction inferLengthRange(channels, domain) {\n const h50 = median(channels, ({value}) => (value === undefined ? NaN : median(value, Math.abs)));\n const range = domain.map((d) => (12 * d) / h50);\n const k = 60 / max(range);\n return k < 1 ? range.map((r) => r * k) : range;\n}\n\nfunction inferLogDomain(channels) {\n for (const {value} of channels) {\n if (value !== undefined) {\n for (let v of value) {\n if (v > 0) return inferDomain(channels, positive);\n if (v < 0) return inferDomain(channels, negative);\n }\n }\n }\n return [1, 10];\n}\n\nfunction inferQuantileDomain(channels) {\n const domain = [];\n for (const {value} of channels) {\n if (value === undefined) continue;\n for (const v of value) domain.push(v);\n }\n return domain;\n}\n\nexport function interpolatePiecewise(interpolate) {\n return (i, j) => (t) => interpolate(i + t * (j - i));\n}\n","import {\n descending,\n interpolateNumber,\n interpolateRgb,\n piecewise,\n scaleDiverging,\n scaleDivergingLog,\n scaleDivergingPow,\n scaleDivergingSymlog\n} from \"d3\";\nimport {positive, negative} from \"../defined.js\";\nimport {quantitativeScheme} from \"./schemes.js\";\nimport {registry, color} from \"./index.js\";\nimport {inferDomain, maybeInterpolator, flip, interpolatePiecewise} from \"./quantitative.js\";\n\nfunction createScaleD(\n key,\n scale,\n transform,\n channels,\n {\n type,\n nice,\n clamp,\n domain = inferDomain(channels),\n unknown,\n pivot = 0,\n scheme,\n range,\n symmetric = true,\n interpolate = registry.get(key) === color\n ? scheme == null && range !== undefined\n ? interpolateRgb\n : quantitativeScheme(scheme !== undefined ? scheme : \"rdbu\")\n : interpolateNumber,\n reverse\n }\n) {\n pivot = +pivot;\n let [min, max] = domain;\n if (descending(min, max) < 0) ([min, max] = [max, min]), (reverse = !reverse);\n min = Math.min(min, pivot);\n max = Math.max(max, pivot);\n\n // Sometimes interpolate is a named interpolator, such as \"lab\" for Lab color\n // space. Other times interpolate is a function that takes two arguments and\n // is used in conjunction with the range. And other times the interpolate\n // function is a “fixed†interpolator on the [0, 1] interval, as when a\n // color scheme such as interpolateRdBu is used.\n if (typeof interpolate !== \"function\") {\n interpolate = maybeInterpolator(interpolate);\n }\n\n // If an explicit range is specified, promote it to a piecewise interpolator.\n if (range !== undefined) {\n interpolate =\n interpolate.length === 1 ? interpolatePiecewise(interpolate)(...range) : piecewise(interpolate, range);\n }\n\n // Reverse before normalization.\n if (reverse) interpolate = flip(interpolate);\n\n // Normalize the interpolator for symmetric difference around the pivot.\n if (symmetric) {\n const mid = transform.apply(pivot);\n const mindelta = mid - transform.apply(min);\n const maxdelta = transform.apply(max) - mid;\n if (mindelta < maxdelta) min = transform.invert(mid - maxdelta);\n else if (mindelta > maxdelta) max = transform.invert(mid + mindelta);\n }\n\n scale.domain([min, pivot, max]).unknown(unknown).interpolator(interpolate);\n if (clamp) scale.clamp(clamp);\n if (nice) scale.nice(nice);\n return {type, domain: [min, max], pivot, interpolate, scale};\n}\n\nexport function createScaleDiverging(key, channels, options) {\n return createScaleD(key, scaleDiverging(), transformIdentity, channels, options);\n}\n\nexport function createScaleDivergingSqrt(key, channels, options) {\n return createScaleDivergingPow(key, channels, {...options, exponent: 0.5});\n}\n\nexport function createScaleDivergingPow(key, channels, {exponent = 1, ...options}) {\n return createScaleD(key, scaleDivergingPow().exponent((exponent = +exponent)), transformPow(exponent), channels, {\n ...options,\n type: \"diverging-pow\"\n });\n}\n\nexport function createScaleDivergingLog(\n key,\n channels,\n {base = 10, pivot = 1, domain = inferDomain(channels, pivot < 0 ? negative : positive), ...options}\n) {\n return createScaleD(key, scaleDivergingLog().base((base = +base)), transformLog, channels, {\n domain,\n pivot,\n ...options\n });\n}\n\nexport function createScaleDivergingSymlog(key, channels, {constant = 1, ...options}) {\n return createScaleD(\n key,\n scaleDivergingSymlog().constant((constant = +constant)),\n transformSymlog(constant),\n channels,\n options\n );\n}\n\nconst transformIdentity = {\n apply(x) {\n return x;\n },\n invert(x) {\n return x;\n }\n};\n\nconst transformLog = {\n apply: Math.log,\n invert: Math.exp\n};\n\nconst transformSqrt = {\n apply(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n },\n invert(x) {\n return Math.sign(x) * (x * x);\n }\n};\n\nfunction transformPow(exponent) {\n return exponent === 0.5\n ? transformSqrt\n : {\n apply(x) {\n return Math.sign(x) * Math.pow(Math.abs(x), exponent);\n },\n invert(x) {\n return Math.sign(x) * Math.pow(Math.abs(x), 1 / exponent);\n }\n };\n}\n\nfunction transformSymlog(constant) {\n return {\n apply(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / constant));\n },\n invert(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * constant;\n }\n };\n}\n","import {scaleTime, scaleUtc} from \"d3\";\nimport {createScaleQ} from \"./quantitative.js\";\n\nfunction createScaleT(key, scale, channels, options) {\n return createScaleQ(key, scale, channels, options);\n}\n\nexport function createScaleTime(key, channels, options) {\n return createScaleT(key, scaleTime(), channels, options);\n}\n\nexport function createScaleUtc(key, channels, options) {\n return createScaleT(key, scaleUtc(), channels, options);\n}\n","import {InternSet, extent, quantize, reverse as reverseof, sort, symbolsFill, symbolsStroke} from \"d3\";\nimport {scaleBand, scaleOrdinal, scalePoint, scaleImplicit} from \"d3\";\nimport {ascendingDefined} from \"../defined.js\";\nimport {isNoneish, map, maybeRangeInterval} from \"../options.js\";\nimport {maybeSymbol} from \"../symbol.js\";\nimport {registry, color, position, symbol} from \"./index.js\";\nimport {maybeBooleanRange, ordinalScheme, quantitativeScheme} from \"./schemes.js\";\n\n// This denotes an implicitly ordinal color scale: the scale type was not set,\n// but the associated values are strings or booleans. If the associated defined\n// values are entirely boolean, the range will default to greys. You can opt out\n// of this by setting the type explicitly.\nexport const ordinalImplicit = Symbol(\"ordinal\");\n\nfunction createScaleO(key, scale, channels, {type, interval, domain, range, reverse, hint}) {\n interval = maybeRangeInterval(interval, type);\n if (domain === undefined) domain = inferDomain(channels, interval, key);\n if (type === \"categorical\" || type === ordinalImplicit) type = \"ordinal\"; // shorthand for color schemes\n if (reverse) domain = reverseof(domain);\n scale.domain(domain);\n if (range !== undefined) {\n // If the range is specified as a function, pass it the domain.\n if (typeof range === \"function\") range = range(domain);\n scale.range(range);\n }\n return {type, domain, range, scale, hint, interval};\n}\n\nexport function createScaleOrdinal(key, channels, {type, interval, domain, range, scheme, unknown, ...options}) {\n interval = maybeRangeInterval(interval, type);\n if (domain === undefined) domain = inferDomain(channels, interval, key);\n let hint;\n if (registry.get(key) === symbol) {\n hint = inferSymbolHint(channels);\n range = range === undefined ? inferSymbolRange(hint) : map(range, maybeSymbol);\n } else if (registry.get(key) === color) {\n if (range === undefined && (type === \"ordinal\" || type === ordinalImplicit)) {\n range = maybeBooleanRange(domain, scheme);\n if (range !== undefined) scheme = undefined; // Don’t re-apply scheme.\n }\n if (scheme === undefined && range === undefined) {\n scheme = type === \"ordinal\" ? \"turbo\" : \"tableau10\";\n }\n if (scheme !== undefined) {\n if (range !== undefined) {\n const interpolate = quantitativeScheme(scheme);\n const t0 = range[0],\n d = range[1] - range[0];\n range = ({length: n}) => quantize((t) => interpolate(t0 + d * t), n);\n } else {\n range = ordinalScheme(scheme);\n }\n }\n }\n if (unknown === scaleImplicit) {\n throw new Error(`implicit unknown on ${key} scale is not supported`);\n }\n return createScaleO(key, scaleOrdinal().unknown(unknown), channels, {...options, type, domain, range, hint});\n}\n\nexport function createScalePoint(key, channels, {align = 0.5, padding = 0.5, ...options}) {\n return maybeRound(scalePoint().align(align).padding(padding), channels, options, key);\n}\n\nexport function createScaleBand(\n key,\n channels,\n {\n align = 0.5,\n padding = 0.1,\n paddingInner = padding,\n paddingOuter = key === \"fx\" || key === \"fy\" ? 0 : padding,\n ...options\n }\n) {\n return maybeRound(\n scaleBand().align(align).paddingInner(paddingInner).paddingOuter(paddingOuter),\n channels,\n options,\n key\n );\n}\n\nfunction maybeRound(scale, channels, options, key) {\n let {round} = options;\n if (round !== undefined) scale.round((round = !!round));\n scale = createScaleO(key, scale, channels, options);\n scale.round = round; // preserve for autoScaleRound\n return scale;\n}\n\nfunction inferDomain(channels, interval, key) {\n const values = new InternSet();\n for (const {value, domain} of channels) {\n if (domain !== undefined) return domain(); // see channelDomain\n if (value === undefined) continue;\n for (const v of value) values.add(v);\n }\n if (interval !== undefined) {\n const [min, max] = extent(values).map(interval.floor, interval);\n return interval.range(min, interval.offset(max));\n }\n if (values.size > 10e3 && registry.get(key) === position) {\n throw new Error(`implicit ordinal domain of ${key} scale has more than 10,000 values`);\n }\n return sort(values, ascendingDefined);\n}\n\n// If all channels provide a consistent hint, propagate it to the scale.\nfunction inferHint(channels, key) {\n let value;\n for (const {hint} of channels) {\n const candidate = hint?.[key];\n if (candidate === undefined) continue; // no hint here\n if (value === undefined) value = candidate;\n // first hint\n else if (value !== candidate) return; // inconsistent hint\n }\n return value;\n}\n\nfunction inferSymbolHint(channels) {\n return {\n fill: inferHint(channels, \"fill\"),\n stroke: inferHint(channels, \"stroke\")\n };\n}\n\nfunction inferSymbolRange(hint) {\n return isNoneish(hint.fill) ? symbolsStroke : symbolsFill;\n}\n","import {\n isOrdinal,\n isTemporal,\n isTemporalString,\n isNumericString,\n isScaleOptions,\n map,\n slice,\n coerceNumbers,\n coerceDates\n} from \"./options.js\";\nimport {registry, color, position, radius, opacity, symbol, length} from \"./scales/index.js\";\nimport {\n createScaleLinear,\n createScaleSqrt,\n createScalePow,\n createScaleLog,\n createScaleSymlog,\n createScaleQuantile,\n createScaleQuantize,\n createScaleThreshold,\n createScaleIdentity\n} from \"./scales/quantitative.js\";\nimport {\n createScaleDiverging,\n createScaleDivergingSqrt,\n createScaleDivergingPow,\n createScaleDivergingLog,\n createScaleDivergingSymlog\n} from \"./scales/diverging.js\";\nimport {isDivergingScheme} from \"./scales/schemes.js\";\nimport {createScaleTime, createScaleUtc} from \"./scales/temporal.js\";\nimport {createScaleOrdinal, createScalePoint, createScaleBand, ordinalImplicit} from \"./scales/ordinal.js\";\nimport {maybeSymbol} from \"./symbol.js\";\nimport {warn} from \"./warnings.js\";\n\nexport function createScales(\n channelsByScale,\n {\n label: globalLabel,\n inset: globalInset = 0,\n insetTop: globalInsetTop = globalInset,\n insetRight: globalInsetRight = globalInset,\n insetBottom: globalInsetBottom = globalInset,\n insetLeft: globalInsetLeft = globalInset,\n round,\n nice,\n clamp,\n zero,\n align,\n padding,\n projection,\n facet: {label: facetLabel = globalLabel} = {},\n ...options\n } = {}\n) {\n const scales = {};\n for (const [key, channels] of channelsByScale) {\n const scaleOptions = options[key];\n const scale = createScale(key, channels, {\n round: registry.get(key) === position ? round : undefined, // only for position\n nice,\n clamp,\n zero,\n align,\n padding,\n projection,\n ...scaleOptions\n });\n if (scale) {\n // populate generic scale options (percent, transform, insets)\n let {\n label = key === \"fx\" || key === \"fy\" ? facetLabel : globalLabel,\n percent,\n transform,\n inset,\n insetTop = inset !== undefined ? inset : key === \"y\" ? globalInsetTop : 0, // not fy\n insetRight = inset !== undefined ? inset : key === \"x\" ? globalInsetRight : 0, // not fx\n insetBottom = inset !== undefined ? inset : key === \"y\" ? globalInsetBottom : 0, // not fy\n insetLeft = inset !== undefined ? inset : key === \"x\" ? globalInsetLeft : 0 // not fx\n } = scaleOptions || {};\n if (transform == null) transform = undefined;\n else if (typeof transform !== \"function\") throw new Error(\"invalid scale transform; not a function\");\n scale.percent = !!percent;\n scale.label = label === undefined ? inferScaleLabel(channels, scale) : label;\n scale.transform = transform;\n if (key === \"x\" || key === \"fx\") {\n scale.insetLeft = +insetLeft;\n scale.insetRight = +insetRight;\n } else if (key === \"y\" || key === \"fy\") {\n scale.insetTop = +insetTop;\n scale.insetBottom = +insetBottom;\n }\n scales[key] = scale;\n }\n }\n return scales;\n}\n\nexport function createScaleFunctions(scales) {\n return Object.fromEntries(\n Object.entries(scales)\n .filter(([, {scale}]) => scale) // drop identity scales\n .map(([name, {scale, type, interval, label}]) => {\n scale.type = type; // for axis\n if (interval != null) scale.interval = interval; // for axis\n if (label != null) scale.label = label; // for axis\n return [name, scale];\n })\n );\n}\n\n// Mutates scale.range!\nexport function autoScaleRange(scales, dimensions) {\n const {x, y, fx, fy} = scales;\n const superdimensions = fx || fy ? outerDimensions(dimensions) : dimensions;\n if (fx) autoScaleRangeX(fx, superdimensions);\n if (fy) autoScaleRangeY(fy, superdimensions);\n const subdimensions = fx || fy ? innerDimensions(scales, dimensions) : dimensions;\n if (x) autoScaleRangeX(x, subdimensions);\n if (y) autoScaleRangeY(y, subdimensions);\n}\n\n// Channels can have labels; if all the channels for a given scale are\n// consistently labeled (i.e., have the same value if not undefined), and the\n// corresponding scale doesn’t already have an explicit label, then the\n// channels’ label is promoted to the scale. This inferred label should have an\n// orientation-appropriate arrow added when used as an axis, but we don’t want\n// to add the arrow when the label is set explicitly as an option; so, the\n// inferred label is distinguished as an object with an “inferred†property.\nfunction inferScaleLabel(channels = [], scale) {\n let label;\n for (const {label: l} of channels) {\n if (l === undefined) continue;\n if (label === undefined) label = l;\n else if (label !== l) return;\n }\n if (label === undefined) return;\n // Ignore the implicit label for temporal scales if it’s simply “dateâ€.\n if (isTemporalScale(scale) && /^(date|time|year)$/i.test(label)) return;\n if (!isOrdinalScale(scale) && scale.percent) label = `${label} (%)`;\n return {inferred: true, toString: () => label};\n}\n\n// Returns the dimensions of the outer frame; this is subdivided into facets\n// with the margins of each facet collapsing into the outer margins.\nexport function outerDimensions(dimensions) {\n const {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n width,\n height,\n facet: {\n marginTop: facetMarginTop,\n marginRight: facetMarginRight,\n marginBottom: facetMarginBottom,\n marginLeft: facetMarginLeft\n }\n } = dimensions;\n return {\n marginTop: Math.max(marginTop, facetMarginTop),\n marginRight: Math.max(marginRight, facetMarginRight),\n marginBottom: Math.max(marginBottom, facetMarginBottom),\n marginLeft: Math.max(marginLeft, facetMarginLeft),\n width,\n height\n };\n}\n\n// Returns the dimensions of each facet.\nexport function innerDimensions({fx, fy}, dimensions) {\n const {marginTop, marginRight, marginBottom, marginLeft, width, height} = outerDimensions(dimensions);\n return {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n width: fx ? fx.scale.bandwidth() + marginLeft + marginRight : width,\n height: fy ? fy.scale.bandwidth() + marginTop + marginBottom : height\n };\n}\n\nfunction autoScaleRangeX(scale, dimensions) {\n if (scale.range === undefined) {\n const {insetLeft, insetRight} = scale;\n const {width, marginLeft = 0, marginRight = 0} = dimensions;\n const left = marginLeft + insetLeft;\n const right = width - marginRight - insetRight;\n scale.range = [left, Math.max(left, right)];\n if (!isOrdinalScale(scale)) scale.range = piecewiseRange(scale);\n scale.scale.range(scale.range);\n }\n autoScaleRound(scale);\n}\n\nfunction autoScaleRangeY(scale, dimensions) {\n if (scale.range === undefined) {\n const {insetTop, insetBottom} = scale;\n const {height, marginTop = 0, marginBottom = 0} = dimensions;\n const top = marginTop + insetTop;\n const bottom = height - marginBottom - insetBottom;\n scale.range = [Math.max(top, bottom), top];\n if (!isOrdinalScale(scale)) scale.range = piecewiseRange(scale);\n else scale.range.reverse();\n scale.scale.range(scale.range);\n }\n autoScaleRound(scale);\n}\n\nfunction autoScaleRound(scale) {\n if (scale.round === undefined && isBandScale(scale) && roundError(scale) <= 30) {\n scale.scale.round(true);\n }\n}\n\n// If we were to turn on rounding for this band or point scale, how much wasted\n// space would it introduce (on both ends of the range)? This must match\n// d3.scaleBand’s rounding behavior:\n// https://github.com/d3/d3-scale/blob/83555bd759c7314420bd4240642beda5e258db9e/src/band.js#L20-L32\nfunction roundError({scale}) {\n const n = scale.domain().length;\n const [start, stop] = scale.range();\n const paddingInner = scale.paddingInner ? scale.paddingInner() : 1;\n const paddingOuter = scale.paddingOuter ? scale.paddingOuter() : scale.padding();\n const m = n - paddingInner;\n const step = Math.abs(stop - start) / Math.max(1, m + paddingOuter * 2);\n return (step - Math.floor(step)) * m;\n}\n\nfunction piecewiseRange(scale) {\n const length = scale.scale.domain().length + isThresholdScale(scale);\n if (!(length > 2)) return scale.range;\n const [start, end] = scale.range;\n return Array.from({length}, (_, i) => start + (i / (length - 1)) * (end - start));\n}\n\nexport function normalizeScale(key, scale, hint) {\n return createScale(key, hint === undefined ? undefined : [{hint}], {...scale});\n}\n\nfunction createScale(key, channels = [], options = {}) {\n const type = inferScaleType(key, channels, options);\n\n // Warn for common misuses of implicit ordinal scales. We disable this test if\n // you specify a scale interval or if you set the domain or range explicitly,\n // since setting the domain or range (typically with a cardinality of more than\n // two) is another indication that you intended for the scale to be ordinal; we\n // also disable it for facet scales since these are always band scales.\n if (\n options.type === undefined &&\n options.domain === undefined &&\n options.range === undefined &&\n options.interval == null &&\n key !== \"fx\" &&\n key !== \"fy\" &&\n isOrdinalScale({type})\n ) {\n const values = channels.map(({value}) => value).filter((value) => value !== undefined);\n if (values.some(isTemporal))\n warn(\n `Warning: some data associated with the ${key} scale are dates. Dates are typically associated with a \"utc\" or \"time\" scale rather than a \"${formatScaleType(\n type\n )}\" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., d3.utcDay), or you can suppress this warning by setting the type of the ${key} scale to \"${formatScaleType(\n type\n )}\".`\n );\n else if (values.some(isTemporalString))\n warn(\n `Warning: some data associated with the ${key} scale are strings that appear to be dates (e.g., YYYY-MM-DD). If these strings represent dates, you should parse them to Date objects. Dates are typically associated with a \"utc\" or \"time\" scale rather than a \"${formatScaleType(\n type\n )}\" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can suppress this warning by setting the type of the ${key} scale to \"${formatScaleType(\n type\n )}\".`\n );\n else if (values.some(isNumericString))\n warn(\n `Warning: some data associated with the ${key} scale are strings that appear to be numbers. If these strings represent numbers, you should parse or coerce them to numbers. Numbers are typically associated with a \"linear\" scale rather than a \"${formatScaleType(\n type\n )}\" scale. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., 1 for integers), or you can suppress this warning by setting the type of the ${key} scale to \"${formatScaleType(\n type\n )}\".`\n );\n }\n\n options.type = type; // Mutates input!\n\n // Once the scale type is known, coerce the associated channel values and any\n // explicitly-specified domain to the expected type.\n switch (type) {\n case \"diverging\":\n case \"diverging-sqrt\":\n case \"diverging-pow\":\n case \"diverging-log\":\n case \"diverging-symlog\":\n case \"cyclical\":\n case \"sequential\":\n case \"linear\":\n case \"sqrt\":\n case \"threshold\":\n case \"quantile\":\n case \"pow\":\n case \"log\":\n case \"symlog\":\n options = coerceType(channels, options, coerceNumbers);\n break;\n case \"identity\":\n switch (registry.get(key)) {\n case position:\n options = coerceType(channels, options, coerceNumbers);\n break;\n case symbol:\n options = coerceType(channels, options, coerceSymbols);\n break;\n }\n break;\n case \"utc\":\n case \"time\":\n options = coerceType(channels, options, coerceDates);\n break;\n }\n\n switch (type) {\n case \"diverging\":\n return createScaleDiverging(key, channels, options);\n case \"diverging-sqrt\":\n return createScaleDivergingSqrt(key, channels, options);\n case \"diverging-pow\":\n return createScaleDivergingPow(key, channels, options);\n case \"diverging-log\":\n return createScaleDivergingLog(key, channels, options);\n case \"diverging-symlog\":\n return createScaleDivergingSymlog(key, channels, options);\n case \"categorical\":\n case \"ordinal\":\n case ordinalImplicit:\n return createScaleOrdinal(key, channels, options);\n case \"cyclical\":\n case \"sequential\":\n case \"linear\":\n return createScaleLinear(key, channels, options);\n case \"sqrt\":\n return createScaleSqrt(key, channels, options);\n case \"threshold\":\n return createScaleThreshold(key, channels, options);\n case \"quantile\":\n return createScaleQuantile(key, channels, options);\n case \"quantize\":\n return createScaleQuantize(key, channels, options);\n case \"pow\":\n return createScalePow(key, channels, options);\n case \"log\":\n return createScaleLog(key, channels, options);\n case \"symlog\":\n return createScaleSymlog(key, channels, options);\n case \"utc\":\n return createScaleUtc(key, channels, options);\n case \"time\":\n return createScaleTime(key, channels, options);\n case \"point\":\n return createScalePoint(key, channels, options);\n case \"band\":\n return createScaleBand(key, channels, options);\n case \"identity\":\n return registry.get(key) === position ? createScaleIdentity() : {type: \"identity\"};\n case undefined:\n return;\n default:\n throw new Error(`unknown scale type: ${type}`);\n }\n}\n\nfunction formatScaleType(type) {\n return typeof type === \"symbol\" ? type.description : type;\n}\n\n// A special type symbol when the x and y scales are replaced with a projection.\nconst typeProjection = {toString: () => \"projection\"};\n\nfunction inferScaleType(key, channels, {type, domain, range, scheme, pivot, projection}) {\n // The facet scales are always band scales; this cannot be changed.\n if (key === \"fx\" || key === \"fy\") return \"band\";\n\n // If a projection is specified, the x- and y-scales are disabled; these\n // channels will be projected rather than scaled. (But still check that none\n // of the associated channels are incompatible with a projection.)\n if ((key === \"x\" || key === \"y\") && projection != null) type = typeProjection;\n\n // If a channel dictates a scale type, make sure that it is consistent with\n // the user-specified scale type (if any) and all other channels. For example,\n // barY requires x to be a band scale and disallows any other scale type.\n for (const {type: t} of channels) {\n if (t === undefined) continue;\n else if (type === undefined) type = t;\n else if (type !== t) throw new Error(`scale incompatible with channel: ${type} !== ${t}`);\n }\n\n // If the scale, a channel, or user specified a (consistent) type, return it.\n if (type === typeProjection) return;\n if (type !== undefined) return type;\n\n // If there’s no data (and no type) associated with this scale, don’t create a scale.\n if (domain === undefined && !channels.some(({value}) => value !== undefined)) return;\n\n // Some scales have default types.\n const kind = registry.get(key);\n if (kind === radius) return \"sqrt\";\n if (kind === opacity || kind === length) return \"linear\";\n if (kind === symbol) return \"ordinal\";\n\n // If the domain or range has more than two values, assume it’s ordinal. You\n // can still use a “piecewise†(or “polylinearâ€) scale, but you must set the\n // type explicitly.\n if ((domain || range || []).length > 2) return asOrdinalType(kind);\n\n // Otherwise, infer the scale type from the data! Prefer the domain, if\n // present, over channels. (The domain and channels should be consistently\n // typed, and the domain is more explicit and typically much smaller.) We only\n // check the first defined value for expedience and simplicity; we expect\n // that the types are consistent.\n if (domain !== undefined) {\n if (isOrdinal(domain)) return asOrdinalType(kind);\n if (isTemporal(domain)) return \"utc\";\n if (kind === color && (pivot != null || isDivergingScheme(scheme))) return \"diverging\";\n return \"linear\";\n }\n\n // If any channel is ordinal or temporal, it takes priority.\n const values = channels.map(({value}) => value).filter((value) => value !== undefined);\n if (values.some(isOrdinal)) return asOrdinalType(kind);\n if (values.some(isTemporal)) return \"utc\";\n if (kind === color && (pivot != null || isDivergingScheme(scheme))) return \"diverging\";\n return \"linear\";\n}\n\n// Positional scales default to a point scale instead of an ordinal scale.\nfunction asOrdinalType(kind) {\n switch (kind) {\n case position:\n return \"point\";\n case color:\n return ordinalImplicit;\n default:\n return \"ordinal\";\n }\n}\n\nexport function isTemporalScale({type}) {\n return type === \"time\" || type === \"utc\";\n}\n\nexport function isOrdinalScale({type}) {\n return type === \"ordinal\" || type === \"point\" || type === \"band\" || type === ordinalImplicit;\n}\n\nexport function isThresholdScale({type}) {\n return type === \"threshold\";\n}\n\nfunction isBandScale({type}) {\n return type === \"point\" || type === \"band\";\n}\n\nexport function isDivergingScale({type}) {\n return /^diverging($|-)/.test(type);\n}\n\n// Certain marks have special behavior if a scale is collapsed, i.e. if the\n// domain is degenerate and represents only a single value such as [3, 3]; for\n// example, a rect will span the full extent of the chart along a collapsed\n// dimension (whereas a dot will simply be drawn in the center).\nexport function isCollapsed(scale) {\n if (scale === undefined) return true; // treat missing scale as collapsed\n const domain = scale.domain();\n const value = scale(domain[0]);\n for (let i = 1, n = domain.length; i < n; ++i) {\n if (scale(domain[i]) - value) {\n return false;\n }\n }\n return true;\n}\n\n// Mutates channel.value!\nfunction coerceType(channels, {domain, ...options}, coerceValues) {\n for (const c of channels) {\n if (c.value !== undefined) {\n c.value = coerceValues(c.value);\n }\n }\n return {\n domain: domain === undefined ? domain : coerceValues(domain),\n ...options\n };\n}\n\nfunction coerceSymbols(values) {\n return map(values, maybeSymbol);\n}\n\nexport function scale(options = {}) {\n let scale;\n for (const key in options) {\n if (!registry.has(key)) continue; // ignore unknown properties\n if (!isScaleOptions(options[key])) continue; // e.g., ignore {color: \"red\"}\n if (scale !== undefined) throw new Error(\"ambiguous scale definition; multiple scales found\");\n scale = exposeScale(normalizeScale(key, options[key]));\n }\n if (scale === undefined) throw new Error(\"invalid scale definition; no scale found\");\n return scale;\n}\n\nexport function exposeScales(scaleDescriptors) {\n return (key) => {\n if (!registry.has((key = `${key}`))) throw new Error(`unknown scale: ${key}`);\n return key in scaleDescriptors ? exposeScale(scaleDescriptors[key]) : undefined;\n };\n}\n\n// Note: axis- and legend-related properties (such as label, ticks and\n// tickFormat) are not included here as they do not affect the scale’s behavior.\nfunction exposeScale({scale, type, domain, range, interpolate, interval, transform, percent, pivot}) {\n if (type === \"identity\") return {type: \"identity\", apply: (d) => d, invert: (d) => d};\n const unknown = scale.unknown ? scale.unknown() : undefined;\n return {\n type,\n domain: slice(domain), // defensive copy\n ...(range !== undefined && {range: slice(range)}), // defensive copy\n ...(transform !== undefined && {transform}),\n ...(percent && {percent}), // only exposed if truthy\n ...(unknown !== undefined && {unknown}),\n ...(interval !== undefined && {interval}),\n\n // quantitative\n ...(interpolate !== undefined && {interpolate}),\n ...(scale.clamp && {clamp: scale.clamp()}),\n\n // diverging (always asymmetric; we never want to apply the symmetric transform twice)\n ...(pivot !== undefined && {pivot, symmetric: false}),\n\n // log, diverging-log\n ...(scale.base && {base: scale.base()}),\n\n // pow, diverging-pow\n ...(scale.exponent && {exponent: scale.exponent()}),\n\n // symlog, diverging-symlog\n ...(scale.constant && {constant: scale.constant()}),\n\n // band, point\n ...(scale.align && {align: scale.align(), round: scale.round()}),\n ...(scale.padding &&\n (scale.paddingInner\n ? {paddingInner: scale.paddingInner(), paddingOuter: scale.paddingOuter()}\n : {padding: scale.padding()})),\n ...(scale.bandwidth && {bandwidth: scale.bandwidth(), step: scale.step()}),\n\n // utilities\n apply: (t) => scale(t),\n ...(scale.invert && {invert: (t) => scale.invert(t)})\n };\n}\n","import {format as isoFormat} from \"isoformat\";\nimport {string} from \"./options.js\";\nimport {memoize1} from \"./memoize.js\";\n\nconst numberFormat = memoize1((locale) => {\n return new Intl.NumberFormat(locale);\n});\n\nconst monthFormat = memoize1((locale, month) => {\n return new Intl.DateTimeFormat(locale, {timeZone: \"UTC\", ...(month && {month})});\n});\n\nconst weekdayFormat = memoize1((locale, weekday) => {\n return new Intl.DateTimeFormat(locale, {timeZone: \"UTC\", ...(weekday && {weekday})});\n});\n\nexport function formatNumber(locale = \"en-US\") {\n const format = numberFormat(locale);\n return (i) => (i != null && !isNaN(i) ? format.format(i) : undefined);\n}\n\nexport function formatMonth(locale = \"en-US\", format = \"short\") {\n const fmt = monthFormat(locale, format);\n return (i) => (i != null && !isNaN((i = +new Date(Date.UTC(2000, +i)))) ? fmt.format(i) : undefined);\n}\n\nexport function formatWeekday(locale = \"en-US\", format = \"short\") {\n const fmt = weekdayFormat(locale, format);\n return (i) => (i != null && !isNaN((i = +new Date(Date.UTC(2001, 0, +i)))) ? fmt.format(i) : undefined);\n}\n\nexport function formatIsoDate(date) {\n return isoFormat(date, \"Invalid Date\");\n}\n\nexport function formatAuto(locale = \"en-US\") {\n const number = formatNumber(locale);\n return (v) => (v instanceof Date ? formatIsoDate : typeof v === \"number\" ? number : string)(v);\n}\n\n// TODO When Plot supports a top-level locale option, this should be removed\n// because it lacks context to know which locale to use; formatAuto should be\n// used instead whenever possible.\nexport const formatDefault = formatAuto();\n","export function memoize1(compute) {\n let cacheValue, cacheKeys;\n return (...keys) => {\n if (cacheKeys?.length !== keys.length || cacheKeys.some((k, i) => k !== keys[i])) {\n cacheKeys = keys;\n cacheValue = compute(...keys);\n }\n return cacheValue;\n };\n}\n","import {geoPath, group, namespaces} from \"d3\";\nimport {create} from \"./context.js\";\nimport {defined, nonempty} from \"./defined.js\";\nimport {formatDefault} from \"./format.js\";\nimport {\n string,\n number,\n maybeColorChannel,\n maybeNumberChannel,\n maybeKeyword,\n isNoneish,\n isNone,\n isRound,\n keyof\n} from \"./options.js\";\nimport {warn} from \"./warnings.js\";\n\nexport const offset = (typeof window !== \"undefined\" ? window.devicePixelRatio > 1 : typeof it === \"undefined\") ? 0 : 0.5; // prettier-ignore\n\nlet nextClipId = 0;\n\nfunction getClipId() {\n return `plot-clip-${++nextClipId}`;\n}\n\nexport function styles(\n mark,\n {\n title,\n href,\n ariaLabel: variaLabel,\n ariaDescription,\n ariaHidden,\n target,\n fill,\n fillOpacity,\n stroke,\n strokeWidth,\n strokeOpacity,\n strokeLinejoin,\n strokeLinecap,\n strokeMiterlimit,\n strokeDasharray,\n strokeDashoffset,\n opacity,\n mixBlendMode,\n paintOrder,\n pointerEvents,\n shapeRendering\n },\n {\n ariaLabel: cariaLabel,\n fill: defaultFill = \"currentColor\",\n fillOpacity: defaultFillOpacity,\n stroke: defaultStroke = \"none\",\n strokeOpacity: defaultStrokeOpacity,\n strokeWidth: defaultStrokeWidth,\n strokeLinecap: defaultStrokeLinecap,\n strokeLinejoin: defaultStrokeLinejoin,\n strokeMiterlimit: defaultStrokeMiterlimit,\n paintOrder: defaultPaintOrder\n }\n) {\n // Some marks don’t support fill (e.g., tick and rule).\n if (defaultFill === null) {\n fill = null;\n fillOpacity = null;\n }\n\n // Some marks don’t support stroke (e.g., image).\n if (defaultStroke === null) {\n stroke = null;\n strokeOpacity = null;\n }\n\n // Some marks default to fill with no stroke, while others default to stroke\n // with no fill. For example, bar and area default to fill, while dot and line\n // default to stroke. For marks that fill by default, the default fill only\n // applies if the stroke is (constant) none; if you set a stroke, then the\n // default fill becomes none. Similarly for marks that stroke by stroke, the\n // default stroke only applies if the fill is (constant) none.\n if (isNoneish(defaultFill)) {\n if (!isNoneish(defaultStroke) && !isNoneish(fill)) defaultStroke = \"none\";\n } else {\n if (isNoneish(defaultStroke) && !isNoneish(stroke)) defaultFill = \"none\";\n }\n\n const [vfill, cfill] = maybeColorChannel(fill, defaultFill);\n const [vfillOpacity, cfillOpacity] = maybeNumberChannel(fillOpacity, defaultFillOpacity);\n const [vstroke, cstroke] = maybeColorChannel(stroke, defaultStroke);\n const [vstrokeOpacity, cstrokeOpacity] = maybeNumberChannel(strokeOpacity, defaultStrokeOpacity);\n const [vopacity, copacity] = maybeNumberChannel(opacity);\n\n // For styles that have no effect if there is no stroke, only apply the\n // defaults if the stroke is not the constant none. (If stroke is a channel,\n // then cstroke will be undefined, but there’s still a stroke; hence we don’t\n // use isNoneish here.)\n if (!isNone(cstroke)) {\n if (strokeWidth === undefined) strokeWidth = defaultStrokeWidth;\n if (strokeLinecap === undefined) strokeLinecap = defaultStrokeLinecap;\n if (strokeLinejoin === undefined) strokeLinejoin = defaultStrokeLinejoin;\n\n // The default stroke miterlimit need not be applied if the current stroke\n // is the constant round; this only has effect on miter joins.\n if (strokeMiterlimit === undefined && !isRound(strokeLinejoin)) strokeMiterlimit = defaultStrokeMiterlimit;\n\n // The paint order only takes effect if there is both a fill and a stroke\n // (at least if we ignore markers, which no built-in marks currently use).\n if (!isNone(cfill) && paintOrder === undefined) paintOrder = defaultPaintOrder;\n }\n\n const [vstrokeWidth, cstrokeWidth] = maybeNumberChannel(strokeWidth);\n\n // Some marks don’t support fill (e.g., tick and rule).\n if (defaultFill !== null) {\n mark.fill = impliedString(cfill, \"currentColor\");\n mark.fillOpacity = impliedNumber(cfillOpacity, 1);\n }\n\n // Some marks don’t support stroke (e.g., image).\n if (defaultStroke !== null) {\n mark.stroke = impliedString(cstroke, \"none\");\n mark.strokeWidth = impliedNumber(cstrokeWidth, 1);\n mark.strokeOpacity = impliedNumber(cstrokeOpacity, 1);\n mark.strokeLinejoin = impliedString(strokeLinejoin, \"miter\");\n mark.strokeLinecap = impliedString(strokeLinecap, \"butt\");\n mark.strokeMiterlimit = impliedNumber(strokeMiterlimit, 4);\n mark.strokeDasharray = impliedString(strokeDasharray, \"none\");\n mark.strokeDashoffset = impliedString(strokeDashoffset, \"0\");\n }\n\n mark.target = string(target);\n mark.ariaLabel = string(cariaLabel);\n mark.ariaDescription = string(ariaDescription);\n mark.ariaHidden = string(ariaHidden);\n mark.opacity = impliedNumber(copacity, 1);\n mark.mixBlendMode = impliedString(mixBlendMode, \"normal\");\n mark.paintOrder = impliedString(paintOrder, \"normal\");\n mark.pointerEvents = impliedString(pointerEvents, \"auto\");\n mark.shapeRendering = impliedString(shapeRendering, \"auto\");\n\n return {\n title: {value: title, optional: true},\n href: {value: href, optional: true},\n ariaLabel: {value: variaLabel, optional: true},\n fill: {value: vfill, scale: \"auto\", optional: true},\n fillOpacity: {value: vfillOpacity, scale: \"auto\", optional: true},\n stroke: {value: vstroke, scale: \"auto\", optional: true},\n strokeOpacity: {value: vstrokeOpacity, scale: \"auto\", optional: true},\n strokeWidth: {value: vstrokeWidth, optional: true},\n opacity: {value: vopacity, scale: \"auto\", optional: true}\n };\n}\n\n// Applies the specified titles via selection.call.\nexport function applyTitle(selection, L) {\n if (L)\n selection\n .filter((i) => nonempty(L[i]))\n .append(\"title\")\n .call(applyText, L);\n}\n\n// Like applyTitle, but for grouped data (lines, areas).\nexport function applyTitleGroup(selection, L) {\n if (L)\n selection\n .filter(([i]) => nonempty(L[i]))\n .append(\"title\")\n .call(applyTextGroup, L);\n}\n\nexport function applyText(selection, T) {\n if (T) selection.text((i) => formatDefault(T[i]));\n}\n\nexport function applyTextGroup(selection, T) {\n if (T) selection.text(([i]) => formatDefault(T[i]));\n}\n\nexport function applyChannelStyles(\n selection,\n {target},\n {\n ariaLabel: AL,\n title: T,\n fill: F,\n fillOpacity: FO,\n stroke: S,\n strokeOpacity: SO,\n strokeWidth: SW,\n opacity: O,\n href: H\n }\n) {\n if (AL) applyAttr(selection, \"aria-label\", (i) => AL[i]);\n if (F) applyAttr(selection, \"fill\", (i) => F[i]);\n if (FO) applyAttr(selection, \"fill-opacity\", (i) => FO[i]);\n if (S) applyAttr(selection, \"stroke\", (i) => S[i]);\n if (SO) applyAttr(selection, \"stroke-opacity\", (i) => SO[i]);\n if (SW) applyAttr(selection, \"stroke-width\", (i) => SW[i]);\n if (O) applyAttr(selection, \"opacity\", (i) => O[i]);\n if (H) applyHref(selection, (i) => H[i], target);\n applyTitle(selection, T);\n}\n\nexport function applyGroupedChannelStyles(\n selection,\n {target},\n {\n ariaLabel: AL,\n title: T,\n fill: F,\n fillOpacity: FO,\n stroke: S,\n strokeOpacity: SO,\n strokeWidth: SW,\n opacity: O,\n href: H\n }\n) {\n if (AL) applyAttr(selection, \"aria-label\", ([i]) => AL[i]);\n if (F) applyAttr(selection, \"fill\", ([i]) => F[i]);\n if (FO) applyAttr(selection, \"fill-opacity\", ([i]) => FO[i]);\n if (S) applyAttr(selection, \"stroke\", ([i]) => S[i]);\n if (SO) applyAttr(selection, \"stroke-opacity\", ([i]) => SO[i]);\n if (SW) applyAttr(selection, \"stroke-width\", ([i]) => SW[i]);\n if (O) applyAttr(selection, \"opacity\", ([i]) => O[i]);\n if (H) applyHref(selection, ([i]) => H[i], target);\n applyTitleGroup(selection, T);\n}\n\nfunction groupAesthetics({\n ariaLabel: AL,\n title: T,\n fill: F,\n fillOpacity: FO,\n stroke: S,\n strokeOpacity: SO,\n strokeWidth: SW,\n opacity: O,\n href: H\n}) {\n return [AL, T, F, FO, S, SO, SW, O, H].filter((c) => c !== undefined);\n}\n\nexport function groupZ(I, Z, z) {\n const G = group(I, (i) => Z[i]);\n if (z === undefined && G.size > I.length >> 1) {\n warn(\n `Warning: the implicit z channel has high cardinality. This may occur when the fill or stroke channel is associated with quantitative data rather than ordinal or categorical data. You can suppress this warning by setting the z option explicitly; if this data represents a single series, set z to null.`\n );\n }\n return G.values();\n}\n\nexport function* groupIndex(I, position, {z}, channels) {\n const {z: Z} = channels; // group channel\n const A = groupAesthetics(channels); // aesthetic channels\n const C = [...position, ...A]; // all channels\n\n // Group the current index by Z (if any).\n for (const G of Z ? groupZ(I, Z, z) : [I]) {\n let Ag; // the A-values (aesthetics) of the current group, if any\n let Gg; // the current group index (a subset of G, and I), if any\n out: for (const i of G) {\n // If any channel has an undefined value for this index, skip it.\n for (const c of C) {\n if (!defined(c[i])) {\n if (Gg) Gg.push(-1);\n continue out;\n }\n }\n\n // Otherwise, if this is a new group, record the aesthetics for this\n // group. Yield the current group and start a new one.\n if (Ag === undefined) {\n if (Gg) yield Gg;\n (Ag = A.map((c) => keyof(c[i]))), (Gg = [i]);\n continue;\n }\n\n // Otherwise, add the current index to the current group. Then, if any of\n // the aesthetics don’t match the current group, yield the current group\n // and start a new group of the current index.\n Gg.push(i);\n for (let j = 0; j < A.length; ++j) {\n const k = keyof(A[j][i]);\n if (k !== Ag[j]) {\n yield Gg;\n (Ag = A.map((c) => keyof(c[i]))), (Gg = [i]);\n continue out;\n }\n }\n }\n\n // Yield the current group, if any.\n if (Gg) yield Gg;\n }\n}\n\n// TODO Accept other types of clips (paths, urls, x, y, other marks…)?\n// https://github.com/observablehq/plot/issues/181\nexport function maybeClip(clip) {\n if (clip === true) clip = \"frame\";\n else if (clip === false) clip = null;\n return maybeKeyword(clip, \"clip\", [\"frame\", \"sphere\"]);\n}\n\n// Note: may mutate selection.node!\nfunction applyClip(selection, mark, dimensions, context) {\n let clipUrl;\n switch (mark.clip) {\n case \"frame\": {\n const {width, height, marginLeft, marginRight, marginTop, marginBottom} = dimensions;\n const id = getClipId();\n clipUrl = `url(#${id})`;\n selection = create(\"svg:g\", context)\n .call((g) =>\n g\n .append(\"svg:clipPath\")\n .attr(\"id\", id)\n .append(\"rect\")\n .attr(\"x\", marginLeft)\n .attr(\"y\", marginTop)\n .attr(\"width\", width - marginRight - marginLeft)\n .attr(\"height\", height - marginTop - marginBottom)\n )\n .each(function () {\n this.appendChild(selection.node());\n selection.node = () => this; // Note: mutation!\n });\n break;\n }\n case \"sphere\": {\n const {projection} = context;\n if (!projection) throw new Error(`the \"sphere\" clip option requires a projection`);\n const id = getClipId();\n clipUrl = `url(#${id})`;\n selection\n .append(\"clipPath\")\n .attr(\"id\", id)\n .append(\"path\")\n .attr(\"d\", geoPath(projection)({type: \"Sphere\"}));\n break;\n }\n }\n // Here we’re careful to apply the ARIA attributes to the outer G element when\n // clipping is applied, and to apply the ARIA attributes before any other\n // attributes (for readability).\n applyAttr(selection, \"aria-label\", mark.ariaLabel);\n applyAttr(selection, \"aria-description\", mark.ariaDescription);\n applyAttr(selection, \"aria-hidden\", mark.ariaHidden);\n applyAttr(selection, \"clip-path\", clipUrl);\n}\n\n// Note: may mutate selection.node!\nexport function applyIndirectStyles(selection, mark, dimensions, context) {\n applyClip(selection, mark, dimensions, context);\n applyAttr(selection, \"fill\", mark.fill);\n applyAttr(selection, \"fill-opacity\", mark.fillOpacity);\n applyAttr(selection, \"stroke\", mark.stroke);\n applyAttr(selection, \"stroke-width\", mark.strokeWidth);\n applyAttr(selection, \"stroke-opacity\", mark.strokeOpacity);\n applyAttr(selection, \"stroke-linejoin\", mark.strokeLinejoin);\n applyAttr(selection, \"stroke-linecap\", mark.strokeLinecap);\n applyAttr(selection, \"stroke-miterlimit\", mark.strokeMiterlimit);\n applyAttr(selection, \"stroke-dasharray\", mark.strokeDasharray);\n applyAttr(selection, \"stroke-dashoffset\", mark.strokeDashoffset);\n applyAttr(selection, \"shape-rendering\", mark.shapeRendering);\n applyAttr(selection, \"paint-order\", mark.paintOrder);\n applyAttr(selection, \"pointer-events\", mark.pointerEvents);\n}\n\nexport function applyDirectStyles(selection, mark) {\n applyStyle(selection, \"mix-blend-mode\", mark.mixBlendMode);\n applyAttr(selection, \"opacity\", mark.opacity);\n}\n\nfunction applyHref(selection, href, target) {\n selection.each(function (i) {\n const h = href(i);\n if (h != null) {\n const a = this.ownerDocument.createElementNS(namespaces.svg, \"a\");\n a.setAttribute(\"fill\", \"inherit\");\n a.setAttributeNS(namespaces.xlink, \"href\", h);\n if (target != null) a.setAttribute(\"target\", target);\n this.parentNode.insertBefore(a, this).appendChild(this);\n }\n });\n}\n\nexport function applyAttr(selection, name, value) {\n if (value != null) selection.attr(name, value);\n}\n\nexport function applyStyle(selection, name, value) {\n if (value != null) selection.style(name, value);\n}\n\nexport function applyTransform(selection, mark, {x, y}, tx = offset, ty = offset) {\n tx += mark.dx;\n ty += mark.dy;\n if (x?.bandwidth) tx += x.bandwidth() / 2;\n if (y?.bandwidth) ty += y.bandwidth() / 2;\n if (tx || ty) selection.attr(\"transform\", `translate(${tx},${ty})`);\n}\n\nexport function impliedString(value, impliedValue) {\n if ((value = string(value)) !== impliedValue) return value;\n}\n\nexport function impliedNumber(value, impliedValue) {\n if ((value = number(value)) !== impliedValue) return value;\n}\n\n// https://www.w3.org/TR/CSS21/grammar.html\nconst validClassName =\n /^-?([_a-z]|[\\240-\\377]|\\\\[0-9a-f]{1,6}(\\r\\n|[ \\t\\r\\n\\f])?|\\\\[^\\r\\n\\f0-9a-f])([_a-z0-9-]|[\\240-\\377]|\\\\[0-9a-f]{1,6}(\\r\\n|[ \\t\\r\\n\\f])?|\\\\[^\\r\\n\\f0-9a-f])*$/i;\n\nexport function maybeClassName(name) {\n // The default should be changed whenever the default styles are changed, so\n // as to avoid conflict when multiple versions of Plot are on the page.\n if (name === undefined) return \"plot-d6a7b5\";\n name = `${name}`;\n if (!validClassName.test(name)) throw new Error(`invalid class name: ${name}`);\n return name;\n}\n\nexport function applyInlineStyles(selection, style) {\n if (typeof style === \"string\") {\n selection.property(\"style\", style);\n } else if (style != null) {\n for (const element of selection) {\n Object.assign(element.style, style);\n }\n }\n}\n\nexport function applyFrameAnchor({frameAnchor}, {width, height, marginTop, marginRight, marginBottom, marginLeft}) {\n return [\n /left$/.test(frameAnchor)\n ? marginLeft\n : /right$/.test(frameAnchor)\n ? width - marginRight\n : (marginLeft + width - marginRight) / 2,\n /^top/.test(frameAnchor)\n ? marginTop\n : /^bottom/.test(frameAnchor)\n ? height - marginBottom\n : (marginTop + height - marginBottom) / 2\n ];\n}\n","import {format, utcFormat} from \"d3\";\nimport {formatIsoDate} from \"./format.js\";\nimport {constant, isTemporal, string} from \"./options.js\";\nimport {isOrdinalScale} from \"./scales.js\";\n\nexport function inferFontVariant(scale) {\n return isOrdinalScale(scale) && scale.interval === undefined ? undefined : \"tabular-nums\";\n}\n\n// D3 doesn’t provide a tick format for ordinal scales; we want shorthand when\n// an ordinal domain is numbers or dates, and we want null to mean the empty\n// string, not the default identity format. TODO Remove this in favor of the\n// axis mark’s inferTickFormat.\nexport function maybeAutoTickFormat(tickFormat, domain) {\n return tickFormat === undefined\n ? isTemporal(domain)\n ? formatIsoDate\n : string\n : typeof tickFormat === \"function\"\n ? tickFormat\n : (typeof tickFormat === \"string\" ? (isTemporal(domain) ? utcFormat : format) : constant)(tickFormat);\n}\n","import {pathRound as path} from \"d3\";\nimport {inferFontVariant, maybeAutoTickFormat} from \"../axes.js\";\nimport {createContext, create} from \"../context.js\";\nimport {isNoneish, maybeColorChannel, maybeNumberChannel} from \"../options.js\";\nimport {isOrdinalScale, isThresholdScale} from \"../scales.js\";\nimport {applyInlineStyles, impliedString, maybeClassName} from \"../style.js\";\n\nfunction maybeScale(scale, key) {\n if (key == null) return key;\n const s = scale(key);\n if (!s) throw new Error(`scale not found: ${key}`);\n return s;\n}\n\nexport function legendSwatches(color, {opacity, ...options} = {}) {\n if (!isOrdinalScale(color) && !isThresholdScale(color))\n throw new Error(`swatches legend requires ordinal or threshold color scale (not ${color.type})`);\n return legendItems(color, options, (selection, scale, width, height) =>\n selection\n .append(\"svg\")\n .attr(\"width\", width)\n .attr(\"height\", height)\n .attr(\"fill\", scale.scale)\n .attr(\"fill-opacity\", maybeNumberChannel(opacity)[1])\n .append(\"rect\")\n .attr(\"width\", \"100%\")\n .attr(\"height\", \"100%\")\n );\n}\n\nexport function legendSymbols(\n symbol,\n {\n fill = symbol.hint?.fill !== undefined ? symbol.hint.fill : \"none\",\n fillOpacity = 1,\n stroke = symbol.hint?.stroke !== undefined ? symbol.hint.stroke : isNoneish(fill) ? \"currentColor\" : \"none\",\n strokeOpacity = 1,\n strokeWidth = 1.5,\n r = 4.5,\n ...options\n } = {},\n scale\n) {\n const [vf, cf] = maybeColorChannel(fill);\n const [vs, cs] = maybeColorChannel(stroke);\n const sf = maybeScale(scale, vf);\n const ss = maybeScale(scale, vs);\n const size = r * r * Math.PI;\n fillOpacity = maybeNumberChannel(fillOpacity)[1];\n strokeOpacity = maybeNumberChannel(strokeOpacity)[1];\n strokeWidth = maybeNumberChannel(strokeWidth)[1];\n return legendItems(symbol, options, (selection, scale, width, height) =>\n selection\n .append(\"svg\")\n .attr(\"viewBox\", \"-8 -8 16 16\")\n .attr(\"width\", width)\n .attr(\"height\", height)\n .attr(\"fill\", vf === \"color\" ? (d) => sf.scale(d) : cf)\n .attr(\"fill-opacity\", fillOpacity)\n .attr(\"stroke\", vs === \"color\" ? (d) => ss.scale(d) : cs)\n .attr(\"stroke-opacity\", strokeOpacity)\n .attr(\"stroke-width\", strokeWidth)\n .append(\"path\")\n .attr(\"d\", (d) => {\n const p = path();\n symbol.scale(d).draw(p, size);\n return p;\n })\n );\n}\n\nfunction legendItems(scale, options = {}, swatch) {\n let {\n columns,\n tickFormat,\n fontVariant = inferFontVariant(scale),\n // TODO label,\n swatchSize = 15,\n swatchWidth = swatchSize,\n swatchHeight = swatchSize,\n marginLeft = 0,\n className,\n style,\n width\n } = options;\n const context = createContext(options);\n className = maybeClassName(className);\n tickFormat = maybeAutoTickFormat(tickFormat, scale.domain);\n\n const swatches = create(\"div\", context).attr(\n \"class\",\n `${className}-swatches ${className}-swatches-${columns != null ? \"columns\" : \"wrap\"}`\n );\n\n let extraStyle;\n\n if (columns != null) {\n extraStyle = `.${className}-swatches-columns .${className}-swatch {\n display: flex;\n align-items: center;\n break-inside: avoid;\n padding-bottom: 1px;\n}\n.${className}-swatches-columns .${className}-swatch::before {\n flex-shrink: 0;\n}\n.${className}-swatches-columns .${className}-swatch-label {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}`;\n\n swatches\n .style(\"columns\", columns)\n .selectAll()\n .data(scale.domain)\n .enter()\n .append(\"div\")\n .attr(\"class\", `${className}-swatch`)\n .call(swatch, scale, swatchWidth, swatchHeight)\n .call((item) =>\n item.append(\"div\").attr(\"class\", `${className}-swatch-label`).attr(\"title\", tickFormat).text(tickFormat)\n );\n } else {\n extraStyle = `.${className}-swatches-wrap {\n display: flex;\n align-items: center;\n min-height: 33px;\n flex-wrap: wrap;\n}\n.${className}-swatches-wrap .${className}-swatch {\n display: inline-flex;\n align-items: center;\n margin-right: 1em;\n}`;\n\n swatches\n .selectAll()\n .data(scale.domain)\n .enter()\n .append(\"span\")\n .attr(\"class\", `${className}-swatch`)\n .call(swatch, scale, swatchWidth, swatchHeight)\n .append(function () {\n return this.ownerDocument.createTextNode(tickFormat.apply(this, arguments));\n });\n }\n\n return swatches\n .call((div) =>\n div.insert(\"style\", \"*\").text(\n `.${className}-swatches {\n font-family: system-ui, sans-serif;\n font-size: 10px;\n margin-bottom: 0.5em;\n}\n.${className}-swatch > svg {\n margin-right: 0.5em;\n overflow: visible;\n}\n${extraStyle}`\n )\n )\n .style(\"margin-left\", marginLeft ? `${+marginLeft}px` : null)\n .style(\"width\", width === undefined ? null : `${+width}px`)\n .style(\"font-variant\", impliedString(fontVariant, \"normal\"))\n .call(applyInlineStyles, style)\n .node();\n}\n","import {rgb} from \"d3\";\nimport {createContext} from \"./context.js\";\nimport {legendRamp} from \"./legends/ramp.js\";\nimport {legendSwatches, legendSymbols} from \"./legends/swatches.js\";\nimport {inherit, isScaleOptions} from \"./options.js\";\nimport {normalizeScale} from \"./scales.js\";\n\nconst legendRegistry = new Map([\n [\"symbol\", legendSymbols],\n [\"color\", legendColor],\n [\"opacity\", legendOpacity]\n]);\n\nexport function legend(options = {}) {\n for (const [key, value] of legendRegistry) {\n const scale = options[key];\n if (isScaleOptions(scale)) {\n // e.g., ignore {color: \"red\"}\n const context = createContext(options);\n let hint;\n // For symbol legends, pass a hint to the symbol scale.\n if (key === \"symbol\") {\n const {fill, stroke = fill === undefined && isScaleOptions(options.color) ? \"color\" : undefined} = options;\n hint = {fill, stroke};\n }\n return value(normalizeScale(key, scale, hint), legendOptions(context, scale, options), (key) =>\n isScaleOptions(options[key]) ? normalizeScale(key, options[key]) : null\n );\n }\n }\n throw new Error(\"unknown legend type; no scale found\");\n}\n\nexport function exposeLegends(scales, context, defaults = {}) {\n return (key, options) => {\n if (!legendRegistry.has(key)) throw new Error(`unknown legend type: ${key}`);\n if (!(key in scales)) return;\n return legendRegistry.get(key)(scales[key], legendOptions(context, defaults[key], options), (key) => scales[key]);\n };\n}\n\nfunction legendOptions({className, ...context}, {label, ticks, tickFormat} = {}, options) {\n return inherit(options, {className, ...context}, {label, ticks, tickFormat});\n}\n\nfunction legendColor(color, {legend = true, ...options}) {\n if (legend === true) legend = color.type === \"ordinal\" ? \"swatches\" : \"ramp\";\n if (color.domain === undefined) return;\n switch (`${legend}`.toLowerCase()) {\n case \"swatches\":\n return legendSwatches(color, options);\n case \"ramp\":\n return legendRamp(color, options);\n default:\n throw new Error(`unknown legend type: ${legend}`);\n }\n}\n\nfunction legendOpacity({type, interpolate, ...scale}, {legend = true, color = rgb(0, 0, 0), ...options}) {\n if (!interpolate) throw new Error(`${type} opacity scales are not supported`);\n if (legend === true) legend = \"ramp\";\n if (`${legend}`.toLowerCase() !== \"ramp\") throw new Error(`${legend} opacity legends are not supported`);\n return legendColor({type, ...scale, interpolate: interpolateOpacity(color)}, {legend, ...options});\n}\n\nfunction interpolateOpacity(color) {\n const {r, g, b} = rgb(color) || rgb(0, 0, 0); // treat invalid color as black\n return (t) => `rgba(${r},${g},${b},${t})`;\n}\n\nexport function createLegends(scales, context, options) {\n const legends = [];\n for (const [key, value] of legendRegistry) {\n const o = options[key];\n if (o?.legend && key in scales) {\n const legend = value(scales[key], legendOptions(context, scales[key], o), (key) => scales[key]);\n if (legend != null) legends.push(legend);\n }\n }\n return legends;\n}\n","import {quantize, interpolateNumber, piecewise, format, scaleBand, scaleLinear, axisBottom} from \"d3\";\nimport {inferFontVariant} from \"../axes.js\";\nimport {createContext, create} from \"../context.js\";\nimport {map, maybeNumberChannel} from \"../options.js\";\nimport {interpolatePiecewise} from \"../scales/quantitative.js\";\nimport {applyInlineStyles, impliedString, maybeClassName} from \"../style.js\";\n\nexport function legendRamp(color, options) {\n let {\n label = color.label,\n tickSize = 6,\n width = 240,\n height = 44 + tickSize,\n marginTop = 18,\n marginRight = 0,\n marginBottom = 16 + tickSize,\n marginLeft = 0,\n style,\n ticks = (width - marginLeft - marginRight) / 64,\n tickFormat,\n fontVariant = inferFontVariant(color),\n round = true,\n opacity,\n className\n } = options;\n const context = createContext(options);\n className = maybeClassName(className);\n opacity = maybeNumberChannel(opacity)[1];\n if (tickFormat === null) tickFormat = () => null;\n\n const svg = create(\"svg\", context)\n .attr(\"class\", `${className}-ramp`)\n .attr(\"font-family\", \"system-ui, sans-serif\")\n .attr(\"font-size\", 10)\n .attr(\"width\", width)\n .attr(\"height\", height)\n .attr(\"viewBox\", `0 0 ${width} ${height}`)\n .call((svg) =>\n // Warning: if you edit this, change defaultClassName.\n svg.append(\"style\").text(\n `.${className}-ramp {\n display: block;\n background: white;\n height: auto;\n height: intrinsic;\n max-width: 100%;\n overflow: visible;\n}\n.${className}-ramp text {\n white-space: pre;\n}`\n )\n )\n .call(applyInlineStyles, style);\n\n let tickAdjust = (g) => g.selectAll(\".tick line\").attr(\"y1\", marginTop + marginBottom - height);\n\n let x;\n\n // Some D3 scales use scale.interpolate, some scale.interpolator, and some\n // scale.round; this normalizes the API so it works with all scale types.\n const applyRange = round ? (x, range) => x.rangeRound(range) : (x, range) => x.range(range);\n\n const {type, domain, range, interpolate, scale, pivot} = color;\n\n // Continuous\n if (interpolate) {\n // Often interpolate is a “fixed†interpolator on the [0, 1] interval, as\n // with a built-in color scheme, but sometimes it is a function that takes\n // two arguments and is used in conjunction with the range.\n const interpolator =\n range === undefined\n ? interpolate\n : piecewise(interpolate.length === 1 ? interpolatePiecewise(interpolate) : interpolate, range);\n\n // Construct a D3 scale of the same type, but with a range that evenly\n // divides the horizontal extent of the legend. (In the common case, the\n // domain.length is two, and so the range is simply the extent.) For a\n // diverging scale, we need an extra point in the range for the pivot such\n // that the pivot is always drawn in the middle.\n x = applyRange(\n scale.copy(),\n quantize(\n interpolateNumber(marginLeft, width - marginRight),\n Math.min(domain.length + (pivot !== undefined), range === undefined ? Infinity : range.length)\n )\n );\n\n // Construct a 256×1 canvas, filling each pixel using the interpolator.\n const n = 256;\n const canvas = context.document.createElement(\"canvas\");\n canvas.width = n;\n canvas.height = 1;\n const context2 = canvas.getContext(\"2d\");\n for (let i = 0, j = n - 1; i < n; ++i) {\n context2.fillStyle = interpolator(i / j);\n context2.fillRect(i, 0, 1, 1);\n }\n\n svg\n .append(\"image\")\n .attr(\"opacity\", opacity)\n .attr(\"x\", marginLeft)\n .attr(\"y\", marginTop)\n .attr(\"width\", width - marginLeft - marginRight)\n .attr(\"height\", height - marginTop - marginBottom)\n .attr(\"preserveAspectRatio\", \"none\")\n .attr(\"xlink:href\", canvas.toDataURL());\n }\n\n // Threshold\n else if (type === \"threshold\") {\n const thresholds = domain;\n\n const thresholdFormat =\n tickFormat === undefined ? (d) => d : typeof tickFormat === \"string\" ? format(tickFormat) : tickFormat;\n\n // Construct a linear scale with evenly-spaced ticks for each of the\n // thresholds; the domain extends one beyond the threshold extent.\n x = applyRange(scaleLinear().domain([-1, range.length - 1]), [marginLeft, width - marginRight]);\n\n svg\n .append(\"g\")\n .attr(\"fill-opacity\", opacity)\n .selectAll()\n .data(range)\n .enter()\n .append(\"rect\")\n .attr(\"x\", (d, i) => x(i - 1))\n .attr(\"y\", marginTop)\n .attr(\"width\", (d, i) => x(i) - x(i - 1))\n .attr(\"height\", height - marginTop - marginBottom)\n .attr(\"fill\", (d) => d);\n\n ticks = map(thresholds, (_, i) => i);\n tickFormat = (i) => thresholdFormat(thresholds[i], i);\n }\n\n // Ordinal (hopefully!)\n else {\n x = applyRange(scaleBand().domain(domain), [marginLeft, width - marginRight]);\n\n svg\n .append(\"g\")\n .attr(\"fill-opacity\", opacity)\n .selectAll()\n .data(domain)\n .enter()\n .append(\"rect\")\n .attr(\"x\", x)\n .attr(\"y\", marginTop)\n .attr(\"width\", Math.max(0, x.bandwidth() - 1))\n .attr(\"height\", height - marginTop - marginBottom)\n .attr(\"fill\", scale);\n\n tickAdjust = () => {};\n }\n\n svg\n .append(\"g\")\n .attr(\"transform\", `translate(0,${height - marginBottom})`)\n .call(\n axisBottom(x)\n .ticks(Array.isArray(ticks) ? null : ticks, typeof tickFormat === \"string\" ? tickFormat : undefined)\n .tickFormat(typeof tickFormat === \"function\" ? tickFormat : undefined)\n .tickSize(tickSize)\n .tickValues(Array.isArray(ticks) ? ticks : null)\n )\n .attr(\"font-size\", null)\n .attr(\"font-family\", null)\n .attr(\"font-variant\", impliedString(fontVariant, \"normal\"))\n .call(tickAdjust)\n .call((g) => g.select(\".domain\").remove());\n\n if (label !== undefined) {\n svg\n .append(\"text\")\n .attr(\"x\", marginLeft)\n .attr(\"y\", marginTop - 6)\n .attr(\"fill\", \"currentColor\") // TODO move to stylesheet?\n .attr(\"font-weight\", \"bold\")\n .text(label);\n }\n\n return svg.node();\n}\n","import { select } from 'd3-selection';\nimport { legend } from '@observablehq/plot';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport type { IPlugin, PluginOptions } from '../index';\n\ninterface LegendOptions extends PluginOptions {\n enabled: boolean;\n itemSelector: string | null;\n label: string | null;\n width: number;\n}\n\nconst DEFAULT_SELECTOR = '#ch-plugin-legend';\n\nconst defaultOptions: LegendOptions = {\n // Whether to display the legend\n enabled: true,\n\n itemSelector: null,\n\n label: null,\n\n width: 130,\n};\n\nexport default class Legend implements IPlugin {\n name = 'Legend';\n\n calendar: CalHeatmap;\n\n root: any;\n\n shown: boolean;\n\n options: LegendOptions;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n this.root = null;\n this.shown = false;\n this.options = defaultOptions;\n }\n\n setup(pluginOptions?: Partial<LegendOptions>): void {\n this.options = { ...defaultOptions, ...pluginOptions };\n }\n\n paint(): Promise<unknown> {\n const scaleOptions = this.calendar.options.options.scale;\n const { enabled, itemSelector } = this.options;\n\n if (!enabled || (itemSelector && select(itemSelector).empty())) {\n return this.destroy();\n }\n\n this.shown = true;\n\n this.root = select(\n itemSelector || this.calendar.options.options.itemSelector,\n );\n\n if (this.root.select(DEFAULT_SELECTOR).empty()) {\n this.root = this.root.append('div').attr('id', DEFAULT_SELECTOR.slice(1));\n } else {\n this.root = this.root.select(DEFAULT_SELECTOR);\n }\n\n // @ts-ignore\n const node = legend({\n ...scaleOptions,\n ...this.options,\n });\n\n this.root.selectAll('*').remove();\n this.root.append(() => node);\n\n return Promise.resolve();\n }\n\n destroy(): Promise<unknown> {\n if (this.root !== null) {\n this.root.remove();\n this.root = null;\n }\n\n return Promise.resolve();\n }\n}\n"],"names":["fails","exec","error","descriptors","require$$0","Object","defineProperty","get","functionBindNative","test","bind","hasOwnProperty","NATIVE_BIND","FunctionPrototype","Function","prototype","call","uncurryThisWithBind","functionUncurryThis","fn","apply","arguments","isNullOrUndefined","it","$TypeError","TypeError","requireObjectCoercible","$Object","toObject","argument","require$$1","hasOwnProperty_1","hasOwn","key","DESCRIPTORS","getDescriptor","getOwnPropertyDescriptor","EXISTS","functionName","PROPER","name","CONFIGURABLE","configurable","makeBuiltIn$3","exports","documentAll","document","all","documentAll_1","IS_HTMLDDA","undefined","isCallable","check","Math","global","globalThis","window","self","this","defineGlobalProperty","value","writable","SHARED","sharedStore","store","require$$2","functionToString","toString","inspectSource","match","version","WeakMap","weakMapBasicDetection","String","isObject","objectDefineProperty","createElement","documentCreateElement","ie8DomDefine","a","v8PrototypeDefineBug","$String","anObject","functionCall","getBuiltIn","namespace","method","length","objectIsPrototypeOf","isPrototypeOf","engineUserAgent","navigator","userAgent","process","Deno","versions","v8","split","engineV8Version","V8_VERSION","symbolConstructorDetection","getOwnPropertySymbols","symbol","Symbol","sham","useSymbolAsUid","iterator","isSymbol","require$$3","$Symbol","tryToString","aCallable","getMethod","V","P","func","shared$3","sharedModule","push","mode","copyright","license","source","uncurryThis","id","postfix","random","uid","shared","NATIVE_SYMBOL","require$$4","USE_SYMBOL_AS_UID","require$$5","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","wellKnownSymbol","ordinaryToPrimitive","input","pref","val","valueOf","TO_PRIMITIVE","toPrimitive","result","exoticToPrim","toPropertyKey","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","f","O","Attributes","current","enumerable","set","has","createPropertyDescriptor","bitmap","definePropertyModule","createNonEnumerableProperty","object","keys","hiddenKeys","NATIVE_WEAK_MAP","sharedKey","require$$7","OBJECT_ALREADY_INITIALIZED","state","metadata","facade","STATE","internalState","enforce","getterFor","TYPE","type","CONFIGURABLE_FUNCTION_NAME","require$$6","enforceInternalState","getInternalState","stringSlice","slice","replace","join","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","makeBuiltInModule","options","getter","setter","arity","constructor","defineBuiltInAccessor","target","descriptor","FUNCTION_NAME_EXISTS","nameRE","regExpExec","objectGetOwnPropertyDescriptor","objectPropertyIsEnumerable","$propertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","classofRaw","classof","indexedObject","IndexedObject","toIndexedObject","propertyIsEnumerableModule","defineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","ceil","floor","trunc","x","n","toIntegerOrInfinity","number","max","min","toLength","lengthOfArrayLike","obj","toAbsoluteIndex","index","integer","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","includes","indexOf","objectKeysInternal","names","i","enumBugKeys","internalObjectKeys","concat","objectGetOwnPropertyNames","getOwnPropertyNames","objectGetOwnPropertySymbols","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","isForced_1","copyConstructorProperties","exceptions","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","objectKeys","require$$8","$assign","assign","objectAssign","b","A","B","alphabet","forEach","chr","T","argumentsLength","S","j","toStringTagSupport","TO_STRING_TAG_SUPPORT","TO_STRING_TAG","CORRECT_ARGUMENTS","tag","tryGet","callee","engineIsNode","uncurryThisAccessor","aPossiblePrototype","objectSetPrototypeOf","setPrototypeOf","CORRECT_SETTER","Array","proto","__proto__","SPECIES","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","$location","defer","channel","port","isConstructor","called","aConstructor","functionApply","Reflect","functionBindContext","that","html","arraySlice","engineIsIos","validateArgumentsLength","passed","required","IS_IOS","require$$10","IS_NODE","require$$11","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","location","run","runner","eventListener","event","globalPostMessageDefer","postMessage","protocol","host","handler","args","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","appendChild","removeChild","setTimeout","task","Queue","head","tail","add","item","entry","next","notify","toggle","node","promise","then","engineIsIosPebble","Pebble","engineIsWebosWebkit","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","Promise","queueMicrotaskDescriptor","microtask","flush","parent","domain","exit","enter","resolve","createTextNode","observe","characterData","microtask_1","perform","promiseNativeConstructor","engineIsDeno","engineIsBrowser","NativePromiseConstructor","IS_BROWSER","IS_DENO","require$$9","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","promiseConstructorDetection","CONSTRUCTOR","REJECTION_EVENT","newPromiseCapability$2","PromiseCapability","C","reject","$$resolve","$$reject","newPromiseCapability","Internal","OwnPromiseCapability","nativeThen","$","setToStringTag","TAG","setSpecies","CONSTRUCTOR_NAME","Constructor","anInstance","Prototype","speciesConstructor","defaultConstructor","require$$14","require$$15","hostReportErrors","console","require$$17","require$$18","InternalStateModule","require$$19","require$$20","newPromiseCapabilityModule","require$$22","PROMISE","require$$21","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","setInternalState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","ok","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","isUnhandled","emit","unwrap","internalReject","done","internalResolve","wrapper","executor","onFulfilled","onRejected","PromiseWrapper","wrap","iterators","Iterators","ITERATOR","ArrayPrototype","getIteratorMethod","isArrayIteratorMethod","getIterator","usingIterator","iteratorMethod","iteratorClose","kind","innerResult","innerError","Result","stopped","ResultPrototype","iterate","iterable","unboundFunction","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","SAFE_CLOSING","iteratorWithReturn","return","from","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","promiseStaticsIncorrectIteration","capability","$promiseResolve","values","remaining","alreadyCalled","real","catch","race","r","promiseResolve","promiseCapability","defined","Number","isNaN","ascendingDefined","ascending","finite","isFinite","NaN","positive","negative","format","date","fallback","Date","hours","getUTCHours","minutes","getUTCMinutes","seconds","getUTCSeconds","milliseconds","getUTCMilliseconds","year","getUTCFullYear","pad","getUTCMonth","getUTCDate","width","padStart","re","parse","timeIntervals","Map","timeSecond","timeMinute","timeHour","timeDay","timeWeek","timeMonth","every","timeYear","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","timeSunday","utcIntervals","utcSecond","utcMinute","utcHour","utcDay","utcWeek","utcMonth","utcYear","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcSunday","maybeTimeInterval","interval","Error","maybeUtcInterval","TypedArray","getPrototypeOf","Uint8Array","objectToString","constant","coerceNumbers","map","coerceNumber","Float64Array","coerceDates","coerceDate","isoParse","maybeColorChannel","defaultValue","trim","startsWith","endsWith","color","isColor","maybeNumberChannel","arrayify","option","isScaleOptions","maybeInterval","isInteger","abs","d","offset","range","lo","hi","rangei","maybeRangeInterval","isOrdinal","isTemporal","isTemporalString","isNumericString","isNoneish","isNone","orderof","first","last","descending","position","radius","opacity","registry","sqrt4_3","sqrt","symbolHexagon","draw","context","size","rx","PI","ry","hy","moveTo","lineTo","closePath","symbols","symbolAsterisk","symbolCircle","symbolCross","symbolDiamond","symbolDiamond2","symbolPlus","symbolSquare","symbolSquare2","symbolStar","symbolTimes","symbolTriangle","symbolTriangle2","symbolWye","maybeSymbol","isSymbolObject","warn","message","pi","tau","createProjection","projection","inset","globalInset","insetTop","insetRight","insetBottom","insetLeft","dimensions","stream","clip","scaleProjection","geoAlbersUsa","conicProjection","geoAlbers","geoAzimuthalEqualArea","geoAzimuthalEquidistant","geoConicConformal","geoConicEqualArea","geoConicEquidistant","geoEqualEarth","geoEquirectangular","geoGnomonic","identity","reflectY","geoMercator","geoOrthographic","geoStereographic","geoTransverseMercator","namedProjection","height","marginLeft","marginRight","marginTop","marginBottom","dx","dy","x1","y1","x2","y2","s","geoClipRectangle","maybePostClip","transform","tx","ty","x0","y0","geoPath","bounds","k","geoTransform","point","y","kx","ky","rotate","precision","clipAngle","scale","translate","aspectRatio","parallels","fitSize","createContext","className","create","select","creator","documentElement","ordinalSchemes","schemeAccent","schemeCategory10","schemeDark2","schemePaired","schemePastel1","schemePastel2","schemeSet1","schemeSet2","schemeSet3","schemeTableau10","scheme11","schemeBrBG","interpolateBrBG","schemePRGn","interpolatePRGn","schemePiYG","interpolatePiYG","schemePuOr","interpolatePuOr","schemeRdBu","interpolateRdBu","schemeRdGy","interpolateRdGy","schemeRdYlBu","interpolateRdYlBu","schemeRdYlGn","interpolateRdYlGn","schemeSpectral","interpolateSpectral","scheme11r","scheme9","schemeBlues","interpolateBlues","schemeGreens","interpolateGreens","schemeGreys","interpolateGreys","schemeOranges","interpolateOranges","schemePurples","interpolatePurples","schemeReds","interpolateReds","schemei","interpolateTurbo","interpolateViridis","interpolateMagma","interpolateInferno","interpolatePlasma","interpolateCividis","interpolateCubehelixDefault","interpolateWarm","interpolateCool","schemeBuGn","interpolateBuGn","schemeBuPu","interpolateBuPu","schemeGnBu","interpolateGnBu","schemeOrRd","interpolateOrRd","schemePuBu","interpolatePuBu","schemePuBuGn","interpolatePuBuGn","schemePuRd","interpolatePuRd","schemeRdPu","interpolateRdPu","schemeYlGn","interpolateYlGn","schemeYlGnBu","interpolateYlGnBu","schemeYlOrBr","interpolateYlOrBr","schemeYlOrRd","interpolateYlOrRd","schemeicyclical","interpolateRainbow","interpolateSinebow","scheme","interpolate","quantize","t","reverse","ordinalScheme","ordinalRange","quantitativeSchemes","quantitativeScheme","divergingSchemes","Set","isDivergingScheme","flip","unit","interpolators","interpolateNumber","interpolateRgb","interpolateHsl","interpolateHcl","interpolateLab","maybeInterpolator","createScaleQ","channels","nice","clamp","zero","inferAutoDomain","unknown","round","inferRadialRange","inferLengthRange","interpolateRound","_","interpolatePiecewise","extent","sign","reverseof","maybeNiceInterval","maybeNice","createScalePow","exponent","scalePow","createScaleThreshold","isOrdered","scaleThreshold","inferDomain","inferZeroDomain","hint","find","h25","quantile","h50","median","inferLogDomain","v","inferQuantileDomain","createScaleD","pivot","symmetric","piecewise","mid","mindelta","maxdelta","invert","interpolator","createScaleDivergingPow","scaleDivergingPow","transformSqrt","pow","transformPow","createScaleDivergingSymlog","scaleDivergingSymlog","log1p","expm1","transformSymlog","transformIdentity","transformLog","log","exp","createScaleT","ordinalImplicit","createScaleO","createScaleOrdinal","fill","inferHint","stroke","inferSymbolHint","symbolsStroke","symbolsFill","inferSymbolRange","maybeBooleanRange","t0","scaleImplicit","scaleOrdinal","maybeRound","InternSet","sort","candidate","normalizeScale","typeProjection","some","asOrdinalType","filter","inferScaleType","isOrdinalScale","formatScaleType","coerceType","coerceSymbols","scaleDiverging","createScaleDiverging","createScaleDivergingSqrt","base","scaleDivergingLog","createScaleDivergingLog","scaleLinear","createScaleLinear","createScaleSqrt","quantiles","scaleQuantile","createScaleQuantile","thresholds","ticks","splice","pop","createScaleQuantize","scaleLog","createScaleLog","scaleSymlog","createScaleSymlog","scaleUtc","createScaleUtc","scaleTime","createScaleTime","align","padding","scalePoint","createScalePoint","paddingInner","paddingOuter","scaleBand","createScaleBand","scaleIdentity","createScale","description","coerceValues","c","numberFormat","compute","cacheValue","cacheKeys","memoize1","locale","Intl","NumberFormat","formatIsoDate","isoFormat","impliedString","impliedValue","formatNumber","formatAuto","validClassName","maybeClassName","applyInlineStyles","selection","style","property","element","inferFontVariant","maybeScale","legendItems","swatch","columns","tickFormat","fontVariant","swatchSize","swatchWidth","swatchHeight","utcFormat","maybeAutoTickFormat","swatches","attr","extraStyle","selectAll","append","text","ownerDocument","div","insert","legendRegistry","fillOpacity","strokeOpacity","strokeWidth","vf","cf","vs","cs","sf","ss","p","path","legendColor","legend","rgb","interpolateOpacity","legendOptions","label","rest","o","defaults","inherit","isThresholdScale","legendSwatches","tickSize","svg","tickAdjust","g","applyRange","rangeRound","copy","Infinity","canvas","context2","getContext","fillStyle","fillRect","toDataURL","thresholdFormat","bandwidth","axisBottom","isArray","tickValues","remove","legendRamp","DEFAULT_SELECTOR","defaultOptions","enabled","itemSelector","Legend","calendar","_classCallCheck","root","shown","pluginOptions","scaleOptions","_this$options","destroy"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140]} \ No newline at end of file diff --git a/static/javascripts/cal-heatmap/plugins/LegendLite.esm.js b/static/javascripts/cal-heatmap/plugins/LegendLite.esm.js new file mode 100644 index 000000000..8ec145cbb --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/LegendLite.esm.js @@ -0,0 +1,6222 @@ +import { select, create as create$3 } from 'd3-selection'; +import { ascending, timeSecond, timeMinute, timeHour, timeDay, timeWeek, timeMonth, timeYear, timeMonday, timeTuesday, timeWednesday, timeThursday, timeFriday, timeSaturday, timeSunday, utcSecond, utcMinute, utcHour, utcDay, utcWeek, utcMonth, utcYear, utcMonday, utcTuesday, utcWednesday, utcThursday, utcFriday, utcSaturday, utcSunday, descending, range, symbolAsterisk, symbolCircle, symbolCross, symbolDiamond, symbolDiamond2, symbolPlus, symbolSquare, symbolSquare2, symbolStar, symbolTimes, symbolTriangle, symbolTriangle2, symbolWye, schemeAccent, schemeCategory10, schemeDark2, schemePaired, schemePastel1, schemePastel2, schemeSet1, schemeSet2, schemeSet3, schemeTableau10, quantize, interpolateBrBG, interpolatePRGn, interpolatePiYG, interpolatePuOr, interpolateRdBu, interpolateRdGy, interpolateRdYlBu, interpolateRdYlGn, interpolateSpectral, interpolateBlues, interpolateGreens, interpolateGreys, interpolatePurples, interpolateReds, interpolateOranges, interpolateTurbo, interpolateViridis, interpolateMagma, interpolateInferno, interpolatePlasma, interpolateCividis, interpolateCubehelixDefault, interpolateWarm, interpolateCool, interpolateBuGn, interpolateBuPu, interpolateGnBu, interpolateOrRd, interpolatePuBuGn, interpolatePuBu, interpolatePuRd, interpolateRdPu, interpolateYlGnBu, interpolateYlGn, interpolateYlOrBr, interpolateYlOrRd, interpolateRainbow, interpolateSinebow, schemeBrBG, schemePRGn, schemePiYG, schemePuOr, schemeRdBu, schemeRdGy, schemeRdYlBu, schemeRdYlGn, schemeSpectral, schemeBlues, schemeGreens, schemeGreys, schemeOranges, schemePurples, schemeReds, schemeBuGn, schemeBuPu, schemeGnBu, schemeOrRd, schemePuBu, schemePuBuGn, schemePuRd, schemeRdPu, schemeYlGn, schemeYlGnBu, schemeYlOrBr, schemeYlOrRd, interpolateNumber, interpolateRgb, interpolateHsl, interpolateHcl, interpolateLab, scaleLinear, scalePow, scaleLog, scaleSymlog, scaleQuantile, extent, ticks, reverse, scaleThreshold, scaleIdentity, max as max$3, interpolateRound, min as min$3, quantile, median, scaleDiverging, scaleDivergingPow, scaleDivergingLog, scaleDivergingSymlog, piecewise, scaleTime, scaleUtc, scaleImplicit, scaleOrdinal, scalePoint, scaleBand, InternSet, sort, symbolsStroke, symbolsFill } from 'd3'; + +function _iterableToArrayLimit(arr, i) { + var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; + if (null != _i) { + var _s, + _e, + _x, + _r, + _arr = [], + _n = !0, + _d = !1; + try { + if (_x = (_i = _i.call(arr)).next, 0 === i) { + if (Object(_i) !== _i) return; + _n = !1; + } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); + } catch (err) { + _d = !0, _e = err; + } finally { + try { + if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; + } finally { + if (_d) throw _e; + } + } + return _arr; + } +} +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); + } +} +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function _defineProperty(obj, key, value) { + key = _toPropertyKey(key); + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; +} +function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); +} +function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); +} +function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); +} +function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} +function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); +} +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); +} +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; +} +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} +function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} +function _toPrimitive(input, hint) { + if (typeof input !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (typeof res !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} +function _toPropertyKey(arg) { + var key = _toPrimitive(arg, "string"); + return typeof key === "symbol" ? key : String(key); +} + +var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +var fails$p = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } +}; + +var fails$o = fails$p; + +// Detect IE8's incomplete defineProperty implementation +var descriptors = !fails$o(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; +}); + +var fails$n = fails$p; + +var functionBindNative = !fails$n(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); +}); + +var NATIVE_BIND$3 = functionBindNative; + +var FunctionPrototype$3 = Function.prototype; +var call$g = FunctionPrototype$3.call; +var uncurryThisWithBind = NATIVE_BIND$3 && FunctionPrototype$3.bind.bind(call$g, call$g); + +var functionUncurryThis = NATIVE_BIND$3 ? uncurryThisWithBind : function (fn) { + return function () { + return call$g.apply(fn, arguments); + }; +}; + +// we can't use just `it == null` since of `document.all` special case +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec +var isNullOrUndefined$7 = function (it) { + return it === null || it === undefined; +}; + +var isNullOrUndefined$6 = isNullOrUndefined$7; + +var $TypeError$g = TypeError; + +// `RequireObjectCoercible` abstract operation +// https://tc39.es/ecma262/#sec-requireobjectcoercible +var requireObjectCoercible$5 = function (it) { + if (isNullOrUndefined$6(it)) throw $TypeError$g("Can't call method on " + it); + return it; +}; + +var requireObjectCoercible$4 = requireObjectCoercible$5; + +var $Object$4 = Object; + +// `ToObject` abstract operation +// https://tc39.es/ecma262/#sec-toobject +var toObject$9 = function (argument) { + return $Object$4(requireObjectCoercible$4(argument)); +}; + +var uncurryThis$q = functionUncurryThis; +var toObject$8 = toObject$9; + +var hasOwnProperty = uncurryThis$q({}.hasOwnProperty); + +// `HasOwnProperty` abstract operation +// https://tc39.es/ecma262/#sec-hasownproperty +// eslint-disable-next-line es/no-object-hasown -- safe +var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject$8(it), key); +}; + +var DESCRIPTORS$d = descriptors; +var hasOwn$b = hasOwnProperty_1; + +var FunctionPrototype$2 = Function.prototype; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getDescriptor = DESCRIPTORS$d && Object.getOwnPropertyDescriptor; + +var EXISTS$1 = hasOwn$b(FunctionPrototype$2, 'name'); +// additional protection from minified / mangled / dropped function names +var PROPER = EXISTS$1 && (function something() { /* empty */ }).name === 'something'; +var CONFIGURABLE$1 = EXISTS$1 && (!DESCRIPTORS$d || (DESCRIPTORS$d && getDescriptor(FunctionPrototype$2, 'name').configurable)); + +var functionName = { + EXISTS: EXISTS$1, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE$1 +}; + +var makeBuiltIn$3 = {exports: {}}; + +var documentAll$2 = typeof document == 'object' && document.all; + +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot +// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing +var IS_HTMLDDA = typeof documentAll$2 == 'undefined' && documentAll$2 !== undefined; + +var documentAll_1 = { + all: documentAll$2, + IS_HTMLDDA: IS_HTMLDDA +}; + +var $documentAll$1 = documentAll_1; + +var documentAll$1 = $documentAll$1.all; + +// `IsCallable` abstract operation +// https://tc39.es/ecma262/#sec-iscallable +var isCallable$m = $documentAll$1.IS_HTMLDDA ? function (argument) { + return typeof argument == 'function' || argument === documentAll$1; +} : function (argument) { + return typeof argument == 'function'; +}; + +var check = function (it) { + return it && it.Math == Math && it; +}; + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +var global$k = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || commonjsGlobal || Function('return this')(); + +var global$j = global$k; + +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty$7 = Object.defineProperty; + +var defineGlobalProperty$3 = function (key, value) { + try { + defineProperty$7(global$j, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global$j[key] = value; + } return value; +}; + +var global$i = global$k; +var defineGlobalProperty$2 = defineGlobalProperty$3; + +var SHARED = '__core-js_shared__'; +var store$3 = global$i[SHARED] || defineGlobalProperty$2(SHARED, {}); + +var sharedStore = store$3; + +var uncurryThis$p = functionUncurryThis; +var isCallable$l = isCallable$m; +var store$2 = sharedStore; + +var functionToString$1 = uncurryThis$p(Function.toString); + +// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper +if (!isCallable$l(store$2.inspectSource)) { + store$2.inspectSource = function (it) { + return functionToString$1(it); + }; +} + +var inspectSource$3 = store$2.inspectSource; + +var global$h = global$k; +var isCallable$k = isCallable$m; + +var WeakMap$1 = global$h.WeakMap; + +var weakMapBasicDetection = isCallable$k(WeakMap$1) && /native code/.test(String(WeakMap$1)); + +var isCallable$j = isCallable$m; +var $documentAll = documentAll_1; + +var documentAll = $documentAll.all; + +var isObject$i = $documentAll.IS_HTMLDDA ? function (it) { + return typeof it == 'object' ? it !== null : isCallable$j(it) || it === documentAll; +} : function (it) { + return typeof it == 'object' ? it !== null : isCallable$j(it); +}; + +var objectDefineProperty = {}; + +var global$g = global$k; +var isObject$h = isObject$i; + +var document$3 = global$g.document; +// typeof document.createElement is 'object' in old IE +var EXISTS = isObject$h(document$3) && isObject$h(document$3.createElement); + +var documentCreateElement$2 = function (it) { + return EXISTS ? document$3.createElement(it) : {}; +}; + +var DESCRIPTORS$c = descriptors; +var fails$m = fails$p; +var createElement$1 = documentCreateElement$2; + +// Thanks to IE8 for its funny defineProperty +var ie8DomDefine = !DESCRIPTORS$c && !fails$m(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement$1('div'), 'a', { + get: function () { return 7; } + }).a != 7; +}); + +var DESCRIPTORS$b = descriptors; +var fails$l = fails$p; + +// V8 ~ Chrome 36- +// https://bugs.chromium.org/p/v8/issues/detail?id=3334 +var v8PrototypeDefineBug = DESCRIPTORS$b && fails$l(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype != 42; +}); + +var isObject$g = isObject$i; + +var $String$5 = String; +var $TypeError$f = TypeError; + +// `Assert: Type(argument) is Object` +var anObject$c = function (argument) { + if (isObject$g(argument)) return argument; + throw $TypeError$f($String$5(argument) + ' is not an object'); +}; + +var NATIVE_BIND$2 = functionBindNative; + +var call$f = Function.prototype.call; + +var functionCall = NATIVE_BIND$2 ? call$f.bind(call$f) : function () { + return call$f.apply(call$f, arguments); +}; + +var global$f = global$k; +var isCallable$i = isCallable$m; + +var aFunction = function (argument) { + return isCallable$i(argument) ? argument : undefined; +}; + +var getBuiltIn$7 = function (namespace, method) { + return arguments.length < 2 ? aFunction(global$f[namespace]) : global$f[namespace] && global$f[namespace][method]; +}; + +var uncurryThis$o = functionUncurryThis; + +var objectIsPrototypeOf = uncurryThis$o({}.isPrototypeOf); + +var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + +var global$e = global$k; +var userAgent$5 = engineUserAgent; + +var process$4 = global$e.process; +var Deno$1 = global$e.Deno; +var versions = process$4 && process$4.versions || Deno$1 && Deno$1.version; +var v8 = versions && versions.v8; +var match, version; + +if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); +} + +// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` +// so check `userAgent` even if `.v8` exists, but 0 +if (!version && userAgent$5) { + match = userAgent$5.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent$5.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } +} + +var engineV8Version = version; + +/* eslint-disable es/no-symbol -- required for testing */ + +var V8_VERSION$3 = engineV8Version; +var fails$k = fails$p; +var global$d = global$k; + +var $String$4 = global$d.String; + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing +var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$k(function () { + var symbol = Symbol(); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String$4(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION$3 && V8_VERSION$3 < 41; +}); + +/* eslint-disable es/no-symbol -- required for testing */ + +var NATIVE_SYMBOL$1 = symbolConstructorDetection; + +var useSymbolAsUid = NATIVE_SYMBOL$1 + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + +var getBuiltIn$6 = getBuiltIn$7; +var isCallable$h = isCallable$m; +var isPrototypeOf$2 = objectIsPrototypeOf; +var USE_SYMBOL_AS_UID$1 = useSymbolAsUid; + +var $Object$3 = Object; + +var isSymbol$2 = USE_SYMBOL_AS_UID$1 ? function (it) { + return typeof it == 'symbol'; +} : function (it) { + var $Symbol = getBuiltIn$6('Symbol'); + return isCallable$h($Symbol) && isPrototypeOf$2($Symbol.prototype, $Object$3(it)); +}; + +var $String$3 = String; + +var tryToString$5 = function (argument) { + try { + return $String$3(argument); + } catch (error) { + return 'Object'; + } +}; + +var isCallable$g = isCallable$m; +var tryToString$4 = tryToString$5; + +var $TypeError$e = TypeError; + +// `Assert: IsCallable(argument) is true` +var aCallable$b = function (argument) { + if (isCallable$g(argument)) return argument; + throw $TypeError$e(tryToString$4(argument) + ' is not a function'); +}; + +var aCallable$a = aCallable$b; +var isNullOrUndefined$5 = isNullOrUndefined$7; + +// `GetMethod` abstract operation +// https://tc39.es/ecma262/#sec-getmethod +var getMethod$3 = function (V, P) { + var func = V[P]; + return isNullOrUndefined$5(func) ? undefined : aCallable$a(func); +}; + +var call$e = functionCall; +var isCallable$f = isCallable$m; +var isObject$f = isObject$i; + +var $TypeError$d = TypeError; + +// `OrdinaryToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-ordinarytoprimitive +var ordinaryToPrimitive$1 = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable$f(fn = input.toString) && !isObject$f(val = call$e(fn, input))) return val; + if (isCallable$f(fn = input.valueOf) && !isObject$f(val = call$e(fn, input))) return val; + if (pref !== 'string' && isCallable$f(fn = input.toString) && !isObject$f(val = call$e(fn, input))) return val; + throw $TypeError$d("Can't convert object to primitive value"); +}; + +var shared$3 = {exports: {}}; + +var store$1 = sharedStore; + +(shared$3.exports = function (key, value) { + return store$1[key] || (store$1[key] = value !== undefined ? value : {}); +})('versions', []).push({ + version: '3.30.2', + mode: 'global', + copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE', + source: 'https://github.com/zloirock/core-js' +}); + +var sharedExports = shared$3.exports; + +var uncurryThis$n = functionUncurryThis; + +var id$2 = 0; +var postfix = Math.random(); +var toString$9 = uncurryThis$n(1.0.toString); + +var uid$3 = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$9(++id$2 + postfix, 36); +}; + +var global$c = global$k; +var shared$2 = sharedExports; +var hasOwn$a = hasOwnProperty_1; +var uid$2 = uid$3; +var NATIVE_SYMBOL = symbolConstructorDetection; +var USE_SYMBOL_AS_UID = useSymbolAsUid; + +var Symbol$2 = global$c.Symbol; +var WellKnownSymbolsStore = shared$2('wks'); +var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$2['for'] || Symbol$2 : Symbol$2 && Symbol$2.withoutSetter || uid$2; + +var wellKnownSymbol$k = function (name) { + if (!hasOwn$a(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn$a(Symbol$2, name) + ? Symbol$2[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; +}; + +var call$d = functionCall; +var isObject$e = isObject$i; +var isSymbol$1 = isSymbol$2; +var getMethod$2 = getMethod$3; +var ordinaryToPrimitive = ordinaryToPrimitive$1; +var wellKnownSymbol$j = wellKnownSymbol$k; + +var $TypeError$c = TypeError; +var TO_PRIMITIVE = wellKnownSymbol$j('toPrimitive'); + +// `ToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-toprimitive +var toPrimitive$1 = function (input, pref) { + if (!isObject$e(input) || isSymbol$1(input)) return input; + var exoticToPrim = getMethod$2(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call$d(exoticToPrim, input, pref); + if (!isObject$e(result) || isSymbol$1(result)) return result; + throw $TypeError$c("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); +}; + +var toPrimitive = toPrimitive$1; +var isSymbol = isSymbol$2; + +// `ToPropertyKey` abstract operation +// https://tc39.es/ecma262/#sec-topropertykey +var toPropertyKey$3 = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; +}; + +var DESCRIPTORS$a = descriptors; +var IE8_DOM_DEFINE$1 = ie8DomDefine; +var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug; +var anObject$b = anObject$c; +var toPropertyKey$2 = toPropertyKey$3; + +var $TypeError$b = TypeError; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var $defineProperty = Object.defineProperty; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; +var ENUMERABLE = 'enumerable'; +var CONFIGURABLE = 'configurable'; +var WRITABLE = 'writable'; + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +objectDefineProperty.f = DESCRIPTORS$a ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) { + anObject$b(O); + P = toPropertyKey$2(P); + anObject$b(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor$1(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); +} : $defineProperty : function defineProperty(O, P, Attributes) { + anObject$b(O); + P = toPropertyKey$2(P); + anObject$b(Attributes); + if (IE8_DOM_DEFINE$1) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw $TypeError$b('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + +var createPropertyDescriptor$4 = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + +var DESCRIPTORS$9 = descriptors; +var definePropertyModule$4 = objectDefineProperty; +var createPropertyDescriptor$3 = createPropertyDescriptor$4; + +var createNonEnumerableProperty$5 = DESCRIPTORS$9 ? function (object, key, value) { + return definePropertyModule$4.f(object, key, createPropertyDescriptor$3(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + +var shared$1 = sharedExports; +var uid$1 = uid$3; + +var keys = shared$1('keys'); + +var sharedKey$3 = function (key) { + return keys[key] || (keys[key] = uid$1(key)); +}; + +var hiddenKeys$5 = {}; + +var NATIVE_WEAK_MAP = weakMapBasicDetection; +var global$b = global$k; +var isObject$d = isObject$i; +var createNonEnumerableProperty$4 = createNonEnumerableProperty$5; +var hasOwn$9 = hasOwnProperty_1; +var shared = sharedStore; +var sharedKey$2 = sharedKey$3; +var hiddenKeys$4 = hiddenKeys$5; + +var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; +var TypeError$2 = global$b.TypeError; +var WeakMap = global$b.WeakMap; +var set$1, get, has; + +var enforce = function (it) { + return has(it) ? get(it) : set$1(it, {}); +}; + +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject$d(it) || (state = get(it)).type !== TYPE) { + throw TypeError$2('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; +}; + +if (NATIVE_WEAK_MAP || shared.state) { + var store = shared.state || (shared.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set$1 = function (it, metadata) { + if (store.has(it)) throw TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; +} else { + var STATE = sharedKey$2('state'); + hiddenKeys$4[STATE] = true; + set$1 = function (it, metadata) { + if (hasOwn$9(it, STATE)) throw TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty$4(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn$9(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn$9(it, STATE); + }; +} + +var internalState = { + set: set$1, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor +}; + +var uncurryThis$m = functionUncurryThis; +var fails$j = fails$p; +var isCallable$e = isCallable$m; +var hasOwn$8 = hasOwnProperty_1; +var DESCRIPTORS$8 = descriptors; +var CONFIGURABLE_FUNCTION_NAME$1 = functionName.CONFIGURABLE; +var inspectSource$2 = inspectSource$3; +var InternalStateModule$5 = internalState; + +var enforceInternalState = InternalStateModule$5.enforce; +var getInternalState$2 = InternalStateModule$5.get; +var $String$2 = String; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty$6 = Object.defineProperty; +var stringSlice$3 = uncurryThis$m(''.slice); +var replace$1 = uncurryThis$m(''.replace); +var join = uncurryThis$m([].join); + +var CONFIGURABLE_LENGTH = DESCRIPTORS$8 && !fails$j(function () { + return defineProperty$6(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; +}); + +var TEMPLATE = String(String).split('String'); + +var makeBuiltIn$2 = makeBuiltIn$3.exports = function (value, name, options) { + if (stringSlice$3($String$2(name), 0, 7) === 'Symbol(') { + name = '[' + replace$1($String$2(name), /^Symbol\(([^)]*)\)/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn$8(value, 'name') || (CONFIGURABLE_FUNCTION_NAME$1 && value.name !== name)) { + if (DESCRIPTORS$8) defineProperty$6(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn$8(options, 'arity') && value.length !== options.arity) { + defineProperty$6(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn$8(options, 'constructor') && options.constructor) { + if (DESCRIPTORS$8) defineProperty$6(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn$8(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; +}; + +// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative +// eslint-disable-next-line no-extend-native -- required +Function.prototype.toString = makeBuiltIn$2(function toString() { + return isCallable$e(this) && getInternalState$2(this).source || inspectSource$2(this); +}, 'toString'); + +var makeBuiltInExports = makeBuiltIn$3.exports; + +var makeBuiltIn$1 = makeBuiltInExports; +var defineProperty$5 = objectDefineProperty; + +var defineBuiltInAccessor$3 = function (target, name, descriptor) { + if (descriptor.get) makeBuiltIn$1(descriptor.get, name, { getter: true }); + if (descriptor.set) makeBuiltIn$1(descriptor.set, name, { setter: true }); + return defineProperty$5.f(target, name, descriptor); +}; + +var DESCRIPTORS$7 = descriptors; +var FUNCTION_NAME_EXISTS = functionName.EXISTS; +var uncurryThis$l = functionUncurryThis; +var defineBuiltInAccessor$2 = defineBuiltInAccessor$3; + +var FunctionPrototype$1 = Function.prototype; +var functionToString = uncurryThis$l(FunctionPrototype$1.toString); +var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/; +var regExpExec = uncurryThis$l(nameRE.exec); +var NAME = 'name'; + +// Function instances `.name` property +// https://tc39.es/ecma262/#sec-function-instances-name +if (DESCRIPTORS$7 && !FUNCTION_NAME_EXISTS) { + defineBuiltInAccessor$2(FunctionPrototype$1, NAME, { + configurable: true, + get: function () { + try { + return regExpExec(nameRE, functionToString(this))[1]; + } catch (error) { + return ''; + } + } + }); +} + +var objectGetOwnPropertyDescriptor = {}; + +var objectPropertyIsEnumerable = {}; + +var $propertyIsEnumerable$1 = {}.propertyIsEnumerable; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor$3 = Object.getOwnPropertyDescriptor; + +// Nashorn ~ JDK8 bug +var NASHORN_BUG = getOwnPropertyDescriptor$3 && !$propertyIsEnumerable$1.call({ 1: 2 }, 1); + +// `Object.prototype.propertyIsEnumerable` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable +objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor$3(this, V); + return !!descriptor && descriptor.enumerable; +} : $propertyIsEnumerable$1; + +var uncurryThis$k = functionUncurryThis; + +var toString$8 = uncurryThis$k({}.toString); +var stringSlice$2 = uncurryThis$k(''.slice); + +var classofRaw$2 = function (it) { + return stringSlice$2(toString$8(it), 8, -1); +}; + +var uncurryThis$j = functionUncurryThis; +var fails$i = fails$p; +var classof$a = classofRaw$2; + +var $Object$2 = Object; +var split = uncurryThis$j(''.split); + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +var indexedObject = fails$i(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object$2('z').propertyIsEnumerable(0); +}) ? function (it) { + return classof$a(it) == 'String' ? split(it, '') : $Object$2(it); +} : $Object$2; + +// toObject with fallback for non-array-like ES3 strings +var IndexedObject$4 = indexedObject; +var requireObjectCoercible$3 = requireObjectCoercible$5; + +var toIndexedObject$9 = function (it) { + return IndexedObject$4(requireObjectCoercible$3(it)); +}; + +var DESCRIPTORS$6 = descriptors; +var call$c = functionCall; +var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable; +var createPropertyDescriptor$2 = createPropertyDescriptor$4; +var toIndexedObject$8 = toIndexedObject$9; +var toPropertyKey$1 = toPropertyKey$3; +var hasOwn$7 = hasOwnProperty_1; +var IE8_DOM_DEFINE = ie8DomDefine; + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +objectGetOwnPropertyDescriptor.f = DESCRIPTORS$6 ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject$8(O); + P = toPropertyKey$1(P); + if (IE8_DOM_DEFINE) try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (hasOwn$7(O, P)) return createPropertyDescriptor$2(!call$c(propertyIsEnumerableModule$1.f, O, P), O[P]); +}; + +var isCallable$d = isCallable$m; +var definePropertyModule$3 = objectDefineProperty; +var makeBuiltIn = makeBuiltInExports; +var defineGlobalProperty$1 = defineGlobalProperty$3; + +var defineBuiltIn$8 = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable$d(value)) makeBuiltIn(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty$1(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule$3.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; +}; + +var objectGetOwnPropertyNames = {}; + +var ceil = Math.ceil; +var floor$1 = Math.floor; + +// `Math.trunc` method +// https://tc39.es/ecma262/#sec-math.trunc +// eslint-disable-next-line es/no-math-trunc -- safe +var mathTrunc = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor$1 : ceil)(n); +}; + +var trunc = mathTrunc; + +// `ToIntegerOrInfinity` abstract operation +// https://tc39.es/ecma262/#sec-tointegerorinfinity +var toIntegerOrInfinity$3 = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); +}; + +var toIntegerOrInfinity$2 = toIntegerOrInfinity$3; + +var max$2 = Math.max; +var min$2 = Math.min; + +// Helper for a popular repeating case of the spec: +// Let integer be ? ToInteger(index). +// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). +var toAbsoluteIndex$3 = function (index, length) { + var integer = toIntegerOrInfinity$2(index); + return integer < 0 ? max$2(integer + length, 0) : min$2(integer, length); +}; + +var toIntegerOrInfinity$1 = toIntegerOrInfinity$3; + +var min$1 = Math.min; + +// `ToLength` abstract operation +// https://tc39.es/ecma262/#sec-tolength +var toLength$2 = function (argument) { + return argument > 0 ? min$1(toIntegerOrInfinity$1(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 +}; + +var toLength$1 = toLength$2; + +// `LengthOfArrayLike` abstract operation +// https://tc39.es/ecma262/#sec-lengthofarraylike +var lengthOfArrayLike$9 = function (obj) { + return toLength$1(obj.length); +}; + +var toIndexedObject$7 = toIndexedObject$9; +var toAbsoluteIndex$2 = toAbsoluteIndex$3; +var lengthOfArrayLike$8 = lengthOfArrayLike$9; + +// `Array.prototype.{ indexOf, includes }` methods implementation +var createMethod$5 = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject$7($this); + var length = lengthOfArrayLike$8(O); + var index = toAbsoluteIndex$2(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + +var arrayIncludes = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod$5(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod$5(false) +}; + +var uncurryThis$i = functionUncurryThis; +var hasOwn$6 = hasOwnProperty_1; +var toIndexedObject$6 = toIndexedObject$9; +var indexOf = arrayIncludes.indexOf; +var hiddenKeys$3 = hiddenKeys$5; + +var push$3 = uncurryThis$i([].push); + +var objectKeysInternal = function (object, names) { + var O = toIndexedObject$6(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn$6(hiddenKeys$3, key) && hasOwn$6(O, key) && push$3(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn$6(O, key = names[i++])) { + ~indexOf(result, key) || push$3(result, key); + } + return result; +}; + +// IE8- don't enum bug keys +var enumBugKeys$3 = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; + +var internalObjectKeys$1 = objectKeysInternal; +var enumBugKeys$2 = enumBugKeys$3; + +var hiddenKeys$2 = enumBugKeys$2.concat('length', 'prototype'); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +// eslint-disable-next-line es/no-object-getownpropertynames -- safe +objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys$1(O, hiddenKeys$2); +}; + +var objectGetOwnPropertySymbols = {}; + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe +objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; + +var getBuiltIn$5 = getBuiltIn$7; +var uncurryThis$h = functionUncurryThis; +var getOwnPropertyNamesModule$1 = objectGetOwnPropertyNames; +var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols; +var anObject$a = anObject$c; + +var concat$1 = uncurryThis$h([].concat); + +// all object keys, includes non-enumerable and symbols +var ownKeys$1 = getBuiltIn$5('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule$1.f(anObject$a(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f; + return getOwnPropertySymbols ? concat$1(keys, getOwnPropertySymbols(it)) : keys; +}; + +var hasOwn$5 = hasOwnProperty_1; +var ownKeys = ownKeys$1; +var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor; +var definePropertyModule$2 = objectDefineProperty; + +var copyConstructorProperties$1 = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule$2.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn$5(target, key) && !(exceptions && hasOwn$5(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } +}; + +var fails$h = fails$p; +var isCallable$c = isCallable$m; + +var replacement = /#|\.prototype\./; + +var isForced$3 = function (feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true + : value == NATIVE ? false + : isCallable$c(detection) ? fails$h(detection) + : !!detection; +}; + +var normalize = isForced$3.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); +}; + +var data = isForced$3.data = {}; +var NATIVE = isForced$3.NATIVE = 'N'; +var POLYFILL = isForced$3.POLYFILL = 'P'; + +var isForced_1 = isForced$3; + +var global$a = global$k; +var getOwnPropertyDescriptor$2 = objectGetOwnPropertyDescriptor.f; +var createNonEnumerableProperty$3 = createNonEnumerableProperty$5; +var defineBuiltIn$7 = defineBuiltIn$8; +var defineGlobalProperty = defineGlobalProperty$3; +var copyConstructorProperties = copyConstructorProperties$1; +var isForced$2 = isForced_1; + +/* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key +*/ +var _export = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global$a; + } else if (STATIC) { + target = global$a[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = (global$a[TARGET] || {}).prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor$2(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced$2(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty$3(sourceProperty, 'sham', true); + } + defineBuiltIn$7(target, key, sourceProperty, options); + } +}; + +var internalObjectKeys = objectKeysInternal; +var enumBugKeys$1 = enumBugKeys$3; + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +// eslint-disable-next-line es/no-object-keys -- safe +var objectKeys$3 = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys$1); +}; + +var DESCRIPTORS$5 = descriptors; +var uncurryThis$g = functionUncurryThis; +var call$b = functionCall; +var fails$g = fails$p; +var objectKeys$2 = objectKeys$3; +var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols; +var propertyIsEnumerableModule = objectPropertyIsEnumerable; +var toObject$7 = toObject$9; +var IndexedObject$3 = indexedObject; + +// eslint-disable-next-line es/no-object-assign -- safe +var $assign = Object.assign; +// eslint-disable-next-line es/no-object-defineproperty -- required for testing +var defineProperty$4 = Object.defineProperty; +var concat = uncurryThis$g([].concat); + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +var objectAssign = !$assign || fails$g(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS$5 && $assign({ b: 1 }, $assign(defineProperty$4({}, 'a', { + enumerable: true, + get: function () { + defineProperty$4(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol(); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] != 7 || objectKeys$2($assign({}, B)).join('') != alphabet; +}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject$7(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject$3(arguments[index++]); + var keys = getOwnPropertySymbols ? concat(objectKeys$2(S), getOwnPropertySymbols(S)) : objectKeys$2(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS$5 || call$b(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; +} : $assign; + +var $$o = _export; +var assign = objectAssign; + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +// eslint-disable-next-line es/no-object-assign -- required for testing +$$o({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign +}); + +var wellKnownSymbol$i = wellKnownSymbol$k; + +var TO_STRING_TAG$3 = wellKnownSymbol$i('toStringTag'); +var test$1 = {}; + +test$1[TO_STRING_TAG$3] = 'z'; + +var toStringTagSupport = String(test$1) === '[object z]'; + +var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport; +var isCallable$b = isCallable$m; +var classofRaw$1 = classofRaw$2; +var wellKnownSymbol$h = wellKnownSymbol$k; + +var TO_STRING_TAG$2 = wellKnownSymbol$h('toStringTag'); +var $Object$1 = Object; + +// ES3 wrong here +var CORRECT_ARGUMENTS = classofRaw$1(function () { return arguments; }()) == 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } +}; + +// getting tag from ES6+ `Object.prototype.toString` +var classof$9 = TO_STRING_TAG_SUPPORT$2 ? classofRaw$1 : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object$1(it), TO_STRING_TAG$2)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw$1(O) + // ES3 arguments fallback + : (result = classofRaw$1(O)) == 'Object' && isCallable$b(O.callee) ? 'Arguments' : result; +}; + +var TO_STRING_TAG_SUPPORT$1 = toStringTagSupport; +var classof$8 = classof$9; + +// `Object.prototype.toString` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.tostring +var objectToString$1 = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() { + return '[object ' + classof$8(this) + ']'; +}; + +var TO_STRING_TAG_SUPPORT = toStringTagSupport; +var defineBuiltIn$6 = defineBuiltIn$8; +var toString$7 = objectToString$1; + +// `Object.prototype.toString` method +// https://tc39.es/ecma262/#sec-object.prototype.tostring +if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn$6(Object.prototype, 'toString', toString$7, { unsafe: true }); +} + +var classof$7 = classofRaw$2; + +var engineIsNode = typeof process != 'undefined' && classof$7(process) == 'process'; + +var uncurryThis$f = functionUncurryThis; +var aCallable$9 = aCallable$b; + +var functionUncurryThisAccessor = function (object, key, method) { + try { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return uncurryThis$f(aCallable$9(Object.getOwnPropertyDescriptor(object, key)[method])); + } catch (error) { /* empty */ } +}; + +var isCallable$a = isCallable$m; + +var $String$1 = String; +var $TypeError$a = TypeError; + +var aPossiblePrototype$1 = function (argument) { + if (typeof argument == 'object' || isCallable$a(argument)) return argument; + throw $TypeError$a("Can't set " + $String$1(argument) + ' as a prototype'); +}; + +/* eslint-disable no-proto -- safe */ + +var uncurryThisAccessor = functionUncurryThisAccessor; +var anObject$9 = anObject$c; +var aPossiblePrototype = aPossiblePrototype$1; + +// `Object.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.setprototypeof +// Works with __proto__ only. Old v8 can't work with null proto objects. +// eslint-disable-next-line es/no-object-setprototypeof -- safe +var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set'); + setter(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + anObject$9(O); + aPossiblePrototype(proto); + if (CORRECT_SETTER) setter(O, proto); + else O.__proto__ = proto; + return O; + }; +}() : undefined); + +var defineProperty$3 = objectDefineProperty.f; +var hasOwn$4 = hasOwnProperty_1; +var wellKnownSymbol$g = wellKnownSymbol$k; + +var TO_STRING_TAG$1 = wellKnownSymbol$g('toStringTag'); + +var setToStringTag$4 = function (target, TAG, STATIC) { + if (target && !STATIC) target = target.prototype; + if (target && !hasOwn$4(target, TO_STRING_TAG$1)) { + defineProperty$3(target, TO_STRING_TAG$1, { configurable: true, value: TAG }); + } +}; + +var getBuiltIn$4 = getBuiltIn$7; +var defineBuiltInAccessor$1 = defineBuiltInAccessor$3; +var wellKnownSymbol$f = wellKnownSymbol$k; +var DESCRIPTORS$4 = descriptors; + +var SPECIES$5 = wellKnownSymbol$f('species'); + +var setSpecies$2 = function (CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn$4(CONSTRUCTOR_NAME); + + if (DESCRIPTORS$4 && Constructor && !Constructor[SPECIES$5]) { + defineBuiltInAccessor$1(Constructor, SPECIES$5, { + configurable: true, + get: function () { return this; } + }); + } +}; + +var isPrototypeOf$1 = objectIsPrototypeOf; + +var $TypeError$9 = TypeError; + +var anInstance$4 = function (it, Prototype) { + if (isPrototypeOf$1(Prototype, it)) return it; + throw $TypeError$9('Incorrect invocation'); +}; + +var uncurryThis$e = functionUncurryThis; +var fails$f = fails$p; +var isCallable$9 = isCallable$m; +var classof$6 = classof$9; +var getBuiltIn$3 = getBuiltIn$7; +var inspectSource$1 = inspectSource$3; + +var noop = function () { /* empty */ }; +var empty = []; +var construct = getBuiltIn$3('Reflect', 'construct'); +var constructorRegExp = /^\s*(?:class|function)\b/; +var exec$1 = uncurryThis$e(constructorRegExp.exec); +var INCORRECT_TO_STRING = !constructorRegExp.exec(noop); + +var isConstructorModern = function isConstructor(argument) { + if (!isCallable$9(argument)) return false; + try { + construct(noop, empty, argument); + return true; + } catch (error) { + return false; + } +}; + +var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable$9(argument)) return false; + switch (classof$6(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec$1(constructorRegExp, inspectSource$1(argument)); + } catch (error) { + return true; + } +}; + +isConstructorLegacy.sham = true; + +// `IsConstructor` abstract operation +// https://tc39.es/ecma262/#sec-isconstructor +var isConstructor$4 = !construct || fails$f(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; +}) ? isConstructorLegacy : isConstructorModern; + +var isConstructor$3 = isConstructor$4; +var tryToString$3 = tryToString$5; + +var $TypeError$8 = TypeError; + +// `Assert: IsConstructor(argument) is true` +var aConstructor$1 = function (argument) { + if (isConstructor$3(argument)) return argument; + throw $TypeError$8(tryToString$3(argument) + ' is not a constructor'); +}; + +var anObject$8 = anObject$c; +var aConstructor = aConstructor$1; +var isNullOrUndefined$4 = isNullOrUndefined$7; +var wellKnownSymbol$e = wellKnownSymbol$k; + +var SPECIES$4 = wellKnownSymbol$e('species'); + +// `SpeciesConstructor` abstract operation +// https://tc39.es/ecma262/#sec-speciesconstructor +var speciesConstructor$1 = function (O, defaultConstructor) { + var C = anObject$8(O).constructor; + var S; + return C === undefined || isNullOrUndefined$4(S = anObject$8(C)[SPECIES$4]) ? defaultConstructor : aConstructor(S); +}; + +var NATIVE_BIND$1 = functionBindNative; + +var FunctionPrototype = Function.prototype; +var apply$1 = FunctionPrototype.apply; +var call$a = FunctionPrototype.call; + +// eslint-disable-next-line es/no-reflect -- safe +var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND$1 ? call$a.bind(apply$1) : function () { + return call$a.apply(apply$1, arguments); +}); + +var classofRaw = classofRaw$2; +var uncurryThis$d = functionUncurryThis; + +var functionUncurryThisClause = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis$d(fn); +}; + +var uncurryThis$c = functionUncurryThisClause; +var aCallable$8 = aCallable$b; +var NATIVE_BIND = functionBindNative; + +var bind$7 = uncurryThis$c(uncurryThis$c.bind); + +// optional / simple context binding +var functionBindContext = function (fn, that) { + aCallable$8(fn); + return that === undefined ? fn : NATIVE_BIND ? bind$7(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; + +var getBuiltIn$2 = getBuiltIn$7; + +var html$2 = getBuiltIn$2('document', 'documentElement'); + +var uncurryThis$b = functionUncurryThis; + +var arraySlice$3 = uncurryThis$b([].slice); + +var $TypeError$7 = TypeError; + +var validateArgumentsLength$1 = function (passed, required) { + if (passed < required) throw $TypeError$7('Not enough arguments'); + return passed; +}; + +var userAgent$4 = engineUserAgent; + +// eslint-disable-next-line redos/no-vulnerable -- safe +var engineIsIos = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent$4); + +var global$9 = global$k; +var apply = functionApply; +var bind$6 = functionBindContext; +var isCallable$8 = isCallable$m; +var hasOwn$3 = hasOwnProperty_1; +var fails$e = fails$p; +var html$1 = html$2; +var arraySlice$2 = arraySlice$3; +var createElement = documentCreateElement$2; +var validateArgumentsLength = validateArgumentsLength$1; +var IS_IOS$1 = engineIsIos; +var IS_NODE$4 = engineIsNode; + +var set = global$9.setImmediate; +var clear = global$9.clearImmediate; +var process$3 = global$9.process; +var Dispatch = global$9.Dispatch; +var Function$1 = global$9.Function; +var MessageChannel = global$9.MessageChannel; +var String$1 = global$9.String; +var counter = 0; +var queue$2 = {}; +var ONREADYSTATECHANGE = 'onreadystatechange'; +var $location, defer, channel, port; + +fails$e(function () { + // Deno throws a ReferenceError on `location` access without `--location` flag + $location = global$9.location; +}); + +var run = function (id) { + if (hasOwn$3(queue$2, id)) { + var fn = queue$2[id]; + delete queue$2[id]; + fn(); + } +}; + +var runner = function (id) { + return function () { + run(id); + }; +}; + +var eventListener = function (event) { + run(event.data); +}; + +var globalPostMessageDefer = function (id) { + // old engines have not location.origin + global$9.postMessage(String$1(id), $location.protocol + '//' + $location.host); +}; + +// Node.js 0.9+ & IE10+ has setImmediate, otherwise: +if (!set || !clear) { + set = function setImmediate(handler) { + validateArgumentsLength(arguments.length, 1); + var fn = isCallable$8(handler) ? handler : Function$1(handler); + var args = arraySlice$2(arguments, 1); + queue$2[++counter] = function () { + apply(fn, undefined, args); + }; + defer(counter); + return counter; + }; + clear = function clearImmediate(id) { + delete queue$2[id]; + }; + // Node.js 0.8- + if (IS_NODE$4) { + defer = function (id) { + process$3.nextTick(runner(id)); + }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(runner(id)); + }; + // Browsers with MessageChannel, includes WebWorkers + // except iOS - https://github.com/zloirock/core-js/issues/624 + } else if (MessageChannel && !IS_IOS$1) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = eventListener; + defer = bind$6(port.postMessage, port); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if ( + global$9.addEventListener && + isCallable$8(global$9.postMessage) && + !global$9.importScripts && + $location && $location.protocol !== 'file:' && + !fails$e(globalPostMessageDefer) + ) { + defer = globalPostMessageDefer; + global$9.addEventListener('message', eventListener, false); + // IE8- + } else if (ONREADYSTATECHANGE in createElement('script')) { + defer = function (id) { + html$1.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { + html$1.removeChild(this); + run(id); + }; + }; + // Rest old browsers + } else { + defer = function (id) { + setTimeout(runner(id), 0); + }; + } +} + +var task$1 = { + set: set, + clear: clear +}; + +var Queue$2 = function () { + this.head = null; + this.tail = null; +}; + +Queue$2.prototype = { + add: function (item) { + var entry = { item: item, next: null }; + var tail = this.tail; + if (tail) tail.next = entry; + else this.head = entry; + this.tail = entry; + }, + get: function () { + var entry = this.head; + if (entry) { + var next = this.head = entry.next; + if (next === null) this.tail = null; + return entry.item; + } + } +}; + +var queue$1 = Queue$2; + +var userAgent$3 = engineUserAgent; + +var engineIsIosPebble = /ipad|iphone|ipod/i.test(userAgent$3) && typeof Pebble != 'undefined'; + +var userAgent$2 = engineUserAgent; + +var engineIsWebosWebkit = /web0s(?!.*chrome)/i.test(userAgent$2); + +var global$8 = global$k; +var bind$5 = functionBindContext; +var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f; +var macrotask = task$1.set; +var Queue$1 = queue$1; +var IS_IOS = engineIsIos; +var IS_IOS_PEBBLE = engineIsIosPebble; +var IS_WEBOS_WEBKIT = engineIsWebosWebkit; +var IS_NODE$3 = engineIsNode; + +var MutationObserver = global$8.MutationObserver || global$8.WebKitMutationObserver; +var document$2 = global$8.document; +var process$2 = global$8.process; +var Promise$1 = global$8.Promise; +// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` +var queueMicrotaskDescriptor = getOwnPropertyDescriptor$1(global$8, 'queueMicrotask'); +var microtask$1 = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; +var notify$1, toggle, node, promise, then; + +// modern engines have queueMicrotask method +if (!microtask$1) { + var queue = new Queue$1(); + + var flush = function () { + var parent, fn; + if (IS_NODE$3 && (parent = process$2.domain)) parent.exit(); + while (fn = queue.get()) try { + fn(); + } catch (error) { + if (queue.head) notify$1(); + throw error; + } + if (parent) parent.enter(); + }; + + // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 + // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 + if (!IS_IOS && !IS_NODE$3 && !IS_WEBOS_WEBKIT && MutationObserver && document$2) { + toggle = true; + node = document$2.createTextNode(''); + new MutationObserver(flush).observe(node, { characterData: true }); + notify$1 = function () { + node.data = toggle = !toggle; + }; + // environments with maybe non-completely correct, but existent Promise + } else if (!IS_IOS_PEBBLE && Promise$1 && Promise$1.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + promise = Promise$1.resolve(undefined); + // workaround of WebKit ~ iOS Safari 10.1 bug + promise.constructor = Promise$1; + then = bind$5(promise.then, promise); + notify$1 = function () { + then(flush); + }; + // Node.js without promises + } else if (IS_NODE$3) { + notify$1 = function () { + process$2.nextTick(flush); + }; + // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessage + // - onreadystatechange + // - setTimeout + } else { + // `webpack` dev server bug on IE global methods - use bind(fn, global) + macrotask = bind$5(macrotask, global$8); + notify$1 = function () { + macrotask(flush); + }; + } + + microtask$1 = function (fn) { + if (!queue.head) notify$1(); + queue.add(fn); + }; +} + +var microtask_1 = microtask$1; + +var hostReportErrors$1 = function (a, b) { + try { + // eslint-disable-next-line no-console -- safe + arguments.length == 1 ? console.error(a) : console.error(a, b); + } catch (error) { /* empty */ } +}; + +var perform$4 = function (exec) { + try { + return { error: false, value: exec() }; + } catch (error) { + return { error: true, value: error }; + } +}; + +var global$7 = global$k; + +var promiseNativeConstructor = global$7.Promise; + +/* global Deno -- Deno case */ + +var engineIsDeno = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; + +var IS_DENO$1 = engineIsDeno; +var IS_NODE$2 = engineIsNode; + +var engineIsBrowser = !IS_DENO$1 && !IS_NODE$2 + && typeof window == 'object' + && typeof document == 'object'; + +var global$6 = global$k; +var NativePromiseConstructor$3 = promiseNativeConstructor; +var isCallable$7 = isCallable$m; +var isForced$1 = isForced_1; +var inspectSource = inspectSource$3; +var wellKnownSymbol$d = wellKnownSymbol$k; +var IS_BROWSER = engineIsBrowser; +var IS_DENO = engineIsDeno; +var V8_VERSION$2 = engineV8Version; + +NativePromiseConstructor$3 && NativePromiseConstructor$3.prototype; +var SPECIES$3 = wellKnownSymbol$d('species'); +var SUBCLASSING = false; +var NATIVE_PROMISE_REJECTION_EVENT$1 = isCallable$7(global$6.PromiseRejectionEvent); + +var FORCED_PROMISE_CONSTRUCTOR$5 = isForced$1('Promise', function () { + var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor$3); + var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor$3); + // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // We can't detect it synchronously, so just check versions + if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION$2 === 66) return true; + // We can't use @@species feature detection in V8 since it causes + // deoptimization and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if (!V8_VERSION$2 || V8_VERSION$2 < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) { + // Detect correctness of subclassing with @@species support + var promise = new NativePromiseConstructor$3(function (resolve) { resolve(1); }); + var FakePromise = function (exec) { + exec(function () { /* empty */ }, function () { /* empty */ }); + }; + var constructor = promise.constructor = {}; + constructor[SPECIES$3] = FakePromise; + SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise; + if (!SUBCLASSING) return true; + // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test + } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT$1; +}); + +var promiseConstructorDetection = { + CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR$5, + REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT$1, + SUBCLASSING: SUBCLASSING +}; + +var newPromiseCapability$2 = {}; + +var aCallable$7 = aCallable$b; + +var $TypeError$6 = TypeError; + +var PromiseCapability = function (C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw $TypeError$6('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aCallable$7(resolve); + this.reject = aCallable$7(reject); +}; + +// `NewPromiseCapability` abstract operation +// https://tc39.es/ecma262/#sec-newpromisecapability +newPromiseCapability$2.f = function (C) { + return new PromiseCapability(C); +}; + +var $$n = _export; +var IS_NODE$1 = engineIsNode; +var global$5 = global$k; +var call$9 = functionCall; +var defineBuiltIn$5 = defineBuiltIn$8; +var setPrototypeOf$2 = objectSetPrototypeOf; +var setToStringTag$3 = setToStringTag$4; +var setSpecies$1 = setSpecies$2; +var aCallable$6 = aCallable$b; +var isCallable$6 = isCallable$m; +var isObject$c = isObject$i; +var anInstance$3 = anInstance$4; +var speciesConstructor = speciesConstructor$1; +var task = task$1.set; +var microtask = microtask_1; +var hostReportErrors = hostReportErrors$1; +var perform$3 = perform$4; +var Queue = queue$1; +var InternalStateModule$4 = internalState; +var NativePromiseConstructor$2 = promiseNativeConstructor; +var PromiseConstructorDetection = promiseConstructorDetection; +var newPromiseCapabilityModule$4 = newPromiseCapability$2; + +var PROMISE = 'Promise'; +var FORCED_PROMISE_CONSTRUCTOR$4 = PromiseConstructorDetection.CONSTRUCTOR; +var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT; +var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING; +var getInternalPromiseState = InternalStateModule$4.getterFor(PROMISE); +var setInternalState$4 = InternalStateModule$4.set; +var NativePromisePrototype$1 = NativePromiseConstructor$2 && NativePromiseConstructor$2.prototype; +var PromiseConstructor = NativePromiseConstructor$2; +var PromisePrototype = NativePromisePrototype$1; +var TypeError$1 = global$5.TypeError; +var document$1 = global$5.document; +var process$1 = global$5.process; +var newPromiseCapability$1 = newPromiseCapabilityModule$4.f; +var newGenericPromiseCapability = newPromiseCapability$1; + +var DISPATCH_EVENT = !!(document$1 && document$1.createEvent && global$5.dispatchEvent); +var UNHANDLED_REJECTION = 'unhandledrejection'; +var REJECTION_HANDLED = 'rejectionhandled'; +var PENDING = 0; +var FULFILLED = 1; +var REJECTED = 2; +var HANDLED = 1; +var UNHANDLED = 2; + +var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; + +// helpers +var isThenable = function (it) { + var then; + return isObject$c(it) && isCallable$6(then = it.then) ? then : false; +}; + +var callReaction = function (reaction, state) { + var value = state.value; + var ok = state.state == FULFILLED; + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + try { + if (handler) { + if (!ok) { + if (state.rejection === UNHANDLED) onHandleUnhandled(state); + state.rejection = HANDLED; + } + if (handler === true) result = value; + else { + if (domain) domain.enter(); + result = handler(value); // can throw + if (domain) { + domain.exit(); + exited = true; + } + } + if (result === reaction.promise) { + reject(TypeError$1('Promise-chain cycle')); + } else if (then = isThenable(result)) { + call$9(then, result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (error) { + if (domain && !exited) domain.exit(); + reject(error); + } +}; + +var notify = function (state, isReject) { + if (state.notified) return; + state.notified = true; + microtask(function () { + var reactions = state.reactions; + var reaction; + while (reaction = reactions.get()) { + callReaction(reaction, state); + } + state.notified = false; + if (isReject && !state.rejection) onUnhandled(state); + }); +}; + +var dispatchEvent = function (name, promise, reason) { + var event, handler; + if (DISPATCH_EVENT) { + event = document$1.createEvent('Event'); + event.promise = promise; + event.reason = reason; + event.initEvent(name, false, true); + global$5.dispatchEvent(event); + } else event = { promise: promise, reason: reason }; + if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global$5['on' + name])) handler(event); + else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); +}; + +var onUnhandled = function (state) { + call$9(task, global$5, function () { + var promise = state.facade; + var value = state.value; + var IS_UNHANDLED = isUnhandled(state); + var result; + if (IS_UNHANDLED) { + result = perform$3(function () { + if (IS_NODE$1) { + process$1.emit('unhandledRejection', value, promise); + } else dispatchEvent(UNHANDLED_REJECTION, promise, value); + }); + // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + state.rejection = IS_NODE$1 || isUnhandled(state) ? UNHANDLED : HANDLED; + if (result.error) throw result.value; + } + }); +}; + +var isUnhandled = function (state) { + return state.rejection !== HANDLED && !state.parent; +}; + +var onHandleUnhandled = function (state) { + call$9(task, global$5, function () { + var promise = state.facade; + if (IS_NODE$1) { + process$1.emit('rejectionHandled', promise); + } else dispatchEvent(REJECTION_HANDLED, promise, state.value); + }); +}; + +var bind$4 = function (fn, state, unwrap) { + return function (value) { + fn(state, value, unwrap); + }; +}; + +var internalReject = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + state.value = value; + state.state = REJECTED; + notify(state, true); +}; + +var internalResolve = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + try { + if (state.facade === value) throw TypeError$1("Promise can't be resolved itself"); + var then = isThenable(value); + if (then) { + microtask(function () { + var wrapper = { done: false }; + try { + call$9(then, value, + bind$4(internalResolve, wrapper, state), + bind$4(internalReject, wrapper, state) + ); + } catch (error) { + internalReject(wrapper, error, state); + } + }); + } else { + state.value = value; + state.state = FULFILLED; + notify(state, false); + } + } catch (error) { + internalReject({ done: false }, error, state); + } +}; + +// constructor polyfill +if (FORCED_PROMISE_CONSTRUCTOR$4) { + // 25.4.3.1 Promise(executor) + PromiseConstructor = function Promise(executor) { + anInstance$3(this, PromisePrototype); + aCallable$6(executor); + call$9(Internal, this); + var state = getInternalPromiseState(this); + try { + executor(bind$4(internalResolve, state), bind$4(internalReject, state)); + } catch (error) { + internalReject(state, error); + } + }; + + PromisePrototype = PromiseConstructor.prototype; + + // eslint-disable-next-line no-unused-vars -- required for `.length` + Internal = function Promise(executor) { + setInternalState$4(this, { + type: PROMISE, + done: false, + notified: false, + parent: false, + reactions: new Queue(), + rejection: false, + state: PENDING, + value: undefined + }); + }; + + // `Promise.prototype.then` method + // https://tc39.es/ecma262/#sec-promise.prototype.then + Internal.prototype = defineBuiltIn$5(PromisePrototype, 'then', function then(onFulfilled, onRejected) { + var state = getInternalPromiseState(this); + var reaction = newPromiseCapability$1(speciesConstructor(this, PromiseConstructor)); + state.parent = true; + reaction.ok = isCallable$6(onFulfilled) ? onFulfilled : true; + reaction.fail = isCallable$6(onRejected) && onRejected; + reaction.domain = IS_NODE$1 ? process$1.domain : undefined; + if (state.state == PENDING) state.reactions.add(reaction); + else microtask(function () { + callReaction(reaction, state); + }); + return reaction.promise; + }); + + OwnPromiseCapability = function () { + var promise = new Internal(); + var state = getInternalPromiseState(promise); + this.promise = promise; + this.resolve = bind$4(internalResolve, state); + this.reject = bind$4(internalReject, state); + }; + + newPromiseCapabilityModule$4.f = newPromiseCapability$1 = function (C) { + return C === PromiseConstructor || C === PromiseWrapper + ? new OwnPromiseCapability(C) + : newGenericPromiseCapability(C); + }; + + if (isCallable$6(NativePromiseConstructor$2) && NativePromisePrototype$1 !== Object.prototype) { + nativeThen = NativePromisePrototype$1.then; + + if (!NATIVE_PROMISE_SUBCLASSING) { + // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs + defineBuiltIn$5(NativePromisePrototype$1, 'then', function then(onFulfilled, onRejected) { + var that = this; + return new PromiseConstructor(function (resolve, reject) { + call$9(nativeThen, that, resolve, reject); + }).then(onFulfilled, onRejected); + // https://github.com/zloirock/core-js/issues/640 + }, { unsafe: true }); + } + + // make `.constructor === Promise` work for native promise-based APIs + try { + delete NativePromisePrototype$1.constructor; + } catch (error) { /* empty */ } + + // make `instanceof Promise` work for native promise-based APIs + if (setPrototypeOf$2) { + setPrototypeOf$2(NativePromisePrototype$1, PromisePrototype); + } + } +} + +$$n({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR$4 }, { + Promise: PromiseConstructor +}); + +setToStringTag$3(PromiseConstructor, PROMISE, false); +setSpecies$1(PROMISE); + +var iterators = {}; + +var wellKnownSymbol$c = wellKnownSymbol$k; +var Iterators$4 = iterators; + +var ITERATOR$6 = wellKnownSymbol$c('iterator'); +var ArrayPrototype$1 = Array.prototype; + +// check on default Array iterator +var isArrayIteratorMethod$2 = function (it) { + return it !== undefined && (Iterators$4.Array === it || ArrayPrototype$1[ITERATOR$6] === it); +}; + +var classof$5 = classof$9; +var getMethod$1 = getMethod$3; +var isNullOrUndefined$3 = isNullOrUndefined$7; +var Iterators$3 = iterators; +var wellKnownSymbol$b = wellKnownSymbol$k; + +var ITERATOR$5 = wellKnownSymbol$b('iterator'); + +var getIteratorMethod$3 = function (it) { + if (!isNullOrUndefined$3(it)) return getMethod$1(it, ITERATOR$5) + || getMethod$1(it, '@@iterator') + || Iterators$3[classof$5(it)]; +}; + +var call$8 = functionCall; +var aCallable$5 = aCallable$b; +var anObject$7 = anObject$c; +var tryToString$2 = tryToString$5; +var getIteratorMethod$2 = getIteratorMethod$3; + +var $TypeError$5 = TypeError; + +var getIterator$2 = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod$2(argument) : usingIterator; + if (aCallable$5(iteratorMethod)) return anObject$7(call$8(iteratorMethod, argument)); + throw $TypeError$5(tryToString$2(argument) + ' is not iterable'); +}; + +var call$7 = functionCall; +var anObject$6 = anObject$c; +var getMethod = getMethod$3; + +var iteratorClose$2 = function (iterator, kind, value) { + var innerResult, innerError; + anObject$6(iterator); + try { + innerResult = getMethod(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') throw value; + return value; + } + innerResult = call$7(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === 'throw') throw value; + if (innerError) throw innerResult; + anObject$6(innerResult); + return value; +}; + +var bind$3 = functionBindContext; +var call$6 = functionCall; +var anObject$5 = anObject$c; +var tryToString$1 = tryToString$5; +var isArrayIteratorMethod$1 = isArrayIteratorMethod$2; +var lengthOfArrayLike$7 = lengthOfArrayLike$9; +var isPrototypeOf = objectIsPrototypeOf; +var getIterator$1 = getIterator$2; +var getIteratorMethod$1 = getIteratorMethod$3; +var iteratorClose$1 = iteratorClose$2; + +var $TypeError$4 = TypeError; + +var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; +}; + +var ResultPrototype = Result.prototype; + +var iterate$6 = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_RECORD = !!(options && options.IS_RECORD); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind$3(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose$1(iterator, 'normal', condition); + return new Result(true, condition); + }; + + var callFn = function (value) { + if (AS_ENTRIES) { + anObject$5(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; + + if (IS_RECORD) { + iterator = iterable.iterator; + } else if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod$1(iterable); + if (!iterFn) throw $TypeError$4(tryToString$1(iterable) + ' is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod$1(iterFn)) { + for (index = 0, length = lengthOfArrayLike$7(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + } + iterator = getIterator$1(iterable, iterFn); + } + + next = IS_RECORD ? iterable.next : iterator.next; + while (!(step = call$6(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose$1(iterator, 'throw', error); + } + if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); +}; + +var wellKnownSymbol$a = wellKnownSymbol$k; + +var ITERATOR$4 = wellKnownSymbol$a('iterator'); +var SAFE_CLOSING = false; + +try { + var called = 0; + var iteratorWithReturn = { + next: function () { + return { done: !!called++ }; + }, + 'return': function () { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR$4] = function () { + return this; + }; + // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing + Array.from(iteratorWithReturn, function () { throw 2; }); +} catch (error) { /* empty */ } + +var checkCorrectnessOfIteration$3 = function (exec, SKIP_CLOSING) { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR$4] = function () { + return { + next: function () { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { /* empty */ } + return ITERATION_SUPPORT; +}; + +var NativePromiseConstructor$1 = promiseNativeConstructor; +var checkCorrectnessOfIteration$2 = checkCorrectnessOfIteration$3; +var FORCED_PROMISE_CONSTRUCTOR$3 = promiseConstructorDetection.CONSTRUCTOR; + +var promiseStaticsIncorrectIteration = FORCED_PROMISE_CONSTRUCTOR$3 || !checkCorrectnessOfIteration$2(function (iterable) { + NativePromiseConstructor$1.all(iterable).then(undefined, function () { /* empty */ }); +}); + +var $$m = _export; +var call$5 = functionCall; +var aCallable$4 = aCallable$b; +var newPromiseCapabilityModule$3 = newPromiseCapability$2; +var perform$2 = perform$4; +var iterate$5 = iterate$6; +var PROMISE_STATICS_INCORRECT_ITERATION$2 = promiseStaticsIncorrectIteration; + +// `Promise.all` method +// https://tc39.es/ecma262/#sec-promise.all +$$m({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$2 }, { + all: function all(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$3.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform$2(function () { + var $promiseResolve = aCallable$4(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate$5(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call$5($promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + +var $$l = _export; +var FORCED_PROMISE_CONSTRUCTOR$2 = promiseConstructorDetection.CONSTRUCTOR; +var NativePromiseConstructor = promiseNativeConstructor; +var getBuiltIn$1 = getBuiltIn$7; +var isCallable$5 = isCallable$m; +var defineBuiltIn$4 = defineBuiltIn$8; + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + +// `Promise.prototype.catch` method +// https://tc39.es/ecma262/#sec-promise.prototype.catch +$$l({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR$2, real: true }, { + 'catch': function (onRejected) { + return this.then(undefined, onRejected); + } +}); + +// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` +if (isCallable$5(NativePromiseConstructor)) { + var method = getBuiltIn$1('Promise').prototype['catch']; + if (NativePromisePrototype['catch'] !== method) { + defineBuiltIn$4(NativePromisePrototype, 'catch', method, { unsafe: true }); + } +} + +var $$k = _export; +var call$4 = functionCall; +var aCallable$3 = aCallable$b; +var newPromiseCapabilityModule$2 = newPromiseCapability$2; +var perform$1 = perform$4; +var iterate$4 = iterate$6; +var PROMISE_STATICS_INCORRECT_ITERATION$1 = promiseStaticsIncorrectIteration; + +// `Promise.race` method +// https://tc39.es/ecma262/#sec-promise.race +$$k({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$1 }, { + race: function race(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$2.f(C); + var reject = capability.reject; + var result = perform$1(function () { + var $promiseResolve = aCallable$3(C.resolve); + iterate$4(iterable, function (promise) { + call$4($promiseResolve, C, promise).then(capability.resolve, reject); + }); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + +var $$j = _export; +var call$3 = functionCall; +var newPromiseCapabilityModule$1 = newPromiseCapability$2; +var FORCED_PROMISE_CONSTRUCTOR$1 = promiseConstructorDetection.CONSTRUCTOR; + +// `Promise.reject` method +// https://tc39.es/ecma262/#sec-promise.reject +$$j({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR$1 }, { + reject: function reject(r) { + var capability = newPromiseCapabilityModule$1.f(this); + call$3(capability.reject, undefined, r); + return capability.promise; + } +}); + +var anObject$4 = anObject$c; +var isObject$b = isObject$i; +var newPromiseCapability = newPromiseCapability$2; + +var promiseResolve$1 = function (C, x) { + anObject$4(C); + if (isObject$b(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; +}; + +var $$i = _export; +var getBuiltIn = getBuiltIn$7; +var FORCED_PROMISE_CONSTRUCTOR = promiseConstructorDetection.CONSTRUCTOR; +var promiseResolve = promiseResolve$1; + +getBuiltIn('Promise'); + +// `Promise.resolve` method +// https://tc39.es/ecma262/#sec-promise.resolve +$$i({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + resolve: function resolve(x) { + return promiseResolve(this, x); + } +}); + +var objectDefineProperties = {}; + +var DESCRIPTORS$3 = descriptors; +var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug; +var definePropertyModule$1 = objectDefineProperty; +var anObject$3 = anObject$c; +var toIndexedObject$5 = toIndexedObject$9; +var objectKeys$1 = objectKeys$3; + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +// eslint-disable-next-line es/no-object-defineproperties -- safe +objectDefineProperties.f = DESCRIPTORS$3 && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject$3(O); + var props = toIndexedObject$5(Properties); + var keys = objectKeys$1(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule$1.f(O, key = keys[index++], props[key]); + return O; +}; + +/* global ActiveXObject -- old IE, WSH */ + +var anObject$2 = anObject$c; +var definePropertiesModule = objectDefineProperties; +var enumBugKeys = enumBugKeys$3; +var hiddenKeys$1 = hiddenKeys$5; +var html = html$2; +var documentCreateElement$1 = documentCreateElement$2; +var sharedKey$1 = sharedKey$3; + +var GT = '>'; +var LT = '<'; +var PROTOTYPE = 'prototype'; +var SCRIPT = 'script'; +var IE_PROTO$1 = sharedKey$1('IE_PROTO'); + +var EmptyConstructor = function () { /* empty */ }; + +var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; +}; + +// Create object with fake `null` prototype: use ActiveX Object with cleared prototype +var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; +}; + +// Create object with fake `null` prototype: use iframe Object with cleared prototype +var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement$1('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; +}; + +// Check for document.domain and active x support +// No need to use active x approach when document.domain is not set +// see https://github.com/es-shims/es5-shim/issues/150 +// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 +// avoid IE GC bug +var activeXDocument; +var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); +}; + +hiddenKeys$1[IE_PROTO$1] = true; + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +// eslint-disable-next-line es/no-object-create -- safe +var objectCreate = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject$2(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO$1] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); +}; + +var wellKnownSymbol$9 = wellKnownSymbol$k; +var create$2 = objectCreate; +var defineProperty$2 = objectDefineProperty.f; + +var UNSCOPABLES = wellKnownSymbol$9('unscopables'); +var ArrayPrototype = Array.prototype; + +// Array.prototype[@@unscopables] +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +if (ArrayPrototype[UNSCOPABLES] == undefined) { + defineProperty$2(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create$2(null) + }); +} + +// add a key to Array.prototype[@@unscopables] +var addToUnscopables$2 = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; +}; + +var fails$d = fails$p; + +var correctPrototypeGetter = !fails$d(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + // eslint-disable-next-line es/no-object-getprototypeof -- required for testing + return Object.getPrototypeOf(new F()) !== F.prototype; +}); + +var hasOwn$2 = hasOwnProperty_1; +var isCallable$4 = isCallable$m; +var toObject$6 = toObject$9; +var sharedKey = sharedKey$3; +var CORRECT_PROTOTYPE_GETTER = correctPrototypeGetter; + +var IE_PROTO = sharedKey('IE_PROTO'); +var $Object = Object; +var ObjectPrototype = $Object.prototype; + +// `Object.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.getprototypeof +// eslint-disable-next-line es/no-object-getprototypeof -- safe +var objectGetPrototypeOf = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { + var object = toObject$6(O); + if (hasOwn$2(object, IE_PROTO)) return object[IE_PROTO]; + var constructor = object.constructor; + if (isCallable$4(constructor) && object instanceof constructor) { + return constructor.prototype; + } return object instanceof $Object ? ObjectPrototype : null; +}; + +var fails$c = fails$p; +var isCallable$3 = isCallable$m; +var isObject$a = isObject$i; +var getPrototypeOf$1 = objectGetPrototypeOf; +var defineBuiltIn$3 = defineBuiltIn$8; +var wellKnownSymbol$8 = wellKnownSymbol$k; + +var ITERATOR$3 = wellKnownSymbol$8('iterator'); +var BUGGY_SAFARI_ITERATORS$1 = false; + +// `%IteratorPrototype%` object +// https://tc39.es/ecma262/#sec-%iteratorprototype%-object +var IteratorPrototype$2, PrototypeOfArrayIteratorPrototype, arrayIterator; + +/* eslint-disable es/no-array-prototype-keys -- safe */ +if ([].keys) { + arrayIterator = [].keys(); + // Safari 8 has buggy iterators w/o `next` + if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS$1 = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf$1(getPrototypeOf$1(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype$2 = PrototypeOfArrayIteratorPrototype; + } +} + +var NEW_ITERATOR_PROTOTYPE = !isObject$a(IteratorPrototype$2) || fails$c(function () { + var test = {}; + // FF44- legacy iterators case + return IteratorPrototype$2[ITERATOR$3].call(test) !== test; +}); + +if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype$2 = {}; + +// `%IteratorPrototype%[@@iterator]()` method +// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator +if (!isCallable$3(IteratorPrototype$2[ITERATOR$3])) { + defineBuiltIn$3(IteratorPrototype$2, ITERATOR$3, function () { + return this; + }); +} + +var iteratorsCore = { + IteratorPrototype: IteratorPrototype$2, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS$1 +}; + +var IteratorPrototype$1 = iteratorsCore.IteratorPrototype; +var create$1 = objectCreate; +var createPropertyDescriptor$1 = createPropertyDescriptor$4; +var setToStringTag$2 = setToStringTag$4; +var Iterators$2 = iterators; + +var returnThis$1 = function () { return this; }; + +var iteratorCreateConstructor = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = create$1(IteratorPrototype$1, { next: createPropertyDescriptor$1(+!ENUMERABLE_NEXT, next) }); + setToStringTag$2(IteratorConstructor, TO_STRING_TAG, false); + Iterators$2[TO_STRING_TAG] = returnThis$1; + return IteratorConstructor; +}; + +var $$h = _export; +var call$2 = functionCall; +var FunctionName = functionName; +var isCallable$2 = isCallable$m; +var createIteratorConstructor = iteratorCreateConstructor; +var getPrototypeOf = objectGetPrototypeOf; +var setPrototypeOf$1 = objectSetPrototypeOf; +var setToStringTag$1 = setToStringTag$4; +var createNonEnumerableProperty$2 = createNonEnumerableProperty$5; +var defineBuiltIn$2 = defineBuiltIn$8; +var wellKnownSymbol$7 = wellKnownSymbol$k; +var Iterators$1 = iterators; +var IteratorsCore = iteratorsCore; + +var PROPER_FUNCTION_NAME$1 = FunctionName.PROPER; +var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; +var IteratorPrototype = IteratorsCore.IteratorPrototype; +var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; +var ITERATOR$2 = wellKnownSymbol$7('iterator'); +var KEYS = 'keys'; +var VALUES = 'values'; +var ENTRIES = 'entries'; + +var returnThis = function () { return this; }; + +var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + + var getIterationMethod = function (KIND) { + if (KIND === DEFAULT && defaultIterator) return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; + switch (KIND) { + case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; + case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; + case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; + } return function () { return new IteratorConstructor(this); }; + }; + + var TO_STRING_TAG = NAME + ' Iterator'; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR$2] + || IterablePrototype['@@iterator'] + || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + + // fix native + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf$1) { + setPrototypeOf$1(CurrentIteratorPrototype, IteratorPrototype); + } else if (!isCallable$2(CurrentIteratorPrototype[ITERATOR$2])) { + defineBuiltIn$2(CurrentIteratorPrototype, ITERATOR$2, returnThis); + } + } + // Set @@toStringTag to native iterators + setToStringTag$1(CurrentIteratorPrototype, TO_STRING_TAG, true); + } + } + + // fix Array.prototype.{ values, @@iterator }.name in V8 / FF + if (PROPER_FUNCTION_NAME$1 && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { + if (CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty$2(IterablePrototype, 'name', VALUES); + } else { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { return call$2(nativeIterator, this); }; + } + } + + // export additional methods + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + defineBuiltIn$2(IterablePrototype, KEY, methods[KEY]); + } + } else $$h({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + + // define iterator + if (IterablePrototype[ITERATOR$2] !== defaultIterator) { + defineBuiltIn$2(IterablePrototype, ITERATOR$2, defaultIterator, { name: DEFAULT }); + } + Iterators$1[NAME] = defaultIterator; + + return methods; +}; + +// `CreateIterResultObject` abstract operation +// https://tc39.es/ecma262/#sec-createiterresultobject +var createIterResultObject$3 = function (value, done) { + return { value: value, done: done }; +}; + +var toIndexedObject$4 = toIndexedObject$9; +var addToUnscopables$1 = addToUnscopables$2; +var Iterators = iterators; +var InternalStateModule$3 = internalState; +var defineProperty$1 = objectDefineProperty.f; +var defineIterator$2 = iteratorDefine; +var createIterResultObject$2 = createIterResultObject$3; +var DESCRIPTORS$2 = descriptors; + +var ARRAY_ITERATOR = 'Array Iterator'; +var setInternalState$3 = InternalStateModule$3.set; +var getInternalState$1 = InternalStateModule$3.getterFor(ARRAY_ITERATOR); + +// `Array.prototype.entries` method +// https://tc39.es/ecma262/#sec-array.prototype.entries +// `Array.prototype.keys` method +// https://tc39.es/ecma262/#sec-array.prototype.keys +// `Array.prototype.values` method +// https://tc39.es/ecma262/#sec-array.prototype.values +// `Array.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-array.prototype-@@iterator +// `CreateArrayIterator` internal method +// https://tc39.es/ecma262/#sec-createarrayiterator +var es_array_iterator = defineIterator$2(Array, 'Array', function (iterated, kind) { + setInternalState$3(this, { + type: ARRAY_ITERATOR, + target: toIndexedObject$4(iterated), // target + index: 0, // next index + kind: kind // kind + }); +// `%ArrayIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next +}, function () { + var state = getInternalState$1(this); + var target = state.target; + var kind = state.kind; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject$2(undefined, true); + } + if (kind == 'keys') return createIterResultObject$2(index, false); + if (kind == 'values') return createIterResultObject$2(target[index], false); + return createIterResultObject$2([index, target[index]], false); +}, 'values'); + +// argumentsList[@@iterator] is %ArrayProto_values% +// https://tc39.es/ecma262/#sec-createunmappedargumentsobject +// https://tc39.es/ecma262/#sec-createmappedargumentsobject +var values = Iterators.Arguments = Iterators.Array; + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables$1('keys'); +addToUnscopables$1('values'); +addToUnscopables$1('entries'); + +// V8 ~ Chrome 45- bug +if (DESCRIPTORS$2 && values.name !== 'values') try { + defineProperty$1(values, 'name', { value: 'values' }); +} catch (error) { /* empty */ } + +var classof$4 = classof$9; + +var $String = String; + +var toString$6 = function (argument) { + if (classof$4(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string'); + return $String(argument); +}; + +var uncurryThis$a = functionUncurryThis; +var toIntegerOrInfinity = toIntegerOrInfinity$3; +var toString$5 = toString$6; +var requireObjectCoercible$2 = requireObjectCoercible$5; + +var charAt$1 = uncurryThis$a(''.charAt); +var charCodeAt = uncurryThis$a(''.charCodeAt); +var stringSlice$1 = uncurryThis$a(''.slice); + +var createMethod$4 = function (CONVERT_TO_STRING) { + return function ($this, pos) { + var S = toString$5(requireObjectCoercible$2($this)); + var position = toIntegerOrInfinity(pos); + var size = S.length; + var first, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; + first = charCodeAt(S, position); + return first < 0xD800 || first > 0xDBFF || position + 1 === size + || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF + ? CONVERT_TO_STRING + ? charAt$1(S, position) + : first + : CONVERT_TO_STRING + ? stringSlice$1(S, position, position + 2) + : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; + }; +}; + +var stringMultibyte = { + // `String.prototype.codePointAt` method + // https://tc39.es/ecma262/#sec-string.prototype.codepointat + codeAt: createMethod$4(false), + // `String.prototype.at` method + // https://github.com/mathiasbynens/String.prototype.at + charAt: createMethod$4(true) +}; + +var charAt = stringMultibyte.charAt; +var toString$4 = toString$6; +var InternalStateModule$2 = internalState; +var defineIterator$1 = iteratorDefine; +var createIterResultObject$1 = createIterResultObject$3; + +var STRING_ITERATOR = 'String Iterator'; +var setInternalState$2 = InternalStateModule$2.set; +var getInternalState = InternalStateModule$2.getterFor(STRING_ITERATOR); + +// `String.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-string.prototype-@@iterator +defineIterator$1(String, 'String', function (iterated) { + setInternalState$2(this, { + type: STRING_ITERATOR, + string: toString$4(iterated), + index: 0 + }); +// `%StringIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next +}, function next() { + var state = getInternalState(this); + var string = state.string; + var index = state.index; + var point; + if (index >= string.length) return createIterResultObject$1(undefined, true); + point = charAt(string, index); + state.index += point.length; + return createIterResultObject$1(point, false); +}); + +var internalMetadata = {exports: {}}; + +var objectGetOwnPropertyNamesExternal = {}; + +var toPropertyKey = toPropertyKey$3; +var definePropertyModule = objectDefineProperty; +var createPropertyDescriptor = createPropertyDescriptor$4; + +var createProperty$4 = function (object, key, value) { + var propertyKey = toPropertyKey(key); + if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); + else object[propertyKey] = value; +}; + +var toAbsoluteIndex$1 = toAbsoluteIndex$3; +var lengthOfArrayLike$6 = lengthOfArrayLike$9; +var createProperty$3 = createProperty$4; + +var $Array$3 = Array; +var max$1 = Math.max; + +var arraySliceSimple = function (O, start, end) { + var length = lengthOfArrayLike$6(O); + var k = toAbsoluteIndex$1(start, length); + var fin = toAbsoluteIndex$1(end === undefined ? length : end, length); + var result = $Array$3(max$1(fin - k, 0)); + for (var n = 0; k < fin; k++, n++) createProperty$3(result, n, O[k]); + result.length = n; + return result; +}; + +/* eslint-disable es/no-object-getownpropertynames -- safe */ + +var classof$3 = classofRaw$2; +var toIndexedObject$3 = toIndexedObject$9; +var $getOwnPropertyNames = objectGetOwnPropertyNames.f; +var arraySlice$1 = arraySliceSimple; + +var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + +var getWindowNames = function (it) { + try { + return $getOwnPropertyNames(it); + } catch (error) { + return arraySlice$1(windowNames); + } +}; + +// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window +objectGetOwnPropertyNamesExternal.f = function getOwnPropertyNames(it) { + return windowNames && classof$3(it) == 'Window' + ? getWindowNames(it) + : $getOwnPropertyNames(toIndexedObject$3(it)); +}; + +// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it +var fails$b = fails$p; + +var arrayBufferNonExtensible = fails$b(function () { + if (typeof ArrayBuffer == 'function') { + var buffer = new ArrayBuffer(8); + // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe + if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 }); + } +}); + +var fails$a = fails$p; +var isObject$9 = isObject$i; +var classof$2 = classofRaw$2; +var ARRAY_BUFFER_NON_EXTENSIBLE = arrayBufferNonExtensible; + +// eslint-disable-next-line es/no-object-isextensible -- safe +var $isExtensible = Object.isExtensible; +var FAILS_ON_PRIMITIVES$1 = fails$a(function () { $isExtensible(1); }); + +// `Object.isExtensible` method +// https://tc39.es/ecma262/#sec-object.isextensible +var objectIsExtensible = (FAILS_ON_PRIMITIVES$1 || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) { + if (!isObject$9(it)) return false; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof$2(it) == 'ArrayBuffer') return false; + return $isExtensible ? $isExtensible(it) : true; +} : $isExtensible; + +var fails$9 = fails$p; + +var freezing = !fails$9(function () { + // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing + return Object.isExtensible(Object.preventExtensions({})); +}); + +var $$g = _export; +var uncurryThis$9 = functionUncurryThis; +var hiddenKeys = hiddenKeys$5; +var isObject$8 = isObject$i; +var hasOwn$1 = hasOwnProperty_1; +var defineProperty = objectDefineProperty.f; +var getOwnPropertyNamesModule = objectGetOwnPropertyNames; +var getOwnPropertyNamesExternalModule = objectGetOwnPropertyNamesExternal; +var isExtensible = objectIsExtensible; +var uid = uid$3; +var FREEZING = freezing; + +var REQUIRED = false; +var METADATA = uid('meta'); +var id$1 = 0; + +var setMetadata = function (it) { + defineProperty(it, METADATA, { value: { + objectID: 'O' + id$1++, // object ID + weakData: {} // weak collections IDs + } }); +}; + +var fastKey$1 = function (it, create) { + // return a primitive with prefix + if (!isObject$8(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!hasOwn$1(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; + // not necessary to add metadata + if (!create) return 'E'; + // add missing metadata + setMetadata(it); + // return object ID + } return it[METADATA].objectID; +}; + +var getWeakData$1 = function (it, create) { + if (!hasOwn$1(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; + // not necessary to add metadata + if (!create) return false; + // add missing metadata + setMetadata(it); + // return the store of weak collections IDs + } return it[METADATA].weakData; +}; + +// add metadata on freeze-family methods calling +var onFreeze = function (it) { + if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn$1(it, METADATA)) setMetadata(it); + return it; +}; + +var enable = function () { + meta.enable = function () { /* empty */ }; + REQUIRED = true; + var getOwnPropertyNames = getOwnPropertyNamesModule.f; + var splice = uncurryThis$9([].splice); + var test = {}; + test[METADATA] = 1; + + // prevent exposing of metadata key + if (getOwnPropertyNames(test).length) { + getOwnPropertyNamesModule.f = function (it) { + var result = getOwnPropertyNames(it); + for (var i = 0, length = result.length; i < length; i++) { + if (result[i] === METADATA) { + splice(result, i, 1); + break; + } + } return result; + }; + + $$g({ target: 'Object', stat: true, forced: true }, { + getOwnPropertyNames: getOwnPropertyNamesExternalModule.f + }); + } +}; + +var meta = internalMetadata.exports = { + enable: enable, + fastKey: fastKey$1, + getWeakData: getWeakData$1, + onFreeze: onFreeze +}; + +hiddenKeys[METADATA] = true; + +var internalMetadataExports = internalMetadata.exports; + +var isCallable$1 = isCallable$m; +var isObject$7 = isObject$i; +var setPrototypeOf = objectSetPrototypeOf; + +// makes subclassing work correct for wrapped built-ins +var inheritIfRequired$1 = function ($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if ( + // it can work only with native `setPrototypeOf` + setPrototypeOf && + // we haven't completely correct pre-ES6 way for getting `new.target`, so use this + isCallable$1(NewTarget = dummy.constructor) && + NewTarget !== Wrapper && + isObject$7(NewTargetPrototype = NewTarget.prototype) && + NewTargetPrototype !== Wrapper.prototype + ) setPrototypeOf($this, NewTargetPrototype); + return $this; +}; + +var $$f = _export; +var global$4 = global$k; +var uncurryThis$8 = functionUncurryThis; +var isForced = isForced_1; +var defineBuiltIn$1 = defineBuiltIn$8; +var InternalMetadataModule = internalMetadataExports; +var iterate$3 = iterate$6; +var anInstance$2 = anInstance$4; +var isCallable = isCallable$m; +var isNullOrUndefined$2 = isNullOrUndefined$7; +var isObject$6 = isObject$i; +var fails$8 = fails$p; +var checkCorrectnessOfIteration$1 = checkCorrectnessOfIteration$3; +var setToStringTag = setToStringTag$4; +var inheritIfRequired = inheritIfRequired$1; + +var collection$2 = function (CONSTRUCTOR_NAME, wrapper, common) { + var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; + var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; + var ADDER = IS_MAP ? 'set' : 'add'; + var NativeConstructor = global$4[CONSTRUCTOR_NAME]; + var NativePrototype = NativeConstructor && NativeConstructor.prototype; + var Constructor = NativeConstructor; + var exported = {}; + + var fixMethod = function (KEY) { + var uncurriedNativeMethod = uncurryThis$8(NativePrototype[KEY]); + defineBuiltIn$1(NativePrototype, KEY, + KEY == 'add' ? function add(value) { + uncurriedNativeMethod(this, value === 0 ? 0 : value); + return this; + } : KEY == 'delete' ? function (key) { + return IS_WEAK && !isObject$6(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY == 'get' ? function get(key) { + return IS_WEAK && !isObject$6(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY == 'has' ? function has(key) { + return IS_WEAK && !isObject$6(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : function set(key, value) { + uncurriedNativeMethod(this, key === 0 ? 0 : key, value); + return this; + } + ); + }; + + var REPLACE = isForced( + CONSTRUCTOR_NAME, + !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails$8(function () { + new NativeConstructor().entries().next(); + })) + ); + + if (REPLACE) { + // create collection constructor + Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); + InternalMetadataModule.enable(); + } else if (isForced(CONSTRUCTOR_NAME, true)) { + var instance = new Constructor(); + // early implementations not supports chaining + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; + // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false + var THROWS_ON_PRIMITIVES = fails$8(function () { instance.has(1); }); + // most early implementations doesn't supports iterables, most modern - not close it correctly + // eslint-disable-next-line no-new -- required for testing + var ACCEPT_ITERABLES = checkCorrectnessOfIteration$1(function (iterable) { new NativeConstructor(iterable); }); + // for early implementations -0 and +0 not the same + var BUGGY_ZERO = !IS_WEAK && fails$8(function () { + // V8 ~ Chromium 42- fails only with 5+ elements + var $instance = new NativeConstructor(); + var index = 5; + while (index--) $instance[ADDER](index, index); + return !$instance.has(-0); + }); + + if (!ACCEPT_ITERABLES) { + Constructor = wrapper(function (dummy, iterable) { + anInstance$2(dummy, NativePrototype); + var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); + if (!isNullOrUndefined$2(iterable)) iterate$3(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + return that; + }); + Constructor.prototype = NativePrototype; + NativePrototype.constructor = Constructor; + } + + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); + + // weak collections should not contains .clear method + if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear; + } + + exported[CONSTRUCTOR_NAME] = Constructor; + $$f({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported); + + setToStringTag(Constructor, CONSTRUCTOR_NAME); + + if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); + + return Constructor; +}; + +var defineBuiltIn = defineBuiltIn$8; + +var defineBuiltIns$2 = function (target, src, options) { + for (var key in src) defineBuiltIn(target, key, src[key], options); + return target; +}; + +var classof$1 = classofRaw$2; + +// `IsArray` abstract operation +// https://tc39.es/ecma262/#sec-isarray +// eslint-disable-next-line es/no-array-isarray -- safe +var isArray$3 = Array.isArray || function isArray(argument) { + return classof$1(argument) == 'Array'; +}; + +var isArray$2 = isArray$3; +var isConstructor$2 = isConstructor$4; +var isObject$5 = isObject$i; +var wellKnownSymbol$6 = wellKnownSymbol$k; + +var SPECIES$2 = wellKnownSymbol$6('species'); +var $Array$2 = Array; + +// a part of `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +var arraySpeciesConstructor$1 = function (originalArray) { + var C; + if (isArray$2(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor$2(C) && (C === $Array$2 || isArray$2(C.prototype))) C = undefined; + else if (isObject$5(C)) { + C = C[SPECIES$2]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array$2 : C; +}; + +var arraySpeciesConstructor = arraySpeciesConstructor$1; + +// `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +var arraySpeciesCreate$2 = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); +}; + +var bind$2 = functionBindContext; +var uncurryThis$7 = functionUncurryThis; +var IndexedObject$2 = indexedObject; +var toObject$5 = toObject$9; +var lengthOfArrayLike$5 = lengthOfArrayLike$9; +var arraySpeciesCreate$1 = arraySpeciesCreate$2; + +var push$2 = uncurryThis$7([].push); + +// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation +var createMethod$3 = function (TYPE) { + var IS_MAP = TYPE == 1; + var IS_FILTER = TYPE == 2; + var IS_SOME = TYPE == 3; + var IS_EVERY = TYPE == 4; + var IS_FIND_INDEX = TYPE == 6; + var IS_FILTER_REJECT = TYPE == 7; + var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject$5($this); + var self = IndexedObject$2(O); + var boundFunction = bind$2(callbackfn, that); + var length = lengthOfArrayLike$5(self); + var index = 0; + var create = specificCreate || arraySpeciesCreate$1; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push$2(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push$2(target, value); // filterReject + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; +}; + +var arrayIteration = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod$3(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod$3(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod$3(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod$3(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod$3(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod$3(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod$3(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod$3(7) +}; + +var uncurryThis$6 = functionUncurryThis; +var defineBuiltIns$1 = defineBuiltIns$2; +var getWeakData = internalMetadataExports.getWeakData; +var anInstance$1 = anInstance$4; +var anObject$1 = anObject$c; +var isNullOrUndefined$1 = isNullOrUndefined$7; +var isObject$4 = isObject$i; +var iterate$2 = iterate$6; +var ArrayIterationModule = arrayIteration; +var hasOwn = hasOwnProperty_1; +var InternalStateModule$1 = internalState; + +var setInternalState$1 = InternalStateModule$1.set; +var internalStateGetterFor$1 = InternalStateModule$1.getterFor; +var find = ArrayIterationModule.find; +var findIndex = ArrayIterationModule.findIndex; +var splice = uncurryThis$6([].splice); +var id = 0; + +// fallback for uncaught frozen keys +var uncaughtFrozenStore = function (state) { + return state.frozen || (state.frozen = new UncaughtFrozenStore()); +}; + +var UncaughtFrozenStore = function () { + this.entries = []; +}; + +var findUncaughtFrozen = function (store, key) { + return find(store.entries, function (it) { + return it[0] === key; + }); +}; + +UncaughtFrozenStore.prototype = { + get: function (key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function (key) { + return !!findUncaughtFrozen(this, key); + }, + set: function (key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value; + else this.entries.push([key, value]); + }, + 'delete': function (key) { + var index = findIndex(this.entries, function (it) { + return it[0] === key; + }); + if (~index) splice(this.entries, index, 1); + return !!~index; + } +}; + +var collectionWeak$1 = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance$1(that, Prototype); + setInternalState$1(that, { + type: CONSTRUCTOR_NAME, + id: id++, + frozen: undefined + }); + if (!isNullOrUndefined$1(iterable)) iterate$2(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor$1(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var data = getWeakData(anObject$1(key), true); + if (data === true) uncaughtFrozenStore(state).set(key, value); + else data[state.id] = value; + return that; + }; + + defineBuiltIns$1(Prototype, { + // `{ WeakMap, WeakSet }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.delete + // https://tc39.es/ecma262/#sec-weakset.prototype.delete + 'delete': function (key) { + var state = getInternalState(this); + if (!isObject$4(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state)['delete'](key); + return data && hasOwn(data, state.id) && delete data[state.id]; + }, + // `{ WeakMap, WeakSet }.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.has + // https://tc39.es/ecma262/#sec-weakset.prototype.has + has: function has(key) { + var state = getInternalState(this); + if (!isObject$4(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).has(key); + return data && hasOwn(data, state.id); + } + }); + + defineBuiltIns$1(Prototype, IS_MAP ? { + // `WeakMap.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.get + get: function get(key) { + var state = getInternalState(this); + if (isObject$4(key)) { + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).get(key); + return data ? data[state.id] : undefined; + } + }, + // `WeakMap.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.set + set: function set(key, value) { + return define(this, key, value); + } + } : { + // `WeakSet.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-weakset.prototype.add + add: function add(value) { + return define(this, value, true); + } + }); + + return Constructor; + } +}; + +var collection$1 = collection$2; +var collectionWeak = collectionWeak$1; + +// `WeakSet` constructor +// https://tc39.es/ecma262/#sec-weakset-constructor +collection$1('WeakSet', function (init) { + return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionWeak); + +// iterable DOM collections +// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods +var domIterables = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 +}; + +// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList` +var documentCreateElement = documentCreateElement$2; + +var classList = documentCreateElement('span').classList; +var DOMTokenListPrototype$2 = classList && classList.constructor && classList.constructor.prototype; + +var domTokenListPrototype = DOMTokenListPrototype$2 === Object.prototype ? undefined : DOMTokenListPrototype$2; + +var global$3 = global$k; +var DOMIterables$1 = domIterables; +var DOMTokenListPrototype$1 = domTokenListPrototype; +var ArrayIteratorMethods = es_array_iterator; +var createNonEnumerableProperty$1 = createNonEnumerableProperty$5; +var wellKnownSymbol$5 = wellKnownSymbol$k; + +var ITERATOR$1 = wellKnownSymbol$5('iterator'); +var TO_STRING_TAG = wellKnownSymbol$5('toStringTag'); +var ArrayValues = ArrayIteratorMethods.values; + +var handlePrototype$1 = function (CollectionPrototype, COLLECTION_NAME) { + if (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[ITERATOR$1] !== ArrayValues) try { + createNonEnumerableProperty$1(CollectionPrototype, ITERATOR$1, ArrayValues); + } catch (error) { + CollectionPrototype[ITERATOR$1] = ArrayValues; + } + if (!CollectionPrototype[TO_STRING_TAG]) { + createNonEnumerableProperty$1(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); + } + if (DOMIterables$1[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { + createNonEnumerableProperty$1(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); + } catch (error) { + CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; + } + } + } +}; + +for (var COLLECTION_NAME$1 in DOMIterables$1) { + handlePrototype$1(global$3[COLLECTION_NAME$1] && global$3[COLLECTION_NAME$1].prototype, COLLECTION_NAME$1); +} + +handlePrototype$1(DOMTokenListPrototype$1, 'DOMTokenList'); + +var fails$7 = fails$p; +var wellKnownSymbol$4 = wellKnownSymbol$k; +var V8_VERSION$1 = engineV8Version; + +var SPECIES$1 = wellKnownSymbol$4('species'); + +var arrayMethodHasSpeciesSupport$4 = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION$1 >= 51 || !fails$7(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES$1] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); +}; + +var $$e = _export; +var isArray$1 = isArray$3; +var isConstructor$1 = isConstructor$4; +var isObject$3 = isObject$i; +var toAbsoluteIndex = toAbsoluteIndex$3; +var lengthOfArrayLike$4 = lengthOfArrayLike$9; +var toIndexedObject$2 = toIndexedObject$9; +var createProperty$2 = createProperty$4; +var wellKnownSymbol$3 = wellKnownSymbol$k; +var arrayMethodHasSpeciesSupport$3 = arrayMethodHasSpeciesSupport$4; +var nativeSlice = arraySlice$3; + +var HAS_SPECIES_SUPPORT$2 = arrayMethodHasSpeciesSupport$3('slice'); + +var SPECIES = wellKnownSymbol$3('species'); +var $Array$1 = Array; +var max = Math.max; + +// `Array.prototype.slice` method +// https://tc39.es/ecma262/#sec-array.prototype.slice +// fallback for not array-like ES3 strings and DOM objects +$$e({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$2 }, { + slice: function slice(start, end) { + var O = toIndexedObject$2(this); + var length = lengthOfArrayLike$4(O); + var k = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible + var Constructor, result, n; + if (isArray$1(O)) { + Constructor = O.constructor; + // cross-realm fallback + if (isConstructor$1(Constructor) && (Constructor === $Array$1 || isArray$1(Constructor.prototype))) { + Constructor = undefined; + } else if (isObject$3(Constructor)) { + Constructor = Constructor[SPECIES]; + if (Constructor === null) Constructor = undefined; + } + if (Constructor === $Array$1 || Constructor === undefined) { + return nativeSlice(O, k, fin); + } + } + result = new (Constructor === undefined ? $Array$1 : Constructor)(max(fin - k, 0)); + for (n = 0; k < fin; k++, n++) if (k in O) createProperty$2(result, n, O[k]); + result.length = n; + return result; + } +}); + +var fails$6 = fails$p; + +var arrayMethodIsStrict$4 = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails$6(function () { + // eslint-disable-next-line no-useless-call -- required for testing + method.call(null, argument || function () { return 1; }, 1); + }); +}; + +var $$d = _export; +var uncurryThis$5 = functionUncurryThis; +var IndexedObject$1 = indexedObject; +var toIndexedObject$1 = toIndexedObject$9; +var arrayMethodIsStrict$3 = arrayMethodIsStrict$4; + +var nativeJoin = uncurryThis$5([].join); + +var ES3_STRINGS = IndexedObject$1 != Object; +var FORCED$4 = ES3_STRINGS || !arrayMethodIsStrict$3('join', ','); + +// `Array.prototype.join` method +// https://tc39.es/ecma262/#sec-array.prototype.join +$$d({ target: 'Array', proto: true, forced: FORCED$4 }, { + join: function join(separator) { + return nativeJoin(toIndexedObject$1(this), separator === undefined ? ',' : separator); + } +}); + +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global Reflect, Promise */ + + +function __classPrivateFieldGet(receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +} + +var $$c = _export; +var toObject$4 = toObject$9; +var nativeKeys = objectKeys$3; +var fails$5 = fails$p; + +var FAILS_ON_PRIMITIVES = fails$5(function () { nativeKeys(1); }); + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +$$c({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { + keys: function keys(it) { + return nativeKeys(toObject$4(it)); + } +}); + +var isObject$2 = isObject$i; +var classof = classofRaw$2; +var wellKnownSymbol$2 = wellKnownSymbol$k; + +var MATCH$1 = wellKnownSymbol$2('match'); + +// `IsRegExp` abstract operation +// https://tc39.es/ecma262/#sec-isregexp +var isRegexp = function (it) { + var isRegExp; + return isObject$2(it) && ((isRegExp = it[MATCH$1]) !== undefined ? !!isRegExp : classof(it) == 'RegExp'); +}; + +var isRegExp = isRegexp; + +var $TypeError$3 = TypeError; + +var notARegexp = function (it) { + if (isRegExp(it)) { + throw $TypeError$3("The method doesn't accept regular expressions"); + } return it; +}; + +var wellKnownSymbol$1 = wellKnownSymbol$k; + +var MATCH = wellKnownSymbol$1('match'); + +var correctIsRegexpLogic = function (METHOD_NAME) { + var regexp = /./; + try { + '/./'[METHOD_NAME](regexp); + } catch (error1) { + try { + regexp[MATCH] = false; + return '/./'[METHOD_NAME](regexp); + } catch (error2) { /* empty */ } + } return false; +}; + +var $$b = _export; +var uncurryThis$4 = functionUncurryThisClause; +var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; +var toLength = toLength$2; +var toString$3 = toString$6; +var notARegExp = notARegexp; +var requireObjectCoercible$1 = requireObjectCoercible$5; +var correctIsRegExpLogic = correctIsRegexpLogic; + +// eslint-disable-next-line es/no-string-prototype-startswith -- safe +var nativeStartsWith = uncurryThis$4(''.startsWith); +var stringSlice = uncurryThis$4(''.slice); +var min = Math.min; + +var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith'); +// https://github.com/zloirock/core-js/pull/702 +var MDN_POLYFILL_BUG = !CORRECT_IS_REGEXP_LOGIC && !!function () { + var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith'); + return descriptor && !descriptor.writable; +}(); + +// `String.prototype.startsWith` method +// https://tc39.es/ecma262/#sec-string.prototype.startswith +$$b({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { + startsWith: function startsWith(searchString /* , position = 0 */) { + var that = toString$3(requireObjectCoercible$1(this)); + notARegExp(searchString); + var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length)); + var search = toString$3(searchString); + return nativeStartsWith + ? nativeStartsWith(that, search, index) + : stringSlice(that, index, index + search.length) === search; + } +}); + +var $forEach = arrayIteration.forEach; +var arrayMethodIsStrict$2 = arrayMethodIsStrict$4; + +var STRICT_METHOD$1 = arrayMethodIsStrict$2('forEach'); + +// `Array.prototype.forEach` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.foreach +var arrayForEach = !STRICT_METHOD$1 ? function forEach(callbackfn /* , thisArg */) { + return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); +// eslint-disable-next-line es/no-array-prototype-foreach -- safe +} : [].forEach; + +var global$2 = global$k; +var DOMIterables = domIterables; +var DOMTokenListPrototype = domTokenListPrototype; +var forEach = arrayForEach; +var createNonEnumerableProperty = createNonEnumerableProperty$5; + +var handlePrototype = function (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { + createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach); + } catch (error) { + CollectionPrototype.forEach = forEach; + } +}; + +for (var COLLECTION_NAME in DOMIterables) { + if (DOMIterables[COLLECTION_NAME]) { + handlePrototype(global$2[COLLECTION_NAME] && global$2[COLLECTION_NAME].prototype); + } +} + +handlePrototype(DOMTokenListPrototype); + +var DESCRIPTORS$1 = descriptors; +var uncurryThis$3 = functionUncurryThis; +var objectKeys = objectKeys$3; +var toIndexedObject = toIndexedObject$9; +var $propertyIsEnumerable = objectPropertyIsEnumerable.f; + +var propertyIsEnumerable = uncurryThis$3($propertyIsEnumerable); +var push$1 = uncurryThis$3([].push); + +// `Object.{ entries, values }` methods implementation +var createMethod$2 = function (TO_ENTRIES) { + return function (it) { + var O = toIndexedObject(it); + var keys = objectKeys(O); + var length = keys.length; + var i = 0; + var result = []; + var key; + while (length > i) { + key = keys[i++]; + if (!DESCRIPTORS$1 || propertyIsEnumerable(O, key)) { + push$1(result, TO_ENTRIES ? [key, O[key]] : O[key]); + } + } + return result; + }; +}; + +var objectToArray = { + // `Object.entries` method + // https://tc39.es/ecma262/#sec-object.entries + entries: createMethod$2(true), + // `Object.values` method + // https://tc39.es/ecma262/#sec-object.values + values: createMethod$2(false) +}; + +var $$a = _export; +var $entries = objectToArray.entries; + +// `Object.entries` method +// https://tc39.es/ecma262/#sec-object.entries +$$a({ target: 'Object', stat: true }, { + entries: function entries(O) { + return $entries(O); + } +}); + +function defined(x) { + return x != null && !Number.isNaN(x); +} + +function ascendingDefined(a, b) { + return +defined(b) - +defined(a) || ascending(a, b); +} + +function finite(x) { + return isFinite(x) ? x : NaN; +} + +function positive(x) { + return x > 0 && isFinite(x) ? x : NaN; +} + +function negative(x) { + return x < 0 && isFinite(x) ? x : NaN; +} + +const re = /^(?:[-+]\d{2})?\d{4}(?:-\d{2}(?:-\d{2})?)?(?:T\d{2}:\d{2}(?::\d{2}(?:\.\d{3})?)?(?:Z|[-+]\d{2}:?\d{2})?)?$/; + +function parse(string, fallback) { + if (!re.test(string += "")) return typeof fallback === "function" ? fallback(string) : fallback; + return new Date(string); +} + +const timeIntervals = new Map([ + ["second", timeSecond], + ["minute", timeMinute], + ["hour", timeHour], + ["day", timeDay], + ["week", timeWeek], + ["month", timeMonth], + ["quarter", timeMonth.every(3)], + ["half", timeMonth.every(6)], + ["year", timeYear], + ["monday", timeMonday], + ["tuesday", timeTuesday], + ["wednesday", timeWednesday], + ["thursday", timeThursday], + ["friday", timeFriday], + ["saturday", timeSaturday], + ["sunday", timeSunday] +]); + +const utcIntervals = new Map([ + ["second", utcSecond], + ["minute", utcMinute], + ["hour", utcHour], + ["day", utcDay], + ["week", utcWeek], + ["month", utcMonth], + ["quarter", utcMonth.every(3)], + ["half", utcMonth.every(6)], + ["year", utcYear], + ["monday", utcMonday], + ["tuesday", utcTuesday], + ["wednesday", utcWednesday], + ["thursday", utcThursday], + ["friday", utcFriday], + ["saturday", utcSaturday], + ["sunday", utcSunday] +]); + +function maybeTimeInterval(interval) { + const i = timeIntervals.get(`${interval}`.toLowerCase()); + if (!i) throw new Error(`unknown interval: ${interval}`); + return i; +} + +function maybeUtcInterval(interval) { + const i = utcIntervals.get(`${interval}`.toLowerCase()); + if (!i) throw new Error(`unknown interval: ${interval}`); + return i; +} + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray +const TypedArray = Object.getPrototypeOf(Uint8Array); +const objectToString = Object.prototype.toString; +const constant = (x) => () => x; + +// If the values are specified as a typed array, no coercion is required. +function coerceNumbers(values) { + return values instanceof TypedArray ? values : map(values, coerceNumber, Float64Array); +} + +// Unlike Mark’s number, here we want to convert null and undefined to NaN since +// the result will be stored in a Float64Array and we don’t want null to be +// coerced to zero. We use Number instead of unary + to allow BigInt coercion. +function coerceNumber(x) { + return x == null ? NaN : Number(x); +} + +function coerceDates(values) { + return map(values, coerceDate); +} + +// When coercing strings to dates, we only want to allow the ISO 8601 format +// since the built-in string parsing of the Date constructor varies across +// browsers. (In the future, this could be made more liberal if desired, though +// it is still generally preferable to do date parsing yourself explicitly, +// rather than rely on Plot.) Any non-string values are coerced to number first +// and treated as milliseconds since UNIX epoch. +function coerceDate(x) { + return x instanceof Date && !isNaN(x) + ? x + : typeof x === "string" + ? parse(x) + : x == null || isNaN((x = +x)) + ? undefined + : new Date(x); +} + +// Promotes the specified data to an array as needed. +function arrayify(data) { + return data == null || data instanceof Array || data instanceof TypedArray ? data : Array.from(data); +} + +// An optimization of type.from(values, f): if the given values are already an +// instanceof the desired array type, the faster values.map method is used. +function map(values, f, type = Array) { + return values == null ? values : values instanceof type ? values.map(f) : type.from(values, f); +} + +// An optimization of type.from(values): if the given values are already an +// instanceof the desired array type, the faster values.slice method is used. +function slice(values, type = Array) { + return values instanceof type ? values.slice() : type.from(values); +} + +// Disambiguates an options object (e.g., {y: "x2"}) from a primitive value. +function isObject$1(option) { + return option?.toString === objectToString; +} + +// Disambiguates a scale options object (e.g., {color: {type: "linear"}}) from +// some other option (e.g., {color: "red"}). When creating standalone legends, +// this is used to test whether a scale is defined; this should be consistent +// with inferScaleType when there are no channels associated with the scale, and +// if this returns true, then normalizeScale must return non-null. +function isScaleOptions(option) { + return isObject$1(option) && (option.type !== undefined || option.domain !== undefined); +} + +// If interval is not nullish, converts interval shorthand such as a number (for +// multiples) or a time interval name (such as “dayâ€) to a {floor, offset, +// range} object similar to a D3 time interval. +function maybeInterval(interval, type) { + if (interval == null) return; + if (typeof interval === "number") { + if (0 < interval && interval < 1 && Number.isInteger(1 / interval)) interval = -1 / interval; + const n = Math.abs(interval); + return interval < 0 + ? { + floor: (d) => Math.floor(d * n) / n, + offset: (d) => (d * n + 1) / n, // note: no optional step for simplicity + range: (lo, hi) => range(Math.ceil(lo * n), hi * n).map((x) => x / n) + } + : { + floor: (d) => Math.floor(d / n) * n, + offset: (d) => d + n, // note: no optional step for simplicity + range: (lo, hi) => range(Math.ceil(lo / n), hi / n).map((x) => x * n) + }; + } + if (typeof interval === "string") return (type === "time" ? maybeTimeInterval : maybeUtcInterval)(interval); + if (typeof interval.floor !== "function") throw new Error("invalid interval; missing floor method"); + if (typeof interval.offset !== "function") throw new Error("invalid interval; missing offset method"); + return interval; +} + +// Like maybeInterval, but requires a range method too. +function maybeRangeInterval(interval, type) { + interval = maybeInterval(interval, type); + if (interval && typeof interval.range !== "function") throw new Error("invalid interval: missing range method"); + return interval; +} + +// Like maybeRangeInterval, but requires a ceil method too. +function maybeNiceInterval(interval, type) { + interval = maybeRangeInterval(interval, type); + if (interval && typeof interval.ceil !== "function") throw new Error("invalid interval: missing ceil method"); + return interval; +} + +function isOrdinal(values) { + for (const value of values) { + if (value == null) continue; + const type = typeof value; + return type === "string" || type === "boolean"; + } +} + +function isTemporal(values) { + for (const value of values) { + if (value == null) continue; + return value instanceof Date; + } +} + +// Are these strings that might represent dates? This is stricter than ISO 8601 +// because we want to ignore false positives on numbers; for example, the string +// "1192" is more likely to represent a number than a date even though it is +// valid ISO 8601 representing 1192-01-01. +function isTemporalString(values) { + for (const value of values) { + if (value == null) continue; + return typeof value === "string" && isNaN(value) && parse(value); + } +} + +// Are these strings that might represent numbers? This is stricter than +// coercion because we want to ignore false positives on e.g. empty strings. +function isNumericString(values) { + for (const value of values) { + if (value == null) continue; + if (typeof value !== "string") return false; + if (!value.trim()) continue; + return !isNaN(value); + } +} + +function isNoneish(value) { + return value == null || isNone(value); +} + +function isNone(value) { + return /^\s*none\s*$/i.test(value); +} + +// Like a sort comparator, returns a positive value if the given array of values +// is in ascending order, a negative value if the values are in descending +// order. Assumes monotonicity; only tests the first and last values. +function orderof(values) { + if (values == null) return; + const first = values[0]; + const last = values[values.length - 1]; + return descending(first, last); +} + +// Positional scales have associated axes, and for ordinal data, a point or band +// scale is used instead of an ordinal scale. +const position = Symbol("position"); + +// Color scales default to the turbo interpolator for quantitative data, and to +// the Tableau10 scheme for ordinal data. Color scales may also have an +// associated legend. +const color = Symbol("color"); + +// Radius scales default to the sqrt type, have a default range of [0, 3], and a +// default domain from 0 to the median first quartile of associated channels. +const radius = Symbol("radius"); + +// Length scales default to the linear type, have a default range of [0, 12], +// and a default domain from 0 to the median median of associated channels. +const length = Symbol("length"); + +// Opacity scales have a default range of [0, 1], and a default domain from 0 to +// the maximum value of associated channels. +const opacity = Symbol("opacity"); + +// Symbol scales have a default range of categorical symbols. +const symbol = Symbol("symbol"); + +// TODO Rather than hard-coding the list of known scale names, collect the names +// and categories for each plot specification, so that custom marks can register +// custom scales. +const registry = new Map([ + ["x", position], + ["y", position], + ["fx", position], + ["fy", position], + ["r", radius], + ["color", color], + ["opacity", opacity], + ["symbol", symbol], + ["length", length] +]); + +const sqrt3 = Math.sqrt(3); +const sqrt4_3 = 2 / sqrt3; + +const symbolHexagon = { + draw(context, size) { + const rx = Math.sqrt(size / Math.PI), + ry = rx * sqrt4_3, + hy = ry / 2; + context.moveTo(0, ry); + context.lineTo(rx, hy); + context.lineTo(rx, -hy); + context.lineTo(0, -ry); + context.lineTo(-rx, -hy); + context.lineTo(-rx, hy); + context.closePath(); + } +}; + +const symbols = new Map([ + ["asterisk", symbolAsterisk], + ["circle", symbolCircle], + ["cross", symbolCross], + ["diamond", symbolDiamond], + ["diamond2", symbolDiamond2], + ["hexagon", symbolHexagon], + ["plus", symbolPlus], + ["square", symbolSquare], + ["square2", symbolSquare2], + ["star", symbolStar], + ["times", symbolTimes], + ["triangle", symbolTriangle], + ["triangle2", symbolTriangle2], + ["wye", symbolWye] +]); + +function isSymbolObject(value) { + return value && typeof value.draw === "function"; +} + +function maybeSymbol(symbol) { + if (symbol == null || isSymbolObject(symbol)) return symbol; + const value = symbols.get(`${symbol}`.toLowerCase()); + if (value) return value; + throw new Error(`invalid symbol: ${symbol}`); +} + +function warn(message) { + console.warn(message); +} + +const ordinalSchemes = new Map([ + // categorical + ["accent", schemeAccent], + ["category10", schemeCategory10], + ["dark2", schemeDark2], + ["paired", schemePaired], + ["pastel1", schemePastel1], + ["pastel2", schemePastel2], + ["set1", schemeSet1], + ["set2", schemeSet2], + ["set3", schemeSet3], + ["tableau10", schemeTableau10], + + // diverging + ["brbg", scheme11(schemeBrBG, interpolateBrBG)], + ["prgn", scheme11(schemePRGn, interpolatePRGn)], + ["piyg", scheme11(schemePiYG, interpolatePiYG)], + ["puor", scheme11(schemePuOr, interpolatePuOr)], + ["rdbu", scheme11(schemeRdBu, interpolateRdBu)], + ["rdgy", scheme11(schemeRdGy, interpolateRdGy)], + ["rdylbu", scheme11(schemeRdYlBu, interpolateRdYlBu)], + ["rdylgn", scheme11(schemeRdYlGn, interpolateRdYlGn)], + ["spectral", scheme11(schemeSpectral, interpolateSpectral)], + + // reversed diverging (for temperature data) + ["burd", scheme11r(schemeRdBu, interpolateRdBu)], + ["buylrd", scheme11r(schemeRdYlBu, interpolateRdYlBu)], + + // sequential (single-hue) + ["blues", scheme9(schemeBlues, interpolateBlues)], + ["greens", scheme9(schemeGreens, interpolateGreens)], + ["greys", scheme9(schemeGreys, interpolateGreys)], + ["oranges", scheme9(schemeOranges, interpolateOranges)], + ["purples", scheme9(schemePurples, interpolatePurples)], + ["reds", scheme9(schemeReds, interpolateReds)], + + // sequential (multi-hue) + ["turbo", schemei(interpolateTurbo)], + ["viridis", schemei(interpolateViridis)], + ["magma", schemei(interpolateMagma)], + ["inferno", schemei(interpolateInferno)], + ["plasma", schemei(interpolatePlasma)], + ["cividis", schemei(interpolateCividis)], + ["cubehelix", schemei(interpolateCubehelixDefault)], + ["warm", schemei(interpolateWarm)], + ["cool", schemei(interpolateCool)], + ["bugn", scheme9(schemeBuGn, interpolateBuGn)], + ["bupu", scheme9(schemeBuPu, interpolateBuPu)], + ["gnbu", scheme9(schemeGnBu, interpolateGnBu)], + ["orrd", scheme9(schemeOrRd, interpolateOrRd)], + ["pubu", scheme9(schemePuBu, interpolatePuBu)], + ["pubugn", scheme9(schemePuBuGn, interpolatePuBuGn)], + ["purd", scheme9(schemePuRd, interpolatePuRd)], + ["rdpu", scheme9(schemeRdPu, interpolateRdPu)], + ["ylgn", scheme9(schemeYlGn, interpolateYlGn)], + ["ylgnbu", scheme9(schemeYlGnBu, interpolateYlGnBu)], + ["ylorbr", scheme9(schemeYlOrBr, interpolateYlOrBr)], + ["ylorrd", scheme9(schemeYlOrRd, interpolateYlOrRd)], + + // cyclical + ["rainbow", schemeicyclical(interpolateRainbow)], + ["sinebow", schemeicyclical(interpolateSinebow)] +]); + +function scheme9(scheme, interpolate) { + return ({length: n}) => { + if (n === 1) return [scheme[3][1]]; // favor midpoint + if (n === 2) return [scheme[3][1], scheme[3][2]]; // favor darker + n = Math.max(3, Math.floor(n)); + return n > 9 ? quantize(interpolate, n) : scheme[n]; + }; +} + +function scheme11(scheme, interpolate) { + return ({length: n}) => { + if (n === 2) return [scheme[3][0], scheme[3][2]]; // favor diverging extrema + n = Math.max(3, Math.floor(n)); + return n > 11 ? quantize(interpolate, n) : scheme[n]; + }; +} + +function scheme11r(scheme, interpolate) { + return ({length: n}) => { + if (n === 2) return [scheme[3][2], scheme[3][0]]; // favor diverging extrema + n = Math.max(3, Math.floor(n)); + return n > 11 ? quantize((t) => interpolate(1 - t), n) : scheme[n].slice().reverse(); + }; +} + +function schemei(interpolate) { + return ({length: n}) => quantize(interpolate, Math.max(2, Math.floor(n))); +} + +function schemeicyclical(interpolate) { + return ({length: n}) => quantize(interpolate, Math.floor(n) + 1).slice(0, -1); +} + +function ordinalScheme(scheme) { + const s = `${scheme}`.toLowerCase(); + if (!ordinalSchemes.has(s)) throw new Error(`unknown ordinal scheme: ${s}`); + return ordinalSchemes.get(s); +} + +function ordinalRange(scheme, length) { + const s = ordinalScheme(scheme); + const r = typeof s === "function" ? s({length}) : s; + return r.length !== length ? r.slice(0, length) : r; +} + +// If the specified domain contains only booleans (ignoring null and undefined), +// returns a corresponding range where false is mapped to the low color and true +// is mapped to the high color of the specified scheme. +function maybeBooleanRange(domain, scheme = "greys") { + const range = new Set(); + const [f, t] = ordinalRange(scheme, 2); + for (const value of domain) { + if (value == null) continue; + if (value === true) range.add(t); + else if (value === false) range.add(f); + else return; + } + return [...range]; +} + +const quantitativeSchemes = new Map([ + // diverging + ["brbg", interpolateBrBG], + ["prgn", interpolatePRGn], + ["piyg", interpolatePiYG], + ["puor", interpolatePuOr], + ["rdbu", interpolateRdBu], + ["rdgy", interpolateRdGy], + ["rdylbu", interpolateRdYlBu], + ["rdylgn", interpolateRdYlGn], + ["spectral", interpolateSpectral], + + // reversed diverging (for temperature data) + ["burd", (t) => interpolateRdBu(1 - t)], + ["buylrd", (t) => interpolateRdYlBu(1 - t)], + + // sequential (single-hue) + ["blues", interpolateBlues], + ["greens", interpolateGreens], + ["greys", interpolateGreys], + ["purples", interpolatePurples], + ["reds", interpolateReds], + ["oranges", interpolateOranges], + + // sequential (multi-hue) + ["turbo", interpolateTurbo], + ["viridis", interpolateViridis], + ["magma", interpolateMagma], + ["inferno", interpolateInferno], + ["plasma", interpolatePlasma], + ["cividis", interpolateCividis], + ["cubehelix", interpolateCubehelixDefault], + ["warm", interpolateWarm], + ["cool", interpolateCool], + ["bugn", interpolateBuGn], + ["bupu", interpolateBuPu], + ["gnbu", interpolateGnBu], + ["orrd", interpolateOrRd], + ["pubugn", interpolatePuBuGn], + ["pubu", interpolatePuBu], + ["purd", interpolatePuRd], + ["rdpu", interpolateRdPu], + ["ylgnbu", interpolateYlGnBu], + ["ylgn", interpolateYlGn], + ["ylorbr", interpolateYlOrBr], + ["ylorrd", interpolateYlOrRd], + + // cyclical + ["rainbow", interpolateRainbow], + ["sinebow", interpolateSinebow] +]); + +function quantitativeScheme(scheme) { + const s = `${scheme}`.toLowerCase(); + if (!quantitativeSchemes.has(s)) throw new Error(`unknown quantitative scheme: ${s}`); + return quantitativeSchemes.get(s); +} + +const divergingSchemes = new Set([ + "brbg", + "prgn", + "piyg", + "puor", + "rdbu", + "rdgy", + "rdylbu", + "rdylgn", + "spectral", + "burd", + "buylrd" +]); + +function isDivergingScheme(scheme) { + return scheme != null && divergingSchemes.has(`${scheme}`.toLowerCase()); +} + +const flip = (i) => (t) => i(1 - t); +const unit = [0, 1]; + +const interpolators = new Map([ + // numbers + ["number", interpolateNumber], + + // color spaces + ["rgb", interpolateRgb], + ["hsl", interpolateHsl], + ["hcl", interpolateHcl], + ["lab", interpolateLab] +]); + +function maybeInterpolator(interpolate) { + const i = `${interpolate}`.toLowerCase(); + if (!interpolators.has(i)) throw new Error(`unknown interpolator: ${i}`); + return interpolators.get(i); +} + +function createScaleQ( + key, + scale, + channels, + { + type, + nice, + clamp, + zero, + domain = inferAutoDomain(key, channels), + unknown, + round, + scheme, + interval, + range = registry.get(key) === radius + ? inferRadialRange(channels, domain) + : registry.get(key) === length + ? inferLengthRange(channels, domain) + : registry.get(key) === opacity + ? unit + : undefined, + interpolate = registry.get(key) === color + ? scheme == null && range !== undefined + ? interpolateRgb + : quantitativeScheme(scheme !== undefined ? scheme : type === "cyclical" ? "rainbow" : "turbo") + : round + ? interpolateRound + : interpolateNumber, + reverse: reverse$1 + } +) { + interval = maybeRangeInterval(interval, type); + if (type === "cyclical" || type === "sequential") type = "linear"; // shorthand for color schemes + reverse$1 = !!reverse$1; + + // Sometimes interpolate is a named interpolator, such as "lab" for Lab color + // space. Other times interpolate is a function that takes two arguments and + // is used in conjunction with the range. And other times the interpolate + // function is a “fixed†interpolator on the [0, 1] interval, as when a + // color scheme such as interpolateRdBu is used. + if (typeof interpolate !== "function") { + interpolate = maybeInterpolator(interpolate); + } + if (interpolate.length === 1) { + if (reverse$1) { + interpolate = flip(interpolate); + reverse$1 = false; + } + if (range === undefined) { + range = Float64Array.from(domain, (_, i) => i / (domain.length - 1)); + if (range.length === 2) range = unit; // optimize common case of [0, 1] + } + scale.interpolate((range === unit ? constant : interpolatePiecewise)(interpolate)); + } else { + scale.interpolate(interpolate); + } + + // If a zero option is specified, we assume that the domain is numeric, and we + // want to ensure that the domain crosses zero. However, note that the domain + // may be reversed (descending) so we shouldn’t assume that the first value is + // smaller than the last; and also it’s possible that the domain has more than + // two values for a “poly†scale. And lastly be careful not to mutate input! + if (zero) { + const [min, max] = extent(domain); + if (min > 0 || max < 0) { + domain = slice(domain); + if (orderof(domain) !== Math.sign(min)) domain[domain.length - 1] = 0; + // [2, 1] or [-2, -1] + else domain[0] = 0; // [1, 2] or [-1, -2] + } + } + + if (reverse$1) domain = reverse(domain); + scale.domain(domain).unknown(unknown); + if (nice) scale.nice(maybeNice(nice, type)), (domain = scale.domain()); + if (range !== undefined) scale.range(range); + if (clamp) scale.clamp(clamp); + return {type, domain, range, scale, interpolate, interval}; +} + +function maybeNice(nice, type) { + return nice === true ? undefined : typeof nice === "number" ? nice : maybeNiceInterval(nice, type); +} + +function createScaleLinear(key, channels, options) { + return createScaleQ(key, scaleLinear(), channels, options); +} + +function createScaleSqrt(key, channels, options) { + return createScalePow(key, channels, {...options, exponent: 0.5}); +} + +function createScalePow(key, channels, {exponent = 1, ...options}) { + return createScaleQ(key, scalePow().exponent(exponent), channels, {...options, type: "pow"}); +} + +function createScaleLog(key, channels, {base = 10, domain = inferLogDomain(channels), ...options}) { + return createScaleQ(key, scaleLog().base(base), channels, {...options, domain}); +} + +function createScaleSymlog(key, channels, {constant = 1, ...options}) { + return createScaleQ(key, scaleSymlog().constant(constant), channels, options); +} + +function createScaleQuantile( + key, + channels, + { + range, + quantiles = range === undefined ? 5 : (range = [...range]).length, // deprecated; use n instead + n = quantiles, + scheme = "rdylbu", + domain = inferQuantileDomain(channels), + unknown, + interpolate, + reverse + } +) { + if (range === undefined) { + range = + interpolate !== undefined + ? quantize(interpolate, n) + : registry.get(key) === color + ? ordinalRange(scheme, n) + : undefined; + } + if (domain.length > 0) { + domain = scaleQuantile(domain, range === undefined ? {length: n} : range).quantiles(); + } + return createScaleThreshold(key, channels, {domain, range, reverse, unknown}); +} + +function createScaleQuantize( + key, + channels, + { + range, + n = range === undefined ? 5 : (range = [...range]).length, + scheme = "rdylbu", + domain = inferAutoDomain(key, channels), + unknown, + interpolate, + reverse + } +) { + const [min, max] = extent(domain); + let thresholds; + if (range === undefined) { + thresholds = ticks(min, max, n); // approximate number of nice, round thresholds + if (thresholds[0] <= min) thresholds.splice(0, 1); // drop exact lower bound + if (thresholds[thresholds.length - 1] >= max) thresholds.pop(); // drop exact upper bound + n = thresholds.length + 1; + range = + interpolate !== undefined + ? quantize(interpolate, n) + : registry.get(key) === color + ? ordinalRange(scheme, n) + : undefined; + } else { + thresholds = quantize(interpolateNumber(min, max), n + 1).slice(1, -1); // exactly n - 1 thresholds to match range + if (min instanceof Date) thresholds = thresholds.map((x) => new Date(x)); // preserve date types + } + if (orderof(arrayify(domain)) < 0) thresholds.reverse(); // preserve descending domain + return createScaleThreshold(key, channels, {domain: thresholds, range, reverse, unknown}); +} + +function createScaleThreshold( + key, + channels, + { + domain = [0], // explicit thresholds in ascending order + unknown, + scheme = "rdylbu", + interpolate, + range = interpolate !== undefined + ? quantize(interpolate, domain.length + 1) + : registry.get(key) === color + ? ordinalRange(scheme, domain.length + 1) + : undefined, + reverse: reverse$1 + } +) { + domain = arrayify(domain); + const sign = orderof(domain); // preserve descending domain + if (!isNaN(sign) && !isOrdered(domain, sign)) throw new Error(`the ${key} scale has a non-monotonic domain`); + if (reverse$1) range = reverse(range); // domain ascending, so reverse range + return { + type: "threshold", + scale: scaleThreshold(sign < 0 ? reverse(domain) : domain, range === undefined ? [] : range).unknown(unknown), + domain, + range + }; +} + +function isOrdered(domain, sign) { + for (let i = 1, n = domain.length, d = domain[0]; i < n; ++i) { + const s = descending(d, (d = domain[i])); + if (s !== 0 && s !== sign) return false; + } + return true; +} + +function createScaleIdentity() { + return {type: "identity", scale: scaleIdentity()}; +} + +function inferDomain$1(channels, f = finite) { + return channels.length + ? [ + min$3(channels, ({value}) => (value === undefined ? value : min$3(value, f))), + max$3(channels, ({value}) => (value === undefined ? value : max$3(value, f))) + ] + : [0, 1]; +} + +function inferAutoDomain(key, channels) { + const type = registry.get(key); + return (type === radius || type === opacity || type === length ? inferZeroDomain : inferDomain$1)(channels); +} + +function inferZeroDomain(channels) { + return [0, channels.length ? max$3(channels, ({value}) => (value === undefined ? value : max$3(value, finite))) : 1]; +} + +// We don’t want the upper bound of the radial domain to be zero, as this would +// be degenerate, so we ignore nonpositive values. We also don’t want the +// maximum default radius to exceed 30px. +function inferRadialRange(channels, domain) { + const hint = channels.find(({radius}) => radius !== undefined); + if (hint !== undefined) return [0, hint.radius]; // a natural maximum radius, e.g. hexbins + const h25 = quantile(channels, 0.5, ({value}) => (value === undefined ? NaN : quantile(value, 0.25, positive))); + const range = domain.map((d) => 3 * Math.sqrt(d / h25)); + const k = 30 / max$3(range); + return k < 1 ? range.map((r) => r * k) : range; +} + +// We want a length scale’s domain to go from zero to a positive value, and to +// treat negative lengths if any as inverted vectors of equivalent magnitude. We +// also don’t want the maximum default length to exceed 60px. +function inferLengthRange(channels, domain) { + const h50 = median(channels, ({value}) => (value === undefined ? NaN : median(value, Math.abs))); + const range = domain.map((d) => (12 * d) / h50); + const k = 60 / max$3(range); + return k < 1 ? range.map((r) => r * k) : range; +} + +function inferLogDomain(channels) { + for (const {value} of channels) { + if (value !== undefined) { + for (let v of value) { + if (v > 0) return inferDomain$1(channels, positive); + if (v < 0) return inferDomain$1(channels, negative); + } + } + } + return [1, 10]; +} + +function inferQuantileDomain(channels) { + const domain = []; + for (const {value} of channels) { + if (value === undefined) continue; + for (const v of value) domain.push(v); + } + return domain; +} + +function interpolatePiecewise(interpolate) { + return (i, j) => (t) => interpolate(i + t * (j - i)); +} + +function createScaleD( + key, + scale, + transform, + channels, + { + type, + nice, + clamp, + domain = inferDomain$1(channels), + unknown, + pivot = 0, + scheme, + range, + symmetric = true, + interpolate = registry.get(key) === color + ? scheme == null && range !== undefined + ? interpolateRgb + : quantitativeScheme(scheme !== undefined ? scheme : "rdbu") + : interpolateNumber, + reverse + } +) { + pivot = +pivot; + let [min, max] = domain; + if (descending(min, max) < 0) ([min, max] = [max, min]), (reverse = !reverse); + min = Math.min(min, pivot); + max = Math.max(max, pivot); + + // Sometimes interpolate is a named interpolator, such as "lab" for Lab color + // space. Other times interpolate is a function that takes two arguments and + // is used in conjunction with the range. And other times the interpolate + // function is a “fixed†interpolator on the [0, 1] interval, as when a + // color scheme such as interpolateRdBu is used. + if (typeof interpolate !== "function") { + interpolate = maybeInterpolator(interpolate); + } + + // If an explicit range is specified, promote it to a piecewise interpolator. + if (range !== undefined) { + interpolate = + interpolate.length === 1 ? interpolatePiecewise(interpolate)(...range) : piecewise(interpolate, range); + } + + // Reverse before normalization. + if (reverse) interpolate = flip(interpolate); + + // Normalize the interpolator for symmetric difference around the pivot. + if (symmetric) { + const mid = transform.apply(pivot); + const mindelta = mid - transform.apply(min); + const maxdelta = transform.apply(max) - mid; + if (mindelta < maxdelta) min = transform.invert(mid - maxdelta); + else if (mindelta > maxdelta) max = transform.invert(mid + mindelta); + } + + scale.domain([min, pivot, max]).unknown(unknown).interpolator(interpolate); + if (clamp) scale.clamp(clamp); + if (nice) scale.nice(nice); + return {type, domain: [min, max], pivot, interpolate, scale}; +} + +function createScaleDiverging(key, channels, options) { + return createScaleD(key, scaleDiverging(), transformIdentity, channels, options); +} + +function createScaleDivergingSqrt(key, channels, options) { + return createScaleDivergingPow(key, channels, {...options, exponent: 0.5}); +} + +function createScaleDivergingPow(key, channels, {exponent = 1, ...options}) { + return createScaleD(key, scaleDivergingPow().exponent((exponent = +exponent)), transformPow(exponent), channels, { + ...options, + type: "diverging-pow" + }); +} + +function createScaleDivergingLog( + key, + channels, + {base = 10, pivot = 1, domain = inferDomain$1(channels, pivot < 0 ? negative : positive), ...options} +) { + return createScaleD(key, scaleDivergingLog().base((base = +base)), transformLog, channels, { + domain, + pivot, + ...options + }); +} + +function createScaleDivergingSymlog(key, channels, {constant = 1, ...options}) { + return createScaleD( + key, + scaleDivergingSymlog().constant((constant = +constant)), + transformSymlog(constant), + channels, + options + ); +} + +const transformIdentity = { + apply(x) { + return x; + }, + invert(x) { + return x; + } +}; + +const transformLog = { + apply: Math.log, + invert: Math.exp +}; + +const transformSqrt = { + apply(x) { + return Math.sign(x) * Math.sqrt(Math.abs(x)); + }, + invert(x) { + return Math.sign(x) * (x * x); + } +}; + +function transformPow(exponent) { + return exponent === 0.5 + ? transformSqrt + : { + apply(x) { + return Math.sign(x) * Math.pow(Math.abs(x), exponent); + }, + invert(x) { + return Math.sign(x) * Math.pow(Math.abs(x), 1 / exponent); + } + }; +} + +function transformSymlog(constant) { + return { + apply(x) { + return Math.sign(x) * Math.log1p(Math.abs(x / constant)); + }, + invert(x) { + return Math.sign(x) * Math.expm1(Math.abs(x)) * constant; + } + }; +} + +function createScaleT(key, scale, channels, options) { + return createScaleQ(key, scale, channels, options); +} + +function createScaleTime(key, channels, options) { + return createScaleT(key, scaleTime(), channels, options); +} + +function createScaleUtc(key, channels, options) { + return createScaleT(key, scaleUtc(), channels, options); +} + +// This denotes an implicitly ordinal color scale: the scale type was not set, +// but the associated values are strings or booleans. If the associated defined +// values are entirely boolean, the range will default to greys. You can opt out +// of this by setting the type explicitly. +const ordinalImplicit = Symbol("ordinal"); + +function createScaleO(key, scale, channels, {type, interval, domain, range, reverse: reverse$1, hint}) { + interval = maybeRangeInterval(interval, type); + if (domain === undefined) domain = inferDomain(channels, interval, key); + if (type === "categorical" || type === ordinalImplicit) type = "ordinal"; // shorthand for color schemes + if (reverse$1) domain = reverse(domain); + scale.domain(domain); + if (range !== undefined) { + // If the range is specified as a function, pass it the domain. + if (typeof range === "function") range = range(domain); + scale.range(range); + } + return {type, domain, range, scale, hint, interval}; +} + +function createScaleOrdinal(key, channels, {type, interval, domain, range, scheme, unknown, ...options}) { + interval = maybeRangeInterval(interval, type); + if (domain === undefined) domain = inferDomain(channels, interval, key); + let hint; + if (registry.get(key) === symbol) { + hint = inferSymbolHint(channels); + range = range === undefined ? inferSymbolRange(hint) : map(range, maybeSymbol); + } else if (registry.get(key) === color) { + if (range === undefined && (type === "ordinal" || type === ordinalImplicit)) { + range = maybeBooleanRange(domain, scheme); + if (range !== undefined) scheme = undefined; // Don’t re-apply scheme. + } + if (scheme === undefined && range === undefined) { + scheme = type === "ordinal" ? "turbo" : "tableau10"; + } + if (scheme !== undefined) { + if (range !== undefined) { + const interpolate = quantitativeScheme(scheme); + const t0 = range[0], + d = range[1] - range[0]; + range = ({length: n}) => quantize((t) => interpolate(t0 + d * t), n); + } else { + range = ordinalScheme(scheme); + } + } + } + if (unknown === scaleImplicit) { + throw new Error(`implicit unknown on ${key} scale is not supported`); + } + return createScaleO(key, scaleOrdinal().unknown(unknown), channels, {...options, type, domain, range, hint}); +} + +function createScalePoint(key, channels, {align = 0.5, padding = 0.5, ...options}) { + return maybeRound(scalePoint().align(align).padding(padding), channels, options, key); +} + +function createScaleBand( + key, + channels, + { + align = 0.5, + padding = 0.1, + paddingInner = padding, + paddingOuter = key === "fx" || key === "fy" ? 0 : padding, + ...options + } +) { + return maybeRound( + scaleBand().align(align).paddingInner(paddingInner).paddingOuter(paddingOuter), + channels, + options, + key + ); +} + +function maybeRound(scale, channels, options, key) { + let {round} = options; + if (round !== undefined) scale.round((round = !!round)); + scale = createScaleO(key, scale, channels, options); + scale.round = round; // preserve for autoScaleRound + return scale; +} + +function inferDomain(channels, interval, key) { + const values = new InternSet(); + for (const {value, domain} of channels) { + if (domain !== undefined) return domain(); // see channelDomain + if (value === undefined) continue; + for (const v of value) values.add(v); + } + if (interval !== undefined) { + const [min, max] = extent(values).map(interval.floor, interval); + return interval.range(min, interval.offset(max)); + } + if (values.size > 10e3 && registry.get(key) === position) { + throw new Error(`implicit ordinal domain of ${key} scale has more than 10,000 values`); + } + return sort(values, ascendingDefined); +} + +// If all channels provide a consistent hint, propagate it to the scale. +function inferHint(channels, key) { + let value; + for (const {hint} of channels) { + const candidate = hint?.[key]; + if (candidate === undefined) continue; // no hint here + if (value === undefined) value = candidate; + // first hint + else if (value !== candidate) return; // inconsistent hint + } + return value; +} + +function inferSymbolHint(channels) { + return { + fill: inferHint(channels, "fill"), + stroke: inferHint(channels, "stroke") + }; +} + +function inferSymbolRange(hint) { + return isNoneish(hint.fill) ? symbolsStroke : symbolsFill; +} + +function normalizeScale(key, scale, hint) { + return createScale(key, hint === undefined ? undefined : [{hint}], {...scale}); +} + +function createScale(key, channels = [], options = {}) { + const type = inferScaleType(key, channels, options); + + // Warn for common misuses of implicit ordinal scales. We disable this test if + // you specify a scale interval or if you set the domain or range explicitly, + // since setting the domain or range (typically with a cardinality of more than + // two) is another indication that you intended for the scale to be ordinal; we + // also disable it for facet scales since these are always band scales. + if ( + options.type === undefined && + options.domain === undefined && + options.range === undefined && + options.interval == null && + key !== "fx" && + key !== "fy" && + isOrdinalScale({type}) + ) { + const values = channels.map(({value}) => value).filter((value) => value !== undefined); + if (values.some(isTemporal)) + warn( + `Warning: some data associated with the ${key} scale are dates. Dates are typically associated with a "utc" or "time" scale rather than a "${formatScaleType( + type + )}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., d3.utcDay), or you can suppress this warning by setting the type of the ${key} scale to "${formatScaleType( + type + )}".` + ); + else if (values.some(isTemporalString)) + warn( + `Warning: some data associated with the ${key} scale are strings that appear to be dates (e.g., YYYY-MM-DD). If these strings represent dates, you should parse them to Date objects. Dates are typically associated with a "utc" or "time" scale rather than a "${formatScaleType( + type + )}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can suppress this warning by setting the type of the ${key} scale to "${formatScaleType( + type + )}".` + ); + else if (values.some(isNumericString)) + warn( + `Warning: some data associated with the ${key} scale are strings that appear to be numbers. If these strings represent numbers, you should parse or coerce them to numbers. Numbers are typically associated with a "linear" scale rather than a "${formatScaleType( + type + )}" scale. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., 1 for integers), or you can suppress this warning by setting the type of the ${key} scale to "${formatScaleType( + type + )}".` + ); + } + + options.type = type; // Mutates input! + + // Once the scale type is known, coerce the associated channel values and any + // explicitly-specified domain to the expected type. + switch (type) { + case "diverging": + case "diverging-sqrt": + case "diverging-pow": + case "diverging-log": + case "diverging-symlog": + case "cyclical": + case "sequential": + case "linear": + case "sqrt": + case "threshold": + case "quantile": + case "pow": + case "log": + case "symlog": + options = coerceType(channels, options, coerceNumbers); + break; + case "identity": + switch (registry.get(key)) { + case position: + options = coerceType(channels, options, coerceNumbers); + break; + case symbol: + options = coerceType(channels, options, coerceSymbols); + break; + } + break; + case "utc": + case "time": + options = coerceType(channels, options, coerceDates); + break; + } + + switch (type) { + case "diverging": + return createScaleDiverging(key, channels, options); + case "diverging-sqrt": + return createScaleDivergingSqrt(key, channels, options); + case "diverging-pow": + return createScaleDivergingPow(key, channels, options); + case "diverging-log": + return createScaleDivergingLog(key, channels, options); + case "diverging-symlog": + return createScaleDivergingSymlog(key, channels, options); + case "categorical": + case "ordinal": + case ordinalImplicit: + return createScaleOrdinal(key, channels, options); + case "cyclical": + case "sequential": + case "linear": + return createScaleLinear(key, channels, options); + case "sqrt": + return createScaleSqrt(key, channels, options); + case "threshold": + return createScaleThreshold(key, channels, options); + case "quantile": + return createScaleQuantile(key, channels, options); + case "quantize": + return createScaleQuantize(key, channels, options); + case "pow": + return createScalePow(key, channels, options); + case "log": + return createScaleLog(key, channels, options); + case "symlog": + return createScaleSymlog(key, channels, options); + case "utc": + return createScaleUtc(key, channels, options); + case "time": + return createScaleTime(key, channels, options); + case "point": + return createScalePoint(key, channels, options); + case "band": + return createScaleBand(key, channels, options); + case "identity": + return registry.get(key) === position ? createScaleIdentity() : {type: "identity"}; + case undefined: + return; + default: + throw new Error(`unknown scale type: ${type}`); + } +} + +function formatScaleType(type) { + return typeof type === "symbol" ? type.description : type; +} + +// A special type symbol when the x and y scales are replaced with a projection. +const typeProjection = {toString: () => "projection"}; + +function inferScaleType(key, channels, {type, domain, range, scheme, pivot, projection}) { + // The facet scales are always band scales; this cannot be changed. + if (key === "fx" || key === "fy") return "band"; + + // If a projection is specified, the x- and y-scales are disabled; these + // channels will be projected rather than scaled. (But still check that none + // of the associated channels are incompatible with a projection.) + if ((key === "x" || key === "y") && projection != null) type = typeProjection; + + // If a channel dictates a scale type, make sure that it is consistent with + // the user-specified scale type (if any) and all other channels. For example, + // barY requires x to be a band scale and disallows any other scale type. + for (const {type: t} of channels) { + if (t === undefined) continue; + else if (type === undefined) type = t; + else if (type !== t) throw new Error(`scale incompatible with channel: ${type} !== ${t}`); + } + + // If the scale, a channel, or user specified a (consistent) type, return it. + if (type === typeProjection) return; + if (type !== undefined) return type; + + // If there’s no data (and no type) associated with this scale, don’t create a scale. + if (domain === undefined && !channels.some(({value}) => value !== undefined)) return; + + // Some scales have default types. + const kind = registry.get(key); + if (kind === radius) return "sqrt"; + if (kind === opacity || kind === length) return "linear"; + if (kind === symbol) return "ordinal"; + + // If the domain or range has more than two values, assume it’s ordinal. You + // can still use a “piecewise†(or “polylinearâ€) scale, but you must set the + // type explicitly. + if ((domain || range || []).length > 2) return asOrdinalType(kind); + + // Otherwise, infer the scale type from the data! Prefer the domain, if + // present, over channels. (The domain and channels should be consistently + // typed, and the domain is more explicit and typically much smaller.) We only + // check the first defined value for expedience and simplicity; we expect + // that the types are consistent. + if (domain !== undefined) { + if (isOrdinal(domain)) return asOrdinalType(kind); + if (isTemporal(domain)) return "utc"; + if (kind === color && (pivot != null || isDivergingScheme(scheme))) return "diverging"; + return "linear"; + } + + // If any channel is ordinal or temporal, it takes priority. + const values = channels.map(({value}) => value).filter((value) => value !== undefined); + if (values.some(isOrdinal)) return asOrdinalType(kind); + if (values.some(isTemporal)) return "utc"; + if (kind === color && (pivot != null || isDivergingScheme(scheme))) return "diverging"; + return "linear"; +} + +// Positional scales default to a point scale instead of an ordinal scale. +function asOrdinalType(kind) { + switch (kind) { + case position: + return "point"; + case color: + return ordinalImplicit; + default: + return "ordinal"; + } +} + +function isOrdinalScale({type}) { + return type === "ordinal" || type === "point" || type === "band" || type === ordinalImplicit; +} + +// Mutates channel.value! +function coerceType(channels, {domain, ...options}, coerceValues) { + for (const c of channels) { + if (c.value !== undefined) { + c.value = coerceValues(c.value); + } + } + return { + domain: domain === undefined ? domain : coerceValues(domain), + ...options + }; +} + +function coerceSymbols(values) { + return map(values, maybeSymbol); +} + +function scale(options = {}) { + let scale; + for (const key in options) { + if (!registry.has(key)) continue; // ignore unknown properties + if (!isScaleOptions(options[key])) continue; // e.g., ignore {color: "red"} + if (scale !== undefined) throw new Error("ambiguous scale definition; multiple scales found"); + scale = exposeScale(normalizeScale(key, options[key])); + } + if (scale === undefined) throw new Error("invalid scale definition; no scale found"); + return scale; +} + +// Note: axis- and legend-related properties (such as label, ticks and +// tickFormat) are not included here as they do not affect the scale’s behavior. +function exposeScale({scale, type, domain, range, interpolate, interval, transform, percent, pivot}) { + if (type === "identity") return {type: "identity", apply: (d) => d, invert: (d) => d}; + const unknown = scale.unknown ? scale.unknown() : undefined; + return { + type, + domain: slice(domain), // defensive copy + ...(range !== undefined && {range: slice(range)}), // defensive copy + ...(transform !== undefined && {transform}), + ...(percent && {percent}), // only exposed if truthy + ...(unknown !== undefined && {unknown}), + ...(interval !== undefined && {interval}), + + // quantitative + ...(interpolate !== undefined && {interpolate}), + ...(scale.clamp && {clamp: scale.clamp()}), + + // diverging (always asymmetric; we never want to apply the symmetric transform twice) + ...(pivot !== undefined && {pivot, symmetric: false}), + + // log, diverging-log + ...(scale.base && {base: scale.base()}), + + // pow, diverging-pow + ...(scale.exponent && {exponent: scale.exponent()}), + + // symlog, diverging-symlog + ...(scale.constant && {constant: scale.constant()}), + + // band, point + ...(scale.align && {align: scale.align(), round: scale.round()}), + ...(scale.padding && + (scale.paddingInner + ? {paddingInner: scale.paddingInner(), paddingOuter: scale.paddingOuter()} + : {padding: scale.padding()})), + ...(scale.bandwidth && {bandwidth: scale.bandwidth(), step: scale.step()}), + + // utilities + apply: (t) => scale(t), + ...(scale.invert && {invert: (t) => scale.invert(t)}) + }; +} + +var ScrollDirection; +(function (ScrollDirection) { + ScrollDirection[ScrollDirection["SCROLL_NONE"] = 0] = "SCROLL_NONE"; + ScrollDirection[ScrollDirection["SCROLL_BACKWARD"] = 1] = "SCROLL_BACKWARD"; + ScrollDirection[ScrollDirection["SCROLL_FORWARD"] = 2] = "SCROLL_FORWARD"; +})(ScrollDirection || (ScrollDirection = {})); +var Position; +(function (Position) { + Position[Position["TOP"] = 0] = "TOP"; + Position[Position["RIGHT"] = 1] = "RIGHT"; + Position[Position["BOTTOM"] = 2] = "BOTTOM"; + Position[Position["LEFT"] = 3] = "LEFT"; +})(Position || (Position = {})); +var OPTIONS_DEFAULT_SUBDOMAIN_WIDTH = 10; +var OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT = 10; +var OPTIONS_DEFAULT_SUBDOMAIN_GUTTER = 2; +var OPTIONS_DEFAULT_SUBDOMAIN_RADIUS = 0; +var SCALE_BASE_OPACITY_COLOR = 'red'; + +function normalizedScale(scaleOptions) { + try { + var scaleType = Object.keys(scaleOptions)[0]; + return scale(_defineProperty({}, scaleType, Object.assign(Object.assign({}, scaleOptions[scaleType]), { + clamp: true + }))); + } catch (error) { + return null; + } +} +function scaleStyle(_scale, scaleOptions) { + var styles = {}; + if (scaleOptions.hasOwnProperty('opacity')) { + styles.fill = function () { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + scaleOptions.opacity.baseColor || SCALE_BASE_OPACITY_COLOR + ); + }; + styles['fill-opacity'] = function (d) { + return _scale === null || _scale === void 0 ? void 0 : _scale.apply(d); + }; + } else { + styles.fill = function (d) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + typeof d === 'string' && (d === null || d === void 0 ? void 0 : d.startsWith('#')) ? d : _scale === null || _scale === void 0 ? void 0 : _scale.apply(d) + ); + }; + } + return styles; +} +function applyScaleStyle(elem, _scale, scaleOptions, keyname) { + Object.entries(scaleStyle(_scale, scaleOptions)).forEach(function (_ref) { + var _ref2 = _slicedToArray(_ref, 2), + prop = _ref2[0], + val = _ref2[1]; + return ( + // eslint-disable-next-line implicit-arrow-linebreak + elem.style(prop, function (d) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + val(keyname ? d[keyname] : d) + ); + }) + ); + }); +} + +var $TypeError$2 = TypeError; +var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 + +var doesNotExceedSafeInteger$1 = function (it) { + if (it > MAX_SAFE_INTEGER) throw $TypeError$2('Maximum allowed index exceeded'); + return it; +}; + +var $$9 = _export; +var fails$4 = fails$p; +var isArray = isArray$3; +var isObject = isObject$i; +var toObject$3 = toObject$9; +var lengthOfArrayLike$3 = lengthOfArrayLike$9; +var doesNotExceedSafeInteger = doesNotExceedSafeInteger$1; +var createProperty$1 = createProperty$4; +var arraySpeciesCreate = arraySpeciesCreate$2; +var arrayMethodHasSpeciesSupport$2 = arrayMethodHasSpeciesSupport$4; +var wellKnownSymbol = wellKnownSymbol$k; +var V8_VERSION = engineV8Version; + +var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); + +// We can't use this feature detection in V8 since it causes +// deoptimization and serious performance degradation +// https://github.com/zloirock/core-js/issues/679 +var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails$4(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; +}); + +var isConcatSpreadable = function (O) { + if (!isObject(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray(O); +}; + +var FORCED$3 = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport$2('concat'); + +// `Array.prototype.concat` method +// https://tc39.es/ecma262/#sec-array.prototype.concat +// with adding support of @@isConcatSpreadable and @@species +$$9({ target: 'Array', proto: true, arity: 1, forced: FORCED$3 }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + concat: function concat(arg) { + var O = toObject$3(this); + var A = arraySpeciesCreate(O, 0); + var n = 0; + var i, k, length, len, E; + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + if (isConcatSpreadable(E)) { + len = lengthOfArrayLike$3(E); + doesNotExceedSafeInteger(n + len); + for (k = 0; k < len; k++, n++) if (k in E) createProperty$1(A, n, E[k]); + } else { + doesNotExceedSafeInteger(n + 1); + createProperty$1(A, n++, E); + } + } + A.length = n; + return A; + } +}); + +var $$8 = _export; +var call$1 = functionCall; +var aCallable$2 = aCallable$b; +var newPromiseCapabilityModule = newPromiseCapability$2; +var perform = perform$4; +var iterate$1 = iterate$6; +var PROMISE_STATICS_INCORRECT_ITERATION = promiseStaticsIncorrectIteration; + +// `Promise.allSettled` method +// https://tc39.es/ecma262/#sec-promise.allsettled +$$8({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + allSettled: function allSettled(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var promiseResolve = aCallable$2(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate$1(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call$1(promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'fulfilled', value: value }; + --remaining || resolve(values); + }, function (error) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'rejected', reason: error }; + --remaining || resolve(values); + }); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + +var create = objectCreate; +var defineBuiltInAccessor = defineBuiltInAccessor$3; +var defineBuiltIns = defineBuiltIns$2; +var bind$1 = functionBindContext; +var anInstance = anInstance$4; +var isNullOrUndefined = isNullOrUndefined$7; +var iterate = iterate$6; +var defineIterator = iteratorDefine; +var createIterResultObject = createIterResultObject$3; +var setSpecies = setSpecies$2; +var DESCRIPTORS = descriptors; +var fastKey = internalMetadataExports.fastKey; +var InternalStateModule = internalState; + +var setInternalState = InternalStateModule.set; +var internalStateGetterFor = InternalStateModule.getterFor; + +var collectionStrong$1 = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + index: create(null), + first: undefined, + last: undefined, + size: 0 + }); + if (!DESCRIPTORS) that.size = 0; + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var entry = getEntry(that, key); + var previous, index; + // change existing entry + if (entry) { + entry.value = value; + // create new entry + } else { + state.last = entry = { + index: index = fastKey(key, true), + key: key, + value: value, + previous: previous = state.last, + next: undefined, + removed: false + }; + if (!state.first) state.first = entry; + if (previous) previous.next = entry; + if (DESCRIPTORS) state.size++; + else that.size++; + // add to index + if (index !== 'F') state.index[index] = entry; + } return that; + }; + + var getEntry = function (that, key) { + var state = getInternalState(that); + // fast case + var index = fastKey(key); + var entry; + if (index !== 'F') return state.index[index]; + // frozen object case + for (entry = state.first; entry; entry = entry.next) { + if (entry.key == key) return entry; + } + }; + + defineBuiltIns(Prototype, { + // `{ Map, Set }.prototype.clear()` methods + // https://tc39.es/ecma262/#sec-map.prototype.clear + // https://tc39.es/ecma262/#sec-set.prototype.clear + clear: function clear() { + var that = this; + var state = getInternalState(that); + var data = state.index; + var entry = state.first; + while (entry) { + entry.removed = true; + if (entry.previous) entry.previous = entry.previous.next = undefined; + delete data[entry.index]; + entry = entry.next; + } + state.first = state.last = undefined; + if (DESCRIPTORS) state.size = 0; + else that.size = 0; + }, + // `{ Map, Set }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-map.prototype.delete + // https://tc39.es/ecma262/#sec-set.prototype.delete + 'delete': function (key) { + var that = this; + var state = getInternalState(that); + var entry = getEntry(that, key); + if (entry) { + var next = entry.next; + var prev = entry.previous; + delete state.index[entry.index]; + entry.removed = true; + if (prev) prev.next = next; + if (next) next.previous = prev; + if (state.first == entry) state.first = next; + if (state.last == entry) state.last = prev; + if (DESCRIPTORS) state.size--; + else that.size--; + } return !!entry; + }, + // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods + // https://tc39.es/ecma262/#sec-map.prototype.foreach + // https://tc39.es/ecma262/#sec-set.prototype.foreach + forEach: function forEach(callbackfn /* , that = undefined */) { + var state = getInternalState(this); + var boundFunction = bind$1(callbackfn, arguments.length > 1 ? arguments[1] : undefined); + var entry; + while (entry = entry ? entry.next : state.first) { + boundFunction(entry.value, entry.key, this); + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + } + }, + // `{ Map, Set}.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-map.prototype.has + // https://tc39.es/ecma262/#sec-set.prototype.has + has: function has(key) { + return !!getEntry(this, key); + } + }); + + defineBuiltIns(Prototype, IS_MAP ? { + // `Map.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-map.prototype.get + get: function get(key) { + var entry = getEntry(this, key); + return entry && entry.value; + }, + // `Map.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-map.prototype.set + set: function set(key, value) { + return define(this, key === 0 ? 0 : key, value); + } + } : { + // `Set.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-set.prototype.add + add: function add(value) { + return define(this, value = value === 0 ? 0 : value, value); + } + }); + if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', { + configurable: true, + get: function () { + return getInternalState(this).size; + } + }); + return Constructor; + }, + setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) { + var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator'; + var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME); + var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME); + // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods + // https://tc39.es/ecma262/#sec-map.prototype.entries + // https://tc39.es/ecma262/#sec-map.prototype.keys + // https://tc39.es/ecma262/#sec-map.prototype.values + // https://tc39.es/ecma262/#sec-map.prototype-@@iterator + // https://tc39.es/ecma262/#sec-set.prototype.entries + // https://tc39.es/ecma262/#sec-set.prototype.keys + // https://tc39.es/ecma262/#sec-set.prototype.values + // https://tc39.es/ecma262/#sec-set.prototype-@@iterator + defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) { + setInternalState(this, { + type: ITERATOR_NAME, + target: iterated, + state: getInternalCollectionState(iterated), + kind: kind, + last: undefined + }); + }, function () { + var state = getInternalIteratorState(this); + var kind = state.kind; + var entry = state.last; + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + // get next entry + if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) { + // or finish the iteration + state.target = undefined; + return createIterResultObject(undefined, true); + } + // return step by kind + if (kind == 'keys') return createIterResultObject(entry.key, false); + if (kind == 'values') return createIterResultObject(entry.value, false); + return createIterResultObject([entry.key, entry.value], false); + }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); + + // `{ Map, Set }.prototype[@@species]` accessors + // https://tc39.es/ecma262/#sec-get-map-@@species + // https://tc39.es/ecma262/#sec-get-set-@@species + setSpecies(CONSTRUCTOR_NAME); + } +}; + +var collection = collection$2; +var collectionStrong = collectionStrong$1; + +// `Map` constructor +// https://tc39.es/ecma262/#sec-map-objects +collection('Map', function (init) { + return function Map() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionStrong); + +var tryToString = tryToString$5; + +var $TypeError$1 = TypeError; + +var deletePropertyOrThrow$1 = function (O, P) { + if (!delete O[P]) throw $TypeError$1('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O)); +}; + +var arraySlice = arraySliceSimple; + +var floor = Math.floor; + +var mergeSort = function (array, comparefn) { + var length = array.length; + var middle = floor(length / 2); + return length < 8 ? insertionSort(array, comparefn) : merge( + array, + mergeSort(arraySlice(array, 0, middle), comparefn), + mergeSort(arraySlice(array, middle), comparefn), + comparefn + ); +}; + +var insertionSort = function (array, comparefn) { + var length = array.length; + var i = 1; + var element, j; + + while (i < length) { + j = i; + element = array[i]; + while (j && comparefn(array[j - 1], element) > 0) { + array[j] = array[--j]; + } + if (j !== i++) array[j] = element; + } return array; +}; + +var merge = function (array, left, right, comparefn) { + var llength = left.length; + var rlength = right.length; + var lindex = 0; + var rindex = 0; + + while (lindex < llength || rindex < rlength) { + array[lindex + rindex] = (lindex < llength && rindex < rlength) + ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++] + : lindex < llength ? left[lindex++] : right[rindex++]; + } return array; +}; + +var arraySort = mergeSort; + +var userAgent$1 = engineUserAgent; + +var firefox = userAgent$1.match(/firefox\/(\d+)/i); + +var engineFfVersion = !!firefox && +firefox[1]; + +var UA = engineUserAgent; + +var engineIsIeOrEdge = /MSIE|Trident/.test(UA); + +var userAgent = engineUserAgent; + +var webkit = userAgent.match(/AppleWebKit\/(\d+)\./); + +var engineWebkitVersion = !!webkit && +webkit[1]; + +var $$7 = _export; +var uncurryThis$2 = functionUncurryThis; +var aCallable$1 = aCallable$b; +var toObject$2 = toObject$9; +var lengthOfArrayLike$2 = lengthOfArrayLike$9; +var deletePropertyOrThrow = deletePropertyOrThrow$1; +var toString$2 = toString$6; +var fails$3 = fails$p; +var internalSort = arraySort; +var arrayMethodIsStrict$1 = arrayMethodIsStrict$4; +var FF = engineFfVersion; +var IE_OR_EDGE = engineIsIeOrEdge; +var V8 = engineV8Version; +var WEBKIT = engineWebkitVersion; + +var test = []; +var nativeSort = uncurryThis$2(test.sort); +var push = uncurryThis$2(test.push); + +// IE8- +var FAILS_ON_UNDEFINED = fails$3(function () { + test.sort(undefined); +}); +// V8 bug +var FAILS_ON_NULL = fails$3(function () { + test.sort(null); +}); +// Old WebKit +var STRICT_METHOD = arrayMethodIsStrict$1('sort'); + +var STABLE_SORT = !fails$3(function () { + // feature detection can be too slow, so check engines versions + if (V8) return V8 < 70; + if (FF && FF > 3) return; + if (IE_OR_EDGE) return true; + if (WEBKIT) return WEBKIT < 603; + + var result = ''; + var code, chr, value, index; + + // generate an array with more 512 elements (Chakra and old V8 fails only in this case) + for (code = 65; code < 76; code++) { + chr = String.fromCharCode(code); + + switch (code) { + case 66: case 69: case 70: case 72: value = 3; break; + case 68: case 71: value = 4; break; + default: value = 2; + } + + for (index = 0; index < 47; index++) { + test.push({ k: chr + index, v: value }); + } + } + + test.sort(function (a, b) { return b.v - a.v; }); + + for (index = 0; index < test.length; index++) { + chr = test[index].k.charAt(0); + if (result.charAt(result.length - 1) !== chr) result += chr; + } + + return result !== 'DGBEFHACIJK'; +}); + +var FORCED$2 = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT; + +var getSortCompare = function (comparefn) { + return function (x, y) { + if (y === undefined) return -1; + if (x === undefined) return 1; + if (comparefn !== undefined) return +comparefn(x, y) || 0; + return toString$2(x) > toString$2(y) ? 1 : -1; + }; +}; + +// `Array.prototype.sort` method +// https://tc39.es/ecma262/#sec-array.prototype.sort +$$7({ target: 'Array', proto: true, forced: FORCED$2 }, { + sort: function sort(comparefn) { + if (comparefn !== undefined) aCallable$1(comparefn); + + var array = toObject$2(this); + + if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn); + + var items = []; + var arrayLength = lengthOfArrayLike$2(array); + var itemsLength, index; + + for (index = 0; index < arrayLength; index++) { + if (index in array) push(items, array[index]); + } + + internalSort(items, getSortCompare(comparefn)); + + itemsLength = lengthOfArrayLike$2(items); + index = 0; + + while (index < itemsLength) array[index] = items[index++]; + while (index < arrayLength) deletePropertyOrThrow(array, index++); + + return array; + } +}); + +new WeakSet(); + +new WeakSet(); + +var $$6 = _export; +var $includes = arrayIncludes.includes; +var fails$2 = fails$p; +var addToUnscopables = addToUnscopables$2; + +// FF99+ bug +var BROKEN_ON_SPARSE = fails$2(function () { + // eslint-disable-next-line es/no-array-prototype-includes -- detection + return !Array(1).includes(); +}); + +// `Array.prototype.includes` method +// https://tc39.es/ecma262/#sec-array.prototype.includes +$$6({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, { + includes: function includes(el /* , fromIndex = 0 */) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('includes'); + +var $$5 = _export; +var $map = arrayIteration.map; +var arrayMethodHasSpeciesSupport$1 = arrayMethodHasSpeciesSupport$4; + +var HAS_SPECIES_SUPPORT$1 = arrayMethodHasSpeciesSupport$1('map'); + +// `Array.prototype.map` method +// https://tc39.es/ecma262/#sec-array.prototype.map +// with adding support of @@species +$$5({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$1 }, { + map: function map(callbackfn /* , thisArg */) { + return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +var $$4 = _export; +var $filter = arrayIteration.filter; +var arrayMethodHasSpeciesSupport = arrayMethodHasSpeciesSupport$4; + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); + +// `Array.prototype.filter` method +// https://tc39.es/ecma262/#sec-array.prototype.filter +// with adding support of @@species +$$4({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + filter: function filter(callbackfn /* , thisArg */) { + return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +var aCallable = aCallable$b; +var toObject$1 = toObject$9; +var IndexedObject = indexedObject; +var lengthOfArrayLike$1 = lengthOfArrayLike$9; + +var $TypeError = TypeError; + +// `Array.prototype.{ reduce, reduceRight }` methods implementation +var createMethod$1 = function (IS_RIGHT) { + return function (that, callbackfn, argumentsLength, memo) { + aCallable(callbackfn); + var O = toObject$1(that); + var self = IndexedObject(O); + var length = lengthOfArrayLike$1(O); + var index = IS_RIGHT ? length - 1 : 0; + var i = IS_RIGHT ? -1 : 1; + if (argumentsLength < 2) while (true) { + if (index in self) { + memo = self[index]; + index += i; + break; + } + index += i; + if (IS_RIGHT ? index < 0 : length <= index) { + throw $TypeError('Reduce of empty array with no initial value'); + } + } + for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) { + memo = callbackfn(memo, self[index], index, O); + } + return memo; + }; +}; + +var arrayReduce = { + // `Array.prototype.reduce` method + // https://tc39.es/ecma262/#sec-array.prototype.reduce + left: createMethod$1(false), + // `Array.prototype.reduceRight` method + // https://tc39.es/ecma262/#sec-array.prototype.reduceright + right: createMethod$1(true) +}; + +var $$3 = _export; +var $reduce = arrayReduce.left; +var arrayMethodIsStrict = arrayMethodIsStrict$4; +var CHROME_VERSION = engineV8Version; +var IS_NODE = engineIsNode; + +// Chrome 80-82 has a critical bug +// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 +var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; +var FORCED$1 = CHROME_BUG || !arrayMethodIsStrict('reduce'); + +// `Array.prototype.reduce` method +// https://tc39.es/ecma262/#sec-array.prototype.reduce +$$3({ target: 'Array', proto: true, forced: FORCED$1 }, { + reduce: function reduce(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined); + } +}); + +var anObject = anObject$c; +var iteratorClose = iteratorClose$2; + +// call something on iterator step with safe closing on error +var callWithSafeIterationClosing$1 = function (iterator, fn, value, ENTRIES) { + try { + return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } +}; + +var bind = functionBindContext; +var call = functionCall; +var toObject = toObject$9; +var callWithSafeIterationClosing = callWithSafeIterationClosing$1; +var isArrayIteratorMethod = isArrayIteratorMethod$2; +var isConstructor = isConstructor$4; +var lengthOfArrayLike = lengthOfArrayLike$9; +var createProperty = createProperty$4; +var getIterator = getIterator$2; +var getIteratorMethod = getIteratorMethod$3; + +var $Array = Array; + +// `Array.from` method implementation +// https://tc39.es/ecma262/#sec-array.from +var arrayFrom = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { + var O = toObject(arrayLike); + var IS_CONSTRUCTOR = isConstructor(this); + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined); + var iteratorMethod = getIteratorMethod(O); + var index = 0; + var length, result, step, iterator, next, value; + // if the target is not iterable or it's an array with the default iterator - use a simple case + if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) { + iterator = getIterator(O, iteratorMethod); + next = iterator.next; + result = IS_CONSTRUCTOR ? new this() : []; + for (;!(step = call(next, iterator)).done; index++) { + value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value; + createProperty(result, index, value); + } + } else { + length = lengthOfArrayLike(O); + result = IS_CONSTRUCTOR ? new this(length) : $Array(length); + for (;length > index; index++) { + value = mapping ? mapfn(O[index], index) : O[index]; + createProperty(result, index, value); + } + } + result.length = index; + return result; +}; + +var $$2 = _export; +var from = arrayFrom; +var checkCorrectnessOfIteration = checkCorrectnessOfIteration$3; + +var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) { + // eslint-disable-next-line es/no-array-from -- required for testing + Array.from(iterable); +}); + +// `Array.from` method +// https://tc39.es/ecma262/#sec-array.from +$$2({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, { + from: from +}); + +// a string of all valid unicode whitespaces +var whitespaces$3 = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + + '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; + +var uncurryThis$1 = functionUncurryThis; +var requireObjectCoercible = requireObjectCoercible$5; +var toString$1 = toString$6; +var whitespaces$2 = whitespaces$3; + +var replace = uncurryThis$1(''.replace); +var ltrim = RegExp('^[' + whitespaces$2 + ']+'); +var rtrim = RegExp('(^|[^' + whitespaces$2 + '])[' + whitespaces$2 + ']+$'); + +// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation +var createMethod = function (TYPE) { + return function ($this) { + var string = toString$1(requireObjectCoercible($this)); + if (TYPE & 1) string = replace(string, ltrim, ''); + if (TYPE & 2) string = replace(string, rtrim, '$1'); + return string; + }; +}; + +var stringTrim = { + // `String.prototype.{ trimLeft, trimStart }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimstart + start: createMethod(1), + // `String.prototype.{ trimRight, trimEnd }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimend + end: createMethod(2), + // `String.prototype.trim` method + // https://tc39.es/ecma262/#sec-string.prototype.trim + trim: createMethod(3) +}; + +var global$1 = global$k; +var fails$1 = fails$p; +var uncurryThis = functionUncurryThis; +var toString = toString$6; +var trim = stringTrim.trim; +var whitespaces$1 = whitespaces$3; + +var $parseInt$1 = global$1.parseInt; +var Symbol$1 = global$1.Symbol; +var ITERATOR = Symbol$1 && Symbol$1.iterator; +var hex = /^[+-]?0x/i; +var exec = uncurryThis(hex.exec); +var FORCED = $parseInt$1(whitespaces$1 + '08') !== 8 || $parseInt$1(whitespaces$1 + '0x16') !== 22 + // MS Edge 18- broken with boxed symbols + || (ITERATOR && !fails$1(function () { $parseInt$1(Object(ITERATOR)); })); + +// `parseInt` method +// https://tc39.es/ecma262/#sec-parseint-string-radix +var numberParseInt = FORCED ? function parseInt(string, radix) { + var S = trim(toString(string)); + return $parseInt$1(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10)); +} : $parseInt$1; + +var $$1 = _export; +var $parseInt = numberParseInt; + +// `parseInt` method +// https://tc39.es/ecma262/#sec-parseint-string-radix +$$1({ global: true, forced: parseInt != $parseInt }, { + parseInt: $parseInt +}); + +new WeakSet(); + +new WeakSet(); + +var PROPER_FUNCTION_NAME = functionName.PROPER; +var fails = fails$p; +var whitespaces = whitespaces$3; + +var non = '\u200B\u0085\u180E'; + +// check that a method works with the correct list +// of whitespaces and has a correct name +var stringTrimForced = function (METHOD_NAME) { + return fails(function () { + return !!whitespaces[METHOD_NAME]() + || non[METHOD_NAME]() !== non + || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME); + }); +}; + +var $ = _export; +var $trim = stringTrim.trim; +var forcedStringTrimMethod = stringTrimForced; + +// `String.prototype.trim` method +// https://tc39.es/ecma262/#sec-string.prototype.trim +$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, { + trim: function trim() { + return $trim(this); + } +}); + +var DEFAULT_SELECTOR$2 = '.ch-subdomain'; +new WeakSet(); + +new WeakSet(); + +var DEFAULT_SELECTOR$1 = '.ch-container'; +new WeakSet(); + +var _LegendLite_instances, _LegendLite_buildLegend, _LegendLite_nodeAttrs; +var DEFAULT_SELECTOR = '.ch-plugin-legend-lite'; +var defaultOptions = { + enabled: true, + itemSelector: null, + width: OPTIONS_DEFAULT_SUBDOMAIN_WIDTH, + height: OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT, + gutter: OPTIONS_DEFAULT_SUBDOMAIN_GUTTER, + radius: OPTIONS_DEFAULT_SUBDOMAIN_RADIUS, + includeBlank: false +}; +var LegendLite = /*#__PURE__*/function () { + function LegendLite(calendar) { + _classCallCheck(this, LegendLite); + _LegendLite_instances.add(this); + this.name = 'LegendLite'; + this.calendar = calendar; + this.root = null; + this.shown = false; + this.options = defaultOptions; + } + _createClass(LegendLite, [{ + key: "setup", + value: function setup(pluginOptions) { + this.options = Object.assign(Object.assign({}, this.options), pluginOptions); + } + }, { + key: "paint", + value: function paint() { + var _this$options = this.options, + enabled = _this$options.enabled, + itemSelector = _this$options.itemSelector; + if (!enabled || itemSelector && select(itemSelector).empty()) { + return this.destroy(); + } + this.shown = true; + this.root = select(itemSelector || this.calendar.options.options.itemSelector); + if (this.root.select(DEFAULT_SELECTOR).empty()) { + this.root = this.root.append('div').attr('class', DEFAULT_SELECTOR.slice(1)); + } else { + this.root = this.root.select(DEFAULT_SELECTOR); + } + var node = __classPrivateFieldGet(this, _LegendLite_instances, "m", _LegendLite_buildLegend).call(this); + this.root.selectAll('*').remove(); + this.root.append(function () { + return node.node(); + }); + return Promise.resolve(); + } + }, { + key: "destroy", + value: function destroy() { + if (this.root !== null) { + this.root.remove(); + this.root = null; + } + return Promise.resolve(); + } + }]); + return LegendLite; +}(); +_LegendLite_instances = new WeakSet(), _LegendLite_buildLegend = function _LegendLite_buildLegend() { + var _this = this; + var node = create$3('svg'); + var scale = normalizedScale(this.calendar.options.options.scale); + var _this$options2 = this.options, + width = _this$options2.width, + height = _this$options2.height, + gutter = _this$options2.gutter, + includeBlank = _this$options2.includeBlank; + var localRange = _toConsumableArray(scale.range); + if (includeBlank) { + localRange.unshift(null); + } + node.attr('class', DEFAULT_SELECTOR$1.slice(1)).attr('width', localRange.length * width + (localRange.length - 1) * gutter).attr('height', height); + node.selectAll('rect').data(localRange).join(function (enter) { + return enter.append('rect').call(function (sc) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + __classPrivateFieldGet(_this, _LegendLite_instances, "m", _LegendLite_nodeAttrs).call(_this, sc, scale) + ); + }); + }, function (update) { + return update.selectAll('rect').call(function (sc) { + return __classPrivateFieldGet(_this, _LegendLite_instances, "m", _LegendLite_nodeAttrs).call(_this, sc, scale); + }); + }); + return node; +}, _LegendLite_nodeAttrs = function _LegendLite_nodeAttrs(selection, scale) { + var _this2 = this; + var _this$options3 = this.options, + width = _this$options3.width, + height = _this$options3.height, + radius = _this$options3.radius, + gutter = _this$options3.gutter; + return selection.attr('width', width).attr('height', height).attr('class', "".concat(DEFAULT_SELECTOR$2.slice(1), "-bg")).attr('rx', radius).attr('ry', radius).attr('x', function (_d, i) { + return i * (width + gutter); + }).attr('y', 0).call(function (element) { + applyScaleStyle(element, scale, _this2.calendar.options.options.scale); + }); +}; + +export { LegendLite as default }; diff --git a/static/javascripts/cal-heatmap/plugins/LegendLite.js b/static/javascripts/cal-heatmap/plugins/LegendLite.js new file mode 100644 index 000000000..1d4374b84 --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/LegendLite.js @@ -0,0 +1,6227 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('d3-selection'), require('d3')) : + typeof define === 'function' && define.amd ? define(['d3-selection', 'd3'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.LegendLite = factory(global.d3, global.d3)); +})(this, (function (d3Selection, d3) { 'use strict'; + + function _iterableToArrayLimit(arr, i) { + var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; + if (null != _i) { + var _s, + _e, + _x, + _r, + _arr = [], + _n = !0, + _d = !1; + try { + if (_x = (_i = _i.call(arr)).next, 0 === i) { + if (Object(_i) !== _i) return; + _n = !1; + } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); + } catch (err) { + _d = !0, _e = err; + } finally { + try { + if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; + } finally { + if (_d) throw _e; + } + } + return _arr; + } + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _defineProperty(obj, key, value) { + key = _toPropertyKey(key); + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _toPrimitive(input, hint) { + if (typeof input !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (typeof res !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); + } + function _toPropertyKey(arg) { + var key = _toPrimitive(arg, "string"); + return typeof key === "symbol" ? key : String(key); + } + + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + var fails$p = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } + }; + + var fails$o = fails$p; + + // Detect IE8's incomplete defineProperty implementation + var descriptors = !fails$o(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; + }); + + var fails$n = fails$p; + + var functionBindNative = !fails$n(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); + }); + + var NATIVE_BIND$3 = functionBindNative; + + var FunctionPrototype$3 = Function.prototype; + var call$g = FunctionPrototype$3.call; + var uncurryThisWithBind = NATIVE_BIND$3 && FunctionPrototype$3.bind.bind(call$g, call$g); + + var functionUncurryThis = NATIVE_BIND$3 ? uncurryThisWithBind : function (fn) { + return function () { + return call$g.apply(fn, arguments); + }; + }; + + // we can't use just `it == null` since of `document.all` special case + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec + var isNullOrUndefined$7 = function (it) { + return it === null || it === undefined; + }; + + var isNullOrUndefined$6 = isNullOrUndefined$7; + + var $TypeError$g = TypeError; + + // `RequireObjectCoercible` abstract operation + // https://tc39.es/ecma262/#sec-requireobjectcoercible + var requireObjectCoercible$5 = function (it) { + if (isNullOrUndefined$6(it)) throw $TypeError$g("Can't call method on " + it); + return it; + }; + + var requireObjectCoercible$4 = requireObjectCoercible$5; + + var $Object$4 = Object; + + // `ToObject` abstract operation + // https://tc39.es/ecma262/#sec-toobject + var toObject$9 = function (argument) { + return $Object$4(requireObjectCoercible$4(argument)); + }; + + var uncurryThis$q = functionUncurryThis; + var toObject$8 = toObject$9; + + var hasOwnProperty = uncurryThis$q({}.hasOwnProperty); + + // `HasOwnProperty` abstract operation + // https://tc39.es/ecma262/#sec-hasownproperty + // eslint-disable-next-line es/no-object-hasown -- safe + var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject$8(it), key); + }; + + var DESCRIPTORS$d = descriptors; + var hasOwn$b = hasOwnProperty_1; + + var FunctionPrototype$2 = Function.prototype; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getDescriptor = DESCRIPTORS$d && Object.getOwnPropertyDescriptor; + + var EXISTS$1 = hasOwn$b(FunctionPrototype$2, 'name'); + // additional protection from minified / mangled / dropped function names + var PROPER = EXISTS$1 && (function something() { /* empty */ }).name === 'something'; + var CONFIGURABLE$1 = EXISTS$1 && (!DESCRIPTORS$d || (DESCRIPTORS$d && getDescriptor(FunctionPrototype$2, 'name').configurable)); + + var functionName = { + EXISTS: EXISTS$1, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE$1 + }; + + var makeBuiltIn$3 = {exports: {}}; + + var documentAll$2 = typeof document == 'object' && document.all; + + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + // eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing + var IS_HTMLDDA = typeof documentAll$2 == 'undefined' && documentAll$2 !== undefined; + + var documentAll_1 = { + all: documentAll$2, + IS_HTMLDDA: IS_HTMLDDA + }; + + var $documentAll$1 = documentAll_1; + + var documentAll$1 = $documentAll$1.all; + + // `IsCallable` abstract operation + // https://tc39.es/ecma262/#sec-iscallable + var isCallable$m = $documentAll$1.IS_HTMLDDA ? function (argument) { + return typeof argument == 'function' || argument === documentAll$1; + } : function (argument) { + return typeof argument == 'function'; + }; + + var check = function (it) { + return it && it.Math == Math && it; + }; + + // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 + var global$k = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || commonjsGlobal || Function('return this')(); + + var global$j = global$k; + + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$7 = Object.defineProperty; + + var defineGlobalProperty$3 = function (key, value) { + try { + defineProperty$7(global$j, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global$j[key] = value; + } return value; + }; + + var global$i = global$k; + var defineGlobalProperty$2 = defineGlobalProperty$3; + + var SHARED = '__core-js_shared__'; + var store$3 = global$i[SHARED] || defineGlobalProperty$2(SHARED, {}); + + var sharedStore = store$3; + + var uncurryThis$p = functionUncurryThis; + var isCallable$l = isCallable$m; + var store$2 = sharedStore; + + var functionToString$1 = uncurryThis$p(Function.toString); + + // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper + if (!isCallable$l(store$2.inspectSource)) { + store$2.inspectSource = function (it) { + return functionToString$1(it); + }; + } + + var inspectSource$3 = store$2.inspectSource; + + var global$h = global$k; + var isCallable$k = isCallable$m; + + var WeakMap$1 = global$h.WeakMap; + + var weakMapBasicDetection = isCallable$k(WeakMap$1) && /native code/.test(String(WeakMap$1)); + + var isCallable$j = isCallable$m; + var $documentAll = documentAll_1; + + var documentAll = $documentAll.all; + + var isObject$i = $documentAll.IS_HTMLDDA ? function (it) { + return typeof it == 'object' ? it !== null : isCallable$j(it) || it === documentAll; + } : function (it) { + return typeof it == 'object' ? it !== null : isCallable$j(it); + }; + + var objectDefineProperty = {}; + + var global$g = global$k; + var isObject$h = isObject$i; + + var document$3 = global$g.document; + // typeof document.createElement is 'object' in old IE + var EXISTS = isObject$h(document$3) && isObject$h(document$3.createElement); + + var documentCreateElement$2 = function (it) { + return EXISTS ? document$3.createElement(it) : {}; + }; + + var DESCRIPTORS$c = descriptors; + var fails$m = fails$p; + var createElement$1 = documentCreateElement$2; + + // Thanks to IE8 for its funny defineProperty + var ie8DomDefine = !DESCRIPTORS$c && !fails$m(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement$1('div'), 'a', { + get: function () { return 7; } + }).a != 7; + }); + + var DESCRIPTORS$b = descriptors; + var fails$l = fails$p; + + // V8 ~ Chrome 36- + // https://bugs.chromium.org/p/v8/issues/detail?id=3334 + var v8PrototypeDefineBug = DESCRIPTORS$b && fails$l(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype != 42; + }); + + var isObject$g = isObject$i; + + var $String$5 = String; + var $TypeError$f = TypeError; + + // `Assert: Type(argument) is Object` + var anObject$c = function (argument) { + if (isObject$g(argument)) return argument; + throw $TypeError$f($String$5(argument) + ' is not an object'); + }; + + var NATIVE_BIND$2 = functionBindNative; + + var call$f = Function.prototype.call; + + var functionCall = NATIVE_BIND$2 ? call$f.bind(call$f) : function () { + return call$f.apply(call$f, arguments); + }; + + var global$f = global$k; + var isCallable$i = isCallable$m; + + var aFunction = function (argument) { + return isCallable$i(argument) ? argument : undefined; + }; + + var getBuiltIn$7 = function (namespace, method) { + return arguments.length < 2 ? aFunction(global$f[namespace]) : global$f[namespace] && global$f[namespace][method]; + }; + + var uncurryThis$o = functionUncurryThis; + + var objectIsPrototypeOf = uncurryThis$o({}.isPrototypeOf); + + var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + + var global$e = global$k; + var userAgent$5 = engineUserAgent; + + var process$4 = global$e.process; + var Deno$1 = global$e.Deno; + var versions = process$4 && process$4.versions || Deno$1 && Deno$1.version; + var v8 = versions && versions.v8; + var match, version; + + if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); + } + + // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` + // so check `userAgent` even if `.v8` exists, but 0 + if (!version && userAgent$5) { + match = userAgent$5.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent$5.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } + } + + var engineV8Version = version; + + /* eslint-disable es/no-symbol -- required for testing */ + + var V8_VERSION$3 = engineV8Version; + var fails$k = fails$p; + var global$d = global$k; + + var $String$4 = global$d.String; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing + var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$k(function () { + var symbol = Symbol(); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String$4(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION$3 && V8_VERSION$3 < 41; + }); + + /* eslint-disable es/no-symbol -- required for testing */ + + var NATIVE_SYMBOL$1 = symbolConstructorDetection; + + var useSymbolAsUid = NATIVE_SYMBOL$1 + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + + var getBuiltIn$6 = getBuiltIn$7; + var isCallable$h = isCallable$m; + var isPrototypeOf$2 = objectIsPrototypeOf; + var USE_SYMBOL_AS_UID$1 = useSymbolAsUid; + + var $Object$3 = Object; + + var isSymbol$2 = USE_SYMBOL_AS_UID$1 ? function (it) { + return typeof it == 'symbol'; + } : function (it) { + var $Symbol = getBuiltIn$6('Symbol'); + return isCallable$h($Symbol) && isPrototypeOf$2($Symbol.prototype, $Object$3(it)); + }; + + var $String$3 = String; + + var tryToString$5 = function (argument) { + try { + return $String$3(argument); + } catch (error) { + return 'Object'; + } + }; + + var isCallable$g = isCallable$m; + var tryToString$4 = tryToString$5; + + var $TypeError$e = TypeError; + + // `Assert: IsCallable(argument) is true` + var aCallable$b = function (argument) { + if (isCallable$g(argument)) return argument; + throw $TypeError$e(tryToString$4(argument) + ' is not a function'); + }; + + var aCallable$a = aCallable$b; + var isNullOrUndefined$5 = isNullOrUndefined$7; + + // `GetMethod` abstract operation + // https://tc39.es/ecma262/#sec-getmethod + var getMethod$3 = function (V, P) { + var func = V[P]; + return isNullOrUndefined$5(func) ? undefined : aCallable$a(func); + }; + + var call$e = functionCall; + var isCallable$f = isCallable$m; + var isObject$f = isObject$i; + + var $TypeError$d = TypeError; + + // `OrdinaryToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-ordinarytoprimitive + var ordinaryToPrimitive$1 = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable$f(fn = input.toString) && !isObject$f(val = call$e(fn, input))) return val; + if (isCallable$f(fn = input.valueOf) && !isObject$f(val = call$e(fn, input))) return val; + if (pref !== 'string' && isCallable$f(fn = input.toString) && !isObject$f(val = call$e(fn, input))) return val; + throw $TypeError$d("Can't convert object to primitive value"); + }; + + var shared$3 = {exports: {}}; + + var store$1 = sharedStore; + + (shared$3.exports = function (key, value) { + return store$1[key] || (store$1[key] = value !== undefined ? value : {}); + })('versions', []).push({ + version: '3.30.2', + mode: 'global', + copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE', + source: 'https://github.com/zloirock/core-js' + }); + + var sharedExports = shared$3.exports; + + var uncurryThis$n = functionUncurryThis; + + var id$2 = 0; + var postfix = Math.random(); + var toString$9 = uncurryThis$n(1.0.toString); + + var uid$3 = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$9(++id$2 + postfix, 36); + }; + + var global$c = global$k; + var shared$2 = sharedExports; + var hasOwn$a = hasOwnProperty_1; + var uid$2 = uid$3; + var NATIVE_SYMBOL = symbolConstructorDetection; + var USE_SYMBOL_AS_UID = useSymbolAsUid; + + var Symbol$2 = global$c.Symbol; + var WellKnownSymbolsStore = shared$2('wks'); + var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$2['for'] || Symbol$2 : Symbol$2 && Symbol$2.withoutSetter || uid$2; + + var wellKnownSymbol$k = function (name) { + if (!hasOwn$a(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn$a(Symbol$2, name) + ? Symbol$2[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; + }; + + var call$d = functionCall; + var isObject$e = isObject$i; + var isSymbol$1 = isSymbol$2; + var getMethod$2 = getMethod$3; + var ordinaryToPrimitive = ordinaryToPrimitive$1; + var wellKnownSymbol$j = wellKnownSymbol$k; + + var $TypeError$c = TypeError; + var TO_PRIMITIVE = wellKnownSymbol$j('toPrimitive'); + + // `ToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-toprimitive + var toPrimitive$1 = function (input, pref) { + if (!isObject$e(input) || isSymbol$1(input)) return input; + var exoticToPrim = getMethod$2(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call$d(exoticToPrim, input, pref); + if (!isObject$e(result) || isSymbol$1(result)) return result; + throw $TypeError$c("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); + }; + + var toPrimitive = toPrimitive$1; + var isSymbol = isSymbol$2; + + // `ToPropertyKey` abstract operation + // https://tc39.es/ecma262/#sec-topropertykey + var toPropertyKey$3 = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; + }; + + var DESCRIPTORS$a = descriptors; + var IE8_DOM_DEFINE$1 = ie8DomDefine; + var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug; + var anObject$b = anObject$c; + var toPropertyKey$2 = toPropertyKey$3; + + var $TypeError$b = TypeError; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var $defineProperty = Object.defineProperty; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + var ENUMERABLE = 'enumerable'; + var CONFIGURABLE = 'configurable'; + var WRITABLE = 'writable'; + + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + objectDefineProperty.f = DESCRIPTORS$a ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) { + anObject$b(O); + P = toPropertyKey$2(P); + anObject$b(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor$1(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); + } : $defineProperty : function defineProperty(O, P, Attributes) { + anObject$b(O); + P = toPropertyKey$2(P); + anObject$b(Attributes); + if (IE8_DOM_DEFINE$1) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw $TypeError$b('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; + }; + + var createPropertyDescriptor$4 = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; + }; + + var DESCRIPTORS$9 = descriptors; + var definePropertyModule$4 = objectDefineProperty; + var createPropertyDescriptor$3 = createPropertyDescriptor$4; + + var createNonEnumerableProperty$5 = DESCRIPTORS$9 ? function (object, key, value) { + return definePropertyModule$4.f(object, key, createPropertyDescriptor$3(1, value)); + } : function (object, key, value) { + object[key] = value; + return object; + }; + + var shared$1 = sharedExports; + var uid$1 = uid$3; + + var keys = shared$1('keys'); + + var sharedKey$3 = function (key) { + return keys[key] || (keys[key] = uid$1(key)); + }; + + var hiddenKeys$5 = {}; + + var NATIVE_WEAK_MAP = weakMapBasicDetection; + var global$b = global$k; + var isObject$d = isObject$i; + var createNonEnumerableProperty$4 = createNonEnumerableProperty$5; + var hasOwn$9 = hasOwnProperty_1; + var shared = sharedStore; + var sharedKey$2 = sharedKey$3; + var hiddenKeys$4 = hiddenKeys$5; + + var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; + var TypeError$2 = global$b.TypeError; + var WeakMap = global$b.WeakMap; + var set$1, get, has; + + var enforce = function (it) { + return has(it) ? get(it) : set$1(it, {}); + }; + + var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject$d(it) || (state = get(it)).type !== TYPE) { + throw TypeError$2('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; + }; + + if (NATIVE_WEAK_MAP || shared.state) { + var store = shared.state || (shared.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set$1 = function (it, metadata) { + if (store.has(it)) throw TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; + } else { + var STATE = sharedKey$2('state'); + hiddenKeys$4[STATE] = true; + set$1 = function (it, metadata) { + if (hasOwn$9(it, STATE)) throw TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty$4(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn$9(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn$9(it, STATE); + }; + } + + var internalState = { + set: set$1, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor + }; + + var uncurryThis$m = functionUncurryThis; + var fails$j = fails$p; + var isCallable$e = isCallable$m; + var hasOwn$8 = hasOwnProperty_1; + var DESCRIPTORS$8 = descriptors; + var CONFIGURABLE_FUNCTION_NAME$1 = functionName.CONFIGURABLE; + var inspectSource$2 = inspectSource$3; + var InternalStateModule$5 = internalState; + + var enforceInternalState = InternalStateModule$5.enforce; + var getInternalState$2 = InternalStateModule$5.get; + var $String$2 = String; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$6 = Object.defineProperty; + var stringSlice$3 = uncurryThis$m(''.slice); + var replace$1 = uncurryThis$m(''.replace); + var join = uncurryThis$m([].join); + + var CONFIGURABLE_LENGTH = DESCRIPTORS$8 && !fails$j(function () { + return defineProperty$6(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; + }); + + var TEMPLATE = String(String).split('String'); + + var makeBuiltIn$2 = makeBuiltIn$3.exports = function (value, name, options) { + if (stringSlice$3($String$2(name), 0, 7) === 'Symbol(') { + name = '[' + replace$1($String$2(name), /^Symbol\(([^)]*)\)/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn$8(value, 'name') || (CONFIGURABLE_FUNCTION_NAME$1 && value.name !== name)) { + if (DESCRIPTORS$8) defineProperty$6(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn$8(options, 'arity') && value.length !== options.arity) { + defineProperty$6(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn$8(options, 'constructor') && options.constructor) { + if (DESCRIPTORS$8) defineProperty$6(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn$8(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; + }; + + // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative + // eslint-disable-next-line no-extend-native -- required + Function.prototype.toString = makeBuiltIn$2(function toString() { + return isCallable$e(this) && getInternalState$2(this).source || inspectSource$2(this); + }, 'toString'); + + var makeBuiltInExports = makeBuiltIn$3.exports; + + var makeBuiltIn$1 = makeBuiltInExports; + var defineProperty$5 = objectDefineProperty; + + var defineBuiltInAccessor$3 = function (target, name, descriptor) { + if (descriptor.get) makeBuiltIn$1(descriptor.get, name, { getter: true }); + if (descriptor.set) makeBuiltIn$1(descriptor.set, name, { setter: true }); + return defineProperty$5.f(target, name, descriptor); + }; + + var DESCRIPTORS$7 = descriptors; + var FUNCTION_NAME_EXISTS = functionName.EXISTS; + var uncurryThis$l = functionUncurryThis; + var defineBuiltInAccessor$2 = defineBuiltInAccessor$3; + + var FunctionPrototype$1 = Function.prototype; + var functionToString = uncurryThis$l(FunctionPrototype$1.toString); + var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/; + var regExpExec = uncurryThis$l(nameRE.exec); + var NAME = 'name'; + + // Function instances `.name` property + // https://tc39.es/ecma262/#sec-function-instances-name + if (DESCRIPTORS$7 && !FUNCTION_NAME_EXISTS) { + defineBuiltInAccessor$2(FunctionPrototype$1, NAME, { + configurable: true, + get: function () { + try { + return regExpExec(nameRE, functionToString(this))[1]; + } catch (error) { + return ''; + } + } + }); + } + + var objectGetOwnPropertyDescriptor = {}; + + var objectPropertyIsEnumerable = {}; + + var $propertyIsEnumerable$1 = {}.propertyIsEnumerable; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getOwnPropertyDescriptor$3 = Object.getOwnPropertyDescriptor; + + // Nashorn ~ JDK8 bug + var NASHORN_BUG = getOwnPropertyDescriptor$3 && !$propertyIsEnumerable$1.call({ 1: 2 }, 1); + + // `Object.prototype.propertyIsEnumerable` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable + objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor$3(this, V); + return !!descriptor && descriptor.enumerable; + } : $propertyIsEnumerable$1; + + var uncurryThis$k = functionUncurryThis; + + var toString$8 = uncurryThis$k({}.toString); + var stringSlice$2 = uncurryThis$k(''.slice); + + var classofRaw$2 = function (it) { + return stringSlice$2(toString$8(it), 8, -1); + }; + + var uncurryThis$j = functionUncurryThis; + var fails$i = fails$p; + var classof$a = classofRaw$2; + + var $Object$2 = Object; + var split = uncurryThis$j(''.split); + + // fallback for non-array-like ES3 and non-enumerable old V8 strings + var indexedObject = fails$i(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object$2('z').propertyIsEnumerable(0); + }) ? function (it) { + return classof$a(it) == 'String' ? split(it, '') : $Object$2(it); + } : $Object$2; + + // toObject with fallback for non-array-like ES3 strings + var IndexedObject$4 = indexedObject; + var requireObjectCoercible$3 = requireObjectCoercible$5; + + var toIndexedObject$9 = function (it) { + return IndexedObject$4(requireObjectCoercible$3(it)); + }; + + var DESCRIPTORS$6 = descriptors; + var call$c = functionCall; + var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable; + var createPropertyDescriptor$2 = createPropertyDescriptor$4; + var toIndexedObject$8 = toIndexedObject$9; + var toPropertyKey$1 = toPropertyKey$3; + var hasOwn$7 = hasOwnProperty_1; + var IE8_DOM_DEFINE = ie8DomDefine; + + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor + objectGetOwnPropertyDescriptor.f = DESCRIPTORS$6 ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject$8(O); + P = toPropertyKey$1(P); + if (IE8_DOM_DEFINE) try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (hasOwn$7(O, P)) return createPropertyDescriptor$2(!call$c(propertyIsEnumerableModule$1.f, O, P), O[P]); + }; + + var isCallable$d = isCallable$m; + var definePropertyModule$3 = objectDefineProperty; + var makeBuiltIn = makeBuiltInExports; + var defineGlobalProperty$1 = defineGlobalProperty$3; + + var defineBuiltIn$8 = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable$d(value)) makeBuiltIn(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty$1(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule$3.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; + }; + + var objectGetOwnPropertyNames = {}; + + var ceil = Math.ceil; + var floor$1 = Math.floor; + + // `Math.trunc` method + // https://tc39.es/ecma262/#sec-math.trunc + // eslint-disable-next-line es/no-math-trunc -- safe + var mathTrunc = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor$1 : ceil)(n); + }; + + var trunc = mathTrunc; + + // `ToIntegerOrInfinity` abstract operation + // https://tc39.es/ecma262/#sec-tointegerorinfinity + var toIntegerOrInfinity$3 = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); + }; + + var toIntegerOrInfinity$2 = toIntegerOrInfinity$3; + + var max$2 = Math.max; + var min$2 = Math.min; + + // Helper for a popular repeating case of the spec: + // Let integer be ? ToInteger(index). + // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). + var toAbsoluteIndex$3 = function (index, length) { + var integer = toIntegerOrInfinity$2(index); + return integer < 0 ? max$2(integer + length, 0) : min$2(integer, length); + }; + + var toIntegerOrInfinity$1 = toIntegerOrInfinity$3; + + var min$1 = Math.min; + + // `ToLength` abstract operation + // https://tc39.es/ecma262/#sec-tolength + var toLength$2 = function (argument) { + return argument > 0 ? min$1(toIntegerOrInfinity$1(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 + }; + + var toLength$1 = toLength$2; + + // `LengthOfArrayLike` abstract operation + // https://tc39.es/ecma262/#sec-lengthofarraylike + var lengthOfArrayLike$9 = function (obj) { + return toLength$1(obj.length); + }; + + var toIndexedObject$7 = toIndexedObject$9; + var toAbsoluteIndex$2 = toAbsoluteIndex$3; + var lengthOfArrayLike$8 = lengthOfArrayLike$9; + + // `Array.prototype.{ indexOf, includes }` methods implementation + var createMethod$5 = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject$7($this); + var length = lengthOfArrayLike$8(O); + var index = toAbsoluteIndex$2(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; + }; + + var arrayIncludes = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod$5(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod$5(false) + }; + + var uncurryThis$i = functionUncurryThis; + var hasOwn$6 = hasOwnProperty_1; + var toIndexedObject$6 = toIndexedObject$9; + var indexOf = arrayIncludes.indexOf; + var hiddenKeys$3 = hiddenKeys$5; + + var push$3 = uncurryThis$i([].push); + + var objectKeysInternal = function (object, names) { + var O = toIndexedObject$6(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn$6(hiddenKeys$3, key) && hasOwn$6(O, key) && push$3(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn$6(O, key = names[i++])) { + ~indexOf(result, key) || push$3(result, key); + } + return result; + }; + + // IE8- don't enum bug keys + var enumBugKeys$3 = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' + ]; + + var internalObjectKeys$1 = objectKeysInternal; + var enumBugKeys$2 = enumBugKeys$3; + + var hiddenKeys$2 = enumBugKeys$2.concat('length', 'prototype'); + + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + // eslint-disable-next-line es/no-object-getownpropertynames -- safe + objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys$1(O, hiddenKeys$2); + }; + + var objectGetOwnPropertySymbols = {}; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe + objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; + + var getBuiltIn$5 = getBuiltIn$7; + var uncurryThis$h = functionUncurryThis; + var getOwnPropertyNamesModule$1 = objectGetOwnPropertyNames; + var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols; + var anObject$a = anObject$c; + + var concat$1 = uncurryThis$h([].concat); + + // all object keys, includes non-enumerable and symbols + var ownKeys$1 = getBuiltIn$5('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule$1.f(anObject$a(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f; + return getOwnPropertySymbols ? concat$1(keys, getOwnPropertySymbols(it)) : keys; + }; + + var hasOwn$5 = hasOwnProperty_1; + var ownKeys = ownKeys$1; + var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor; + var definePropertyModule$2 = objectDefineProperty; + + var copyConstructorProperties$1 = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule$2.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn$5(target, key) && !(exceptions && hasOwn$5(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } + }; + + var fails$h = fails$p; + var isCallable$c = isCallable$m; + + var replacement = /#|\.prototype\./; + + var isForced$3 = function (feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true + : value == NATIVE ? false + : isCallable$c(detection) ? fails$h(detection) + : !!detection; + }; + + var normalize = isForced$3.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); + }; + + var data = isForced$3.data = {}; + var NATIVE = isForced$3.NATIVE = 'N'; + var POLYFILL = isForced$3.POLYFILL = 'P'; + + var isForced_1 = isForced$3; + + var global$a = global$k; + var getOwnPropertyDescriptor$2 = objectGetOwnPropertyDescriptor.f; + var createNonEnumerableProperty$3 = createNonEnumerableProperty$5; + var defineBuiltIn$7 = defineBuiltIn$8; + var defineGlobalProperty = defineGlobalProperty$3; + var copyConstructorProperties = copyConstructorProperties$1; + var isForced$2 = isForced_1; + + /* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key + */ + var _export = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global$a; + } else if (STATIC) { + target = global$a[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = (global$a[TARGET] || {}).prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor$2(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced$2(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty$3(sourceProperty, 'sham', true); + } + defineBuiltIn$7(target, key, sourceProperty, options); + } + }; + + var internalObjectKeys = objectKeysInternal; + var enumBugKeys$1 = enumBugKeys$3; + + // `Object.keys` method + // https://tc39.es/ecma262/#sec-object.keys + // eslint-disable-next-line es/no-object-keys -- safe + var objectKeys$3 = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys$1); + }; + + var DESCRIPTORS$5 = descriptors; + var uncurryThis$g = functionUncurryThis; + var call$b = functionCall; + var fails$g = fails$p; + var objectKeys$2 = objectKeys$3; + var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols; + var propertyIsEnumerableModule = objectPropertyIsEnumerable; + var toObject$7 = toObject$9; + var IndexedObject$3 = indexedObject; + + // eslint-disable-next-line es/no-object-assign -- safe + var $assign = Object.assign; + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + var defineProperty$4 = Object.defineProperty; + var concat = uncurryThis$g([].concat); + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + var objectAssign = !$assign || fails$g(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS$5 && $assign({ b: 1 }, $assign(defineProperty$4({}, 'a', { + enumerable: true, + get: function () { + defineProperty$4(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol(); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] != 7 || objectKeys$2($assign({}, B)).join('') != alphabet; + }) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject$7(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject$3(arguments[index++]); + var keys = getOwnPropertySymbols ? concat(objectKeys$2(S), getOwnPropertySymbols(S)) : objectKeys$2(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS$5 || call$b(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; + } : $assign; + + var $$o = _export; + var assign = objectAssign; + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + // eslint-disable-next-line es/no-object-assign -- required for testing + $$o({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign + }); + + var wellKnownSymbol$i = wellKnownSymbol$k; + + var TO_STRING_TAG$3 = wellKnownSymbol$i('toStringTag'); + var test$1 = {}; + + test$1[TO_STRING_TAG$3] = 'z'; + + var toStringTagSupport = String(test$1) === '[object z]'; + + var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport; + var isCallable$b = isCallable$m; + var classofRaw$1 = classofRaw$2; + var wellKnownSymbol$h = wellKnownSymbol$k; + + var TO_STRING_TAG$2 = wellKnownSymbol$h('toStringTag'); + var $Object$1 = Object; + + // ES3 wrong here + var CORRECT_ARGUMENTS = classofRaw$1(function () { return arguments; }()) == 'Arguments'; + + // fallback for IE11 Script Access Denied error + var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } + }; + + // getting tag from ES6+ `Object.prototype.toString` + var classof$9 = TO_STRING_TAG_SUPPORT$2 ? classofRaw$1 : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object$1(it), TO_STRING_TAG$2)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw$1(O) + // ES3 arguments fallback + : (result = classofRaw$1(O)) == 'Object' && isCallable$b(O.callee) ? 'Arguments' : result; + }; + + var TO_STRING_TAG_SUPPORT$1 = toStringTagSupport; + var classof$8 = classof$9; + + // `Object.prototype.toString` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.tostring + var objectToString$1 = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() { + return '[object ' + classof$8(this) + ']'; + }; + + var TO_STRING_TAG_SUPPORT = toStringTagSupport; + var defineBuiltIn$6 = defineBuiltIn$8; + var toString$7 = objectToString$1; + + // `Object.prototype.toString` method + // https://tc39.es/ecma262/#sec-object.prototype.tostring + if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn$6(Object.prototype, 'toString', toString$7, { unsafe: true }); + } + + var classof$7 = classofRaw$2; + + var engineIsNode = typeof process != 'undefined' && classof$7(process) == 'process'; + + var uncurryThis$f = functionUncurryThis; + var aCallable$9 = aCallable$b; + + var functionUncurryThisAccessor = function (object, key, method) { + try { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return uncurryThis$f(aCallable$9(Object.getOwnPropertyDescriptor(object, key)[method])); + } catch (error) { /* empty */ } + }; + + var isCallable$a = isCallable$m; + + var $String$1 = String; + var $TypeError$a = TypeError; + + var aPossiblePrototype$1 = function (argument) { + if (typeof argument == 'object' || isCallable$a(argument)) return argument; + throw $TypeError$a("Can't set " + $String$1(argument) + ' as a prototype'); + }; + + /* eslint-disable no-proto -- safe */ + + var uncurryThisAccessor = functionUncurryThisAccessor; + var anObject$9 = anObject$c; + var aPossiblePrototype = aPossiblePrototype$1; + + // `Object.setPrototypeOf` method + // https://tc39.es/ecma262/#sec-object.setprototypeof + // Works with __proto__ only. Old v8 can't work with null proto objects. + // eslint-disable-next-line es/no-object-setprototypeof -- safe + var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set'); + setter(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + anObject$9(O); + aPossiblePrototype(proto); + if (CORRECT_SETTER) setter(O, proto); + else O.__proto__ = proto; + return O; + }; + }() : undefined); + + var defineProperty$3 = objectDefineProperty.f; + var hasOwn$4 = hasOwnProperty_1; + var wellKnownSymbol$g = wellKnownSymbol$k; + + var TO_STRING_TAG$1 = wellKnownSymbol$g('toStringTag'); + + var setToStringTag$4 = function (target, TAG, STATIC) { + if (target && !STATIC) target = target.prototype; + if (target && !hasOwn$4(target, TO_STRING_TAG$1)) { + defineProperty$3(target, TO_STRING_TAG$1, { configurable: true, value: TAG }); + } + }; + + var getBuiltIn$4 = getBuiltIn$7; + var defineBuiltInAccessor$1 = defineBuiltInAccessor$3; + var wellKnownSymbol$f = wellKnownSymbol$k; + var DESCRIPTORS$4 = descriptors; + + var SPECIES$5 = wellKnownSymbol$f('species'); + + var setSpecies$2 = function (CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn$4(CONSTRUCTOR_NAME); + + if (DESCRIPTORS$4 && Constructor && !Constructor[SPECIES$5]) { + defineBuiltInAccessor$1(Constructor, SPECIES$5, { + configurable: true, + get: function () { return this; } + }); + } + }; + + var isPrototypeOf$1 = objectIsPrototypeOf; + + var $TypeError$9 = TypeError; + + var anInstance$4 = function (it, Prototype) { + if (isPrototypeOf$1(Prototype, it)) return it; + throw $TypeError$9('Incorrect invocation'); + }; + + var uncurryThis$e = functionUncurryThis; + var fails$f = fails$p; + var isCallable$9 = isCallable$m; + var classof$6 = classof$9; + var getBuiltIn$3 = getBuiltIn$7; + var inspectSource$1 = inspectSource$3; + + var noop = function () { /* empty */ }; + var empty = []; + var construct = getBuiltIn$3('Reflect', 'construct'); + var constructorRegExp = /^\s*(?:class|function)\b/; + var exec$1 = uncurryThis$e(constructorRegExp.exec); + var INCORRECT_TO_STRING = !constructorRegExp.exec(noop); + + var isConstructorModern = function isConstructor(argument) { + if (!isCallable$9(argument)) return false; + try { + construct(noop, empty, argument); + return true; + } catch (error) { + return false; + } + }; + + var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable$9(argument)) return false; + switch (classof$6(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec$1(constructorRegExp, inspectSource$1(argument)); + } catch (error) { + return true; + } + }; + + isConstructorLegacy.sham = true; + + // `IsConstructor` abstract operation + // https://tc39.es/ecma262/#sec-isconstructor + var isConstructor$4 = !construct || fails$f(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; + }) ? isConstructorLegacy : isConstructorModern; + + var isConstructor$3 = isConstructor$4; + var tryToString$3 = tryToString$5; + + var $TypeError$8 = TypeError; + + // `Assert: IsConstructor(argument) is true` + var aConstructor$1 = function (argument) { + if (isConstructor$3(argument)) return argument; + throw $TypeError$8(tryToString$3(argument) + ' is not a constructor'); + }; + + var anObject$8 = anObject$c; + var aConstructor = aConstructor$1; + var isNullOrUndefined$4 = isNullOrUndefined$7; + var wellKnownSymbol$e = wellKnownSymbol$k; + + var SPECIES$4 = wellKnownSymbol$e('species'); + + // `SpeciesConstructor` abstract operation + // https://tc39.es/ecma262/#sec-speciesconstructor + var speciesConstructor$1 = function (O, defaultConstructor) { + var C = anObject$8(O).constructor; + var S; + return C === undefined || isNullOrUndefined$4(S = anObject$8(C)[SPECIES$4]) ? defaultConstructor : aConstructor(S); + }; + + var NATIVE_BIND$1 = functionBindNative; + + var FunctionPrototype = Function.prototype; + var apply$1 = FunctionPrototype.apply; + var call$a = FunctionPrototype.call; + + // eslint-disable-next-line es/no-reflect -- safe + var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND$1 ? call$a.bind(apply$1) : function () { + return call$a.apply(apply$1, arguments); + }); + + var classofRaw = classofRaw$2; + var uncurryThis$d = functionUncurryThis; + + var functionUncurryThisClause = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis$d(fn); + }; + + var uncurryThis$c = functionUncurryThisClause; + var aCallable$8 = aCallable$b; + var NATIVE_BIND = functionBindNative; + + var bind$7 = uncurryThis$c(uncurryThis$c.bind); + + // optional / simple context binding + var functionBindContext = function (fn, that) { + aCallable$8(fn); + return that === undefined ? fn : NATIVE_BIND ? bind$7(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; + }; + + var getBuiltIn$2 = getBuiltIn$7; + + var html$2 = getBuiltIn$2('document', 'documentElement'); + + var uncurryThis$b = functionUncurryThis; + + var arraySlice$3 = uncurryThis$b([].slice); + + var $TypeError$7 = TypeError; + + var validateArgumentsLength$1 = function (passed, required) { + if (passed < required) throw $TypeError$7('Not enough arguments'); + return passed; + }; + + var userAgent$4 = engineUserAgent; + + // eslint-disable-next-line redos/no-vulnerable -- safe + var engineIsIos = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent$4); + + var global$9 = global$k; + var apply = functionApply; + var bind$6 = functionBindContext; + var isCallable$8 = isCallable$m; + var hasOwn$3 = hasOwnProperty_1; + var fails$e = fails$p; + var html$1 = html$2; + var arraySlice$2 = arraySlice$3; + var createElement = documentCreateElement$2; + var validateArgumentsLength = validateArgumentsLength$1; + var IS_IOS$1 = engineIsIos; + var IS_NODE$4 = engineIsNode; + + var set = global$9.setImmediate; + var clear = global$9.clearImmediate; + var process$3 = global$9.process; + var Dispatch = global$9.Dispatch; + var Function$1 = global$9.Function; + var MessageChannel = global$9.MessageChannel; + var String$1 = global$9.String; + var counter = 0; + var queue$2 = {}; + var ONREADYSTATECHANGE = 'onreadystatechange'; + var $location, defer, channel, port; + + fails$e(function () { + // Deno throws a ReferenceError on `location` access without `--location` flag + $location = global$9.location; + }); + + var run = function (id) { + if (hasOwn$3(queue$2, id)) { + var fn = queue$2[id]; + delete queue$2[id]; + fn(); + } + }; + + var runner = function (id) { + return function () { + run(id); + }; + }; + + var eventListener = function (event) { + run(event.data); + }; + + var globalPostMessageDefer = function (id) { + // old engines have not location.origin + global$9.postMessage(String$1(id), $location.protocol + '//' + $location.host); + }; + + // Node.js 0.9+ & IE10+ has setImmediate, otherwise: + if (!set || !clear) { + set = function setImmediate(handler) { + validateArgumentsLength(arguments.length, 1); + var fn = isCallable$8(handler) ? handler : Function$1(handler); + var args = arraySlice$2(arguments, 1); + queue$2[++counter] = function () { + apply(fn, undefined, args); + }; + defer(counter); + return counter; + }; + clear = function clearImmediate(id) { + delete queue$2[id]; + }; + // Node.js 0.8- + if (IS_NODE$4) { + defer = function (id) { + process$3.nextTick(runner(id)); + }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(runner(id)); + }; + // Browsers with MessageChannel, includes WebWorkers + // except iOS - https://github.com/zloirock/core-js/issues/624 + } else if (MessageChannel && !IS_IOS$1) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = eventListener; + defer = bind$6(port.postMessage, port); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if ( + global$9.addEventListener && + isCallable$8(global$9.postMessage) && + !global$9.importScripts && + $location && $location.protocol !== 'file:' && + !fails$e(globalPostMessageDefer) + ) { + defer = globalPostMessageDefer; + global$9.addEventListener('message', eventListener, false); + // IE8- + } else if (ONREADYSTATECHANGE in createElement('script')) { + defer = function (id) { + html$1.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { + html$1.removeChild(this); + run(id); + }; + }; + // Rest old browsers + } else { + defer = function (id) { + setTimeout(runner(id), 0); + }; + } + } + + var task$1 = { + set: set, + clear: clear + }; + + var Queue$2 = function () { + this.head = null; + this.tail = null; + }; + + Queue$2.prototype = { + add: function (item) { + var entry = { item: item, next: null }; + var tail = this.tail; + if (tail) tail.next = entry; + else this.head = entry; + this.tail = entry; + }, + get: function () { + var entry = this.head; + if (entry) { + var next = this.head = entry.next; + if (next === null) this.tail = null; + return entry.item; + } + } + }; + + var queue$1 = Queue$2; + + var userAgent$3 = engineUserAgent; + + var engineIsIosPebble = /ipad|iphone|ipod/i.test(userAgent$3) && typeof Pebble != 'undefined'; + + var userAgent$2 = engineUserAgent; + + var engineIsWebosWebkit = /web0s(?!.*chrome)/i.test(userAgent$2); + + var global$8 = global$k; + var bind$5 = functionBindContext; + var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f; + var macrotask = task$1.set; + var Queue$1 = queue$1; + var IS_IOS = engineIsIos; + var IS_IOS_PEBBLE = engineIsIosPebble; + var IS_WEBOS_WEBKIT = engineIsWebosWebkit; + var IS_NODE$3 = engineIsNode; + + var MutationObserver = global$8.MutationObserver || global$8.WebKitMutationObserver; + var document$2 = global$8.document; + var process$2 = global$8.process; + var Promise$1 = global$8.Promise; + // Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` + var queueMicrotaskDescriptor = getOwnPropertyDescriptor$1(global$8, 'queueMicrotask'); + var microtask$1 = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; + var notify$1, toggle, node, promise, then; + + // modern engines have queueMicrotask method + if (!microtask$1) { + var queue = new Queue$1(); + + var flush = function () { + var parent, fn; + if (IS_NODE$3 && (parent = process$2.domain)) parent.exit(); + while (fn = queue.get()) try { + fn(); + } catch (error) { + if (queue.head) notify$1(); + throw error; + } + if (parent) parent.enter(); + }; + + // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 + // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 + if (!IS_IOS && !IS_NODE$3 && !IS_WEBOS_WEBKIT && MutationObserver && document$2) { + toggle = true; + node = document$2.createTextNode(''); + new MutationObserver(flush).observe(node, { characterData: true }); + notify$1 = function () { + node.data = toggle = !toggle; + }; + // environments with maybe non-completely correct, but existent Promise + } else if (!IS_IOS_PEBBLE && Promise$1 && Promise$1.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + promise = Promise$1.resolve(undefined); + // workaround of WebKit ~ iOS Safari 10.1 bug + promise.constructor = Promise$1; + then = bind$5(promise.then, promise); + notify$1 = function () { + then(flush); + }; + // Node.js without promises + } else if (IS_NODE$3) { + notify$1 = function () { + process$2.nextTick(flush); + }; + // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessage + // - onreadystatechange + // - setTimeout + } else { + // `webpack` dev server bug on IE global methods - use bind(fn, global) + macrotask = bind$5(macrotask, global$8); + notify$1 = function () { + macrotask(flush); + }; + } + + microtask$1 = function (fn) { + if (!queue.head) notify$1(); + queue.add(fn); + }; + } + + var microtask_1 = microtask$1; + + var hostReportErrors$1 = function (a, b) { + try { + // eslint-disable-next-line no-console -- safe + arguments.length == 1 ? console.error(a) : console.error(a, b); + } catch (error) { /* empty */ } + }; + + var perform$4 = function (exec) { + try { + return { error: false, value: exec() }; + } catch (error) { + return { error: true, value: error }; + } + }; + + var global$7 = global$k; + + var promiseNativeConstructor = global$7.Promise; + + /* global Deno -- Deno case */ + + var engineIsDeno = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; + + var IS_DENO$1 = engineIsDeno; + var IS_NODE$2 = engineIsNode; + + var engineIsBrowser = !IS_DENO$1 && !IS_NODE$2 + && typeof window == 'object' + && typeof document == 'object'; + + var global$6 = global$k; + var NativePromiseConstructor$3 = promiseNativeConstructor; + var isCallable$7 = isCallable$m; + var isForced$1 = isForced_1; + var inspectSource = inspectSource$3; + var wellKnownSymbol$d = wellKnownSymbol$k; + var IS_BROWSER = engineIsBrowser; + var IS_DENO = engineIsDeno; + var V8_VERSION$2 = engineV8Version; + + NativePromiseConstructor$3 && NativePromiseConstructor$3.prototype; + var SPECIES$3 = wellKnownSymbol$d('species'); + var SUBCLASSING = false; + var NATIVE_PROMISE_REJECTION_EVENT$1 = isCallable$7(global$6.PromiseRejectionEvent); + + var FORCED_PROMISE_CONSTRUCTOR$5 = isForced$1('Promise', function () { + var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor$3); + var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor$3); + // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // We can't detect it synchronously, so just check versions + if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION$2 === 66) return true; + // We can't use @@species feature detection in V8 since it causes + // deoptimization and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if (!V8_VERSION$2 || V8_VERSION$2 < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) { + // Detect correctness of subclassing with @@species support + var promise = new NativePromiseConstructor$3(function (resolve) { resolve(1); }); + var FakePromise = function (exec) { + exec(function () { /* empty */ }, function () { /* empty */ }); + }; + var constructor = promise.constructor = {}; + constructor[SPECIES$3] = FakePromise; + SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise; + if (!SUBCLASSING) return true; + // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test + } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT$1; + }); + + var promiseConstructorDetection = { + CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR$5, + REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT$1, + SUBCLASSING: SUBCLASSING + }; + + var newPromiseCapability$2 = {}; + + var aCallable$7 = aCallable$b; + + var $TypeError$6 = TypeError; + + var PromiseCapability = function (C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw $TypeError$6('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aCallable$7(resolve); + this.reject = aCallable$7(reject); + }; + + // `NewPromiseCapability` abstract operation + // https://tc39.es/ecma262/#sec-newpromisecapability + newPromiseCapability$2.f = function (C) { + return new PromiseCapability(C); + }; + + var $$n = _export; + var IS_NODE$1 = engineIsNode; + var global$5 = global$k; + var call$9 = functionCall; + var defineBuiltIn$5 = defineBuiltIn$8; + var setPrototypeOf$2 = objectSetPrototypeOf; + var setToStringTag$3 = setToStringTag$4; + var setSpecies$1 = setSpecies$2; + var aCallable$6 = aCallable$b; + var isCallable$6 = isCallable$m; + var isObject$c = isObject$i; + var anInstance$3 = anInstance$4; + var speciesConstructor = speciesConstructor$1; + var task = task$1.set; + var microtask = microtask_1; + var hostReportErrors = hostReportErrors$1; + var perform$3 = perform$4; + var Queue = queue$1; + var InternalStateModule$4 = internalState; + var NativePromiseConstructor$2 = promiseNativeConstructor; + var PromiseConstructorDetection = promiseConstructorDetection; + var newPromiseCapabilityModule$4 = newPromiseCapability$2; + + var PROMISE = 'Promise'; + var FORCED_PROMISE_CONSTRUCTOR$4 = PromiseConstructorDetection.CONSTRUCTOR; + var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT; + var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING; + var getInternalPromiseState = InternalStateModule$4.getterFor(PROMISE); + var setInternalState$4 = InternalStateModule$4.set; + var NativePromisePrototype$1 = NativePromiseConstructor$2 && NativePromiseConstructor$2.prototype; + var PromiseConstructor = NativePromiseConstructor$2; + var PromisePrototype = NativePromisePrototype$1; + var TypeError$1 = global$5.TypeError; + var document$1 = global$5.document; + var process$1 = global$5.process; + var newPromiseCapability$1 = newPromiseCapabilityModule$4.f; + var newGenericPromiseCapability = newPromiseCapability$1; + + var DISPATCH_EVENT = !!(document$1 && document$1.createEvent && global$5.dispatchEvent); + var UNHANDLED_REJECTION = 'unhandledrejection'; + var REJECTION_HANDLED = 'rejectionhandled'; + var PENDING = 0; + var FULFILLED = 1; + var REJECTED = 2; + var HANDLED = 1; + var UNHANDLED = 2; + + var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; + + // helpers + var isThenable = function (it) { + var then; + return isObject$c(it) && isCallable$6(then = it.then) ? then : false; + }; + + var callReaction = function (reaction, state) { + var value = state.value; + var ok = state.state == FULFILLED; + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + try { + if (handler) { + if (!ok) { + if (state.rejection === UNHANDLED) onHandleUnhandled(state); + state.rejection = HANDLED; + } + if (handler === true) result = value; + else { + if (domain) domain.enter(); + result = handler(value); // can throw + if (domain) { + domain.exit(); + exited = true; + } + } + if (result === reaction.promise) { + reject(TypeError$1('Promise-chain cycle')); + } else if (then = isThenable(result)) { + call$9(then, result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (error) { + if (domain && !exited) domain.exit(); + reject(error); + } + }; + + var notify = function (state, isReject) { + if (state.notified) return; + state.notified = true; + microtask(function () { + var reactions = state.reactions; + var reaction; + while (reaction = reactions.get()) { + callReaction(reaction, state); + } + state.notified = false; + if (isReject && !state.rejection) onUnhandled(state); + }); + }; + + var dispatchEvent = function (name, promise, reason) { + var event, handler; + if (DISPATCH_EVENT) { + event = document$1.createEvent('Event'); + event.promise = promise; + event.reason = reason; + event.initEvent(name, false, true); + global$5.dispatchEvent(event); + } else event = { promise: promise, reason: reason }; + if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global$5['on' + name])) handler(event); + else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); + }; + + var onUnhandled = function (state) { + call$9(task, global$5, function () { + var promise = state.facade; + var value = state.value; + var IS_UNHANDLED = isUnhandled(state); + var result; + if (IS_UNHANDLED) { + result = perform$3(function () { + if (IS_NODE$1) { + process$1.emit('unhandledRejection', value, promise); + } else dispatchEvent(UNHANDLED_REJECTION, promise, value); + }); + // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + state.rejection = IS_NODE$1 || isUnhandled(state) ? UNHANDLED : HANDLED; + if (result.error) throw result.value; + } + }); + }; + + var isUnhandled = function (state) { + return state.rejection !== HANDLED && !state.parent; + }; + + var onHandleUnhandled = function (state) { + call$9(task, global$5, function () { + var promise = state.facade; + if (IS_NODE$1) { + process$1.emit('rejectionHandled', promise); + } else dispatchEvent(REJECTION_HANDLED, promise, state.value); + }); + }; + + var bind$4 = function (fn, state, unwrap) { + return function (value) { + fn(state, value, unwrap); + }; + }; + + var internalReject = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + state.value = value; + state.state = REJECTED; + notify(state, true); + }; + + var internalResolve = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + try { + if (state.facade === value) throw TypeError$1("Promise can't be resolved itself"); + var then = isThenable(value); + if (then) { + microtask(function () { + var wrapper = { done: false }; + try { + call$9(then, value, + bind$4(internalResolve, wrapper, state), + bind$4(internalReject, wrapper, state) + ); + } catch (error) { + internalReject(wrapper, error, state); + } + }); + } else { + state.value = value; + state.state = FULFILLED; + notify(state, false); + } + } catch (error) { + internalReject({ done: false }, error, state); + } + }; + + // constructor polyfill + if (FORCED_PROMISE_CONSTRUCTOR$4) { + // 25.4.3.1 Promise(executor) + PromiseConstructor = function Promise(executor) { + anInstance$3(this, PromisePrototype); + aCallable$6(executor); + call$9(Internal, this); + var state = getInternalPromiseState(this); + try { + executor(bind$4(internalResolve, state), bind$4(internalReject, state)); + } catch (error) { + internalReject(state, error); + } + }; + + PromisePrototype = PromiseConstructor.prototype; + + // eslint-disable-next-line no-unused-vars -- required for `.length` + Internal = function Promise(executor) { + setInternalState$4(this, { + type: PROMISE, + done: false, + notified: false, + parent: false, + reactions: new Queue(), + rejection: false, + state: PENDING, + value: undefined + }); + }; + + // `Promise.prototype.then` method + // https://tc39.es/ecma262/#sec-promise.prototype.then + Internal.prototype = defineBuiltIn$5(PromisePrototype, 'then', function then(onFulfilled, onRejected) { + var state = getInternalPromiseState(this); + var reaction = newPromiseCapability$1(speciesConstructor(this, PromiseConstructor)); + state.parent = true; + reaction.ok = isCallable$6(onFulfilled) ? onFulfilled : true; + reaction.fail = isCallable$6(onRejected) && onRejected; + reaction.domain = IS_NODE$1 ? process$1.domain : undefined; + if (state.state == PENDING) state.reactions.add(reaction); + else microtask(function () { + callReaction(reaction, state); + }); + return reaction.promise; + }); + + OwnPromiseCapability = function () { + var promise = new Internal(); + var state = getInternalPromiseState(promise); + this.promise = promise; + this.resolve = bind$4(internalResolve, state); + this.reject = bind$4(internalReject, state); + }; + + newPromiseCapabilityModule$4.f = newPromiseCapability$1 = function (C) { + return C === PromiseConstructor || C === PromiseWrapper + ? new OwnPromiseCapability(C) + : newGenericPromiseCapability(C); + }; + + if (isCallable$6(NativePromiseConstructor$2) && NativePromisePrototype$1 !== Object.prototype) { + nativeThen = NativePromisePrototype$1.then; + + if (!NATIVE_PROMISE_SUBCLASSING) { + // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs + defineBuiltIn$5(NativePromisePrototype$1, 'then', function then(onFulfilled, onRejected) { + var that = this; + return new PromiseConstructor(function (resolve, reject) { + call$9(nativeThen, that, resolve, reject); + }).then(onFulfilled, onRejected); + // https://github.com/zloirock/core-js/issues/640 + }, { unsafe: true }); + } + + // make `.constructor === Promise` work for native promise-based APIs + try { + delete NativePromisePrototype$1.constructor; + } catch (error) { /* empty */ } + + // make `instanceof Promise` work for native promise-based APIs + if (setPrototypeOf$2) { + setPrototypeOf$2(NativePromisePrototype$1, PromisePrototype); + } + } + } + + $$n({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR$4 }, { + Promise: PromiseConstructor + }); + + setToStringTag$3(PromiseConstructor, PROMISE, false); + setSpecies$1(PROMISE); + + var iterators = {}; + + var wellKnownSymbol$c = wellKnownSymbol$k; + var Iterators$4 = iterators; + + var ITERATOR$6 = wellKnownSymbol$c('iterator'); + var ArrayPrototype$1 = Array.prototype; + + // check on default Array iterator + var isArrayIteratorMethod$2 = function (it) { + return it !== undefined && (Iterators$4.Array === it || ArrayPrototype$1[ITERATOR$6] === it); + }; + + var classof$5 = classof$9; + var getMethod$1 = getMethod$3; + var isNullOrUndefined$3 = isNullOrUndefined$7; + var Iterators$3 = iterators; + var wellKnownSymbol$b = wellKnownSymbol$k; + + var ITERATOR$5 = wellKnownSymbol$b('iterator'); + + var getIteratorMethod$3 = function (it) { + if (!isNullOrUndefined$3(it)) return getMethod$1(it, ITERATOR$5) + || getMethod$1(it, '@@iterator') + || Iterators$3[classof$5(it)]; + }; + + var call$8 = functionCall; + var aCallable$5 = aCallable$b; + var anObject$7 = anObject$c; + var tryToString$2 = tryToString$5; + var getIteratorMethod$2 = getIteratorMethod$3; + + var $TypeError$5 = TypeError; + + var getIterator$2 = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod$2(argument) : usingIterator; + if (aCallable$5(iteratorMethod)) return anObject$7(call$8(iteratorMethod, argument)); + throw $TypeError$5(tryToString$2(argument) + ' is not iterable'); + }; + + var call$7 = functionCall; + var anObject$6 = anObject$c; + var getMethod = getMethod$3; + + var iteratorClose$2 = function (iterator, kind, value) { + var innerResult, innerError; + anObject$6(iterator); + try { + innerResult = getMethod(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') throw value; + return value; + } + innerResult = call$7(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === 'throw') throw value; + if (innerError) throw innerResult; + anObject$6(innerResult); + return value; + }; + + var bind$3 = functionBindContext; + var call$6 = functionCall; + var anObject$5 = anObject$c; + var tryToString$1 = tryToString$5; + var isArrayIteratorMethod$1 = isArrayIteratorMethod$2; + var lengthOfArrayLike$7 = lengthOfArrayLike$9; + var isPrototypeOf = objectIsPrototypeOf; + var getIterator$1 = getIterator$2; + var getIteratorMethod$1 = getIteratorMethod$3; + var iteratorClose$1 = iteratorClose$2; + + var $TypeError$4 = TypeError; + + var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; + }; + + var ResultPrototype = Result.prototype; + + var iterate$6 = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_RECORD = !!(options && options.IS_RECORD); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind$3(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose$1(iterator, 'normal', condition); + return new Result(true, condition); + }; + + var callFn = function (value) { + if (AS_ENTRIES) { + anObject$5(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; + + if (IS_RECORD) { + iterator = iterable.iterator; + } else if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod$1(iterable); + if (!iterFn) throw $TypeError$4(tryToString$1(iterable) + ' is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod$1(iterFn)) { + for (index = 0, length = lengthOfArrayLike$7(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + } + iterator = getIterator$1(iterable, iterFn); + } + + next = IS_RECORD ? iterable.next : iterator.next; + while (!(step = call$6(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose$1(iterator, 'throw', error); + } + if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + }; + + var wellKnownSymbol$a = wellKnownSymbol$k; + + var ITERATOR$4 = wellKnownSymbol$a('iterator'); + var SAFE_CLOSING = false; + + try { + var called = 0; + var iteratorWithReturn = { + next: function () { + return { done: !!called++ }; + }, + 'return': function () { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR$4] = function () { + return this; + }; + // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing + Array.from(iteratorWithReturn, function () { throw 2; }); + } catch (error) { /* empty */ } + + var checkCorrectnessOfIteration$3 = function (exec, SKIP_CLOSING) { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR$4] = function () { + return { + next: function () { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { /* empty */ } + return ITERATION_SUPPORT; + }; + + var NativePromiseConstructor$1 = promiseNativeConstructor; + var checkCorrectnessOfIteration$2 = checkCorrectnessOfIteration$3; + var FORCED_PROMISE_CONSTRUCTOR$3 = promiseConstructorDetection.CONSTRUCTOR; + + var promiseStaticsIncorrectIteration = FORCED_PROMISE_CONSTRUCTOR$3 || !checkCorrectnessOfIteration$2(function (iterable) { + NativePromiseConstructor$1.all(iterable).then(undefined, function () { /* empty */ }); + }); + + var $$m = _export; + var call$5 = functionCall; + var aCallable$4 = aCallable$b; + var newPromiseCapabilityModule$3 = newPromiseCapability$2; + var perform$2 = perform$4; + var iterate$5 = iterate$6; + var PROMISE_STATICS_INCORRECT_ITERATION$2 = promiseStaticsIncorrectIteration; + + // `Promise.all` method + // https://tc39.es/ecma262/#sec-promise.all + $$m({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$2 }, { + all: function all(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$3.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform$2(function () { + var $promiseResolve = aCallable$4(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate$5(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call$5($promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } + }); + + var $$l = _export; + var FORCED_PROMISE_CONSTRUCTOR$2 = promiseConstructorDetection.CONSTRUCTOR; + var NativePromiseConstructor = promiseNativeConstructor; + var getBuiltIn$1 = getBuiltIn$7; + var isCallable$5 = isCallable$m; + var defineBuiltIn$4 = defineBuiltIn$8; + + var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + + // `Promise.prototype.catch` method + // https://tc39.es/ecma262/#sec-promise.prototype.catch + $$l({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR$2, real: true }, { + 'catch': function (onRejected) { + return this.then(undefined, onRejected); + } + }); + + // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` + if (isCallable$5(NativePromiseConstructor)) { + var method = getBuiltIn$1('Promise').prototype['catch']; + if (NativePromisePrototype['catch'] !== method) { + defineBuiltIn$4(NativePromisePrototype, 'catch', method, { unsafe: true }); + } + } + + var $$k = _export; + var call$4 = functionCall; + var aCallable$3 = aCallable$b; + var newPromiseCapabilityModule$2 = newPromiseCapability$2; + var perform$1 = perform$4; + var iterate$4 = iterate$6; + var PROMISE_STATICS_INCORRECT_ITERATION$1 = promiseStaticsIncorrectIteration; + + // `Promise.race` method + // https://tc39.es/ecma262/#sec-promise.race + $$k({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$1 }, { + race: function race(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$2.f(C); + var reject = capability.reject; + var result = perform$1(function () { + var $promiseResolve = aCallable$3(C.resolve); + iterate$4(iterable, function (promise) { + call$4($promiseResolve, C, promise).then(capability.resolve, reject); + }); + }); + if (result.error) reject(result.value); + return capability.promise; + } + }); + + var $$j = _export; + var call$3 = functionCall; + var newPromiseCapabilityModule$1 = newPromiseCapability$2; + var FORCED_PROMISE_CONSTRUCTOR$1 = promiseConstructorDetection.CONSTRUCTOR; + + // `Promise.reject` method + // https://tc39.es/ecma262/#sec-promise.reject + $$j({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR$1 }, { + reject: function reject(r) { + var capability = newPromiseCapabilityModule$1.f(this); + call$3(capability.reject, undefined, r); + return capability.promise; + } + }); + + var anObject$4 = anObject$c; + var isObject$b = isObject$i; + var newPromiseCapability = newPromiseCapability$2; + + var promiseResolve$1 = function (C, x) { + anObject$4(C); + if (isObject$b(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; + }; + + var $$i = _export; + var getBuiltIn = getBuiltIn$7; + var FORCED_PROMISE_CONSTRUCTOR = promiseConstructorDetection.CONSTRUCTOR; + var promiseResolve = promiseResolve$1; + + getBuiltIn('Promise'); + + // `Promise.resolve` method + // https://tc39.es/ecma262/#sec-promise.resolve + $$i({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + resolve: function resolve(x) { + return promiseResolve(this, x); + } + }); + + var objectDefineProperties = {}; + + var DESCRIPTORS$3 = descriptors; + var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug; + var definePropertyModule$1 = objectDefineProperty; + var anObject$3 = anObject$c; + var toIndexedObject$5 = toIndexedObject$9; + var objectKeys$1 = objectKeys$3; + + // `Object.defineProperties` method + // https://tc39.es/ecma262/#sec-object.defineproperties + // eslint-disable-next-line es/no-object-defineproperties -- safe + objectDefineProperties.f = DESCRIPTORS$3 && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject$3(O); + var props = toIndexedObject$5(Properties); + var keys = objectKeys$1(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule$1.f(O, key = keys[index++], props[key]); + return O; + }; + + /* global ActiveXObject -- old IE, WSH */ + + var anObject$2 = anObject$c; + var definePropertiesModule = objectDefineProperties; + var enumBugKeys = enumBugKeys$3; + var hiddenKeys$1 = hiddenKeys$5; + var html = html$2; + var documentCreateElement$1 = documentCreateElement$2; + var sharedKey$1 = sharedKey$3; + + var GT = '>'; + var LT = '<'; + var PROTOTYPE = 'prototype'; + var SCRIPT = 'script'; + var IE_PROTO$1 = sharedKey$1('IE_PROTO'); + + var EmptyConstructor = function () { /* empty */ }; + + var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; + }; + + // Create object with fake `null` prototype: use ActiveX Object with cleared prototype + var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; + }; + + // Create object with fake `null` prototype: use iframe Object with cleared prototype + var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement$1('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; + }; + + // Check for document.domain and active x support + // No need to use active x approach when document.domain is not set + // see https://github.com/es-shims/es5-shim/issues/150 + // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 + // avoid IE GC bug + var activeXDocument; + var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); + }; + + hiddenKeys$1[IE_PROTO$1] = true; + + // `Object.create` method + // https://tc39.es/ecma262/#sec-object.create + // eslint-disable-next-line es/no-object-create -- safe + var objectCreate = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject$2(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO$1] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); + }; + + var wellKnownSymbol$9 = wellKnownSymbol$k; + var create$2 = objectCreate; + var defineProperty$2 = objectDefineProperty.f; + + var UNSCOPABLES = wellKnownSymbol$9('unscopables'); + var ArrayPrototype = Array.prototype; + + // Array.prototype[@@unscopables] + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + if (ArrayPrototype[UNSCOPABLES] == undefined) { + defineProperty$2(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create$2(null) + }); + } + + // add a key to Array.prototype[@@unscopables] + var addToUnscopables$2 = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; + }; + + var fails$d = fails$p; + + var correctPrototypeGetter = !fails$d(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + // eslint-disable-next-line es/no-object-getprototypeof -- required for testing + return Object.getPrototypeOf(new F()) !== F.prototype; + }); + + var hasOwn$2 = hasOwnProperty_1; + var isCallable$4 = isCallable$m; + var toObject$6 = toObject$9; + var sharedKey = sharedKey$3; + var CORRECT_PROTOTYPE_GETTER = correctPrototypeGetter; + + var IE_PROTO = sharedKey('IE_PROTO'); + var $Object = Object; + var ObjectPrototype = $Object.prototype; + + // `Object.getPrototypeOf` method + // https://tc39.es/ecma262/#sec-object.getprototypeof + // eslint-disable-next-line es/no-object-getprototypeof -- safe + var objectGetPrototypeOf = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { + var object = toObject$6(O); + if (hasOwn$2(object, IE_PROTO)) return object[IE_PROTO]; + var constructor = object.constructor; + if (isCallable$4(constructor) && object instanceof constructor) { + return constructor.prototype; + } return object instanceof $Object ? ObjectPrototype : null; + }; + + var fails$c = fails$p; + var isCallable$3 = isCallable$m; + var isObject$a = isObject$i; + var getPrototypeOf$1 = objectGetPrototypeOf; + var defineBuiltIn$3 = defineBuiltIn$8; + var wellKnownSymbol$8 = wellKnownSymbol$k; + + var ITERATOR$3 = wellKnownSymbol$8('iterator'); + var BUGGY_SAFARI_ITERATORS$1 = false; + + // `%IteratorPrototype%` object + // https://tc39.es/ecma262/#sec-%iteratorprototype%-object + var IteratorPrototype$2, PrototypeOfArrayIteratorPrototype, arrayIterator; + + /* eslint-disable es/no-array-prototype-keys -- safe */ + if ([].keys) { + arrayIterator = [].keys(); + // Safari 8 has buggy iterators w/o `next` + if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS$1 = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf$1(getPrototypeOf$1(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype$2 = PrototypeOfArrayIteratorPrototype; + } + } + + var NEW_ITERATOR_PROTOTYPE = !isObject$a(IteratorPrototype$2) || fails$c(function () { + var test = {}; + // FF44- legacy iterators case + return IteratorPrototype$2[ITERATOR$3].call(test) !== test; + }); + + if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype$2 = {}; + + // `%IteratorPrototype%[@@iterator]()` method + // https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator + if (!isCallable$3(IteratorPrototype$2[ITERATOR$3])) { + defineBuiltIn$3(IteratorPrototype$2, ITERATOR$3, function () { + return this; + }); + } + + var iteratorsCore = { + IteratorPrototype: IteratorPrototype$2, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS$1 + }; + + var IteratorPrototype$1 = iteratorsCore.IteratorPrototype; + var create$1 = objectCreate; + var createPropertyDescriptor$1 = createPropertyDescriptor$4; + var setToStringTag$2 = setToStringTag$4; + var Iterators$2 = iterators; + + var returnThis$1 = function () { return this; }; + + var iteratorCreateConstructor = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = create$1(IteratorPrototype$1, { next: createPropertyDescriptor$1(+!ENUMERABLE_NEXT, next) }); + setToStringTag$2(IteratorConstructor, TO_STRING_TAG, false); + Iterators$2[TO_STRING_TAG] = returnThis$1; + return IteratorConstructor; + }; + + var $$h = _export; + var call$2 = functionCall; + var FunctionName = functionName; + var isCallable$2 = isCallable$m; + var createIteratorConstructor = iteratorCreateConstructor; + var getPrototypeOf = objectGetPrototypeOf; + var setPrototypeOf$1 = objectSetPrototypeOf; + var setToStringTag$1 = setToStringTag$4; + var createNonEnumerableProperty$2 = createNonEnumerableProperty$5; + var defineBuiltIn$2 = defineBuiltIn$8; + var wellKnownSymbol$7 = wellKnownSymbol$k; + var Iterators$1 = iterators; + var IteratorsCore = iteratorsCore; + + var PROPER_FUNCTION_NAME$1 = FunctionName.PROPER; + var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; + var IteratorPrototype = IteratorsCore.IteratorPrototype; + var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; + var ITERATOR$2 = wellKnownSymbol$7('iterator'); + var KEYS = 'keys'; + var VALUES = 'values'; + var ENTRIES = 'entries'; + + var returnThis = function () { return this; }; + + var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + + var getIterationMethod = function (KIND) { + if (KIND === DEFAULT && defaultIterator) return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; + switch (KIND) { + case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; + case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; + case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; + } return function () { return new IteratorConstructor(this); }; + }; + + var TO_STRING_TAG = NAME + ' Iterator'; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR$2] + || IterablePrototype['@@iterator'] + || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + + // fix native + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf$1) { + setPrototypeOf$1(CurrentIteratorPrototype, IteratorPrototype); + } else if (!isCallable$2(CurrentIteratorPrototype[ITERATOR$2])) { + defineBuiltIn$2(CurrentIteratorPrototype, ITERATOR$2, returnThis); + } + } + // Set @@toStringTag to native iterators + setToStringTag$1(CurrentIteratorPrototype, TO_STRING_TAG, true); + } + } + + // fix Array.prototype.{ values, @@iterator }.name in V8 / FF + if (PROPER_FUNCTION_NAME$1 && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { + if (CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty$2(IterablePrototype, 'name', VALUES); + } else { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { return call$2(nativeIterator, this); }; + } + } + + // export additional methods + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + defineBuiltIn$2(IterablePrototype, KEY, methods[KEY]); + } + } else $$h({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + + // define iterator + if (IterablePrototype[ITERATOR$2] !== defaultIterator) { + defineBuiltIn$2(IterablePrototype, ITERATOR$2, defaultIterator, { name: DEFAULT }); + } + Iterators$1[NAME] = defaultIterator; + + return methods; + }; + + // `CreateIterResultObject` abstract operation + // https://tc39.es/ecma262/#sec-createiterresultobject + var createIterResultObject$3 = function (value, done) { + return { value: value, done: done }; + }; + + var toIndexedObject$4 = toIndexedObject$9; + var addToUnscopables$1 = addToUnscopables$2; + var Iterators = iterators; + var InternalStateModule$3 = internalState; + var defineProperty$1 = objectDefineProperty.f; + var defineIterator$2 = iteratorDefine; + var createIterResultObject$2 = createIterResultObject$3; + var DESCRIPTORS$2 = descriptors; + + var ARRAY_ITERATOR = 'Array Iterator'; + var setInternalState$3 = InternalStateModule$3.set; + var getInternalState$1 = InternalStateModule$3.getterFor(ARRAY_ITERATOR); + + // `Array.prototype.entries` method + // https://tc39.es/ecma262/#sec-array.prototype.entries + // `Array.prototype.keys` method + // https://tc39.es/ecma262/#sec-array.prototype.keys + // `Array.prototype.values` method + // https://tc39.es/ecma262/#sec-array.prototype.values + // `Array.prototype[@@iterator]` method + // https://tc39.es/ecma262/#sec-array.prototype-@@iterator + // `CreateArrayIterator` internal method + // https://tc39.es/ecma262/#sec-createarrayiterator + var es_array_iterator = defineIterator$2(Array, 'Array', function (iterated, kind) { + setInternalState$3(this, { + type: ARRAY_ITERATOR, + target: toIndexedObject$4(iterated), // target + index: 0, // next index + kind: kind // kind + }); + // `%ArrayIteratorPrototype%.next` method + // https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next + }, function () { + var state = getInternalState$1(this); + var target = state.target; + var kind = state.kind; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject$2(undefined, true); + } + if (kind == 'keys') return createIterResultObject$2(index, false); + if (kind == 'values') return createIterResultObject$2(target[index], false); + return createIterResultObject$2([index, target[index]], false); + }, 'values'); + + // argumentsList[@@iterator] is %ArrayProto_values% + // https://tc39.es/ecma262/#sec-createunmappedargumentsobject + // https://tc39.es/ecma262/#sec-createmappedargumentsobject + var values = Iterators.Arguments = Iterators.Array; + + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + addToUnscopables$1('keys'); + addToUnscopables$1('values'); + addToUnscopables$1('entries'); + + // V8 ~ Chrome 45- bug + if (DESCRIPTORS$2 && values.name !== 'values') try { + defineProperty$1(values, 'name', { value: 'values' }); + } catch (error) { /* empty */ } + + var classof$4 = classof$9; + + var $String = String; + + var toString$6 = function (argument) { + if (classof$4(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string'); + return $String(argument); + }; + + var uncurryThis$a = functionUncurryThis; + var toIntegerOrInfinity = toIntegerOrInfinity$3; + var toString$5 = toString$6; + var requireObjectCoercible$2 = requireObjectCoercible$5; + + var charAt$1 = uncurryThis$a(''.charAt); + var charCodeAt = uncurryThis$a(''.charCodeAt); + var stringSlice$1 = uncurryThis$a(''.slice); + + var createMethod$4 = function (CONVERT_TO_STRING) { + return function ($this, pos) { + var S = toString$5(requireObjectCoercible$2($this)); + var position = toIntegerOrInfinity(pos); + var size = S.length; + var first, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; + first = charCodeAt(S, position); + return first < 0xD800 || first > 0xDBFF || position + 1 === size + || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF + ? CONVERT_TO_STRING + ? charAt$1(S, position) + : first + : CONVERT_TO_STRING + ? stringSlice$1(S, position, position + 2) + : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; + }; + }; + + var stringMultibyte = { + // `String.prototype.codePointAt` method + // https://tc39.es/ecma262/#sec-string.prototype.codepointat + codeAt: createMethod$4(false), + // `String.prototype.at` method + // https://github.com/mathiasbynens/String.prototype.at + charAt: createMethod$4(true) + }; + + var charAt = stringMultibyte.charAt; + var toString$4 = toString$6; + var InternalStateModule$2 = internalState; + var defineIterator$1 = iteratorDefine; + var createIterResultObject$1 = createIterResultObject$3; + + var STRING_ITERATOR = 'String Iterator'; + var setInternalState$2 = InternalStateModule$2.set; + var getInternalState = InternalStateModule$2.getterFor(STRING_ITERATOR); + + // `String.prototype[@@iterator]` method + // https://tc39.es/ecma262/#sec-string.prototype-@@iterator + defineIterator$1(String, 'String', function (iterated) { + setInternalState$2(this, { + type: STRING_ITERATOR, + string: toString$4(iterated), + index: 0 + }); + // `%StringIteratorPrototype%.next` method + // https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next + }, function next() { + var state = getInternalState(this); + var string = state.string; + var index = state.index; + var point; + if (index >= string.length) return createIterResultObject$1(undefined, true); + point = charAt(string, index); + state.index += point.length; + return createIterResultObject$1(point, false); + }); + + var internalMetadata = {exports: {}}; + + var objectGetOwnPropertyNamesExternal = {}; + + var toPropertyKey = toPropertyKey$3; + var definePropertyModule = objectDefineProperty; + var createPropertyDescriptor = createPropertyDescriptor$4; + + var createProperty$4 = function (object, key, value) { + var propertyKey = toPropertyKey(key); + if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); + else object[propertyKey] = value; + }; + + var toAbsoluteIndex$1 = toAbsoluteIndex$3; + var lengthOfArrayLike$6 = lengthOfArrayLike$9; + var createProperty$3 = createProperty$4; + + var $Array$3 = Array; + var max$1 = Math.max; + + var arraySliceSimple = function (O, start, end) { + var length = lengthOfArrayLike$6(O); + var k = toAbsoluteIndex$1(start, length); + var fin = toAbsoluteIndex$1(end === undefined ? length : end, length); + var result = $Array$3(max$1(fin - k, 0)); + for (var n = 0; k < fin; k++, n++) createProperty$3(result, n, O[k]); + result.length = n; + return result; + }; + + /* eslint-disable es/no-object-getownpropertynames -- safe */ + + var classof$3 = classofRaw$2; + var toIndexedObject$3 = toIndexedObject$9; + var $getOwnPropertyNames = objectGetOwnPropertyNames.f; + var arraySlice$1 = arraySliceSimple; + + var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + + var getWindowNames = function (it) { + try { + return $getOwnPropertyNames(it); + } catch (error) { + return arraySlice$1(windowNames); + } + }; + + // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window + objectGetOwnPropertyNamesExternal.f = function getOwnPropertyNames(it) { + return windowNames && classof$3(it) == 'Window' + ? getWindowNames(it) + : $getOwnPropertyNames(toIndexedObject$3(it)); + }; + + // FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it + var fails$b = fails$p; + + var arrayBufferNonExtensible = fails$b(function () { + if (typeof ArrayBuffer == 'function') { + var buffer = new ArrayBuffer(8); + // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe + if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 }); + } + }); + + var fails$a = fails$p; + var isObject$9 = isObject$i; + var classof$2 = classofRaw$2; + var ARRAY_BUFFER_NON_EXTENSIBLE = arrayBufferNonExtensible; + + // eslint-disable-next-line es/no-object-isextensible -- safe + var $isExtensible = Object.isExtensible; + var FAILS_ON_PRIMITIVES$1 = fails$a(function () { $isExtensible(1); }); + + // `Object.isExtensible` method + // https://tc39.es/ecma262/#sec-object.isextensible + var objectIsExtensible = (FAILS_ON_PRIMITIVES$1 || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) { + if (!isObject$9(it)) return false; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof$2(it) == 'ArrayBuffer') return false; + return $isExtensible ? $isExtensible(it) : true; + } : $isExtensible; + + var fails$9 = fails$p; + + var freezing = !fails$9(function () { + // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing + return Object.isExtensible(Object.preventExtensions({})); + }); + + var $$g = _export; + var uncurryThis$9 = functionUncurryThis; + var hiddenKeys = hiddenKeys$5; + var isObject$8 = isObject$i; + var hasOwn$1 = hasOwnProperty_1; + var defineProperty = objectDefineProperty.f; + var getOwnPropertyNamesModule = objectGetOwnPropertyNames; + var getOwnPropertyNamesExternalModule = objectGetOwnPropertyNamesExternal; + var isExtensible = objectIsExtensible; + var uid = uid$3; + var FREEZING = freezing; + + var REQUIRED = false; + var METADATA = uid('meta'); + var id$1 = 0; + + var setMetadata = function (it) { + defineProperty(it, METADATA, { value: { + objectID: 'O' + id$1++, // object ID + weakData: {} // weak collections IDs + } }); + }; + + var fastKey$1 = function (it, create) { + // return a primitive with prefix + if (!isObject$8(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!hasOwn$1(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; + // not necessary to add metadata + if (!create) return 'E'; + // add missing metadata + setMetadata(it); + // return object ID + } return it[METADATA].objectID; + }; + + var getWeakData$1 = function (it, create) { + if (!hasOwn$1(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; + // not necessary to add metadata + if (!create) return false; + // add missing metadata + setMetadata(it); + // return the store of weak collections IDs + } return it[METADATA].weakData; + }; + + // add metadata on freeze-family methods calling + var onFreeze = function (it) { + if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn$1(it, METADATA)) setMetadata(it); + return it; + }; + + var enable = function () { + meta.enable = function () { /* empty */ }; + REQUIRED = true; + var getOwnPropertyNames = getOwnPropertyNamesModule.f; + var splice = uncurryThis$9([].splice); + var test = {}; + test[METADATA] = 1; + + // prevent exposing of metadata key + if (getOwnPropertyNames(test).length) { + getOwnPropertyNamesModule.f = function (it) { + var result = getOwnPropertyNames(it); + for (var i = 0, length = result.length; i < length; i++) { + if (result[i] === METADATA) { + splice(result, i, 1); + break; + } + } return result; + }; + + $$g({ target: 'Object', stat: true, forced: true }, { + getOwnPropertyNames: getOwnPropertyNamesExternalModule.f + }); + } + }; + + var meta = internalMetadata.exports = { + enable: enable, + fastKey: fastKey$1, + getWeakData: getWeakData$1, + onFreeze: onFreeze + }; + + hiddenKeys[METADATA] = true; + + var internalMetadataExports = internalMetadata.exports; + + var isCallable$1 = isCallable$m; + var isObject$7 = isObject$i; + var setPrototypeOf = objectSetPrototypeOf; + + // makes subclassing work correct for wrapped built-ins + var inheritIfRequired$1 = function ($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if ( + // it can work only with native `setPrototypeOf` + setPrototypeOf && + // we haven't completely correct pre-ES6 way for getting `new.target`, so use this + isCallable$1(NewTarget = dummy.constructor) && + NewTarget !== Wrapper && + isObject$7(NewTargetPrototype = NewTarget.prototype) && + NewTargetPrototype !== Wrapper.prototype + ) setPrototypeOf($this, NewTargetPrototype); + return $this; + }; + + var $$f = _export; + var global$4 = global$k; + var uncurryThis$8 = functionUncurryThis; + var isForced = isForced_1; + var defineBuiltIn$1 = defineBuiltIn$8; + var InternalMetadataModule = internalMetadataExports; + var iterate$3 = iterate$6; + var anInstance$2 = anInstance$4; + var isCallable = isCallable$m; + var isNullOrUndefined$2 = isNullOrUndefined$7; + var isObject$6 = isObject$i; + var fails$8 = fails$p; + var checkCorrectnessOfIteration$1 = checkCorrectnessOfIteration$3; + var setToStringTag = setToStringTag$4; + var inheritIfRequired = inheritIfRequired$1; + + var collection$2 = function (CONSTRUCTOR_NAME, wrapper, common) { + var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; + var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; + var ADDER = IS_MAP ? 'set' : 'add'; + var NativeConstructor = global$4[CONSTRUCTOR_NAME]; + var NativePrototype = NativeConstructor && NativeConstructor.prototype; + var Constructor = NativeConstructor; + var exported = {}; + + var fixMethod = function (KEY) { + var uncurriedNativeMethod = uncurryThis$8(NativePrototype[KEY]); + defineBuiltIn$1(NativePrototype, KEY, + KEY == 'add' ? function add(value) { + uncurriedNativeMethod(this, value === 0 ? 0 : value); + return this; + } : KEY == 'delete' ? function (key) { + return IS_WEAK && !isObject$6(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY == 'get' ? function get(key) { + return IS_WEAK && !isObject$6(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY == 'has' ? function has(key) { + return IS_WEAK && !isObject$6(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : function set(key, value) { + uncurriedNativeMethod(this, key === 0 ? 0 : key, value); + return this; + } + ); + }; + + var REPLACE = isForced( + CONSTRUCTOR_NAME, + !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails$8(function () { + new NativeConstructor().entries().next(); + })) + ); + + if (REPLACE) { + // create collection constructor + Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); + InternalMetadataModule.enable(); + } else if (isForced(CONSTRUCTOR_NAME, true)) { + var instance = new Constructor(); + // early implementations not supports chaining + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; + // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false + var THROWS_ON_PRIMITIVES = fails$8(function () { instance.has(1); }); + // most early implementations doesn't supports iterables, most modern - not close it correctly + // eslint-disable-next-line no-new -- required for testing + var ACCEPT_ITERABLES = checkCorrectnessOfIteration$1(function (iterable) { new NativeConstructor(iterable); }); + // for early implementations -0 and +0 not the same + var BUGGY_ZERO = !IS_WEAK && fails$8(function () { + // V8 ~ Chromium 42- fails only with 5+ elements + var $instance = new NativeConstructor(); + var index = 5; + while (index--) $instance[ADDER](index, index); + return !$instance.has(-0); + }); + + if (!ACCEPT_ITERABLES) { + Constructor = wrapper(function (dummy, iterable) { + anInstance$2(dummy, NativePrototype); + var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); + if (!isNullOrUndefined$2(iterable)) iterate$3(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + return that; + }); + Constructor.prototype = NativePrototype; + NativePrototype.constructor = Constructor; + } + + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); + + // weak collections should not contains .clear method + if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear; + } + + exported[CONSTRUCTOR_NAME] = Constructor; + $$f({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported); + + setToStringTag(Constructor, CONSTRUCTOR_NAME); + + if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); + + return Constructor; + }; + + var defineBuiltIn = defineBuiltIn$8; + + var defineBuiltIns$2 = function (target, src, options) { + for (var key in src) defineBuiltIn(target, key, src[key], options); + return target; + }; + + var classof$1 = classofRaw$2; + + // `IsArray` abstract operation + // https://tc39.es/ecma262/#sec-isarray + // eslint-disable-next-line es/no-array-isarray -- safe + var isArray$3 = Array.isArray || function isArray(argument) { + return classof$1(argument) == 'Array'; + }; + + var isArray$2 = isArray$3; + var isConstructor$2 = isConstructor$4; + var isObject$5 = isObject$i; + var wellKnownSymbol$6 = wellKnownSymbol$k; + + var SPECIES$2 = wellKnownSymbol$6('species'); + var $Array$2 = Array; + + // a part of `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesConstructor$1 = function (originalArray) { + var C; + if (isArray$2(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor$2(C) && (C === $Array$2 || isArray$2(C.prototype))) C = undefined; + else if (isObject$5(C)) { + C = C[SPECIES$2]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array$2 : C; + }; + + var arraySpeciesConstructor = arraySpeciesConstructor$1; + + // `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesCreate$2 = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); + }; + + var bind$2 = functionBindContext; + var uncurryThis$7 = functionUncurryThis; + var IndexedObject$2 = indexedObject; + var toObject$5 = toObject$9; + var lengthOfArrayLike$5 = lengthOfArrayLike$9; + var arraySpeciesCreate$1 = arraySpeciesCreate$2; + + var push$2 = uncurryThis$7([].push); + + // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation + var createMethod$3 = function (TYPE) { + var IS_MAP = TYPE == 1; + var IS_FILTER = TYPE == 2; + var IS_SOME = TYPE == 3; + var IS_EVERY = TYPE == 4; + var IS_FIND_INDEX = TYPE == 6; + var IS_FILTER_REJECT = TYPE == 7; + var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject$5($this); + var self = IndexedObject$2(O); + var boundFunction = bind$2(callbackfn, that); + var length = lengthOfArrayLike$5(self); + var index = 0; + var create = specificCreate || arraySpeciesCreate$1; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push$2(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push$2(target, value); // filterReject + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; + }; + + var arrayIteration = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod$3(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod$3(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod$3(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod$3(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod$3(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod$3(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod$3(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod$3(7) + }; + + var uncurryThis$6 = functionUncurryThis; + var defineBuiltIns$1 = defineBuiltIns$2; + var getWeakData = internalMetadataExports.getWeakData; + var anInstance$1 = anInstance$4; + var anObject$1 = anObject$c; + var isNullOrUndefined$1 = isNullOrUndefined$7; + var isObject$4 = isObject$i; + var iterate$2 = iterate$6; + var ArrayIterationModule = arrayIteration; + var hasOwn = hasOwnProperty_1; + var InternalStateModule$1 = internalState; + + var setInternalState$1 = InternalStateModule$1.set; + var internalStateGetterFor$1 = InternalStateModule$1.getterFor; + var find = ArrayIterationModule.find; + var findIndex = ArrayIterationModule.findIndex; + var splice = uncurryThis$6([].splice); + var id = 0; + + // fallback for uncaught frozen keys + var uncaughtFrozenStore = function (state) { + return state.frozen || (state.frozen = new UncaughtFrozenStore()); + }; + + var UncaughtFrozenStore = function () { + this.entries = []; + }; + + var findUncaughtFrozen = function (store, key) { + return find(store.entries, function (it) { + return it[0] === key; + }); + }; + + UncaughtFrozenStore.prototype = { + get: function (key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function (key) { + return !!findUncaughtFrozen(this, key); + }, + set: function (key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value; + else this.entries.push([key, value]); + }, + 'delete': function (key) { + var index = findIndex(this.entries, function (it) { + return it[0] === key; + }); + if (~index) splice(this.entries, index, 1); + return !!~index; + } + }; + + var collectionWeak$1 = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance$1(that, Prototype); + setInternalState$1(that, { + type: CONSTRUCTOR_NAME, + id: id++, + frozen: undefined + }); + if (!isNullOrUndefined$1(iterable)) iterate$2(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor$1(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var data = getWeakData(anObject$1(key), true); + if (data === true) uncaughtFrozenStore(state).set(key, value); + else data[state.id] = value; + return that; + }; + + defineBuiltIns$1(Prototype, { + // `{ WeakMap, WeakSet }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.delete + // https://tc39.es/ecma262/#sec-weakset.prototype.delete + 'delete': function (key) { + var state = getInternalState(this); + if (!isObject$4(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state)['delete'](key); + return data && hasOwn(data, state.id) && delete data[state.id]; + }, + // `{ WeakMap, WeakSet }.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.has + // https://tc39.es/ecma262/#sec-weakset.prototype.has + has: function has(key) { + var state = getInternalState(this); + if (!isObject$4(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).has(key); + return data && hasOwn(data, state.id); + } + }); + + defineBuiltIns$1(Prototype, IS_MAP ? { + // `WeakMap.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.get + get: function get(key) { + var state = getInternalState(this); + if (isObject$4(key)) { + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).get(key); + return data ? data[state.id] : undefined; + } + }, + // `WeakMap.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.set + set: function set(key, value) { + return define(this, key, value); + } + } : { + // `WeakSet.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-weakset.prototype.add + add: function add(value) { + return define(this, value, true); + } + }); + + return Constructor; + } + }; + + var collection$1 = collection$2; + var collectionWeak = collectionWeak$1; + + // `WeakSet` constructor + // https://tc39.es/ecma262/#sec-weakset-constructor + collection$1('WeakSet', function (init) { + return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); }; + }, collectionWeak); + + // iterable DOM collections + // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods + var domIterables = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 + }; + + // in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList` + var documentCreateElement = documentCreateElement$2; + + var classList = documentCreateElement('span').classList; + var DOMTokenListPrototype$2 = classList && classList.constructor && classList.constructor.prototype; + + var domTokenListPrototype = DOMTokenListPrototype$2 === Object.prototype ? undefined : DOMTokenListPrototype$2; + + var global$3 = global$k; + var DOMIterables$1 = domIterables; + var DOMTokenListPrototype$1 = domTokenListPrototype; + var ArrayIteratorMethods = es_array_iterator; + var createNonEnumerableProperty$1 = createNonEnumerableProperty$5; + var wellKnownSymbol$5 = wellKnownSymbol$k; + + var ITERATOR$1 = wellKnownSymbol$5('iterator'); + var TO_STRING_TAG = wellKnownSymbol$5('toStringTag'); + var ArrayValues = ArrayIteratorMethods.values; + + var handlePrototype$1 = function (CollectionPrototype, COLLECTION_NAME) { + if (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[ITERATOR$1] !== ArrayValues) try { + createNonEnumerableProperty$1(CollectionPrototype, ITERATOR$1, ArrayValues); + } catch (error) { + CollectionPrototype[ITERATOR$1] = ArrayValues; + } + if (!CollectionPrototype[TO_STRING_TAG]) { + createNonEnumerableProperty$1(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); + } + if (DOMIterables$1[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { + createNonEnumerableProperty$1(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); + } catch (error) { + CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; + } + } + } + }; + + for (var COLLECTION_NAME$1 in DOMIterables$1) { + handlePrototype$1(global$3[COLLECTION_NAME$1] && global$3[COLLECTION_NAME$1].prototype, COLLECTION_NAME$1); + } + + handlePrototype$1(DOMTokenListPrototype$1, 'DOMTokenList'); + + var fails$7 = fails$p; + var wellKnownSymbol$4 = wellKnownSymbol$k; + var V8_VERSION$1 = engineV8Version; + + var SPECIES$1 = wellKnownSymbol$4('species'); + + var arrayMethodHasSpeciesSupport$4 = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION$1 >= 51 || !fails$7(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES$1] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); + }; + + var $$e = _export; + var isArray$1 = isArray$3; + var isConstructor$1 = isConstructor$4; + var isObject$3 = isObject$i; + var toAbsoluteIndex = toAbsoluteIndex$3; + var lengthOfArrayLike$4 = lengthOfArrayLike$9; + var toIndexedObject$2 = toIndexedObject$9; + var createProperty$2 = createProperty$4; + var wellKnownSymbol$3 = wellKnownSymbol$k; + var arrayMethodHasSpeciesSupport$3 = arrayMethodHasSpeciesSupport$4; + var nativeSlice = arraySlice$3; + + var HAS_SPECIES_SUPPORT$2 = arrayMethodHasSpeciesSupport$3('slice'); + + var SPECIES = wellKnownSymbol$3('species'); + var $Array$1 = Array; + var max = Math.max; + + // `Array.prototype.slice` method + // https://tc39.es/ecma262/#sec-array.prototype.slice + // fallback for not array-like ES3 strings and DOM objects + $$e({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$2 }, { + slice: function slice(start, end) { + var O = toIndexedObject$2(this); + var length = lengthOfArrayLike$4(O); + var k = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible + var Constructor, result, n; + if (isArray$1(O)) { + Constructor = O.constructor; + // cross-realm fallback + if (isConstructor$1(Constructor) && (Constructor === $Array$1 || isArray$1(Constructor.prototype))) { + Constructor = undefined; + } else if (isObject$3(Constructor)) { + Constructor = Constructor[SPECIES]; + if (Constructor === null) Constructor = undefined; + } + if (Constructor === $Array$1 || Constructor === undefined) { + return nativeSlice(O, k, fin); + } + } + result = new (Constructor === undefined ? $Array$1 : Constructor)(max(fin - k, 0)); + for (n = 0; k < fin; k++, n++) if (k in O) createProperty$2(result, n, O[k]); + result.length = n; + return result; + } + }); + + var fails$6 = fails$p; + + var arrayMethodIsStrict$4 = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails$6(function () { + // eslint-disable-next-line no-useless-call -- required for testing + method.call(null, argument || function () { return 1; }, 1); + }); + }; + + var $$d = _export; + var uncurryThis$5 = functionUncurryThis; + var IndexedObject$1 = indexedObject; + var toIndexedObject$1 = toIndexedObject$9; + var arrayMethodIsStrict$3 = arrayMethodIsStrict$4; + + var nativeJoin = uncurryThis$5([].join); + + var ES3_STRINGS = IndexedObject$1 != Object; + var FORCED$4 = ES3_STRINGS || !arrayMethodIsStrict$3('join', ','); + + // `Array.prototype.join` method + // https://tc39.es/ecma262/#sec-array.prototype.join + $$d({ target: 'Array', proto: true, forced: FORCED$4 }, { + join: function join(separator) { + return nativeJoin(toIndexedObject$1(this), separator === undefined ? ',' : separator); + } + }); + + /****************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + /* global Reflect, Promise */ + + + function __classPrivateFieldGet(receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); + } + + var $$c = _export; + var toObject$4 = toObject$9; + var nativeKeys = objectKeys$3; + var fails$5 = fails$p; + + var FAILS_ON_PRIMITIVES = fails$5(function () { nativeKeys(1); }); + + // `Object.keys` method + // https://tc39.es/ecma262/#sec-object.keys + $$c({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { + keys: function keys(it) { + return nativeKeys(toObject$4(it)); + } + }); + + var isObject$2 = isObject$i; + var classof = classofRaw$2; + var wellKnownSymbol$2 = wellKnownSymbol$k; + + var MATCH$1 = wellKnownSymbol$2('match'); + + // `IsRegExp` abstract operation + // https://tc39.es/ecma262/#sec-isregexp + var isRegexp = function (it) { + var isRegExp; + return isObject$2(it) && ((isRegExp = it[MATCH$1]) !== undefined ? !!isRegExp : classof(it) == 'RegExp'); + }; + + var isRegExp = isRegexp; + + var $TypeError$3 = TypeError; + + var notARegexp = function (it) { + if (isRegExp(it)) { + throw $TypeError$3("The method doesn't accept regular expressions"); + } return it; + }; + + var wellKnownSymbol$1 = wellKnownSymbol$k; + + var MATCH = wellKnownSymbol$1('match'); + + var correctIsRegexpLogic = function (METHOD_NAME) { + var regexp = /./; + try { + '/./'[METHOD_NAME](regexp); + } catch (error1) { + try { + regexp[MATCH] = false; + return '/./'[METHOD_NAME](regexp); + } catch (error2) { /* empty */ } + } return false; + }; + + var $$b = _export; + var uncurryThis$4 = functionUncurryThisClause; + var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; + var toLength = toLength$2; + var toString$3 = toString$6; + var notARegExp = notARegexp; + var requireObjectCoercible$1 = requireObjectCoercible$5; + var correctIsRegExpLogic = correctIsRegexpLogic; + + // eslint-disable-next-line es/no-string-prototype-startswith -- safe + var nativeStartsWith = uncurryThis$4(''.startsWith); + var stringSlice = uncurryThis$4(''.slice); + var min = Math.min; + + var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith'); + // https://github.com/zloirock/core-js/pull/702 + var MDN_POLYFILL_BUG = !CORRECT_IS_REGEXP_LOGIC && !!function () { + var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith'); + return descriptor && !descriptor.writable; + }(); + + // `String.prototype.startsWith` method + // https://tc39.es/ecma262/#sec-string.prototype.startswith + $$b({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { + startsWith: function startsWith(searchString /* , position = 0 */) { + var that = toString$3(requireObjectCoercible$1(this)); + notARegExp(searchString); + var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length)); + var search = toString$3(searchString); + return nativeStartsWith + ? nativeStartsWith(that, search, index) + : stringSlice(that, index, index + search.length) === search; + } + }); + + var $forEach = arrayIteration.forEach; + var arrayMethodIsStrict$2 = arrayMethodIsStrict$4; + + var STRICT_METHOD$1 = arrayMethodIsStrict$2('forEach'); + + // `Array.prototype.forEach` method implementation + // https://tc39.es/ecma262/#sec-array.prototype.foreach + var arrayForEach = !STRICT_METHOD$1 ? function forEach(callbackfn /* , thisArg */) { + return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + // eslint-disable-next-line es/no-array-prototype-foreach -- safe + } : [].forEach; + + var global$2 = global$k; + var DOMIterables = domIterables; + var DOMTokenListPrototype = domTokenListPrototype; + var forEach = arrayForEach; + var createNonEnumerableProperty = createNonEnumerableProperty$5; + + var handlePrototype = function (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { + createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach); + } catch (error) { + CollectionPrototype.forEach = forEach; + } + }; + + for (var COLLECTION_NAME in DOMIterables) { + if (DOMIterables[COLLECTION_NAME]) { + handlePrototype(global$2[COLLECTION_NAME] && global$2[COLLECTION_NAME].prototype); + } + } + + handlePrototype(DOMTokenListPrototype); + + var DESCRIPTORS$1 = descriptors; + var uncurryThis$3 = functionUncurryThis; + var objectKeys = objectKeys$3; + var toIndexedObject = toIndexedObject$9; + var $propertyIsEnumerable = objectPropertyIsEnumerable.f; + + var propertyIsEnumerable = uncurryThis$3($propertyIsEnumerable); + var push$1 = uncurryThis$3([].push); + + // `Object.{ entries, values }` methods implementation + var createMethod$2 = function (TO_ENTRIES) { + return function (it) { + var O = toIndexedObject(it); + var keys = objectKeys(O); + var length = keys.length; + var i = 0; + var result = []; + var key; + while (length > i) { + key = keys[i++]; + if (!DESCRIPTORS$1 || propertyIsEnumerable(O, key)) { + push$1(result, TO_ENTRIES ? [key, O[key]] : O[key]); + } + } + return result; + }; + }; + + var objectToArray = { + // `Object.entries` method + // https://tc39.es/ecma262/#sec-object.entries + entries: createMethod$2(true), + // `Object.values` method + // https://tc39.es/ecma262/#sec-object.values + values: createMethod$2(false) + }; + + var $$a = _export; + var $entries = objectToArray.entries; + + // `Object.entries` method + // https://tc39.es/ecma262/#sec-object.entries + $$a({ target: 'Object', stat: true }, { + entries: function entries(O) { + return $entries(O); + } + }); + + function defined(x) { + return x != null && !Number.isNaN(x); + } + + function ascendingDefined(a, b) { + return +defined(b) - +defined(a) || d3.ascending(a, b); + } + + function finite(x) { + return isFinite(x) ? x : NaN; + } + + function positive(x) { + return x > 0 && isFinite(x) ? x : NaN; + } + + function negative(x) { + return x < 0 && isFinite(x) ? x : NaN; + } + + const re = /^(?:[-+]\d{2})?\d{4}(?:-\d{2}(?:-\d{2})?)?(?:T\d{2}:\d{2}(?::\d{2}(?:\.\d{3})?)?(?:Z|[-+]\d{2}:?\d{2})?)?$/; + + function parse(string, fallback) { + if (!re.test(string += "")) return typeof fallback === "function" ? fallback(string) : fallback; + return new Date(string); + } + + const timeIntervals = new Map([ + ["second", d3.timeSecond], + ["minute", d3.timeMinute], + ["hour", d3.timeHour], + ["day", d3.timeDay], + ["week", d3.timeWeek], + ["month", d3.timeMonth], + ["quarter", d3.timeMonth.every(3)], + ["half", d3.timeMonth.every(6)], + ["year", d3.timeYear], + ["monday", d3.timeMonday], + ["tuesday", d3.timeTuesday], + ["wednesday", d3.timeWednesday], + ["thursday", d3.timeThursday], + ["friday", d3.timeFriday], + ["saturday", d3.timeSaturday], + ["sunday", d3.timeSunday] + ]); + + const utcIntervals = new Map([ + ["second", d3.utcSecond], + ["minute", d3.utcMinute], + ["hour", d3.utcHour], + ["day", d3.utcDay], + ["week", d3.utcWeek], + ["month", d3.utcMonth], + ["quarter", d3.utcMonth.every(3)], + ["half", d3.utcMonth.every(6)], + ["year", d3.utcYear], + ["monday", d3.utcMonday], + ["tuesday", d3.utcTuesday], + ["wednesday", d3.utcWednesday], + ["thursday", d3.utcThursday], + ["friday", d3.utcFriday], + ["saturday", d3.utcSaturday], + ["sunday", d3.utcSunday] + ]); + + function maybeTimeInterval(interval) { + const i = timeIntervals.get(`${interval}`.toLowerCase()); + if (!i) throw new Error(`unknown interval: ${interval}`); + return i; + } + + function maybeUtcInterval(interval) { + const i = utcIntervals.get(`${interval}`.toLowerCase()); + if (!i) throw new Error(`unknown interval: ${interval}`); + return i; + } + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray + const TypedArray = Object.getPrototypeOf(Uint8Array); + const objectToString = Object.prototype.toString; + const constant = (x) => () => x; + + // If the values are specified as a typed array, no coercion is required. + function coerceNumbers(values) { + return values instanceof TypedArray ? values : map(values, coerceNumber, Float64Array); + } + + // Unlike Mark’s number, here we want to convert null and undefined to NaN since + // the result will be stored in a Float64Array and we don’t want null to be + // coerced to zero. We use Number instead of unary + to allow BigInt coercion. + function coerceNumber(x) { + return x == null ? NaN : Number(x); + } + + function coerceDates(values) { + return map(values, coerceDate); + } + + // When coercing strings to dates, we only want to allow the ISO 8601 format + // since the built-in string parsing of the Date constructor varies across + // browsers. (In the future, this could be made more liberal if desired, though + // it is still generally preferable to do date parsing yourself explicitly, + // rather than rely on Plot.) Any non-string values are coerced to number first + // and treated as milliseconds since UNIX epoch. + function coerceDate(x) { + return x instanceof Date && !isNaN(x) + ? x + : typeof x === "string" + ? parse(x) + : x == null || isNaN((x = +x)) + ? undefined + : new Date(x); + } + + // Promotes the specified data to an array as needed. + function arrayify(data) { + return data == null || data instanceof Array || data instanceof TypedArray ? data : Array.from(data); + } + + // An optimization of type.from(values, f): if the given values are already an + // instanceof the desired array type, the faster values.map method is used. + function map(values, f, type = Array) { + return values == null ? values : values instanceof type ? values.map(f) : type.from(values, f); + } + + // An optimization of type.from(values): if the given values are already an + // instanceof the desired array type, the faster values.slice method is used. + function slice(values, type = Array) { + return values instanceof type ? values.slice() : type.from(values); + } + + // Disambiguates an options object (e.g., {y: "x2"}) from a primitive value. + function isObject$1(option) { + return option?.toString === objectToString; + } + + // Disambiguates a scale options object (e.g., {color: {type: "linear"}}) from + // some other option (e.g., {color: "red"}). When creating standalone legends, + // this is used to test whether a scale is defined; this should be consistent + // with inferScaleType when there are no channels associated with the scale, and + // if this returns true, then normalizeScale must return non-null. + function isScaleOptions(option) { + return isObject$1(option) && (option.type !== undefined || option.domain !== undefined); + } + + // If interval is not nullish, converts interval shorthand such as a number (for + // multiples) or a time interval name (such as “dayâ€) to a {floor, offset, + // range} object similar to a D3 time interval. + function maybeInterval(interval, type) { + if (interval == null) return; + if (typeof interval === "number") { + if (0 < interval && interval < 1 && Number.isInteger(1 / interval)) interval = -1 / interval; + const n = Math.abs(interval); + return interval < 0 + ? { + floor: (d) => Math.floor(d * n) / n, + offset: (d) => (d * n + 1) / n, // note: no optional step for simplicity + range: (lo, hi) => d3.range(Math.ceil(lo * n), hi * n).map((x) => x / n) + } + : { + floor: (d) => Math.floor(d / n) * n, + offset: (d) => d + n, // note: no optional step for simplicity + range: (lo, hi) => d3.range(Math.ceil(lo / n), hi / n).map((x) => x * n) + }; + } + if (typeof interval === "string") return (type === "time" ? maybeTimeInterval : maybeUtcInterval)(interval); + if (typeof interval.floor !== "function") throw new Error("invalid interval; missing floor method"); + if (typeof interval.offset !== "function") throw new Error("invalid interval; missing offset method"); + return interval; + } + + // Like maybeInterval, but requires a range method too. + function maybeRangeInterval(interval, type) { + interval = maybeInterval(interval, type); + if (interval && typeof interval.range !== "function") throw new Error("invalid interval: missing range method"); + return interval; + } + + // Like maybeRangeInterval, but requires a ceil method too. + function maybeNiceInterval(interval, type) { + interval = maybeRangeInterval(interval, type); + if (interval && typeof interval.ceil !== "function") throw new Error("invalid interval: missing ceil method"); + return interval; + } + + function isOrdinal(values) { + for (const value of values) { + if (value == null) continue; + const type = typeof value; + return type === "string" || type === "boolean"; + } + } + + function isTemporal(values) { + for (const value of values) { + if (value == null) continue; + return value instanceof Date; + } + } + + // Are these strings that might represent dates? This is stricter than ISO 8601 + // because we want to ignore false positives on numbers; for example, the string + // "1192" is more likely to represent a number than a date even though it is + // valid ISO 8601 representing 1192-01-01. + function isTemporalString(values) { + for (const value of values) { + if (value == null) continue; + return typeof value === "string" && isNaN(value) && parse(value); + } + } + + // Are these strings that might represent numbers? This is stricter than + // coercion because we want to ignore false positives on e.g. empty strings. + function isNumericString(values) { + for (const value of values) { + if (value == null) continue; + if (typeof value !== "string") return false; + if (!value.trim()) continue; + return !isNaN(value); + } + } + + function isNoneish(value) { + return value == null || isNone(value); + } + + function isNone(value) { + return /^\s*none\s*$/i.test(value); + } + + // Like a sort comparator, returns a positive value if the given array of values + // is in ascending order, a negative value if the values are in descending + // order. Assumes monotonicity; only tests the first and last values. + function orderof(values) { + if (values == null) return; + const first = values[0]; + const last = values[values.length - 1]; + return d3.descending(first, last); + } + + // Positional scales have associated axes, and for ordinal data, a point or band + // scale is used instead of an ordinal scale. + const position = Symbol("position"); + + // Color scales default to the turbo interpolator for quantitative data, and to + // the Tableau10 scheme for ordinal data. Color scales may also have an + // associated legend. + const color = Symbol("color"); + + // Radius scales default to the sqrt type, have a default range of [0, 3], and a + // default domain from 0 to the median first quartile of associated channels. + const radius = Symbol("radius"); + + // Length scales default to the linear type, have a default range of [0, 12], + // and a default domain from 0 to the median median of associated channels. + const length = Symbol("length"); + + // Opacity scales have a default range of [0, 1], and a default domain from 0 to + // the maximum value of associated channels. + const opacity = Symbol("opacity"); + + // Symbol scales have a default range of categorical symbols. + const symbol = Symbol("symbol"); + + // TODO Rather than hard-coding the list of known scale names, collect the names + // and categories for each plot specification, so that custom marks can register + // custom scales. + const registry = new Map([ + ["x", position], + ["y", position], + ["fx", position], + ["fy", position], + ["r", radius], + ["color", color], + ["opacity", opacity], + ["symbol", symbol], + ["length", length] + ]); + + const sqrt3 = Math.sqrt(3); + const sqrt4_3 = 2 / sqrt3; + + const symbolHexagon = { + draw(context, size) { + const rx = Math.sqrt(size / Math.PI), + ry = rx * sqrt4_3, + hy = ry / 2; + context.moveTo(0, ry); + context.lineTo(rx, hy); + context.lineTo(rx, -hy); + context.lineTo(0, -ry); + context.lineTo(-rx, -hy); + context.lineTo(-rx, hy); + context.closePath(); + } + }; + + const symbols = new Map([ + ["asterisk", d3.symbolAsterisk], + ["circle", d3.symbolCircle], + ["cross", d3.symbolCross], + ["diamond", d3.symbolDiamond], + ["diamond2", d3.symbolDiamond2], + ["hexagon", symbolHexagon], + ["plus", d3.symbolPlus], + ["square", d3.symbolSquare], + ["square2", d3.symbolSquare2], + ["star", d3.symbolStar], + ["times", d3.symbolTimes], + ["triangle", d3.symbolTriangle], + ["triangle2", d3.symbolTriangle2], + ["wye", d3.symbolWye] + ]); + + function isSymbolObject(value) { + return value && typeof value.draw === "function"; + } + + function maybeSymbol(symbol) { + if (symbol == null || isSymbolObject(symbol)) return symbol; + const value = symbols.get(`${symbol}`.toLowerCase()); + if (value) return value; + throw new Error(`invalid symbol: ${symbol}`); + } + + function warn(message) { + console.warn(message); + } + + const ordinalSchemes = new Map([ + // categorical + ["accent", d3.schemeAccent], + ["category10", d3.schemeCategory10], + ["dark2", d3.schemeDark2], + ["paired", d3.schemePaired], + ["pastel1", d3.schemePastel1], + ["pastel2", d3.schemePastel2], + ["set1", d3.schemeSet1], + ["set2", d3.schemeSet2], + ["set3", d3.schemeSet3], + ["tableau10", d3.schemeTableau10], + + // diverging + ["brbg", scheme11(d3.schemeBrBG, d3.interpolateBrBG)], + ["prgn", scheme11(d3.schemePRGn, d3.interpolatePRGn)], + ["piyg", scheme11(d3.schemePiYG, d3.interpolatePiYG)], + ["puor", scheme11(d3.schemePuOr, d3.interpolatePuOr)], + ["rdbu", scheme11(d3.schemeRdBu, d3.interpolateRdBu)], + ["rdgy", scheme11(d3.schemeRdGy, d3.interpolateRdGy)], + ["rdylbu", scheme11(d3.schemeRdYlBu, d3.interpolateRdYlBu)], + ["rdylgn", scheme11(d3.schemeRdYlGn, d3.interpolateRdYlGn)], + ["spectral", scheme11(d3.schemeSpectral, d3.interpolateSpectral)], + + // reversed diverging (for temperature data) + ["burd", scheme11r(d3.schemeRdBu, d3.interpolateRdBu)], + ["buylrd", scheme11r(d3.schemeRdYlBu, d3.interpolateRdYlBu)], + + // sequential (single-hue) + ["blues", scheme9(d3.schemeBlues, d3.interpolateBlues)], + ["greens", scheme9(d3.schemeGreens, d3.interpolateGreens)], + ["greys", scheme9(d3.schemeGreys, d3.interpolateGreys)], + ["oranges", scheme9(d3.schemeOranges, d3.interpolateOranges)], + ["purples", scheme9(d3.schemePurples, d3.interpolatePurples)], + ["reds", scheme9(d3.schemeReds, d3.interpolateReds)], + + // sequential (multi-hue) + ["turbo", schemei(d3.interpolateTurbo)], + ["viridis", schemei(d3.interpolateViridis)], + ["magma", schemei(d3.interpolateMagma)], + ["inferno", schemei(d3.interpolateInferno)], + ["plasma", schemei(d3.interpolatePlasma)], + ["cividis", schemei(d3.interpolateCividis)], + ["cubehelix", schemei(d3.interpolateCubehelixDefault)], + ["warm", schemei(d3.interpolateWarm)], + ["cool", schemei(d3.interpolateCool)], + ["bugn", scheme9(d3.schemeBuGn, d3.interpolateBuGn)], + ["bupu", scheme9(d3.schemeBuPu, d3.interpolateBuPu)], + ["gnbu", scheme9(d3.schemeGnBu, d3.interpolateGnBu)], + ["orrd", scheme9(d3.schemeOrRd, d3.interpolateOrRd)], + ["pubu", scheme9(d3.schemePuBu, d3.interpolatePuBu)], + ["pubugn", scheme9(d3.schemePuBuGn, d3.interpolatePuBuGn)], + ["purd", scheme9(d3.schemePuRd, d3.interpolatePuRd)], + ["rdpu", scheme9(d3.schemeRdPu, d3.interpolateRdPu)], + ["ylgn", scheme9(d3.schemeYlGn, d3.interpolateYlGn)], + ["ylgnbu", scheme9(d3.schemeYlGnBu, d3.interpolateYlGnBu)], + ["ylorbr", scheme9(d3.schemeYlOrBr, d3.interpolateYlOrBr)], + ["ylorrd", scheme9(d3.schemeYlOrRd, d3.interpolateYlOrRd)], + + // cyclical + ["rainbow", schemeicyclical(d3.interpolateRainbow)], + ["sinebow", schemeicyclical(d3.interpolateSinebow)] + ]); + + function scheme9(scheme, interpolate) { + return ({length: n}) => { + if (n === 1) return [scheme[3][1]]; // favor midpoint + if (n === 2) return [scheme[3][1], scheme[3][2]]; // favor darker + n = Math.max(3, Math.floor(n)); + return n > 9 ? d3.quantize(interpolate, n) : scheme[n]; + }; + } + + function scheme11(scheme, interpolate) { + return ({length: n}) => { + if (n === 2) return [scheme[3][0], scheme[3][2]]; // favor diverging extrema + n = Math.max(3, Math.floor(n)); + return n > 11 ? d3.quantize(interpolate, n) : scheme[n]; + }; + } + + function scheme11r(scheme, interpolate) { + return ({length: n}) => { + if (n === 2) return [scheme[3][2], scheme[3][0]]; // favor diverging extrema + n = Math.max(3, Math.floor(n)); + return n > 11 ? d3.quantize((t) => interpolate(1 - t), n) : scheme[n].slice().reverse(); + }; + } + + function schemei(interpolate) { + return ({length: n}) => d3.quantize(interpolate, Math.max(2, Math.floor(n))); + } + + function schemeicyclical(interpolate) { + return ({length: n}) => d3.quantize(interpolate, Math.floor(n) + 1).slice(0, -1); + } + + function ordinalScheme(scheme) { + const s = `${scheme}`.toLowerCase(); + if (!ordinalSchemes.has(s)) throw new Error(`unknown ordinal scheme: ${s}`); + return ordinalSchemes.get(s); + } + + function ordinalRange(scheme, length) { + const s = ordinalScheme(scheme); + const r = typeof s === "function" ? s({length}) : s; + return r.length !== length ? r.slice(0, length) : r; + } + + // If the specified domain contains only booleans (ignoring null and undefined), + // returns a corresponding range where false is mapped to the low color and true + // is mapped to the high color of the specified scheme. + function maybeBooleanRange(domain, scheme = "greys") { + const range = new Set(); + const [f, t] = ordinalRange(scheme, 2); + for (const value of domain) { + if (value == null) continue; + if (value === true) range.add(t); + else if (value === false) range.add(f); + else return; + } + return [...range]; + } + + const quantitativeSchemes = new Map([ + // diverging + ["brbg", d3.interpolateBrBG], + ["prgn", d3.interpolatePRGn], + ["piyg", d3.interpolatePiYG], + ["puor", d3.interpolatePuOr], + ["rdbu", d3.interpolateRdBu], + ["rdgy", d3.interpolateRdGy], + ["rdylbu", d3.interpolateRdYlBu], + ["rdylgn", d3.interpolateRdYlGn], + ["spectral", d3.interpolateSpectral], + + // reversed diverging (for temperature data) + ["burd", (t) => d3.interpolateRdBu(1 - t)], + ["buylrd", (t) => d3.interpolateRdYlBu(1 - t)], + + // sequential (single-hue) + ["blues", d3.interpolateBlues], + ["greens", d3.interpolateGreens], + ["greys", d3.interpolateGreys], + ["purples", d3.interpolatePurples], + ["reds", d3.interpolateReds], + ["oranges", d3.interpolateOranges], + + // sequential (multi-hue) + ["turbo", d3.interpolateTurbo], + ["viridis", d3.interpolateViridis], + ["magma", d3.interpolateMagma], + ["inferno", d3.interpolateInferno], + ["plasma", d3.interpolatePlasma], + ["cividis", d3.interpolateCividis], + ["cubehelix", d3.interpolateCubehelixDefault], + ["warm", d3.interpolateWarm], + ["cool", d3.interpolateCool], + ["bugn", d3.interpolateBuGn], + ["bupu", d3.interpolateBuPu], + ["gnbu", d3.interpolateGnBu], + ["orrd", d3.interpolateOrRd], + ["pubugn", d3.interpolatePuBuGn], + ["pubu", d3.interpolatePuBu], + ["purd", d3.interpolatePuRd], + ["rdpu", d3.interpolateRdPu], + ["ylgnbu", d3.interpolateYlGnBu], + ["ylgn", d3.interpolateYlGn], + ["ylorbr", d3.interpolateYlOrBr], + ["ylorrd", d3.interpolateYlOrRd], + + // cyclical + ["rainbow", d3.interpolateRainbow], + ["sinebow", d3.interpolateSinebow] + ]); + + function quantitativeScheme(scheme) { + const s = `${scheme}`.toLowerCase(); + if (!quantitativeSchemes.has(s)) throw new Error(`unknown quantitative scheme: ${s}`); + return quantitativeSchemes.get(s); + } + + const divergingSchemes = new Set([ + "brbg", + "prgn", + "piyg", + "puor", + "rdbu", + "rdgy", + "rdylbu", + "rdylgn", + "spectral", + "burd", + "buylrd" + ]); + + function isDivergingScheme(scheme) { + return scheme != null && divergingSchemes.has(`${scheme}`.toLowerCase()); + } + + const flip = (i) => (t) => i(1 - t); + const unit = [0, 1]; + + const interpolators = new Map([ + // numbers + ["number", d3.interpolateNumber], + + // color spaces + ["rgb", d3.interpolateRgb], + ["hsl", d3.interpolateHsl], + ["hcl", d3.interpolateHcl], + ["lab", d3.interpolateLab] + ]); + + function maybeInterpolator(interpolate) { + const i = `${interpolate}`.toLowerCase(); + if (!interpolators.has(i)) throw new Error(`unknown interpolator: ${i}`); + return interpolators.get(i); + } + + function createScaleQ( + key, + scale, + channels, + { + type, + nice, + clamp, + zero, + domain = inferAutoDomain(key, channels), + unknown, + round, + scheme, + interval, + range = registry.get(key) === radius + ? inferRadialRange(channels, domain) + : registry.get(key) === length + ? inferLengthRange(channels, domain) + : registry.get(key) === opacity + ? unit + : undefined, + interpolate = registry.get(key) === color + ? scheme == null && range !== undefined + ? d3.interpolateRgb + : quantitativeScheme(scheme !== undefined ? scheme : type === "cyclical" ? "rainbow" : "turbo") + : round + ? d3.interpolateRound + : d3.interpolateNumber, + reverse + } + ) { + interval = maybeRangeInterval(interval, type); + if (type === "cyclical" || type === "sequential") type = "linear"; // shorthand for color schemes + reverse = !!reverse; + + // Sometimes interpolate is a named interpolator, such as "lab" for Lab color + // space. Other times interpolate is a function that takes two arguments and + // is used in conjunction with the range. And other times the interpolate + // function is a “fixed†interpolator on the [0, 1] interval, as when a + // color scheme such as interpolateRdBu is used. + if (typeof interpolate !== "function") { + interpolate = maybeInterpolator(interpolate); + } + if (interpolate.length === 1) { + if (reverse) { + interpolate = flip(interpolate); + reverse = false; + } + if (range === undefined) { + range = Float64Array.from(domain, (_, i) => i / (domain.length - 1)); + if (range.length === 2) range = unit; // optimize common case of [0, 1] + } + scale.interpolate((range === unit ? constant : interpolatePiecewise)(interpolate)); + } else { + scale.interpolate(interpolate); + } + + // If a zero option is specified, we assume that the domain is numeric, and we + // want to ensure that the domain crosses zero. However, note that the domain + // may be reversed (descending) so we shouldn’t assume that the first value is + // smaller than the last; and also it’s possible that the domain has more than + // two values for a “poly†scale. And lastly be careful not to mutate input! + if (zero) { + const [min, max] = d3.extent(domain); + if (min > 0 || max < 0) { + domain = slice(domain); + if (orderof(domain) !== Math.sign(min)) domain[domain.length - 1] = 0; + // [2, 1] or [-2, -1] + else domain[0] = 0; // [1, 2] or [-1, -2] + } + } + + if (reverse) domain = d3.reverse(domain); + scale.domain(domain).unknown(unknown); + if (nice) scale.nice(maybeNice(nice, type)), (domain = scale.domain()); + if (range !== undefined) scale.range(range); + if (clamp) scale.clamp(clamp); + return {type, domain, range, scale, interpolate, interval}; + } + + function maybeNice(nice, type) { + return nice === true ? undefined : typeof nice === "number" ? nice : maybeNiceInterval(nice, type); + } + + function createScaleLinear(key, channels, options) { + return createScaleQ(key, d3.scaleLinear(), channels, options); + } + + function createScaleSqrt(key, channels, options) { + return createScalePow(key, channels, {...options, exponent: 0.5}); + } + + function createScalePow(key, channels, {exponent = 1, ...options}) { + return createScaleQ(key, d3.scalePow().exponent(exponent), channels, {...options, type: "pow"}); + } + + function createScaleLog(key, channels, {base = 10, domain = inferLogDomain(channels), ...options}) { + return createScaleQ(key, d3.scaleLog().base(base), channels, {...options, domain}); + } + + function createScaleSymlog(key, channels, {constant = 1, ...options}) { + return createScaleQ(key, d3.scaleSymlog().constant(constant), channels, options); + } + + function createScaleQuantile( + key, + channels, + { + range, + quantiles = range === undefined ? 5 : (range = [...range]).length, // deprecated; use n instead + n = quantiles, + scheme = "rdylbu", + domain = inferQuantileDomain(channels), + unknown, + interpolate, + reverse + } + ) { + if (range === undefined) { + range = + interpolate !== undefined + ? d3.quantize(interpolate, n) + : registry.get(key) === color + ? ordinalRange(scheme, n) + : undefined; + } + if (domain.length > 0) { + domain = d3.scaleQuantile(domain, range === undefined ? {length: n} : range).quantiles(); + } + return createScaleThreshold(key, channels, {domain, range, reverse, unknown}); + } + + function createScaleQuantize( + key, + channels, + { + range, + n = range === undefined ? 5 : (range = [...range]).length, + scheme = "rdylbu", + domain = inferAutoDomain(key, channels), + unknown, + interpolate, + reverse + } + ) { + const [min, max] = d3.extent(domain); + let thresholds; + if (range === undefined) { + thresholds = d3.ticks(min, max, n); // approximate number of nice, round thresholds + if (thresholds[0] <= min) thresholds.splice(0, 1); // drop exact lower bound + if (thresholds[thresholds.length - 1] >= max) thresholds.pop(); // drop exact upper bound + n = thresholds.length + 1; + range = + interpolate !== undefined + ? d3.quantize(interpolate, n) + : registry.get(key) === color + ? ordinalRange(scheme, n) + : undefined; + } else { + thresholds = d3.quantize(d3.interpolateNumber(min, max), n + 1).slice(1, -1); // exactly n - 1 thresholds to match range + if (min instanceof Date) thresholds = thresholds.map((x) => new Date(x)); // preserve date types + } + if (orderof(arrayify(domain)) < 0) thresholds.reverse(); // preserve descending domain + return createScaleThreshold(key, channels, {domain: thresholds, range, reverse, unknown}); + } + + function createScaleThreshold( + key, + channels, + { + domain = [0], // explicit thresholds in ascending order + unknown, + scheme = "rdylbu", + interpolate, + range = interpolate !== undefined + ? d3.quantize(interpolate, domain.length + 1) + : registry.get(key) === color + ? ordinalRange(scheme, domain.length + 1) + : undefined, + reverse + } + ) { + domain = arrayify(domain); + const sign = orderof(domain); // preserve descending domain + if (!isNaN(sign) && !isOrdered(domain, sign)) throw new Error(`the ${key} scale has a non-monotonic domain`); + if (reverse) range = d3.reverse(range); // domain ascending, so reverse range + return { + type: "threshold", + scale: d3.scaleThreshold(sign < 0 ? d3.reverse(domain) : domain, range === undefined ? [] : range).unknown(unknown), + domain, + range + }; + } + + function isOrdered(domain, sign) { + for (let i = 1, n = domain.length, d = domain[0]; i < n; ++i) { + const s = d3.descending(d, (d = domain[i])); + if (s !== 0 && s !== sign) return false; + } + return true; + } + + function createScaleIdentity() { + return {type: "identity", scale: d3.scaleIdentity()}; + } + + function inferDomain$1(channels, f = finite) { + return channels.length + ? [ + d3.min(channels, ({value}) => (value === undefined ? value : d3.min(value, f))), + d3.max(channels, ({value}) => (value === undefined ? value : d3.max(value, f))) + ] + : [0, 1]; + } + + function inferAutoDomain(key, channels) { + const type = registry.get(key); + return (type === radius || type === opacity || type === length ? inferZeroDomain : inferDomain$1)(channels); + } + + function inferZeroDomain(channels) { + return [0, channels.length ? d3.max(channels, ({value}) => (value === undefined ? value : d3.max(value, finite))) : 1]; + } + + // We don’t want the upper bound of the radial domain to be zero, as this would + // be degenerate, so we ignore nonpositive values. We also don’t want the + // maximum default radius to exceed 30px. + function inferRadialRange(channels, domain) { + const hint = channels.find(({radius}) => radius !== undefined); + if (hint !== undefined) return [0, hint.radius]; // a natural maximum radius, e.g. hexbins + const h25 = d3.quantile(channels, 0.5, ({value}) => (value === undefined ? NaN : d3.quantile(value, 0.25, positive))); + const range = domain.map((d) => 3 * Math.sqrt(d / h25)); + const k = 30 / d3.max(range); + return k < 1 ? range.map((r) => r * k) : range; + } + + // We want a length scale’s domain to go from zero to a positive value, and to + // treat negative lengths if any as inverted vectors of equivalent magnitude. We + // also don’t want the maximum default length to exceed 60px. + function inferLengthRange(channels, domain) { + const h50 = d3.median(channels, ({value}) => (value === undefined ? NaN : d3.median(value, Math.abs))); + const range = domain.map((d) => (12 * d) / h50); + const k = 60 / d3.max(range); + return k < 1 ? range.map((r) => r * k) : range; + } + + function inferLogDomain(channels) { + for (const {value} of channels) { + if (value !== undefined) { + for (let v of value) { + if (v > 0) return inferDomain$1(channels, positive); + if (v < 0) return inferDomain$1(channels, negative); + } + } + } + return [1, 10]; + } + + function inferQuantileDomain(channels) { + const domain = []; + for (const {value} of channels) { + if (value === undefined) continue; + for (const v of value) domain.push(v); + } + return domain; + } + + function interpolatePiecewise(interpolate) { + return (i, j) => (t) => interpolate(i + t * (j - i)); + } + + function createScaleD( + key, + scale, + transform, + channels, + { + type, + nice, + clamp, + domain = inferDomain$1(channels), + unknown, + pivot = 0, + scheme, + range, + symmetric = true, + interpolate = registry.get(key) === color + ? scheme == null && range !== undefined + ? d3.interpolateRgb + : quantitativeScheme(scheme !== undefined ? scheme : "rdbu") + : d3.interpolateNumber, + reverse + } + ) { + pivot = +pivot; + let [min, max] = domain; + if (d3.descending(min, max) < 0) ([min, max] = [max, min]), (reverse = !reverse); + min = Math.min(min, pivot); + max = Math.max(max, pivot); + + // Sometimes interpolate is a named interpolator, such as "lab" for Lab color + // space. Other times interpolate is a function that takes two arguments and + // is used in conjunction with the range. And other times the interpolate + // function is a “fixed†interpolator on the [0, 1] interval, as when a + // color scheme such as interpolateRdBu is used. + if (typeof interpolate !== "function") { + interpolate = maybeInterpolator(interpolate); + } + + // If an explicit range is specified, promote it to a piecewise interpolator. + if (range !== undefined) { + interpolate = + interpolate.length === 1 ? interpolatePiecewise(interpolate)(...range) : d3.piecewise(interpolate, range); + } + + // Reverse before normalization. + if (reverse) interpolate = flip(interpolate); + + // Normalize the interpolator for symmetric difference around the pivot. + if (symmetric) { + const mid = transform.apply(pivot); + const mindelta = mid - transform.apply(min); + const maxdelta = transform.apply(max) - mid; + if (mindelta < maxdelta) min = transform.invert(mid - maxdelta); + else if (mindelta > maxdelta) max = transform.invert(mid + mindelta); + } + + scale.domain([min, pivot, max]).unknown(unknown).interpolator(interpolate); + if (clamp) scale.clamp(clamp); + if (nice) scale.nice(nice); + return {type, domain: [min, max], pivot, interpolate, scale}; + } + + function createScaleDiverging(key, channels, options) { + return createScaleD(key, d3.scaleDiverging(), transformIdentity, channels, options); + } + + function createScaleDivergingSqrt(key, channels, options) { + return createScaleDivergingPow(key, channels, {...options, exponent: 0.5}); + } + + function createScaleDivergingPow(key, channels, {exponent = 1, ...options}) { + return createScaleD(key, d3.scaleDivergingPow().exponent((exponent = +exponent)), transformPow(exponent), channels, { + ...options, + type: "diverging-pow" + }); + } + + function createScaleDivergingLog( + key, + channels, + {base = 10, pivot = 1, domain = inferDomain$1(channels, pivot < 0 ? negative : positive), ...options} + ) { + return createScaleD(key, d3.scaleDivergingLog().base((base = +base)), transformLog, channels, { + domain, + pivot, + ...options + }); + } + + function createScaleDivergingSymlog(key, channels, {constant = 1, ...options}) { + return createScaleD( + key, + d3.scaleDivergingSymlog().constant((constant = +constant)), + transformSymlog(constant), + channels, + options + ); + } + + const transformIdentity = { + apply(x) { + return x; + }, + invert(x) { + return x; + } + }; + + const transformLog = { + apply: Math.log, + invert: Math.exp + }; + + const transformSqrt = { + apply(x) { + return Math.sign(x) * Math.sqrt(Math.abs(x)); + }, + invert(x) { + return Math.sign(x) * (x * x); + } + }; + + function transformPow(exponent) { + return exponent === 0.5 + ? transformSqrt + : { + apply(x) { + return Math.sign(x) * Math.pow(Math.abs(x), exponent); + }, + invert(x) { + return Math.sign(x) * Math.pow(Math.abs(x), 1 / exponent); + } + }; + } + + function transformSymlog(constant) { + return { + apply(x) { + return Math.sign(x) * Math.log1p(Math.abs(x / constant)); + }, + invert(x) { + return Math.sign(x) * Math.expm1(Math.abs(x)) * constant; + } + }; + } + + function createScaleT(key, scale, channels, options) { + return createScaleQ(key, scale, channels, options); + } + + function createScaleTime(key, channels, options) { + return createScaleT(key, d3.scaleTime(), channels, options); + } + + function createScaleUtc(key, channels, options) { + return createScaleT(key, d3.scaleUtc(), channels, options); + } + + // This denotes an implicitly ordinal color scale: the scale type was not set, + // but the associated values are strings or booleans. If the associated defined + // values are entirely boolean, the range will default to greys. You can opt out + // of this by setting the type explicitly. + const ordinalImplicit = Symbol("ordinal"); + + function createScaleO(key, scale, channels, {type, interval, domain, range, reverse, hint}) { + interval = maybeRangeInterval(interval, type); + if (domain === undefined) domain = inferDomain(channels, interval, key); + if (type === "categorical" || type === ordinalImplicit) type = "ordinal"; // shorthand for color schemes + if (reverse) domain = d3.reverse(domain); + scale.domain(domain); + if (range !== undefined) { + // If the range is specified as a function, pass it the domain. + if (typeof range === "function") range = range(domain); + scale.range(range); + } + return {type, domain, range, scale, hint, interval}; + } + + function createScaleOrdinal(key, channels, {type, interval, domain, range, scheme, unknown, ...options}) { + interval = maybeRangeInterval(interval, type); + if (domain === undefined) domain = inferDomain(channels, interval, key); + let hint; + if (registry.get(key) === symbol) { + hint = inferSymbolHint(channels); + range = range === undefined ? inferSymbolRange(hint) : map(range, maybeSymbol); + } else if (registry.get(key) === color) { + if (range === undefined && (type === "ordinal" || type === ordinalImplicit)) { + range = maybeBooleanRange(domain, scheme); + if (range !== undefined) scheme = undefined; // Don’t re-apply scheme. + } + if (scheme === undefined && range === undefined) { + scheme = type === "ordinal" ? "turbo" : "tableau10"; + } + if (scheme !== undefined) { + if (range !== undefined) { + const interpolate = quantitativeScheme(scheme); + const t0 = range[0], + d = range[1] - range[0]; + range = ({length: n}) => d3.quantize((t) => interpolate(t0 + d * t), n); + } else { + range = ordinalScheme(scheme); + } + } + } + if (unknown === d3.scaleImplicit) { + throw new Error(`implicit unknown on ${key} scale is not supported`); + } + return createScaleO(key, d3.scaleOrdinal().unknown(unknown), channels, {...options, type, domain, range, hint}); + } + + function createScalePoint(key, channels, {align = 0.5, padding = 0.5, ...options}) { + return maybeRound(d3.scalePoint().align(align).padding(padding), channels, options, key); + } + + function createScaleBand( + key, + channels, + { + align = 0.5, + padding = 0.1, + paddingInner = padding, + paddingOuter = key === "fx" || key === "fy" ? 0 : padding, + ...options + } + ) { + return maybeRound( + d3.scaleBand().align(align).paddingInner(paddingInner).paddingOuter(paddingOuter), + channels, + options, + key + ); + } + + function maybeRound(scale, channels, options, key) { + let {round} = options; + if (round !== undefined) scale.round((round = !!round)); + scale = createScaleO(key, scale, channels, options); + scale.round = round; // preserve for autoScaleRound + return scale; + } + + function inferDomain(channels, interval, key) { + const values = new d3.InternSet(); + for (const {value, domain} of channels) { + if (domain !== undefined) return domain(); // see channelDomain + if (value === undefined) continue; + for (const v of value) values.add(v); + } + if (interval !== undefined) { + const [min, max] = d3.extent(values).map(interval.floor, interval); + return interval.range(min, interval.offset(max)); + } + if (values.size > 10e3 && registry.get(key) === position) { + throw new Error(`implicit ordinal domain of ${key} scale has more than 10,000 values`); + } + return d3.sort(values, ascendingDefined); + } + + // If all channels provide a consistent hint, propagate it to the scale. + function inferHint(channels, key) { + let value; + for (const {hint} of channels) { + const candidate = hint?.[key]; + if (candidate === undefined) continue; // no hint here + if (value === undefined) value = candidate; + // first hint + else if (value !== candidate) return; // inconsistent hint + } + return value; + } + + function inferSymbolHint(channels) { + return { + fill: inferHint(channels, "fill"), + stroke: inferHint(channels, "stroke") + }; + } + + function inferSymbolRange(hint) { + return isNoneish(hint.fill) ? d3.symbolsStroke : d3.symbolsFill; + } + + function normalizeScale(key, scale, hint) { + return createScale(key, hint === undefined ? undefined : [{hint}], {...scale}); + } + + function createScale(key, channels = [], options = {}) { + const type = inferScaleType(key, channels, options); + + // Warn for common misuses of implicit ordinal scales. We disable this test if + // you specify a scale interval or if you set the domain or range explicitly, + // since setting the domain or range (typically with a cardinality of more than + // two) is another indication that you intended for the scale to be ordinal; we + // also disable it for facet scales since these are always band scales. + if ( + options.type === undefined && + options.domain === undefined && + options.range === undefined && + options.interval == null && + key !== "fx" && + key !== "fy" && + isOrdinalScale({type}) + ) { + const values = channels.map(({value}) => value).filter((value) => value !== undefined); + if (values.some(isTemporal)) + warn( + `Warning: some data associated with the ${key} scale are dates. Dates are typically associated with a "utc" or "time" scale rather than a "${formatScaleType( + type + )}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., d3.utcDay), or you can suppress this warning by setting the type of the ${key} scale to "${formatScaleType( + type + )}".` + ); + else if (values.some(isTemporalString)) + warn( + `Warning: some data associated with the ${key} scale are strings that appear to be dates (e.g., YYYY-MM-DD). If these strings represent dates, you should parse them to Date objects. Dates are typically associated with a "utc" or "time" scale rather than a "${formatScaleType( + type + )}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can suppress this warning by setting the type of the ${key} scale to "${formatScaleType( + type + )}".` + ); + else if (values.some(isNumericString)) + warn( + `Warning: some data associated with the ${key} scale are strings that appear to be numbers. If these strings represent numbers, you should parse or coerce them to numbers. Numbers are typically associated with a "linear" scale rather than a "${formatScaleType( + type + )}" scale. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., 1 for integers), or you can suppress this warning by setting the type of the ${key} scale to "${formatScaleType( + type + )}".` + ); + } + + options.type = type; // Mutates input! + + // Once the scale type is known, coerce the associated channel values and any + // explicitly-specified domain to the expected type. + switch (type) { + case "diverging": + case "diverging-sqrt": + case "diverging-pow": + case "diverging-log": + case "diverging-symlog": + case "cyclical": + case "sequential": + case "linear": + case "sqrt": + case "threshold": + case "quantile": + case "pow": + case "log": + case "symlog": + options = coerceType(channels, options, coerceNumbers); + break; + case "identity": + switch (registry.get(key)) { + case position: + options = coerceType(channels, options, coerceNumbers); + break; + case symbol: + options = coerceType(channels, options, coerceSymbols); + break; + } + break; + case "utc": + case "time": + options = coerceType(channels, options, coerceDates); + break; + } + + switch (type) { + case "diverging": + return createScaleDiverging(key, channels, options); + case "diverging-sqrt": + return createScaleDivergingSqrt(key, channels, options); + case "diverging-pow": + return createScaleDivergingPow(key, channels, options); + case "diverging-log": + return createScaleDivergingLog(key, channels, options); + case "diverging-symlog": + return createScaleDivergingSymlog(key, channels, options); + case "categorical": + case "ordinal": + case ordinalImplicit: + return createScaleOrdinal(key, channels, options); + case "cyclical": + case "sequential": + case "linear": + return createScaleLinear(key, channels, options); + case "sqrt": + return createScaleSqrt(key, channels, options); + case "threshold": + return createScaleThreshold(key, channels, options); + case "quantile": + return createScaleQuantile(key, channels, options); + case "quantize": + return createScaleQuantize(key, channels, options); + case "pow": + return createScalePow(key, channels, options); + case "log": + return createScaleLog(key, channels, options); + case "symlog": + return createScaleSymlog(key, channels, options); + case "utc": + return createScaleUtc(key, channels, options); + case "time": + return createScaleTime(key, channels, options); + case "point": + return createScalePoint(key, channels, options); + case "band": + return createScaleBand(key, channels, options); + case "identity": + return registry.get(key) === position ? createScaleIdentity() : {type: "identity"}; + case undefined: + return; + default: + throw new Error(`unknown scale type: ${type}`); + } + } + + function formatScaleType(type) { + return typeof type === "symbol" ? type.description : type; + } + + // A special type symbol when the x and y scales are replaced with a projection. + const typeProjection = {toString: () => "projection"}; + + function inferScaleType(key, channels, {type, domain, range, scheme, pivot, projection}) { + // The facet scales are always band scales; this cannot be changed. + if (key === "fx" || key === "fy") return "band"; + + // If a projection is specified, the x- and y-scales are disabled; these + // channels will be projected rather than scaled. (But still check that none + // of the associated channels are incompatible with a projection.) + if ((key === "x" || key === "y") && projection != null) type = typeProjection; + + // If a channel dictates a scale type, make sure that it is consistent with + // the user-specified scale type (if any) and all other channels. For example, + // barY requires x to be a band scale and disallows any other scale type. + for (const {type: t} of channels) { + if (t === undefined) continue; + else if (type === undefined) type = t; + else if (type !== t) throw new Error(`scale incompatible with channel: ${type} !== ${t}`); + } + + // If the scale, a channel, or user specified a (consistent) type, return it. + if (type === typeProjection) return; + if (type !== undefined) return type; + + // If there’s no data (and no type) associated with this scale, don’t create a scale. + if (domain === undefined && !channels.some(({value}) => value !== undefined)) return; + + // Some scales have default types. + const kind = registry.get(key); + if (kind === radius) return "sqrt"; + if (kind === opacity || kind === length) return "linear"; + if (kind === symbol) return "ordinal"; + + // If the domain or range has more than two values, assume it’s ordinal. You + // can still use a “piecewise†(or “polylinearâ€) scale, but you must set the + // type explicitly. + if ((domain || range || []).length > 2) return asOrdinalType(kind); + + // Otherwise, infer the scale type from the data! Prefer the domain, if + // present, over channels. (The domain and channels should be consistently + // typed, and the domain is more explicit and typically much smaller.) We only + // check the first defined value for expedience and simplicity; we expect + // that the types are consistent. + if (domain !== undefined) { + if (isOrdinal(domain)) return asOrdinalType(kind); + if (isTemporal(domain)) return "utc"; + if (kind === color && (pivot != null || isDivergingScheme(scheme))) return "diverging"; + return "linear"; + } + + // If any channel is ordinal or temporal, it takes priority. + const values = channels.map(({value}) => value).filter((value) => value !== undefined); + if (values.some(isOrdinal)) return asOrdinalType(kind); + if (values.some(isTemporal)) return "utc"; + if (kind === color && (pivot != null || isDivergingScheme(scheme))) return "diverging"; + return "linear"; + } + + // Positional scales default to a point scale instead of an ordinal scale. + function asOrdinalType(kind) { + switch (kind) { + case position: + return "point"; + case color: + return ordinalImplicit; + default: + return "ordinal"; + } + } + + function isOrdinalScale({type}) { + return type === "ordinal" || type === "point" || type === "band" || type === ordinalImplicit; + } + + // Mutates channel.value! + function coerceType(channels, {domain, ...options}, coerceValues) { + for (const c of channels) { + if (c.value !== undefined) { + c.value = coerceValues(c.value); + } + } + return { + domain: domain === undefined ? domain : coerceValues(domain), + ...options + }; + } + + function coerceSymbols(values) { + return map(values, maybeSymbol); + } + + function scale(options = {}) { + let scale; + for (const key in options) { + if (!registry.has(key)) continue; // ignore unknown properties + if (!isScaleOptions(options[key])) continue; // e.g., ignore {color: "red"} + if (scale !== undefined) throw new Error("ambiguous scale definition; multiple scales found"); + scale = exposeScale(normalizeScale(key, options[key])); + } + if (scale === undefined) throw new Error("invalid scale definition; no scale found"); + return scale; + } + + // Note: axis- and legend-related properties (such as label, ticks and + // tickFormat) are not included here as they do not affect the scale’s behavior. + function exposeScale({scale, type, domain, range, interpolate, interval, transform, percent, pivot}) { + if (type === "identity") return {type: "identity", apply: (d) => d, invert: (d) => d}; + const unknown = scale.unknown ? scale.unknown() : undefined; + return { + type, + domain: slice(domain), // defensive copy + ...(range !== undefined && {range: slice(range)}), // defensive copy + ...(transform !== undefined && {transform}), + ...(percent && {percent}), // only exposed if truthy + ...(unknown !== undefined && {unknown}), + ...(interval !== undefined && {interval}), + + // quantitative + ...(interpolate !== undefined && {interpolate}), + ...(scale.clamp && {clamp: scale.clamp()}), + + // diverging (always asymmetric; we never want to apply the symmetric transform twice) + ...(pivot !== undefined && {pivot, symmetric: false}), + + // log, diverging-log + ...(scale.base && {base: scale.base()}), + + // pow, diverging-pow + ...(scale.exponent && {exponent: scale.exponent()}), + + // symlog, diverging-symlog + ...(scale.constant && {constant: scale.constant()}), + + // band, point + ...(scale.align && {align: scale.align(), round: scale.round()}), + ...(scale.padding && + (scale.paddingInner + ? {paddingInner: scale.paddingInner(), paddingOuter: scale.paddingOuter()} + : {padding: scale.padding()})), + ...(scale.bandwidth && {bandwidth: scale.bandwidth(), step: scale.step()}), + + // utilities + apply: (t) => scale(t), + ...(scale.invert && {invert: (t) => scale.invert(t)}) + }; + } + + var ScrollDirection; + (function (ScrollDirection) { + ScrollDirection[ScrollDirection["SCROLL_NONE"] = 0] = "SCROLL_NONE"; + ScrollDirection[ScrollDirection["SCROLL_BACKWARD"] = 1] = "SCROLL_BACKWARD"; + ScrollDirection[ScrollDirection["SCROLL_FORWARD"] = 2] = "SCROLL_FORWARD"; + })(ScrollDirection || (ScrollDirection = {})); + var Position; + (function (Position) { + Position[Position["TOP"] = 0] = "TOP"; + Position[Position["RIGHT"] = 1] = "RIGHT"; + Position[Position["BOTTOM"] = 2] = "BOTTOM"; + Position[Position["LEFT"] = 3] = "LEFT"; + })(Position || (Position = {})); + var OPTIONS_DEFAULT_SUBDOMAIN_WIDTH = 10; + var OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT = 10; + var OPTIONS_DEFAULT_SUBDOMAIN_GUTTER = 2; + var OPTIONS_DEFAULT_SUBDOMAIN_RADIUS = 0; + var SCALE_BASE_OPACITY_COLOR = 'red'; + + function normalizedScale(scaleOptions) { + try { + var scaleType = Object.keys(scaleOptions)[0]; + return scale(_defineProperty({}, scaleType, Object.assign(Object.assign({}, scaleOptions[scaleType]), { + clamp: true + }))); + } catch (error) { + return null; + } + } + function scaleStyle(_scale, scaleOptions) { + var styles = {}; + if (scaleOptions.hasOwnProperty('opacity')) { + styles.fill = function () { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + scaleOptions.opacity.baseColor || SCALE_BASE_OPACITY_COLOR + ); + }; + styles['fill-opacity'] = function (d) { + return _scale === null || _scale === void 0 ? void 0 : _scale.apply(d); + }; + } else { + styles.fill = function (d) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + typeof d === 'string' && (d === null || d === void 0 ? void 0 : d.startsWith('#')) ? d : _scale === null || _scale === void 0 ? void 0 : _scale.apply(d) + ); + }; + } + return styles; + } + function applyScaleStyle(elem, _scale, scaleOptions, keyname) { + Object.entries(scaleStyle(_scale, scaleOptions)).forEach(function (_ref) { + var _ref2 = _slicedToArray(_ref, 2), + prop = _ref2[0], + val = _ref2[1]; + return ( + // eslint-disable-next-line implicit-arrow-linebreak + elem.style(prop, function (d) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + val(keyname ? d[keyname] : d) + ); + }) + ); + }); + } + + var $TypeError$2 = TypeError; + var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 + + var doesNotExceedSafeInteger$1 = function (it) { + if (it > MAX_SAFE_INTEGER) throw $TypeError$2('Maximum allowed index exceeded'); + return it; + }; + + var $$9 = _export; + var fails$4 = fails$p; + var isArray = isArray$3; + var isObject = isObject$i; + var toObject$3 = toObject$9; + var lengthOfArrayLike$3 = lengthOfArrayLike$9; + var doesNotExceedSafeInteger = doesNotExceedSafeInteger$1; + var createProperty$1 = createProperty$4; + var arraySpeciesCreate = arraySpeciesCreate$2; + var arrayMethodHasSpeciesSupport$2 = arrayMethodHasSpeciesSupport$4; + var wellKnownSymbol = wellKnownSymbol$k; + var V8_VERSION = engineV8Version; + + var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); + + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/679 + var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails$4(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; + }); + + var isConcatSpreadable = function (O) { + if (!isObject(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray(O); + }; + + var FORCED$3 = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport$2('concat'); + + // `Array.prototype.concat` method + // https://tc39.es/ecma262/#sec-array.prototype.concat + // with adding support of @@isConcatSpreadable and @@species + $$9({ target: 'Array', proto: true, arity: 1, forced: FORCED$3 }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + concat: function concat(arg) { + var O = toObject$3(this); + var A = arraySpeciesCreate(O, 0); + var n = 0; + var i, k, length, len, E; + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + if (isConcatSpreadable(E)) { + len = lengthOfArrayLike$3(E); + doesNotExceedSafeInteger(n + len); + for (k = 0; k < len; k++, n++) if (k in E) createProperty$1(A, n, E[k]); + } else { + doesNotExceedSafeInteger(n + 1); + createProperty$1(A, n++, E); + } + } + A.length = n; + return A; + } + }); + + var $$8 = _export; + var call$1 = functionCall; + var aCallable$2 = aCallable$b; + var newPromiseCapabilityModule = newPromiseCapability$2; + var perform = perform$4; + var iterate$1 = iterate$6; + var PROMISE_STATICS_INCORRECT_ITERATION = promiseStaticsIncorrectIteration; + + // `Promise.allSettled` method + // https://tc39.es/ecma262/#sec-promise.allsettled + $$8({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + allSettled: function allSettled(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var promiseResolve = aCallable$2(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate$1(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call$1(promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'fulfilled', value: value }; + --remaining || resolve(values); + }, function (error) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'rejected', reason: error }; + --remaining || resolve(values); + }); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } + }); + + var create = objectCreate; + var defineBuiltInAccessor = defineBuiltInAccessor$3; + var defineBuiltIns = defineBuiltIns$2; + var bind$1 = functionBindContext; + var anInstance = anInstance$4; + var isNullOrUndefined = isNullOrUndefined$7; + var iterate = iterate$6; + var defineIterator = iteratorDefine; + var createIterResultObject = createIterResultObject$3; + var setSpecies = setSpecies$2; + var DESCRIPTORS = descriptors; + var fastKey = internalMetadataExports.fastKey; + var InternalStateModule = internalState; + + var setInternalState = InternalStateModule.set; + var internalStateGetterFor = InternalStateModule.getterFor; + + var collectionStrong$1 = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + index: create(null), + first: undefined, + last: undefined, + size: 0 + }); + if (!DESCRIPTORS) that.size = 0; + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var entry = getEntry(that, key); + var previous, index; + // change existing entry + if (entry) { + entry.value = value; + // create new entry + } else { + state.last = entry = { + index: index = fastKey(key, true), + key: key, + value: value, + previous: previous = state.last, + next: undefined, + removed: false + }; + if (!state.first) state.first = entry; + if (previous) previous.next = entry; + if (DESCRIPTORS) state.size++; + else that.size++; + // add to index + if (index !== 'F') state.index[index] = entry; + } return that; + }; + + var getEntry = function (that, key) { + var state = getInternalState(that); + // fast case + var index = fastKey(key); + var entry; + if (index !== 'F') return state.index[index]; + // frozen object case + for (entry = state.first; entry; entry = entry.next) { + if (entry.key == key) return entry; + } + }; + + defineBuiltIns(Prototype, { + // `{ Map, Set }.prototype.clear()` methods + // https://tc39.es/ecma262/#sec-map.prototype.clear + // https://tc39.es/ecma262/#sec-set.prototype.clear + clear: function clear() { + var that = this; + var state = getInternalState(that); + var data = state.index; + var entry = state.first; + while (entry) { + entry.removed = true; + if (entry.previous) entry.previous = entry.previous.next = undefined; + delete data[entry.index]; + entry = entry.next; + } + state.first = state.last = undefined; + if (DESCRIPTORS) state.size = 0; + else that.size = 0; + }, + // `{ Map, Set }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-map.prototype.delete + // https://tc39.es/ecma262/#sec-set.prototype.delete + 'delete': function (key) { + var that = this; + var state = getInternalState(that); + var entry = getEntry(that, key); + if (entry) { + var next = entry.next; + var prev = entry.previous; + delete state.index[entry.index]; + entry.removed = true; + if (prev) prev.next = next; + if (next) next.previous = prev; + if (state.first == entry) state.first = next; + if (state.last == entry) state.last = prev; + if (DESCRIPTORS) state.size--; + else that.size--; + } return !!entry; + }, + // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods + // https://tc39.es/ecma262/#sec-map.prototype.foreach + // https://tc39.es/ecma262/#sec-set.prototype.foreach + forEach: function forEach(callbackfn /* , that = undefined */) { + var state = getInternalState(this); + var boundFunction = bind$1(callbackfn, arguments.length > 1 ? arguments[1] : undefined); + var entry; + while (entry = entry ? entry.next : state.first) { + boundFunction(entry.value, entry.key, this); + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + } + }, + // `{ Map, Set}.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-map.prototype.has + // https://tc39.es/ecma262/#sec-set.prototype.has + has: function has(key) { + return !!getEntry(this, key); + } + }); + + defineBuiltIns(Prototype, IS_MAP ? { + // `Map.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-map.prototype.get + get: function get(key) { + var entry = getEntry(this, key); + return entry && entry.value; + }, + // `Map.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-map.prototype.set + set: function set(key, value) { + return define(this, key === 0 ? 0 : key, value); + } + } : { + // `Set.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-set.prototype.add + add: function add(value) { + return define(this, value = value === 0 ? 0 : value, value); + } + }); + if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', { + configurable: true, + get: function () { + return getInternalState(this).size; + } + }); + return Constructor; + }, + setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) { + var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator'; + var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME); + var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME); + // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods + // https://tc39.es/ecma262/#sec-map.prototype.entries + // https://tc39.es/ecma262/#sec-map.prototype.keys + // https://tc39.es/ecma262/#sec-map.prototype.values + // https://tc39.es/ecma262/#sec-map.prototype-@@iterator + // https://tc39.es/ecma262/#sec-set.prototype.entries + // https://tc39.es/ecma262/#sec-set.prototype.keys + // https://tc39.es/ecma262/#sec-set.prototype.values + // https://tc39.es/ecma262/#sec-set.prototype-@@iterator + defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) { + setInternalState(this, { + type: ITERATOR_NAME, + target: iterated, + state: getInternalCollectionState(iterated), + kind: kind, + last: undefined + }); + }, function () { + var state = getInternalIteratorState(this); + var kind = state.kind; + var entry = state.last; + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + // get next entry + if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) { + // or finish the iteration + state.target = undefined; + return createIterResultObject(undefined, true); + } + // return step by kind + if (kind == 'keys') return createIterResultObject(entry.key, false); + if (kind == 'values') return createIterResultObject(entry.value, false); + return createIterResultObject([entry.key, entry.value], false); + }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); + + // `{ Map, Set }.prototype[@@species]` accessors + // https://tc39.es/ecma262/#sec-get-map-@@species + // https://tc39.es/ecma262/#sec-get-set-@@species + setSpecies(CONSTRUCTOR_NAME); + } + }; + + var collection = collection$2; + var collectionStrong = collectionStrong$1; + + // `Map` constructor + // https://tc39.es/ecma262/#sec-map-objects + collection('Map', function (init) { + return function Map() { return init(this, arguments.length ? arguments[0] : undefined); }; + }, collectionStrong); + + var tryToString = tryToString$5; + + var $TypeError$1 = TypeError; + + var deletePropertyOrThrow$1 = function (O, P) { + if (!delete O[P]) throw $TypeError$1('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O)); + }; + + var arraySlice = arraySliceSimple; + + var floor = Math.floor; + + var mergeSort = function (array, comparefn) { + var length = array.length; + var middle = floor(length / 2); + return length < 8 ? insertionSort(array, comparefn) : merge( + array, + mergeSort(arraySlice(array, 0, middle), comparefn), + mergeSort(arraySlice(array, middle), comparefn), + comparefn + ); + }; + + var insertionSort = function (array, comparefn) { + var length = array.length; + var i = 1; + var element, j; + + while (i < length) { + j = i; + element = array[i]; + while (j && comparefn(array[j - 1], element) > 0) { + array[j] = array[--j]; + } + if (j !== i++) array[j] = element; + } return array; + }; + + var merge = function (array, left, right, comparefn) { + var llength = left.length; + var rlength = right.length; + var lindex = 0; + var rindex = 0; + + while (lindex < llength || rindex < rlength) { + array[lindex + rindex] = (lindex < llength && rindex < rlength) + ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++] + : lindex < llength ? left[lindex++] : right[rindex++]; + } return array; + }; + + var arraySort = mergeSort; + + var userAgent$1 = engineUserAgent; + + var firefox = userAgent$1.match(/firefox\/(\d+)/i); + + var engineFfVersion = !!firefox && +firefox[1]; + + var UA = engineUserAgent; + + var engineIsIeOrEdge = /MSIE|Trident/.test(UA); + + var userAgent = engineUserAgent; + + var webkit = userAgent.match(/AppleWebKit\/(\d+)\./); + + var engineWebkitVersion = !!webkit && +webkit[1]; + + var $$7 = _export; + var uncurryThis$2 = functionUncurryThis; + var aCallable$1 = aCallable$b; + var toObject$2 = toObject$9; + var lengthOfArrayLike$2 = lengthOfArrayLike$9; + var deletePropertyOrThrow = deletePropertyOrThrow$1; + var toString$2 = toString$6; + var fails$3 = fails$p; + var internalSort = arraySort; + var arrayMethodIsStrict$1 = arrayMethodIsStrict$4; + var FF = engineFfVersion; + var IE_OR_EDGE = engineIsIeOrEdge; + var V8 = engineV8Version; + var WEBKIT = engineWebkitVersion; + + var test = []; + var nativeSort = uncurryThis$2(test.sort); + var push = uncurryThis$2(test.push); + + // IE8- + var FAILS_ON_UNDEFINED = fails$3(function () { + test.sort(undefined); + }); + // V8 bug + var FAILS_ON_NULL = fails$3(function () { + test.sort(null); + }); + // Old WebKit + var STRICT_METHOD = arrayMethodIsStrict$1('sort'); + + var STABLE_SORT = !fails$3(function () { + // feature detection can be too slow, so check engines versions + if (V8) return V8 < 70; + if (FF && FF > 3) return; + if (IE_OR_EDGE) return true; + if (WEBKIT) return WEBKIT < 603; + + var result = ''; + var code, chr, value, index; + + // generate an array with more 512 elements (Chakra and old V8 fails only in this case) + for (code = 65; code < 76; code++) { + chr = String.fromCharCode(code); + + switch (code) { + case 66: case 69: case 70: case 72: value = 3; break; + case 68: case 71: value = 4; break; + default: value = 2; + } + + for (index = 0; index < 47; index++) { + test.push({ k: chr + index, v: value }); + } + } + + test.sort(function (a, b) { return b.v - a.v; }); + + for (index = 0; index < test.length; index++) { + chr = test[index].k.charAt(0); + if (result.charAt(result.length - 1) !== chr) result += chr; + } + + return result !== 'DGBEFHACIJK'; + }); + + var FORCED$2 = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT; + + var getSortCompare = function (comparefn) { + return function (x, y) { + if (y === undefined) return -1; + if (x === undefined) return 1; + if (comparefn !== undefined) return +comparefn(x, y) || 0; + return toString$2(x) > toString$2(y) ? 1 : -1; + }; + }; + + // `Array.prototype.sort` method + // https://tc39.es/ecma262/#sec-array.prototype.sort + $$7({ target: 'Array', proto: true, forced: FORCED$2 }, { + sort: function sort(comparefn) { + if (comparefn !== undefined) aCallable$1(comparefn); + + var array = toObject$2(this); + + if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn); + + var items = []; + var arrayLength = lengthOfArrayLike$2(array); + var itemsLength, index; + + for (index = 0; index < arrayLength; index++) { + if (index in array) push(items, array[index]); + } + + internalSort(items, getSortCompare(comparefn)); + + itemsLength = lengthOfArrayLike$2(items); + index = 0; + + while (index < itemsLength) array[index] = items[index++]; + while (index < arrayLength) deletePropertyOrThrow(array, index++); + + return array; + } + }); + + new WeakSet(); + + new WeakSet(); + + var $$6 = _export; + var $includes = arrayIncludes.includes; + var fails$2 = fails$p; + var addToUnscopables = addToUnscopables$2; + + // FF99+ bug + var BROKEN_ON_SPARSE = fails$2(function () { + // eslint-disable-next-line es/no-array-prototype-includes -- detection + return !Array(1).includes(); + }); + + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + $$6({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, { + includes: function includes(el /* , fromIndex = 0 */) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + addToUnscopables('includes'); + + var $$5 = _export; + var $map = arrayIteration.map; + var arrayMethodHasSpeciesSupport$1 = arrayMethodHasSpeciesSupport$4; + + var HAS_SPECIES_SUPPORT$1 = arrayMethodHasSpeciesSupport$1('map'); + + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + // with adding support of @@species + $$5({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$1 }, { + map: function map(callbackfn /* , thisArg */) { + return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + var $$4 = _export; + var $filter = arrayIteration.filter; + var arrayMethodHasSpeciesSupport = arrayMethodHasSpeciesSupport$4; + + var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); + + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + // with adding support of @@species + $$4({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + filter: function filter(callbackfn /* , thisArg */) { + return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + var aCallable = aCallable$b; + var toObject$1 = toObject$9; + var IndexedObject = indexedObject; + var lengthOfArrayLike$1 = lengthOfArrayLike$9; + + var $TypeError = TypeError; + + // `Array.prototype.{ reduce, reduceRight }` methods implementation + var createMethod$1 = function (IS_RIGHT) { + return function (that, callbackfn, argumentsLength, memo) { + aCallable(callbackfn); + var O = toObject$1(that); + var self = IndexedObject(O); + var length = lengthOfArrayLike$1(O); + var index = IS_RIGHT ? length - 1 : 0; + var i = IS_RIGHT ? -1 : 1; + if (argumentsLength < 2) while (true) { + if (index in self) { + memo = self[index]; + index += i; + break; + } + index += i; + if (IS_RIGHT ? index < 0 : length <= index) { + throw $TypeError('Reduce of empty array with no initial value'); + } + } + for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) { + memo = callbackfn(memo, self[index], index, O); + } + return memo; + }; + }; + + var arrayReduce = { + // `Array.prototype.reduce` method + // https://tc39.es/ecma262/#sec-array.prototype.reduce + left: createMethod$1(false), + // `Array.prototype.reduceRight` method + // https://tc39.es/ecma262/#sec-array.prototype.reduceright + right: createMethod$1(true) + }; + + var $$3 = _export; + var $reduce = arrayReduce.left; + var arrayMethodIsStrict = arrayMethodIsStrict$4; + var CHROME_VERSION = engineV8Version; + var IS_NODE = engineIsNode; + + // Chrome 80-82 has a critical bug + // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 + var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; + var FORCED$1 = CHROME_BUG || !arrayMethodIsStrict('reduce'); + + // `Array.prototype.reduce` method + // https://tc39.es/ecma262/#sec-array.prototype.reduce + $$3({ target: 'Array', proto: true, forced: FORCED$1 }, { + reduce: function reduce(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined); + } + }); + + var anObject = anObject$c; + var iteratorClose = iteratorClose$2; + + // call something on iterator step with safe closing on error + var callWithSafeIterationClosing$1 = function (iterator, fn, value, ENTRIES) { + try { + return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } + }; + + var bind = functionBindContext; + var call = functionCall; + var toObject = toObject$9; + var callWithSafeIterationClosing = callWithSafeIterationClosing$1; + var isArrayIteratorMethod = isArrayIteratorMethod$2; + var isConstructor = isConstructor$4; + var lengthOfArrayLike = lengthOfArrayLike$9; + var createProperty = createProperty$4; + var getIterator = getIterator$2; + var getIteratorMethod = getIteratorMethod$3; + + var $Array = Array; + + // `Array.from` method implementation + // https://tc39.es/ecma262/#sec-array.from + var arrayFrom = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { + var O = toObject(arrayLike); + var IS_CONSTRUCTOR = isConstructor(this); + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined); + var iteratorMethod = getIteratorMethod(O); + var index = 0; + var length, result, step, iterator, next, value; + // if the target is not iterable or it's an array with the default iterator - use a simple case + if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) { + iterator = getIterator(O, iteratorMethod); + next = iterator.next; + result = IS_CONSTRUCTOR ? new this() : []; + for (;!(step = call(next, iterator)).done; index++) { + value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value; + createProperty(result, index, value); + } + } else { + length = lengthOfArrayLike(O); + result = IS_CONSTRUCTOR ? new this(length) : $Array(length); + for (;length > index; index++) { + value = mapping ? mapfn(O[index], index) : O[index]; + createProperty(result, index, value); + } + } + result.length = index; + return result; + }; + + var $$2 = _export; + var from = arrayFrom; + var checkCorrectnessOfIteration = checkCorrectnessOfIteration$3; + + var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) { + // eslint-disable-next-line es/no-array-from -- required for testing + Array.from(iterable); + }); + + // `Array.from` method + // https://tc39.es/ecma262/#sec-array.from + $$2({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, { + from: from + }); + + // a string of all valid unicode whitespaces + var whitespaces$3 = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + + '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; + + var uncurryThis$1 = functionUncurryThis; + var requireObjectCoercible = requireObjectCoercible$5; + var toString$1 = toString$6; + var whitespaces$2 = whitespaces$3; + + var replace = uncurryThis$1(''.replace); + var ltrim = RegExp('^[' + whitespaces$2 + ']+'); + var rtrim = RegExp('(^|[^' + whitespaces$2 + '])[' + whitespaces$2 + ']+$'); + + // `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation + var createMethod = function (TYPE) { + return function ($this) { + var string = toString$1(requireObjectCoercible($this)); + if (TYPE & 1) string = replace(string, ltrim, ''); + if (TYPE & 2) string = replace(string, rtrim, '$1'); + return string; + }; + }; + + var stringTrim = { + // `String.prototype.{ trimLeft, trimStart }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimstart + start: createMethod(1), + // `String.prototype.{ trimRight, trimEnd }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimend + end: createMethod(2), + // `String.prototype.trim` method + // https://tc39.es/ecma262/#sec-string.prototype.trim + trim: createMethod(3) + }; + + var global$1 = global$k; + var fails$1 = fails$p; + var uncurryThis = functionUncurryThis; + var toString = toString$6; + var trim = stringTrim.trim; + var whitespaces$1 = whitespaces$3; + + var $parseInt$1 = global$1.parseInt; + var Symbol$1 = global$1.Symbol; + var ITERATOR = Symbol$1 && Symbol$1.iterator; + var hex = /^[+-]?0x/i; + var exec = uncurryThis(hex.exec); + var FORCED = $parseInt$1(whitespaces$1 + '08') !== 8 || $parseInt$1(whitespaces$1 + '0x16') !== 22 + // MS Edge 18- broken with boxed symbols + || (ITERATOR && !fails$1(function () { $parseInt$1(Object(ITERATOR)); })); + + // `parseInt` method + // https://tc39.es/ecma262/#sec-parseint-string-radix + var numberParseInt = FORCED ? function parseInt(string, radix) { + var S = trim(toString(string)); + return $parseInt$1(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10)); + } : $parseInt$1; + + var $$1 = _export; + var $parseInt = numberParseInt; + + // `parseInt` method + // https://tc39.es/ecma262/#sec-parseint-string-radix + $$1({ global: true, forced: parseInt != $parseInt }, { + parseInt: $parseInt + }); + + new WeakSet(); + + new WeakSet(); + + var PROPER_FUNCTION_NAME = functionName.PROPER; + var fails = fails$p; + var whitespaces = whitespaces$3; + + var non = '\u200B\u0085\u180E'; + + // check that a method works with the correct list + // of whitespaces and has a correct name + var stringTrimForced = function (METHOD_NAME) { + return fails(function () { + return !!whitespaces[METHOD_NAME]() + || non[METHOD_NAME]() !== non + || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME); + }); + }; + + var $ = _export; + var $trim = stringTrim.trim; + var forcedStringTrimMethod = stringTrimForced; + + // `String.prototype.trim` method + // https://tc39.es/ecma262/#sec-string.prototype.trim + $({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, { + trim: function trim() { + return $trim(this); + } + }); + + var DEFAULT_SELECTOR$2 = '.ch-subdomain'; + new WeakSet(); + + new WeakSet(); + + var DEFAULT_SELECTOR$1 = '.ch-container'; + new WeakSet(); + + var _LegendLite_instances, _LegendLite_buildLegend, _LegendLite_nodeAttrs; + var DEFAULT_SELECTOR = '.ch-plugin-legend-lite'; + var defaultOptions = { + enabled: true, + itemSelector: null, + width: OPTIONS_DEFAULT_SUBDOMAIN_WIDTH, + height: OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT, + gutter: OPTIONS_DEFAULT_SUBDOMAIN_GUTTER, + radius: OPTIONS_DEFAULT_SUBDOMAIN_RADIUS, + includeBlank: false + }; + var LegendLite = /*#__PURE__*/function () { + function LegendLite(calendar) { + _classCallCheck(this, LegendLite); + _LegendLite_instances.add(this); + this.name = 'LegendLite'; + this.calendar = calendar; + this.root = null; + this.shown = false; + this.options = defaultOptions; + } + _createClass(LegendLite, [{ + key: "setup", + value: function setup(pluginOptions) { + this.options = Object.assign(Object.assign({}, this.options), pluginOptions); + } + }, { + key: "paint", + value: function paint() { + var _this$options = this.options, + enabled = _this$options.enabled, + itemSelector = _this$options.itemSelector; + if (!enabled || itemSelector && d3Selection.select(itemSelector).empty()) { + return this.destroy(); + } + this.shown = true; + this.root = d3Selection.select(itemSelector || this.calendar.options.options.itemSelector); + if (this.root.select(DEFAULT_SELECTOR).empty()) { + this.root = this.root.append('div').attr('class', DEFAULT_SELECTOR.slice(1)); + } else { + this.root = this.root.select(DEFAULT_SELECTOR); + } + var node = __classPrivateFieldGet(this, _LegendLite_instances, "m", _LegendLite_buildLegend).call(this); + this.root.selectAll('*').remove(); + this.root.append(function () { + return node.node(); + }); + return Promise.resolve(); + } + }, { + key: "destroy", + value: function destroy() { + if (this.root !== null) { + this.root.remove(); + this.root = null; + } + return Promise.resolve(); + } + }]); + return LegendLite; + }(); + _LegendLite_instances = new WeakSet(), _LegendLite_buildLegend = function _LegendLite_buildLegend() { + var _this = this; + var node = d3Selection.create('svg'); + var scale = normalizedScale(this.calendar.options.options.scale); + var _this$options2 = this.options, + width = _this$options2.width, + height = _this$options2.height, + gutter = _this$options2.gutter, + includeBlank = _this$options2.includeBlank; + var localRange = _toConsumableArray(scale.range); + if (includeBlank) { + localRange.unshift(null); + } + node.attr('class', DEFAULT_SELECTOR$1.slice(1)).attr('width', localRange.length * width + (localRange.length - 1) * gutter).attr('height', height); + node.selectAll('rect').data(localRange).join(function (enter) { + return enter.append('rect').call(function (sc) { + return ( + // eslint-disable-next-line implicit-arrow-linebreak + __classPrivateFieldGet(_this, _LegendLite_instances, "m", _LegendLite_nodeAttrs).call(_this, sc, scale) + ); + }); + }, function (update) { + return update.selectAll('rect').call(function (sc) { + return __classPrivateFieldGet(_this, _LegendLite_instances, "m", _LegendLite_nodeAttrs).call(_this, sc, scale); + }); + }); + return node; + }, _LegendLite_nodeAttrs = function _LegendLite_nodeAttrs(selection, scale) { + var _this2 = this; + var _this$options3 = this.options, + width = _this$options3.width, + height = _this$options3.height, + radius = _this$options3.radius, + gutter = _this$options3.gutter; + return selection.attr('width', width).attr('height', height).attr('class', "".concat(DEFAULT_SELECTOR$2.slice(1), "-bg")).attr('rx', radius).attr('ry', radius).attr('x', function (_d, i) { + return i * (width + gutter); + }).attr('y', 0).call(function (element) { + applyScaleStyle(element, scale, _this2.calendar.options.options.scale); + }); + }; + + return LegendLite; + +})); diff --git a/static/javascripts/cal-heatmap/plugins/LegendLite.min.esm.js b/static/javascripts/cal-heatmap/plugins/LegendLite.min.esm.js new file mode 100644 index 000000000..3475776c3 --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/LegendLite.min.esm.js @@ -0,0 +1 @@ +import{select as t,create as n}from"d3-selection";import{ascending as e,timeSecond as r,timeMinute as o,timeHour as i,timeDay as a,timeWeek as u,timeMonth as c,timeYear as s,timeMonday as f,timeTuesday as l,timeWednesday as d,timeThursday as p,timeFriday as h,timeSaturday as v,timeSunday as y,utcSecond as g,utcMinute as m,utcHour as b,utcDay as w,utcWeek as S,utcMonth as O,utcYear as j,utcMonday as E,utcTuesday as x,utcWednesday as T,utcThursday as k,utcFriday as A,utcSaturday as M,utcSunday as P,descending as I,range as R,symbolAsterisk as C,symbolCircle as L,symbolCross as N,symbolDiamond as D,symbolDiamond2 as F,symbolPlus as _,symbolSquare as $,symbolSquare2 as W,symbolStar as q,symbolTimes as z,symbolTriangle as G,symbolTriangle2 as B,symbolWye as U,schemeAccent as H,schemeCategory10 as V,schemeDark2 as K,schemePaired as Y,schemePastel1 as J,schemePastel2 as X,schemeSet1 as Z,schemeSet2 as Q,schemeSet3 as tt,schemeTableau10 as nt,quantize as et,interpolateBrBG as rt,interpolatePRGn as ot,interpolatePiYG as it,interpolatePuOr as at,interpolateRdBu as ut,interpolateRdGy as ct,interpolateRdYlBu as st,interpolateRdYlGn as ft,interpolateSpectral as lt,interpolateBlues as dt,interpolateGreens as pt,interpolateGreys as ht,interpolatePurples as vt,interpolateReds as yt,interpolateOranges as gt,interpolateTurbo as mt,interpolateViridis as bt,interpolateMagma as wt,interpolateInferno as St,interpolatePlasma as Ot,interpolateCividis as jt,interpolateCubehelixDefault as Et,interpolateWarm as xt,interpolateCool as Tt,interpolateBuGn as kt,interpolateBuPu as At,interpolateGnBu as Mt,interpolateOrRd as Pt,interpolatePuBuGn as It,interpolatePuBu as Rt,interpolatePuRd as Ct,interpolateRdPu as Lt,interpolateYlGnBu as Nt,interpolateYlGn as Dt,interpolateYlOrBr as Ft,interpolateYlOrRd as _t,interpolateRainbow as $t,interpolateSinebow as Wt,schemeBrBG as qt,schemePRGn as zt,schemePiYG as Gt,schemePuOr as Bt,schemeRdBu as Ut,schemeRdGy as Ht,schemeRdYlBu as Vt,schemeRdYlGn as Kt,schemeSpectral as Yt,schemeBlues as Jt,schemeGreens as Xt,schemeGreys as Zt,schemeOranges as Qt,schemePurples as tn,schemeReds as nn,schemeBuGn as en,schemeBuPu as rn,schemeGnBu as on,schemeOrRd as an,schemePuBu as un,schemePuBuGn as cn,schemePuRd as sn,schemeRdPu as fn,schemeYlGn as ln,schemeYlGnBu as dn,schemeYlOrBr as pn,schemeYlOrRd as hn,interpolateNumber as vn,interpolateRgb as yn,interpolateHsl as gn,interpolateHcl as mn,interpolateLab as bn,scaleLinear as wn,scalePow as Sn,scaleLog as On,scaleSymlog as jn,scaleQuantile as En,extent as xn,ticks as Tn,reverse as kn,scaleThreshold as An,scaleIdentity as Mn,max as Pn,interpolateRound as In,min as Rn,quantile as Cn,median as Ln,scaleDiverging as Nn,scaleDivergingPow as Dn,scaleDivergingLog as Fn,scaleDivergingSymlog as _n,piecewise as $n,scaleTime as Wn,scaleUtc as qn,scaleImplicit as zn,scaleOrdinal as Gn,scalePoint as Bn,scaleBand as Un,InternSet as Hn,sort as Vn,symbolsStroke as Kn,symbolsFill as Yn}from"d3";function Jn(t,n){for(var e=0;e<n.length;e++){var r=n[e];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,ne(r.key),r)}}function Xn(t,n){return function(t){if(Array.isArray(t))return t}(t)||function(t,n){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var r,o,i,a,u=[],c=!0,s=!1;try{if(i=(e=e.call(t)).next,0===n){if(Object(e)!==e)return;c=!1}else for(;!(c=(r=i.call(e)).done)&&(u.push(r.value),u.length!==n);c=!0);}catch(t){s=!0,o=t}finally{try{if(!c&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(s)throw o}}return u}}(t,n)||Qn(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Zn(t){return function(t){if(Array.isArray(t))return te(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||Qn(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Qn(t,n){if(t){if("string"==typeof t)return te(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?te(t,n):void 0}}function te(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,r=new Array(n);e<n;e++)r[e]=t[e];return r}function ne(t){var n=function(t,n){if("object"!=typeof t||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,n||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(t)}(t,"string");return"symbol"==typeof n?n:String(n)}var ee="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},re=function(t){try{return!!t()}catch(t){return!0}},oe=!re((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),ie=!re((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})),ae=ie,ue=Function.prototype,ce=ue.call,se=ae&&ue.bind.bind(ce,ce),fe=ae?se:function(t){return function(){return ce.apply(t,arguments)}},le=function(t){return null==t},de=le,pe=TypeError,he=function(t){if(de(t))throw pe("Can't call method on "+t);return t},ve=he,ye=Object,ge=function(t){return ye(ve(t))},me=ge,be=fe({}.hasOwnProperty),we=Object.hasOwn||function(t,n){return be(me(t),n)},Se=oe,Oe=we,je=Function.prototype,Ee=Se&&Object.getOwnPropertyDescriptor,xe=Oe(je,"name"),Te={EXISTS:xe,PROPER:xe&&"something"===function(){}.name,CONFIGURABLE:xe&&(!Se||Se&&Ee(je,"name").configurable)},ke={exports:{}},Ae="object"==typeof document&&document.all,Me={all:Ae,IS_HTMLDDA:void 0===Ae&&void 0!==Ae},Pe=Me.all,Ie=Me.IS_HTMLDDA?function(t){return"function"==typeof t||t===Pe}:function(t){return"function"==typeof t},Re=function(t){return t&&t.Math==Math&&t},Ce=Re("object"==typeof globalThis&&globalThis)||Re("object"==typeof window&&window)||Re("object"==typeof self&&self)||Re("object"==typeof ee&&ee)||function(){return this}()||ee||Function("return this")(),Le=Ce,Ne=Object.defineProperty,De=function(t,n){try{Ne(Le,t,{value:n,configurable:!0,writable:!0})}catch(e){Le[t]=n}return n},Fe=De,_e="__core-js_shared__",$e=Ce[_e]||Fe(_e,{}),We=Ie,qe=$e,ze=fe(Function.toString);We(qe.inspectSource)||(qe.inspectSource=function(t){return ze(t)});var Ge,Be,Ue=qe.inspectSource,He=Ie,Ve=Ce.WeakMap,Ke=He(Ve)&&/native code/.test(String(Ve)),Ye=Ie,Je=Me.all,Xe=Me.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:Ye(t)||t===Je}:function(t){return"object"==typeof t?null!==t:Ye(t)},Ze={},Qe=Xe,tr=Ce.document,nr=Qe(tr)&&Qe(tr.createElement),er=function(t){return nr?tr.createElement(t):{}},rr=er,or=!oe&&!re((function(){return 7!=Object.defineProperty(rr("div"),"a",{get:function(){return 7}}).a})),ir=oe&&re((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),ar=Xe,ur=String,cr=TypeError,sr=function(t){if(ar(t))return t;throw cr(ur(t)+" is not an object")},fr=ie,lr=Function.prototype.call,dr=fr?lr.bind(lr):function(){return lr.apply(lr,arguments)},pr=Ce,hr=Ie,vr=function(t,n){return arguments.length<2?(e=pr[t],hr(e)?e:void 0):pr[t]&&pr[t][n];var e},yr=fe({}.isPrototypeOf),gr="undefined"!=typeof navigator&&String(navigator.userAgent)||"",mr=Ce,br=gr,wr=mr.process,Sr=mr.Deno,Or=wr&&wr.versions||Sr&&Sr.version,jr=Or&&Or.v8;jr&&(Be=(Ge=jr.split("."))[0]>0&&Ge[0]<4?1:+(Ge[0]+Ge[1])),!Be&&br&&(!(Ge=br.match(/Edge\/(\d+)/))||Ge[1]>=74)&&(Ge=br.match(/Chrome\/(\d+)/))&&(Be=+Ge[1]);var Er=Be,xr=Er,Tr=re,kr=Ce.String,Ar=!!Object.getOwnPropertySymbols&&!Tr((function(){var t=Symbol();return!kr(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&xr&&xr<41})),Mr=Ar&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Pr=vr,Ir=Ie,Rr=yr,Cr=Object,Lr=Mr?function(t){return"symbol"==typeof t}:function(t){var n=Pr("Symbol");return Ir(n)&&Rr(n.prototype,Cr(t))},Nr=String,Dr=function(t){try{return Nr(t)}catch(t){return"Object"}},Fr=Ie,_r=Dr,$r=TypeError,Wr=function(t){if(Fr(t))return t;throw $r(_r(t)+" is not a function")},qr=Wr,zr=le,Gr=function(t,n){var e=t[n];return zr(e)?void 0:qr(e)},Br=dr,Ur=Ie,Hr=Xe,Vr=TypeError,Kr={exports:{}},Yr=$e;(Kr.exports=function(t,n){return Yr[t]||(Yr[t]=void 0!==n?n:{})})("versions",[]).push({version:"3.30.2",mode:"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE",source:"https://github.com/zloirock/core-js"});var Jr=Kr.exports,Xr=fe,Zr=0,Qr=Math.random(),to=Xr(1..toString),no=function(t){return"Symbol("+(void 0===t?"":t)+")_"+to(++Zr+Qr,36)},eo=Jr,ro=we,oo=no,io=Ar,ao=Mr,uo=Ce.Symbol,co=eo("wks"),so=ao?uo.for||uo:uo&&uo.withoutSetter||oo,fo=function(t){return ro(co,t)||(co[t]=io&&ro(uo,t)?uo[t]:so("Symbol."+t)),co[t]},lo=dr,po=Xe,ho=Lr,vo=Gr,yo=function(t,n){var e,r;if("string"===n&&Ur(e=t.toString)&&!Hr(r=Br(e,t)))return r;if(Ur(e=t.valueOf)&&!Hr(r=Br(e,t)))return r;if("string"!==n&&Ur(e=t.toString)&&!Hr(r=Br(e,t)))return r;throw Vr("Can't convert object to primitive value")},go=TypeError,mo=fo("toPrimitive"),bo=function(t,n){if(!po(t)||ho(t))return t;var e,r=vo(t,mo);if(r){if(void 0===n&&(n="default"),e=lo(r,t,n),!po(e)||ho(e))return e;throw go("Can't convert object to primitive value")}return void 0===n&&(n="number"),yo(t,n)},wo=Lr,So=function(t){var n=bo(t,"string");return wo(n)?n:n+""},Oo=oe,jo=or,Eo=ir,xo=sr,To=So,ko=TypeError,Ao=Object.defineProperty,Mo=Object.getOwnPropertyDescriptor,Po="enumerable",Io="configurable",Ro="writable";Ze.f=Oo?Eo?function(t,n,e){if(xo(t),n=To(n),xo(e),"function"==typeof t&&"prototype"===n&&"value"in e&&Ro in e&&!e[Ro]){var r=Mo(t,n);r&&r[Ro]&&(t[n]=e.value,e={configurable:Io in e?e[Io]:r[Io],enumerable:Po in e?e[Po]:r[Po],writable:!1})}return Ao(t,n,e)}:Ao:function(t,n,e){if(xo(t),n=To(n),xo(e),jo)try{return Ao(t,n,e)}catch(t){}if("get"in e||"set"in e)throw ko("Accessors not supported");return"value"in e&&(t[n]=e.value),t};var Co,Lo,No,Do=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}},Fo=Ze,_o=Do,$o=oe?function(t,n,e){return Fo.f(t,n,_o(1,e))}:function(t,n,e){return t[n]=e,t},Wo=no,qo=Jr("keys"),zo=function(t){return qo[t]||(qo[t]=Wo(t))},Go={},Bo=Ke,Uo=Ce,Ho=Xe,Vo=$o,Ko=we,Yo=$e,Jo=zo,Xo=Go,Zo="Object already initialized",Qo=Uo.TypeError,ti=Uo.WeakMap;if(Bo||Yo.state){var ni=Yo.state||(Yo.state=new ti);ni.get=ni.get,ni.has=ni.has,ni.set=ni.set,Co=function(t,n){if(ni.has(t))throw Qo(Zo);return n.facade=t,ni.set(t,n),n},Lo=function(t){return ni.get(t)||{}},No=function(t){return ni.has(t)}}else{var ei=Jo("state");Xo[ei]=!0,Co=function(t,n){if(Ko(t,ei))throw Qo(Zo);return n.facade=t,Vo(t,ei,n),n},Lo=function(t){return Ko(t,ei)?t[ei]:{}},No=function(t){return Ko(t,ei)}}var ri={set:Co,get:Lo,has:No,enforce:function(t){return No(t)?Lo(t):Co(t,{})},getterFor:function(t){return function(n){var e;if(!Ho(n)||(e=Lo(n)).type!==t)throw Qo("Incompatible receiver, "+t+" required");return e}}},oi=fe,ii=re,ai=Ie,ui=we,ci=oe,si=Te.CONFIGURABLE,fi=Ue,li=ri.enforce,di=ri.get,pi=String,hi=Object.defineProperty,vi=oi("".slice),yi=oi("".replace),gi=oi([].join),mi=ci&&!ii((function(){return 8!==hi((function(){}),"length",{value:8}).length})),bi=String(String).split("String"),wi=ke.exports=function(t,n,e){"Symbol("===vi(pi(n),0,7)&&(n="["+yi(pi(n),/^Symbol\(([^)]*)\)/,"$1")+"]"),e&&e.getter&&(n="get "+n),e&&e.setter&&(n="set "+n),(!ui(t,"name")||si&&t.name!==n)&&(ci?hi(t,"name",{value:n,configurable:!0}):t.name=n),mi&&e&&ui(e,"arity")&&t.length!==e.arity&&hi(t,"length",{value:e.arity});try{e&&ui(e,"constructor")&&e.constructor?ci&&hi(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=li(t);return ui(r,"source")||(r.source=gi(bi,"string"==typeof n?n:"")),t};Function.prototype.toString=wi((function(){return ai(this)&&di(this).source||fi(this)}),"toString");var Si=ke.exports,Oi=Si,ji=Ze,Ei=function(t,n,e){return e.get&&Oi(e.get,n,{getter:!0}),e.set&&Oi(e.set,n,{setter:!0}),ji.f(t,n,e)},xi=oe,Ti=Te.EXISTS,ki=fe,Ai=Ei,Mi=Function.prototype,Pi=ki(Mi.toString),Ii=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,Ri=ki(Ii.exec);xi&&!Ti&&Ai(Mi,"name",{configurable:!0,get:function(){try{return Ri(Ii,Pi(this))[1]}catch(t){return""}}});var Ci={},Li={},Ni={}.propertyIsEnumerable,Di=Object.getOwnPropertyDescriptor,Fi=Di&&!Ni.call({1:2},1);Li.f=Fi?function(t){var n=Di(this,t);return!!n&&n.enumerable}:Ni;var _i=fe,$i=_i({}.toString),Wi=_i("".slice),qi=function(t){return Wi($i(t),8,-1)},zi=re,Gi=qi,Bi=Object,Ui=fe("".split),Hi=zi((function(){return!Bi("z").propertyIsEnumerable(0)}))?function(t){return"String"==Gi(t)?Ui(t,""):Bi(t)}:Bi,Vi=Hi,Ki=he,Yi=function(t){return Vi(Ki(t))},Ji=oe,Xi=dr,Zi=Li,Qi=Do,ta=Yi,na=So,ea=we,ra=or,oa=Object.getOwnPropertyDescriptor;Ci.f=Ji?oa:function(t,n){if(t=ta(t),n=na(n),ra)try{return oa(t,n)}catch(t){}if(ea(t,n))return Qi(!Xi(Zi.f,t,n),t[n])};var ia=Ie,aa=Ze,ua=Si,ca=De,sa=function(t,n,e,r){r||(r={});var o=r.enumerable,i=void 0!==r.name?r.name:n;if(ia(e)&&ua(e,i,r),r.global)o?t[n]=e:ca(n,e);else{try{r.unsafe?t[n]&&(o=!0):delete t[n]}catch(t){}o?t[n]=e:aa.f(t,n,{value:e,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return t},fa={},la=Math.ceil,da=Math.floor,pa=Math.trunc||function(t){var n=+t;return(n>0?da:la)(n)},ha=function(t){var n=+t;return n!=n||0===n?0:pa(n)},va=ha,ya=Math.max,ga=Math.min,ma=function(t,n){var e=va(t);return e<0?ya(e+n,0):ga(e,n)},ba=ha,wa=Math.min,Sa=function(t){return t>0?wa(ba(t),9007199254740991):0},Oa=Sa,ja=function(t){return Oa(t.length)},Ea=Yi,xa=ma,Ta=ja,ka=function(t){return function(n,e,r){var o,i=Ea(n),a=Ta(i),u=xa(r,a);if(t&&e!=e){for(;a>u;)if((o=i[u++])!=o)return!0}else for(;a>u;u++)if((t||u in i)&&i[u]===e)return t||u||0;return!t&&-1}},Aa={includes:ka(!0),indexOf:ka(!1)},Ma=we,Pa=Yi,Ia=Aa.indexOf,Ra=Go,Ca=fe([].push),La=function(t,n){var e,r=Pa(t),o=0,i=[];for(e in r)!Ma(Ra,e)&&Ma(r,e)&&Ca(i,e);for(;n.length>o;)Ma(r,e=n[o++])&&(~Ia(i,e)||Ca(i,e));return i},Na=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Da=La,Fa=Na.concat("length","prototype");fa.f=Object.getOwnPropertyNames||function(t){return Da(t,Fa)};var _a={};_a.f=Object.getOwnPropertySymbols;var $a=vr,Wa=fa,qa=_a,za=sr,Ga=fe([].concat),Ba=$a("Reflect","ownKeys")||function(t){var n=Wa.f(za(t)),e=qa.f;return e?Ga(n,e(t)):n},Ua=we,Ha=Ba,Va=Ci,Ka=Ze,Ya=re,Ja=Ie,Xa=/#|\.prototype\./,Za=function(t,n){var e=tu[Qa(t)];return e==eu||e!=nu&&(Ja(n)?Ya(n):!!n)},Qa=Za.normalize=function(t){return String(t).replace(Xa,".").toLowerCase()},tu=Za.data={},nu=Za.NATIVE="N",eu=Za.POLYFILL="P",ru=Za,ou=Ce,iu=Ci.f,au=$o,uu=sa,cu=De,su=function(t,n,e){for(var r=Ha(n),o=Ka.f,i=Va.f,a=0;a<r.length;a++){var u=r[a];Ua(t,u)||e&&Ua(e,u)||o(t,u,i(n,u))}},fu=ru,lu=function(t,n){var e,r,o,i,a,u=t.target,c=t.global,s=t.stat;if(e=c?ou:s?ou[u]||cu(u,{}):(ou[u]||{}).prototype)for(r in n){if(i=n[r],o=t.dontCallGetSet?(a=iu(e,r))&&a.value:e[r],!fu(c?r:u+(s?".":"#")+r,t.forced)&&void 0!==o){if(typeof i==typeof o)continue;su(i,o)}(t.sham||o&&o.sham)&&au(i,"sham",!0),uu(e,r,i,t)}},du=La,pu=Na,hu=Object.keys||function(t){return du(t,pu)},vu=oe,yu=fe,gu=dr,mu=re,bu=hu,wu=_a,Su=Li,Ou=ge,ju=Hi,Eu=Object.assign,xu=Object.defineProperty,Tu=yu([].concat),ku=!Eu||mu((function(){if(vu&&1!==Eu({b:1},Eu(xu({},"a",{enumerable:!0,get:function(){xu(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},n={},e=Symbol(),r="abcdefghijklmnopqrst";return t[e]=7,r.split("").forEach((function(t){n[t]=t})),7!=Eu({},t)[e]||bu(Eu({},n)).join("")!=r}))?function(t,n){for(var e=Ou(t),r=arguments.length,o=1,i=wu.f,a=Su.f;r>o;)for(var u,c=ju(arguments[o++]),s=i?Tu(bu(c),i(c)):bu(c),f=s.length,l=0;f>l;)u=s[l++],vu&&!gu(a,c,u)||(e[u]=c[u]);return e}:Eu,Au=ku;lu({target:"Object",stat:!0,arity:2,forced:Object.assign!==Au},{assign:Au});var Mu={};Mu[fo("toStringTag")]="z";var Pu="[object z]"===String(Mu),Iu=Pu,Ru=Ie,Cu=qi,Lu=fo("toStringTag"),Nu=Object,Du="Arguments"==Cu(function(){return arguments}()),Fu=Iu?Cu:function(t){var n,e,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(e=function(t,n){try{return t[n]}catch(t){}}(n=Nu(t),Lu))?e:Du?Cu(n):"Object"==(r=Cu(n))&&Ru(n.callee)?"Arguments":r},_u=Fu,$u=Pu?{}.toString:function(){return"[object "+_u(this)+"]"};Pu||sa(Object.prototype,"toString",$u,{unsafe:!0});var Wu="undefined"!=typeof process&&"process"==qi(process),qu=fe,zu=Wr,Gu=Ie,Bu=String,Uu=TypeError,Hu=function(t,n,e){try{return qu(zu(Object.getOwnPropertyDescriptor(t,n)[e]))}catch(t){}},Vu=sr,Ku=function(t){if("object"==typeof t||Gu(t))return t;throw Uu("Can't set "+Bu(t)+" as a prototype")},Yu=Object.setPrototypeOf||("__proto__"in{}?function(){var t,n=!1,e={};try{(t=Hu(Object.prototype,"__proto__","set"))(e,[]),n=e instanceof Array}catch(t){}return function(e,r){return Vu(e),Ku(r),n?t(e,r):e.__proto__=r,e}}():void 0),Ju=Ze.f,Xu=we,Zu=fo("toStringTag"),Qu=function(t,n,e){t&&!e&&(t=t.prototype),t&&!Xu(t,Zu)&&Ju(t,Zu,{configurable:!0,value:n})},tc=vr,nc=Ei,ec=oe,rc=fo("species"),oc=function(t){var n=tc(t);ec&&n&&!n[rc]&&nc(n,rc,{configurable:!0,get:function(){return this}})},ic=yr,ac=TypeError,uc=function(t,n){if(ic(n,t))return t;throw ac("Incorrect invocation")},cc=fe,sc=re,fc=Ie,lc=Fu,dc=Ue,pc=function(){},hc=[],vc=vr("Reflect","construct"),yc=/^\s*(?:class|function)\b/,gc=cc(yc.exec),mc=!yc.exec(pc),bc=function(t){if(!fc(t))return!1;try{return vc(pc,hc,t),!0}catch(t){return!1}},wc=function(t){if(!fc(t))return!1;switch(lc(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return mc||!!gc(yc,dc(t))}catch(t){return!0}};wc.sham=!0;var Sc,Oc,jc,Ec,xc=!vc||sc((function(){var t;return bc(bc.call)||!bc(Object)||!bc((function(){t=!0}))||t}))?wc:bc,Tc=xc,kc=Dr,Ac=TypeError,Mc=sr,Pc=function(t){if(Tc(t))return t;throw Ac(kc(t)+" is not a constructor")},Ic=le,Rc=fo("species"),Cc=ie,Lc=Function.prototype,Nc=Lc.apply,Dc=Lc.call,Fc="object"==typeof Reflect&&Reflect.apply||(Cc?Dc.bind(Nc):function(){return Dc.apply(Nc,arguments)}),_c=qi,$c=fe,Wc=function(t){if("Function"===_c(t))return $c(t)},qc=Wr,zc=ie,Gc=Wc(Wc.bind),Bc=function(t,n){return qc(t),void 0===n?t:zc?Gc(t,n):function(){return t.apply(n,arguments)}},Uc=vr("document","documentElement"),Hc=fe([].slice),Vc=TypeError,Kc=/(?:ipad|iphone|ipod).*applewebkit/i.test(gr),Yc=Ce,Jc=Fc,Xc=Bc,Zc=Ie,Qc=we,ts=re,ns=Uc,es=Hc,rs=er,os=function(t,n){if(t<n)throw Vc("Not enough arguments");return t},is=Kc,as=Wu,us=Yc.setImmediate,cs=Yc.clearImmediate,ss=Yc.process,fs=Yc.Dispatch,ls=Yc.Function,ds=Yc.MessageChannel,ps=Yc.String,hs=0,vs={},ys="onreadystatechange";ts((function(){Sc=Yc.location}));var gs=function(t){if(Qc(vs,t)){var n=vs[t];delete vs[t],n()}},ms=function(t){return function(){gs(t)}},bs=function(t){gs(t.data)},ws=function(t){Yc.postMessage(ps(t),Sc.protocol+"//"+Sc.host)};us&&cs||(us=function(t){os(arguments.length,1);var n=Zc(t)?t:ls(t),e=es(arguments,1);return vs[++hs]=function(){Jc(n,void 0,e)},Oc(hs),hs},cs=function(t){delete vs[t]},as?Oc=function(t){ss.nextTick(ms(t))}:fs&&fs.now?Oc=function(t){fs.now(ms(t))}:ds&&!is?(Ec=(jc=new ds).port2,jc.port1.onmessage=bs,Oc=Xc(Ec.postMessage,Ec)):Yc.addEventListener&&Zc(Yc.postMessage)&&!Yc.importScripts&&Sc&&"file:"!==Sc.protocol&&!ts(ws)?(Oc=ws,Yc.addEventListener("message",bs,!1)):Oc=ys in rs("script")?function(t){ns.appendChild(rs("script"))[ys]=function(){ns.removeChild(this),gs(t)}}:function(t){setTimeout(ms(t),0)});var Ss={set:us,clear:cs},Os=function(){this.head=null,this.tail=null};Os.prototype={add:function(t){var n={item:t,next:null},e=this.tail;e?e.next=n:this.head=n,this.tail=n},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}};var js,Es,xs,Ts,ks,As=Os,Ms=/ipad|iphone|ipod/i.test(gr)&&"undefined"!=typeof Pebble,Ps=/web0s(?!.*chrome)/i.test(gr),Is=Ce,Rs=Bc,Cs=Ci.f,Ls=Ss.set,Ns=As,Ds=Kc,Fs=Ms,_s=Ps,$s=Wu,Ws=Is.MutationObserver||Is.WebKitMutationObserver,qs=Is.document,zs=Is.process,Gs=Is.Promise,Bs=Cs(Is,"queueMicrotask"),Us=Bs&&Bs.value;if(!Us){var Hs=new Ns,Vs=function(){var t,n;for($s&&(t=zs.domain)&&t.exit();n=Hs.get();)try{n()}catch(t){throw Hs.head&&js(),t}t&&t.enter()};Ds||$s||_s||!Ws||!qs?!Fs&&Gs&&Gs.resolve?((Ts=Gs.resolve(void 0)).constructor=Gs,ks=Rs(Ts.then,Ts),js=function(){ks(Vs)}):$s?js=function(){zs.nextTick(Vs)}:(Ls=Rs(Ls,Is),js=function(){Ls(Vs)}):(Es=!0,xs=qs.createTextNode(""),new Ws(Vs).observe(xs,{characterData:!0}),js=function(){xs.data=Es=!Es}),Us=function(t){Hs.head||js(),Hs.add(t)}}var Ks=Us,Ys=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},Js=Ce.Promise,Xs="object"==typeof Deno&&Deno&&"object"==typeof Deno.version,Zs=!Xs&&!Wu&&"object"==typeof window&&"object"==typeof document,Qs=Ce,tf=Js,nf=Ie,ef=ru,rf=Ue,of=fo,af=Zs,uf=Xs,cf=Er;tf&&tf.prototype;var sf=of("species"),ff=!1,lf=nf(Qs.PromiseRejectionEvent),df=ef("Promise",(function(){var t=rf(tf),n=t!==String(tf);if(!n&&66===cf)return!0;if(!cf||cf<51||!/native code/.test(t)){var e=new tf((function(t){t(1)})),r=function(t){t((function(){}),(function(){}))};if((e.constructor={})[sf]=r,!(ff=e.then((function(){}))instanceof r))return!0}return!n&&(af||uf)&&!lf})),pf={CONSTRUCTOR:df,REJECTION_EVENT:lf,SUBCLASSING:ff},hf={},vf=Wr,yf=TypeError,gf=function(t){var n,e;this.promise=new t((function(t,r){if(void 0!==n||void 0!==e)throw yf("Bad Promise constructor");n=t,e=r})),this.resolve=vf(n),this.reject=vf(e)};hf.f=function(t){return new gf(t)};var mf,bf,wf,Sf=lu,Of=Wu,jf=Ce,Ef=dr,xf=sa,Tf=Yu,kf=Qu,Af=oc,Mf=Wr,Pf=Ie,If=Xe,Rf=uc,Cf=function(t,n){var e,r=Mc(t).constructor;return void 0===r||Ic(e=Mc(r)[Rc])?n:Pc(e)},Lf=Ss.set,Nf=Ks,Df=function(t,n){try{1==arguments.length?console.error(t):console.error(t,n)}catch(t){}},Ff=Ys,_f=As,$f=ri,Wf=Js,qf=hf,zf="Promise",Gf=pf.CONSTRUCTOR,Bf=pf.REJECTION_EVENT,Uf=pf.SUBCLASSING,Hf=$f.getterFor(zf),Vf=$f.set,Kf=Wf&&Wf.prototype,Yf=Wf,Jf=Kf,Xf=jf.TypeError,Zf=jf.document,Qf=jf.process,tl=qf.f,nl=tl,el=!!(Zf&&Zf.createEvent&&jf.dispatchEvent),rl="unhandledrejection",ol=function(t){var n;return!(!If(t)||!Pf(n=t.then))&&n},il=function(t,n){var e,r,o,i=n.value,a=1==n.state,u=a?t.ok:t.fail,c=t.resolve,s=t.reject,f=t.domain;try{u?(a||(2===n.rejection&&fl(n),n.rejection=1),!0===u?e=i:(f&&f.enter(),e=u(i),f&&(f.exit(),o=!0)),e===t.promise?s(Xf("Promise-chain cycle")):(r=ol(e))?Ef(r,e,c,s):c(e)):s(i)}catch(t){f&&!o&&f.exit(),s(t)}},al=function(t,n){t.notified||(t.notified=!0,Nf((function(){for(var e,r=t.reactions;e=r.get();)il(e,t);t.notified=!1,n&&!t.rejection&&cl(t)})))},ul=function(t,n,e){var r,o;el?((r=Zf.createEvent("Event")).promise=n,r.reason=e,r.initEvent(t,!1,!0),jf.dispatchEvent(r)):r={promise:n,reason:e},!Bf&&(o=jf["on"+t])?o(r):t===rl&&Df("Unhandled promise rejection",e)},cl=function(t){Ef(Lf,jf,(function(){var n,e=t.facade,r=t.value;if(sl(t)&&(n=Ff((function(){Of?Qf.emit("unhandledRejection",r,e):ul(rl,e,r)})),t.rejection=Of||sl(t)?2:1,n.error))throw n.value}))},sl=function(t){return 1!==t.rejection&&!t.parent},fl=function(t){Ef(Lf,jf,(function(){var n=t.facade;Of?Qf.emit("rejectionHandled",n):ul("rejectionhandled",n,t.value)}))},ll=function(t,n,e){return function(r){t(n,r,e)}},dl=function(t,n,e){t.done||(t.done=!0,e&&(t=e),t.value=n,t.state=2,al(t,!0))},pl=function(t,n,e){if(!t.done){t.done=!0,e&&(t=e);try{if(t.facade===n)throw Xf("Promise can't be resolved itself");var r=ol(n);r?Nf((function(){var e={done:!1};try{Ef(r,n,ll(pl,e,t),ll(dl,e,t))}catch(n){dl(e,n,t)}})):(t.value=n,t.state=1,al(t,!1))}catch(n){dl({done:!1},n,t)}}};if(Gf&&(Jf=(Yf=function(t){Rf(this,Jf),Mf(t),Ef(mf,this);var n=Hf(this);try{t(ll(pl,n),ll(dl,n))}catch(t){dl(n,t)}}).prototype,(mf=function(t){Vf(this,{type:zf,done:!1,notified:!1,parent:!1,reactions:new _f,rejection:!1,state:0,value:void 0})}).prototype=xf(Jf,"then",(function(t,n){var e=Hf(this),r=tl(Cf(this,Yf));return e.parent=!0,r.ok=!Pf(t)||t,r.fail=Pf(n)&&n,r.domain=Of?Qf.domain:void 0,0==e.state?e.reactions.add(r):Nf((function(){il(r,e)})),r.promise})),bf=function(){var t=new mf,n=Hf(t);this.promise=t,this.resolve=ll(pl,n),this.reject=ll(dl,n)},qf.f=tl=function(t){return t===Yf||undefined===t?new bf(t):nl(t)},Pf(Wf)&&Kf!==Object.prototype)){wf=Kf.then,Uf||xf(Kf,"then",(function(t,n){var e=this;return new Yf((function(t,n){Ef(wf,e,t,n)})).then(t,n)}),{unsafe:!0});try{delete Kf.constructor}catch(t){}Tf&&Tf(Kf,Jf)}Sf({global:!0,constructor:!0,wrap:!0,forced:Gf},{Promise:Yf}),kf(Yf,zf,!1),Af(zf);var hl={},vl=hl,yl=fo("iterator"),gl=Array.prototype,ml=function(t){return void 0!==t&&(vl.Array===t||gl[yl]===t)},bl=Fu,wl=Gr,Sl=le,Ol=hl,jl=fo("iterator"),El=function(t){if(!Sl(t))return wl(t,jl)||wl(t,"@@iterator")||Ol[bl(t)]},xl=dr,Tl=Wr,kl=sr,Al=Dr,Ml=El,Pl=TypeError,Il=function(t,n){var e=arguments.length<2?Ml(t):n;if(Tl(e))return kl(xl(e,t));throw Pl(Al(t)+" is not iterable")},Rl=dr,Cl=sr,Ll=Gr,Nl=function(t,n,e){var r,o;Cl(t);try{if(!(r=Ll(t,"return"))){if("throw"===n)throw e;return e}r=Rl(r,t)}catch(t){o=!0,r=t}if("throw"===n)throw e;if(o)throw r;return Cl(r),e},Dl=Bc,Fl=dr,_l=sr,$l=Dr,Wl=ml,ql=ja,zl=yr,Gl=Il,Bl=El,Ul=Nl,Hl=TypeError,Vl=function(t,n){this.stopped=t,this.result=n},Kl=Vl.prototype,Yl=function(t,n,e){var r,o,i,a,u,c,s,f=e&&e.that,l=!(!e||!e.AS_ENTRIES),d=!(!e||!e.IS_RECORD),p=!(!e||!e.IS_ITERATOR),h=!(!e||!e.INTERRUPTED),v=Dl(n,f),y=function(t){return r&&Ul(r,"normal",t),new Vl(!0,t)},g=function(t){return l?(_l(t),h?v(t[0],t[1],y):v(t[0],t[1])):h?v(t,y):v(t)};if(d)r=t.iterator;else if(p)r=t;else{if(!(o=Bl(t)))throw Hl($l(t)+" is not iterable");if(Wl(o)){for(i=0,a=ql(t);a>i;i++)if((u=g(t[i]))&&zl(Kl,u))return u;return new Vl(!1)}r=Gl(t,o)}for(c=d?t.next:r.next;!(s=Fl(c,r)).done;){try{u=g(s.value)}catch(t){Ul(r,"throw",t)}if("object"==typeof u&&u&&zl(Kl,u))return u}return new Vl(!1)},Jl=fo("iterator"),Xl=!1;try{var Zl=0,Ql={next:function(){return{done:!!Zl++}},return:function(){Xl=!0}};Ql[Jl]=function(){return this},Array.from(Ql,(function(){throw 2}))}catch(t){}var td=function(t,n){if(!n&&!Xl)return!1;var e=!1;try{var r={};r[Jl]=function(){return{next:function(){return{done:e=!0}}}},t(r)}catch(t){}return e},nd=Js,ed=pf.CONSTRUCTOR||!td((function(t){nd.all(t).then(void 0,(function(){}))})),rd=dr,od=Wr,id=hf,ad=Ys,ud=Yl;lu({target:"Promise",stat:!0,forced:ed},{all:function(t){var n=this,e=id.f(n),r=e.resolve,o=e.reject,i=ad((function(){var e=od(n.resolve),i=[],a=0,u=1;ud(t,(function(t){var c=a++,s=!1;u++,rd(e,n,t).then((function(t){s||(s=!0,i[c]=t,--u||r(i))}),o)})),--u||r(i)}));return i.error&&o(i.value),e.promise}});var cd=lu,sd=pf.CONSTRUCTOR,fd=Js,ld=vr,dd=Ie,pd=sa,hd=fd&&fd.prototype;if(cd({target:"Promise",proto:!0,forced:sd,real:!0},{catch:function(t){return this.then(void 0,t)}}),dd(fd)){var vd=ld("Promise").prototype.catch;hd.catch!==vd&&pd(hd,"catch",vd,{unsafe:!0})}var yd=dr,gd=Wr,md=hf,bd=Ys,wd=Yl;lu({target:"Promise",stat:!0,forced:ed},{race:function(t){var n=this,e=md.f(n),r=e.reject,o=bd((function(){var o=gd(n.resolve);wd(t,(function(t){yd(o,n,t).then(e.resolve,r)}))}));return o.error&&r(o.value),e.promise}});var Sd=dr,Od=hf;lu({target:"Promise",stat:!0,forced:pf.CONSTRUCTOR},{reject:function(t){var n=Od.f(this);return Sd(n.reject,void 0,t),n.promise}});var jd=sr,Ed=Xe,xd=hf,Td=lu,kd=pf.CONSTRUCTOR,Ad=function(t,n){if(jd(t),Ed(n)&&n.constructor===t)return n;var e=xd.f(t);return(0,e.resolve)(n),e.promise};vr("Promise"),Td({target:"Promise",stat:!0,forced:kd},{resolve:function(t){return Ad(this,t)}});var Md={},Pd=oe,Id=ir,Rd=Ze,Cd=sr,Ld=Yi,Nd=hu;Md.f=Pd&&!Id?Object.defineProperties:function(t,n){Cd(t);for(var e,r=Ld(n),o=Nd(n),i=o.length,a=0;i>a;)Rd.f(t,e=o[a++],r[e]);return t};var Dd,Fd=sr,_d=Md,$d=Na,Wd=Go,qd=Uc,zd=er,Gd="prototype",Bd="script",Ud=zo("IE_PROTO"),Hd=function(){},Vd=function(t){return"<"+Bd+">"+t+"</"+Bd+">"},Kd=function(t){t.write(Vd("")),t.close();var n=t.parentWindow.Object;return t=null,n},Yd=function(){try{Dd=new ActiveXObject("htmlfile")}catch(t){}var t,n,e;Yd="undefined"!=typeof document?document.domain&&Dd?Kd(Dd):(n=zd("iframe"),e="java"+Bd+":",n.style.display="none",qd.appendChild(n),n.src=String(e),(t=n.contentWindow.document).open(),t.write(Vd("document.F=Object")),t.close(),t.F):Kd(Dd);for(var r=$d.length;r--;)delete Yd[Gd][$d[r]];return Yd()};Wd[Ud]=!0;var Jd=Object.create||function(t,n){var e;return null!==t?(Hd[Gd]=Fd(t),e=new Hd,Hd[Gd]=null,e[Ud]=t):e=Yd(),void 0===n?e:_d.f(e,n)},Xd=fo,Zd=Jd,Qd=Ze.f,tp=Xd("unscopables"),np=Array.prototype;null==np[tp]&&Qd(np,tp,{configurable:!0,value:Zd(null)});var ep,rp,op,ip=function(t){np[tp][t]=!0},ap=!re((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})),up=we,cp=Ie,sp=ge,fp=ap,lp=zo("IE_PROTO"),dp=Object,pp=dp.prototype,hp=fp?dp.getPrototypeOf:function(t){var n=sp(t);if(up(n,lp))return n[lp];var e=n.constructor;return cp(e)&&n instanceof e?e.prototype:n instanceof dp?pp:null},vp=re,yp=Ie,gp=Xe,mp=hp,bp=sa,wp=fo("iterator"),Sp=!1;[].keys&&("next"in(op=[].keys())?(rp=mp(mp(op)))!==Object.prototype&&(ep=rp):Sp=!0);var Op=!gp(ep)||vp((function(){var t={};return ep[wp].call(t)!==t}));Op&&(ep={}),yp(ep[wp])||bp(ep,wp,(function(){return this}));var jp={IteratorPrototype:ep,BUGGY_SAFARI_ITERATORS:Sp},Ep=jp.IteratorPrototype,xp=Jd,Tp=Do,kp=Qu,Ap=hl,Mp=function(){return this},Pp=lu,Ip=dr,Rp=Ie,Cp=function(t,n,e,r){var o=n+" Iterator";return t.prototype=xp(Ep,{next:Tp(+!r,e)}),kp(t,o,!1),Ap[o]=Mp,t},Lp=hp,Np=Yu,Dp=Qu,Fp=$o,_p=sa,$p=hl,Wp=Te.PROPER,qp=Te.CONFIGURABLE,zp=jp.IteratorPrototype,Gp=jp.BUGGY_SAFARI_ITERATORS,Bp=fo("iterator"),Up="keys",Hp="values",Vp="entries",Kp=function(){return this},Yp=function(t,n,e,r,o,i,a){Cp(e,n,r);var u,c,s,f=function(t){if(t===o&&v)return v;if(!Gp&&t in p)return p[t];switch(t){case Up:case Hp:case Vp:return function(){return new e(this,t)}}return function(){return new e(this)}},l=n+" Iterator",d=!1,p=t.prototype,h=p[Bp]||p["@@iterator"]||o&&p[o],v=!Gp&&h||f(o),y="Array"==n&&p.entries||h;if(y&&(u=Lp(y.call(new t)))!==Object.prototype&&u.next&&(Lp(u)!==zp&&(Np?Np(u,zp):Rp(u[Bp])||_p(u,Bp,Kp)),Dp(u,l,!0)),Wp&&o==Hp&&h&&h.name!==Hp&&(qp?Fp(p,"name",Hp):(d=!0,v=function(){return Ip(h,this)})),o)if(c={values:f(Hp),keys:i?v:f(Up),entries:f(Vp)},a)for(s in c)(Gp||d||!(s in p))&&_p(p,s,c[s]);else Pp({target:n,proto:!0,forced:Gp||d},c);return p[Bp]!==v&&_p(p,Bp,v,{name:o}),$p[n]=v,c},Jp=function(t,n){return{value:t,done:n}},Xp=Yi,Zp=ip,Qp=hl,th=ri,nh=Ze.f,eh=Yp,rh=Jp,oh=oe,ih="Array Iterator",ah=th.set,uh=th.getterFor(ih),ch=eh(Array,"Array",(function(t,n){ah(this,{type:ih,target:Xp(t),index:0,kind:n})}),(function(){var t=uh(this),n=t.target,e=t.kind,r=t.index++;return!n||r>=n.length?(t.target=void 0,rh(void 0,!0)):rh("keys"==e?r:"values"==e?n[r]:[r,n[r]],!1)}),"values"),sh=Qp.Arguments=Qp.Array;if(Zp("keys"),Zp("values"),Zp("entries"),oh&&"values"!==sh.name)try{nh(sh,"name",{value:"values"})}catch(t){}var fh=Fu,lh=String,dh=function(t){if("Symbol"===fh(t))throw TypeError("Cannot convert a Symbol value to a string");return lh(t)},ph=fe,hh=ha,vh=dh,yh=he,gh=ph("".charAt),mh=ph("".charCodeAt),bh=ph("".slice),wh=function(t){return function(n,e){var r,o,i=vh(yh(n)),a=hh(e),u=i.length;return a<0||a>=u?t?"":void 0:(r=mh(i,a))<55296||r>56319||a+1===u||(o=mh(i,a+1))<56320||o>57343?t?gh(i,a):r:t?bh(i,a,a+2):o-56320+(r-55296<<10)+65536}},Sh={codeAt:wh(!1),charAt:wh(!0)}.charAt,Oh=dh,jh=ri,Eh=Yp,xh=Jp,Th="String Iterator",kh=jh.set,Ah=jh.getterFor(Th);Eh(String,"String",(function(t){kh(this,{type:Th,string:Oh(t),index:0})}),(function(){var t,n=Ah(this),e=n.string,r=n.index;return r>=e.length?xh(void 0,!0):(t=Sh(e,r),n.index+=t.length,xh(t,!1))}));var Mh={exports:{}},Ph={},Ih=So,Rh=Ze,Ch=Do,Lh=function(t,n,e){var r=Ih(n);r in t?Rh.f(t,r,Ch(0,e)):t[r]=e},Nh=ma,Dh=ja,Fh=Lh,_h=Array,$h=Math.max,Wh=function(t,n,e){for(var r=Dh(t),o=Nh(n,r),i=Nh(void 0===e?r:e,r),a=_h($h(i-o,0)),u=0;o<i;o++,u++)Fh(a,u,t[o]);return a.length=u,a},qh=qi,zh=Yi,Gh=fa.f,Bh=Wh,Uh="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];Ph.f=function(t){return Uh&&"Window"==qh(t)?function(t){try{return Gh(t)}catch(t){return Bh(Uh)}}(t):Gh(zh(t))};var Hh=re((function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}})),Vh=re,Kh=Xe,Yh=qi,Jh=Hh,Xh=Object.isExtensible,Zh=Vh((function(){Xh(1)}))||Jh?function(t){return!!Kh(t)&&((!Jh||"ArrayBuffer"!=Yh(t))&&(!Xh||Xh(t)))}:Xh,Qh=!re((function(){return Object.isExtensible(Object.preventExtensions({}))})),tv=lu,nv=fe,ev=Go,rv=Xe,ov=we,iv=Ze.f,av=fa,uv=Ph,cv=Zh,sv=Qh,fv=!1,lv=no("meta"),dv=0,pv=function(t){iv(t,lv,{value:{objectID:"O"+dv++,weakData:{}}})},hv=Mh.exports={enable:function(){hv.enable=function(){},fv=!0;var t=av.f,n=nv([].splice),e={};e[lv]=1,t(e).length&&(av.f=function(e){for(var r=t(e),o=0,i=r.length;o<i;o++)if(r[o]===lv){n(r,o,1);break}return r},tv({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:uv.f}))},fastKey:function(t,n){if(!rv(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!ov(t,lv)){if(!cv(t))return"F";if(!n)return"E";pv(t)}return t[lv].objectID},getWeakData:function(t,n){if(!ov(t,lv)){if(!cv(t))return!0;if(!n)return!1;pv(t)}return t[lv].weakData},onFreeze:function(t){return sv&&fv&&cv(t)&&!ov(t,lv)&&pv(t),t}};ev[lv]=!0;var vv=Mh.exports,yv=Ie,gv=Xe,mv=Yu,bv=lu,wv=Ce,Sv=fe,Ov=ru,jv=sa,Ev=vv,xv=Yl,Tv=uc,kv=Ie,Av=le,Mv=Xe,Pv=re,Iv=td,Rv=Qu,Cv=function(t,n,e){var r,o;return mv&&yv(r=n.constructor)&&r!==e&&gv(o=r.prototype)&&o!==e.prototype&&mv(t,o),t},Lv=function(t,n,e){var r=-1!==t.indexOf("Map"),o=-1!==t.indexOf("Weak"),i=r?"set":"add",a=wv[t],u=a&&a.prototype,c=a,s={},f=function(t){var n=Sv(u[t]);jv(u,t,"add"==t?function(t){return n(this,0===t?0:t),this}:"delete"==t?function(t){return!(o&&!Mv(t))&&n(this,0===t?0:t)}:"get"==t?function(t){return o&&!Mv(t)?void 0:n(this,0===t?0:t)}:"has"==t?function(t){return!(o&&!Mv(t))&&n(this,0===t?0:t)}:function(t,e){return n(this,0===t?0:t,e),this})};if(Ov(t,!kv(a)||!(o||u.forEach&&!Pv((function(){(new a).entries().next()})))))c=e.getConstructor(n,t,r,i),Ev.enable();else if(Ov(t,!0)){var l=new c,d=l[i](o?{}:-0,1)!=l,p=Pv((function(){l.has(1)})),h=Iv((function(t){new a(t)})),v=!o&&Pv((function(){for(var t=new a,n=5;n--;)t[i](n,n);return!t.has(-0)}));h||((c=n((function(t,n){Tv(t,u);var e=Cv(new a,t,c);return Av(n)||xv(n,e[i],{that:e,AS_ENTRIES:r}),e}))).prototype=u,u.constructor=c),(p||v)&&(f("delete"),f("has"),r&&f("get")),(v||d)&&f(i),o&&u.clear&&delete u.clear}return s[t]=c,bv({global:!0,constructor:!0,forced:c!=a},s),Rv(c,t),o||e.setStrong(c,t,r),c},Nv=sa,Dv=function(t,n,e){for(var r in n)Nv(t,r,n[r],e);return t},Fv=qi,_v=Array.isArray||function(t){return"Array"==Fv(t)},$v=_v,Wv=xc,qv=Xe,zv=fo("species"),Gv=Array,Bv=function(t){var n;return $v(t)&&(n=t.constructor,(Wv(n)&&(n===Gv||$v(n.prototype))||qv(n)&&null===(n=n[zv]))&&(n=void 0)),void 0===n?Gv:n},Uv=function(t,n){return new(Bv(t))(0===n?0:n)},Hv=Bc,Vv=Hi,Kv=ge,Yv=ja,Jv=Uv,Xv=fe([].push),Zv=function(t){var n=1==t,e=2==t,r=3==t,o=4==t,i=6==t,a=7==t,u=5==t||i;return function(c,s,f,l){for(var d,p,h=Kv(c),v=Vv(h),y=Hv(s,f),g=Yv(v),m=0,b=l||Jv,w=n?b(c,g):e||a?b(c,0):void 0;g>m;m++)if((u||m in v)&&(p=y(d=v[m],m,h),t))if(n)w[m]=p;else if(p)switch(t){case 3:return!0;case 5:return d;case 6:return m;case 2:Xv(w,d)}else switch(t){case 4:return!1;case 7:Xv(w,d)}return i?-1:r||o?o:w}},Qv={forEach:Zv(0),map:Zv(1),filter:Zv(2),some:Zv(3),every:Zv(4),find:Zv(5),findIndex:Zv(6),filterReject:Zv(7)},ty=fe,ny=Dv,ey=vv.getWeakData,ry=uc,oy=sr,iy=le,ay=Xe,uy=Yl,cy=we,sy=ri.set,fy=ri.getterFor,ly=Qv.find,dy=Qv.findIndex,py=ty([].splice),hy=0,vy=function(t){return t.frozen||(t.frozen=new yy)},yy=function(){this.entries=[]},gy=function(t,n){return ly(t.entries,(function(t){return t[0]===n}))};yy.prototype={get:function(t){var n=gy(this,t);if(n)return n[1]},has:function(t){return!!gy(this,t)},set:function(t,n){var e=gy(this,t);e?e[1]=n:this.entries.push([t,n])},delete:function(t){var n=dy(this.entries,(function(n){return n[0]===t}));return~n&&py(this.entries,n,1),!!~n}};var my={getConstructor:function(t,n,e,r){var o=t((function(t,o){ry(t,i),sy(t,{type:n,id:hy++,frozen:void 0}),iy(o)||uy(o,t[r],{that:t,AS_ENTRIES:e})})),i=o.prototype,a=fy(n),u=function(t,n,e){var r=a(t),o=ey(oy(n),!0);return!0===o?vy(r).set(n,e):o[r.id]=e,t};return ny(i,{delete:function(t){var n=a(this);if(!ay(t))return!1;var e=ey(t);return!0===e?vy(n).delete(t):e&&cy(e,n.id)&&delete e[n.id]},has:function(t){var n=a(this);if(!ay(t))return!1;var e=ey(t);return!0===e?vy(n).has(t):e&&cy(e,n.id)}}),ny(i,e?{get:function(t){var n=a(this);if(ay(t)){var e=ey(t);return!0===e?vy(n).get(t):e?e[n.id]:void 0}},set:function(t,n){return u(this,t,n)}}:{add:function(t){return u(this,t,!0)}}),o}};Lv("WeakSet",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),my);var by={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},wy=er("span").classList,Sy=wy&&wy.constructor&&wy.constructor.prototype,Oy=Sy===Object.prototype?void 0:Sy,jy=Ce,Ey=by,xy=Oy,Ty=ch,ky=$o,Ay=fo,My=Ay("iterator"),Py=Ay("toStringTag"),Iy=Ty.values,Ry=function(t,n){if(t){if(t[My]!==Iy)try{ky(t,My,Iy)}catch(n){t[My]=Iy}if(t[Py]||ky(t,Py,n),Ey[n])for(var e in Ty)if(t[e]!==Ty[e])try{ky(t,e,Ty[e])}catch(n){t[e]=Ty[e]}}};for(var Cy in Ey)Ry(jy[Cy]&&jy[Cy].prototype,Cy);Ry(xy,"DOMTokenList");var Ly=re,Ny=Er,Dy=fo("species"),Fy=function(t){return Ny>=51||!Ly((function(){var n=[];return(n.constructor={})[Dy]=function(){return{foo:1}},1!==n[t](Boolean).foo}))},_y=lu,$y=_v,Wy=xc,qy=Xe,zy=ma,Gy=ja,By=Yi,Uy=Lh,Hy=fo,Vy=Hc,Ky=Fy("slice"),Yy=Hy("species"),Jy=Array,Xy=Math.max;_y({target:"Array",proto:!0,forced:!Ky},{slice:function(t,n){var e,r,o,i=By(this),a=Gy(i),u=zy(t,a),c=zy(void 0===n?a:n,a);if($y(i)&&(e=i.constructor,(Wy(e)&&(e===Jy||$y(e.prototype))||qy(e)&&null===(e=e[Yy]))&&(e=void 0),e===Jy||void 0===e))return Vy(i,u,c);for(r=new(void 0===e?Jy:e)(Xy(c-u,0)),o=0;u<c;u++,o++)u in i&&Uy(r,o,i[u]);return r.length=o,r}});var Zy=re,Qy=function(t,n){var e=[][t];return!!e&&Zy((function(){e.call(null,n||function(){return 1},1)}))},tg=lu,ng=Hi,eg=Yi,rg=Qy,og=fe([].join);function ig(t,n,e,r){if("a"===e&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof n?t!==n||!r:!n.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===e?r:"a"===e?r.call(t):r?r.value:n.get(t)}tg({target:"Array",proto:!0,forced:ng!=Object||!rg("join",",")},{join:function(t){return og(eg(this),void 0===t?",":t)}});var ag=ge,ug=hu;lu({target:"Object",stat:!0,forced:re((function(){ug(1)}))},{keys:function(t){return ug(ag(t))}});var cg,sg=Xe,fg=qi,lg=fo("match"),dg=function(t){var n;return sg(t)&&(void 0!==(n=t[lg])?!!n:"RegExp"==fg(t))},pg=TypeError,hg=fo("match"),vg=lu,yg=Wc,gg=Ci.f,mg=Sa,bg=dh,wg=function(t){if(dg(t))throw pg("The method doesn't accept regular expressions");return t},Sg=he,Og=function(t){var n=/./;try{"/./"[t](n)}catch(e){try{return n[hg]=!1,"/./"[t](n)}catch(t){}}return!1},jg=yg("".startsWith),Eg=yg("".slice),xg=Math.min,Tg=Og("startsWith");vg({target:"String",proto:!0,forced:!!(Tg||(cg=gg(String.prototype,"startsWith"),!cg||cg.writable))&&!Tg},{startsWith:function(t){var n=bg(Sg(this));wg(t);var e=mg(xg(arguments.length>1?arguments[1]:void 0,n.length)),r=bg(t);return jg?jg(n,r,e):Eg(n,e,e+r.length)===r}});var kg=Qv.forEach,Ag=Ce,Mg=by,Pg=Oy,Ig=Qy("forEach")?[].forEach:function(t){return kg(this,t,arguments.length>1?arguments[1]:void 0)},Rg=$o,Cg=function(t){if(t&&t.forEach!==Ig)try{Rg(t,"forEach",Ig)}catch(n){t.forEach=Ig}};for(var Lg in Mg)Mg[Lg]&&Cg(Ag[Lg]&&Ag[Lg].prototype);Cg(Pg);var Ng=oe,Dg=fe,Fg=hu,_g=Yi,$g=Dg(Li.f),Wg=Dg([].push),qg=function(t){return function(n){for(var e,r=_g(n),o=Fg(r),i=o.length,a=0,u=[];i>a;)e=o[a++],Ng&&!$g(r,e)||Wg(u,t?[e,r[e]]:r[e]);return u}},zg={entries:qg(!0),values:qg(!1)}.entries;function Gg(t){return null!=t&&!Number.isNaN(t)}function Bg(t,n){return+Gg(n)-+Gg(t)||e(t,n)}function Ug(t){return isFinite(t)?t:NaN}function Hg(t){return t>0&&isFinite(t)?t:NaN}function Vg(t){return t<0&&isFinite(t)?t:NaN}lu({target:"Object",stat:!0},{entries:function(t){return zg(t)}});const Kg=/^(?:[-+]\d{2})?\d{4}(?:-\d{2}(?:-\d{2})?)?(?:T\d{2}:\d{2}(?::\d{2}(?:\.\d{3})?)?(?:Z|[-+]\d{2}:?\d{2})?)?$/;function Yg(t,n){return Kg.test(t+="")?new Date(t):"function"==typeof n?n(t):n}const Jg=new Map([["second",r],["minute",o],["hour",i],["day",a],["week",u],["month",c],["quarter",c.every(3)],["half",c.every(6)],["year",s],["monday",f],["tuesday",l],["wednesday",d],["thursday",p],["friday",h],["saturday",v],["sunday",y]]),Xg=new Map([["second",g],["minute",m],["hour",b],["day",w],["week",S],["month",O],["quarter",O.every(3)],["half",O.every(6)],["year",j],["monday",E],["tuesday",x],["wednesday",T],["thursday",k],["friday",A],["saturday",M],["sunday",P]]);function Zg(t){const n=Jg.get(`${t}`.toLowerCase());if(!n)throw new Error(`unknown interval: ${t}`);return n}function Qg(t){const n=Xg.get(`${t}`.toLowerCase());if(!n)throw new Error(`unknown interval: ${t}`);return n}const tm=Object.getPrototypeOf(Uint8Array),nm=Object.prototype.toString,em=t=>()=>t;function rm(t){return t instanceof tm?t:cm(t,om,Float64Array)}function om(t){return null==t?NaN:Number(t)}function im(t){return cm(t,am)}function am(t){return t instanceof Date&&!isNaN(t)?t:"string"==typeof t?Yg(t):null==t||isNaN(t=+t)?void 0:new Date(t)}function um(t){return null==t||t instanceof Array||t instanceof tm?t:Array.from(t)}function cm(t,n,e=Array){return null==t?t:t instanceof e?t.map(n):e.from(t,n)}function sm(t,n=Array){return t instanceof n?t.slice():n.from(t)}function fm(t){return function(t){return t?.toString===nm}(t)&&(void 0!==t.type||void 0!==t.domain)}function lm(t,n){if(null!=t){if("number"==typeof t){0<t&&t<1&&Number.isInteger(1/t)&&(t=-1/t);const n=Math.abs(t);return t<0?{floor:t=>Math.floor(t*n)/n,offset:t=>(t*n+1)/n,range:(t,e)=>R(Math.ceil(t*n),e*n).map((t=>t/n))}:{floor:t=>Math.floor(t/n)*n,offset:t=>t+n,range:(t,e)=>R(Math.ceil(t/n),e/n).map((t=>t*n))}}if("string"==typeof t)return("time"===n?Zg:Qg)(t);if("function"!=typeof t.floor)throw new Error("invalid interval; missing floor method");if("function"!=typeof t.offset)throw new Error("invalid interval; missing offset method");return t}}function dm(t,n){if((t=lm(t,n))&&"function"!=typeof t.range)throw new Error("invalid interval: missing range method");return t}function pm(t){for(const n of t){if(null==n)continue;const t=typeof n;return"string"===t||"boolean"===t}}function hm(t){for(const n of t)if(null!=n)return n instanceof Date}function vm(t){for(const n of t)if(null!=n)return"string"==typeof n&&isNaN(n)&&Yg(n)}function ym(t){for(const n of t)if(null!=n){if("string"!=typeof n)return!1;if(n.trim())return!isNaN(n)}}function gm(t){if(null==t)return;const n=t[0],e=t[t.length-1];return I(n,e)}const mm=Symbol("position"),bm=Symbol("color"),wm=Symbol("radius"),Sm=Symbol("length"),Om=Symbol("opacity"),jm=Symbol("symbol"),Em=new Map([["x",mm],["y",mm],["fx",mm],["fy",mm],["r",wm],["color",bm],["opacity",Om],["symbol",jm],["length",Sm]]),xm=2/Math.sqrt(3),Tm=new Map([["asterisk",C],["circle",L],["cross",N],["diamond",D],["diamond2",F],["hexagon",{draw(t,n){const e=Math.sqrt(n/Math.PI),r=e*xm,o=r/2;t.moveTo(0,r),t.lineTo(e,o),t.lineTo(e,-o),t.lineTo(0,-r),t.lineTo(-e,-o),t.lineTo(-e,o),t.closePath()}}],["plus",_],["square",$],["square2",W],["star",q],["times",z],["triangle",G],["triangle2",B],["wye",U]]);function km(t){if(null==t||function(t){return t&&"function"==typeof t.draw}(t))return t;const n=Tm.get(`${t}`.toLowerCase());if(n)return n;throw new Error(`invalid symbol: ${t}`)}function Am(t){console.warn(t)}const Mm=new Map([["accent",H],["category10",V],["dark2",K],["paired",Y],["pastel1",J],["pastel2",X],["set1",Z],["set2",Q],["set3",tt],["tableau10",nt],["brbg",Im(qt,rt)],["prgn",Im(zt,ot)],["piyg",Im(Gt,it)],["puor",Im(Bt,at)],["rdbu",Im(Ut,ut)],["rdgy",Im(Ht,ct)],["rdylbu",Im(Vt,st)],["rdylgn",Im(Kt,ft)],["spectral",Im(Yt,lt)],["burd",Rm(Ut,ut)],["buylrd",Rm(Vt,st)],["blues",Pm(Jt,dt)],["greens",Pm(Xt,pt)],["greys",Pm(Zt,ht)],["oranges",Pm(Qt,gt)],["purples",Pm(tn,vt)],["reds",Pm(nn,yt)],["turbo",Cm(mt)],["viridis",Cm(bt)],["magma",Cm(wt)],["inferno",Cm(St)],["plasma",Cm(Ot)],["cividis",Cm(jt)],["cubehelix",Cm(Et)],["warm",Cm(xt)],["cool",Cm(Tt)],["bugn",Pm(en,kt)],["bupu",Pm(rn,At)],["gnbu",Pm(on,Mt)],["orrd",Pm(an,Pt)],["pubu",Pm(un,Rt)],["pubugn",Pm(cn,It)],["purd",Pm(sn,Ct)],["rdpu",Pm(fn,Lt)],["ylgn",Pm(ln,Dt)],["ylgnbu",Pm(dn,Nt)],["ylorbr",Pm(pn,Ft)],["ylorrd",Pm(hn,_t)],["rainbow",Lm($t)],["sinebow",Lm(Wt)]]);function Pm(t,n){return({length:e})=>1===e?[t[3][1]]:2===e?[t[3][1],t[3][2]]:(e=Math.max(3,Math.floor(e)))>9?et(n,e):t[e]}function Im(t,n){return({length:e})=>2===e?[t[3][0],t[3][2]]:(e=Math.max(3,Math.floor(e)))>11?et(n,e):t[e]}function Rm(t,n){return({length:e})=>2===e?[t[3][2],t[3][0]]:(e=Math.max(3,Math.floor(e)))>11?et((t=>n(1-t)),e):t[e].slice().reverse()}function Cm(t){return({length:n})=>et(t,Math.max(2,Math.floor(n)))}function Lm(t){return({length:n})=>et(t,Math.floor(n)+1).slice(0,-1)}function Nm(t){const n=`${t}`.toLowerCase();if(!Mm.has(n))throw new Error(`unknown ordinal scheme: ${n}`);return Mm.get(n)}function Dm(t,n){const e=Nm(t),r="function"==typeof e?e({length:n}):e;return r.length!==n?r.slice(0,n):r}const Fm=new Map([["brbg",rt],["prgn",ot],["piyg",it],["puor",at],["rdbu",ut],["rdgy",ct],["rdylbu",st],["rdylgn",ft],["spectral",lt],["burd",t=>ut(1-t)],["buylrd",t=>st(1-t)],["blues",dt],["greens",pt],["greys",ht],["purples",vt],["reds",yt],["oranges",gt],["turbo",mt],["viridis",bt],["magma",wt],["inferno",St],["plasma",Ot],["cividis",jt],["cubehelix",Et],["warm",xt],["cool",Tt],["bugn",kt],["bupu",At],["gnbu",Mt],["orrd",Pt],["pubugn",It],["pubu",Rt],["purd",Ct],["rdpu",Lt],["ylgnbu",Nt],["ylgn",Dt],["ylorbr",Ft],["ylorrd",_t],["rainbow",$t],["sinebow",Wt]]);function _m(t){const n=`${t}`.toLowerCase();if(!Fm.has(n))throw new Error(`unknown quantitative scheme: ${n}`);return Fm.get(n)}const $m=new Set(["brbg","prgn","piyg","puor","rdbu","rdgy","rdylbu","rdylgn","spectral","burd","buylrd"]);function Wm(t){return null!=t&&$m.has(`${t}`.toLowerCase())}const qm=t=>n=>t(1-n),zm=[0,1],Gm=new Map([["number",vn],["rgb",yn],["hsl",gn],["hcl",mn],["lab",bn]]);function Bm(t){const n=`${t}`.toLowerCase();if(!Gm.has(n))throw new Error(`unknown interpolator: ${n}`);return Gm.get(n)}function Um(t,n,e,{type:r,nice:o,clamp:i,zero:a,domain:u=Ym(t,e),unknown:c,round:s,scheme:f,interval:l,range:d=(Em.get(t)===wm?Xm(e,u):Em.get(t)===Sm?Zm(e,u):Em.get(t)===Om?zm:void 0),interpolate:p=(Em.get(t)===bm?null==f&&void 0!==d?yn:_m(void 0!==f?f:"cyclical"===r?"rainbow":"turbo"):s?In:vn),reverse:h}){if(l=dm(l,r),"cyclical"!==r&&"sequential"!==r||(r="linear"),h=!!h,"function"!=typeof p&&(p=Bm(p)),1===p.length?(h&&(p=qm(p),h=!1),void 0===d&&2===(d=Float64Array.from(u,((t,n)=>n/(u.length-1)))).length&&(d=zm),n.interpolate((d===zm?em:nb)(p))):n.interpolate(p),a){const[t,n]=xn(u);(t>0||n<0)&&(gm(u=sm(u))!==Math.sign(t)?u[u.length-1]=0:u[0]=0)}return h&&(u=kn(u)),n.domain(u).unknown(c),o&&(n.nice(function(t,n){return!0===t?void 0:"number"==typeof t?t:function(t,n){if((t=dm(t,n))&&"function"!=typeof t.ceil)throw new Error("invalid interval: missing ceil method");return t}(t,n)}(o,r)),u=n.domain()),void 0!==d&&n.range(d),i&&n.clamp(i),{type:r,domain:u,range:d,scale:n,interpolate:p,interval:l}}function Hm(t,n,{exponent:e=1,...r}){return Um(t,Sn().exponent(e),n,{...r,type:"pow"})}function Vm(t,n,{domain:e=[0],unknown:r,scheme:o="rdylbu",interpolate:i,range:a=(void 0!==i?et(i,e.length+1):Em.get(t)===bm?Dm(o,e.length+1):void 0),reverse:u}){const c=gm(e=um(e));if(!isNaN(c)&&!function(t,n){for(let e=1,r=t.length,o=t[0];e<r;++e){const r=I(o,o=t[e]);if(0!==r&&r!==n)return!1}return!0}(e,c))throw new Error(`the ${t} scale has a non-monotonic domain`);return u&&(a=kn(a)),{type:"threshold",scale:An(c<0?kn(e):e,void 0===a?[]:a).unknown(r),domain:e,range:a}}function Km(t,n=Ug){return t.length?[Rn(t,(({value:t})=>void 0===t?t:Rn(t,n))),Pn(t,(({value:t})=>void 0===t?t:Pn(t,n)))]:[0,1]}function Ym(t,n){const e=Em.get(t);return(e===wm||e===Om||e===Sm?Jm:Km)(n)}function Jm(t){return[0,t.length?Pn(t,(({value:t})=>void 0===t?t:Pn(t,Ug))):1]}function Xm(t,n){const e=t.find((({radius:t})=>void 0!==t));if(void 0!==e)return[0,e.radius];const r=Cn(t,.5,(({value:t})=>void 0===t?NaN:Cn(t,.25,Hg))),o=n.map((t=>3*Math.sqrt(t/r))),i=30/Pn(o);return i<1?o.map((t=>t*i)):o}function Zm(t,n){const e=Ln(t,(({value:t})=>void 0===t?NaN:Ln(t,Math.abs))),r=n.map((t=>12*t/e)),o=60/Pn(r);return o<1?r.map((t=>t*o)):r}function Qm(t){for(const{value:n}of t)if(void 0!==n)for(let e of n){if(e>0)return Km(t,Hg);if(e<0)return Km(t,Vg)}return[1,10]}function tb(t){const n=[];for(const{value:e}of t)if(void 0!==e)for(const t of e)n.push(t);return n}function nb(t){return(n,e)=>r=>t(n+r*(e-n))}function eb(t,n,e,r,{type:o,nice:i,clamp:a,domain:u=Km(r),unknown:c,pivot:s=0,scheme:f,range:l,symmetric:d=!0,interpolate:p=(Em.get(t)===bm?null==f&&void 0!==l?yn:_m(void 0!==f?f:"rdbu"):vn),reverse:h}){s=+s;let[v,y]=u;if(I(v,y)<0&&([v,y]=[y,v],h=!h),v=Math.min(v,s),y=Math.max(y,s),"function"!=typeof p&&(p=Bm(p)),void 0!==l&&(p=1===p.length?nb(p)(...l):$n(p,l)),h&&(p=qm(p)),d){const t=e.apply(s),n=t-e.apply(v),r=e.apply(y)-t;n<r?v=e.invert(t-r):n>r&&(y=e.invert(t+n))}return n.domain([v,s,y]).unknown(c).interpolator(p),a&&n.clamp(a),i&&n.nice(i),{type:o,domain:[v,y],pivot:s,interpolate:p,scale:n}}function rb(t,n,{exponent:e=1,...r}){return eb(t,Dn().exponent(e=+e),function(t){return.5===t?ub:{apply:n=>Math.sign(n)*Math.pow(Math.abs(n),t),invert:n=>Math.sign(n)*Math.pow(Math.abs(n),1/t)}}(e),n,{...r,type:"diverging-pow"})}function ob(t,n,{constant:e=1,...r}){return eb(t,_n().constant(e=+e),function(t){return{apply:n=>Math.sign(n)*Math.log1p(Math.abs(n/t)),invert:n=>Math.sign(n)*Math.expm1(Math.abs(n))*t}}(e),n,r)}const ib={apply:t=>t,invert:t=>t},ab={apply:Math.log,invert:Math.exp},ub={apply:t=>Math.sign(t)*Math.sqrt(Math.abs(t)),invert:t=>Math.sign(t)*(t*t)};function cb(t,n,e,r){return Um(t,n,e,r)}const sb=Symbol("ordinal");function fb(t,n,e,{type:r,interval:o,domain:i,range:a,reverse:u,hint:c}){return o=dm(o,r),void 0===i&&(i=pb(e,o,t)),"categorical"!==r&&r!==sb||(r="ordinal"),u&&(i=kn(i)),n.domain(i),void 0!==a&&("function"==typeof a&&(a=a(i)),n.range(a)),{type:r,domain:i,range:a,scale:n,hint:c,interval:o}}function lb(t,n,{type:e,interval:r,domain:o,range:i,scheme:a,unknown:u,...c}){let s;if(r=dm(r,e),void 0===o&&(o=pb(n,r,t)),Em.get(t)===jm)s=function(t){return{fill:hb(t,"fill"),stroke:hb(t,"stroke")}}(n),i=void 0===i?function(t){return n=t.fill,null==n||function(t){return/^\s*none\s*$/i.test(t)}(n)?Kn:Yn;var n}(s):cm(i,km);else if(Em.get(t)===bm&&(void 0!==i||"ordinal"!==e&&e!==sb||(i=function(t,n="greys"){const e=new Set,[r,o]=Dm(n,2);for(const n of t)if(null!=n)if(!0===n)e.add(o);else{if(!1!==n)return;e.add(r)}return[...e]}(o,a),void 0!==i&&(a=void 0)),void 0===a&&void 0===i&&(a="ordinal"===e?"turbo":"tableau10"),void 0!==a))if(void 0!==i){const t=_m(a),n=i[0],e=i[1]-i[0];i=({length:r})=>et((r=>t(n+e*r)),r)}else i=Nm(a);if(u===zn)throw new Error(`implicit unknown on ${t} scale is not supported`);return fb(t,Gn().unknown(u),n,{...c,type:e,domain:o,range:i,hint:s})}function db(t,n,e,r){let{round:o}=e;return void 0!==o&&t.round(o=!!o),(t=fb(r,t,n,e)).round=o,t}function pb(t,n,e){const r=new Hn;for(const{value:n,domain:e}of t){if(void 0!==e)return e();if(void 0!==n)for(const t of n)r.add(t)}if(void 0!==n){const[t,e]=xn(r).map(n.floor,n);return n.range(t,n.offset(e))}if(r.size>1e4&&Em.get(e)===mm)throw new Error(`implicit ordinal domain of ${e} scale has more than 10,000 values`);return Vn(r,Bg)}function hb(t,n){let e;for(const{hint:r}of t){const t=r?.[n];if(void 0!==t)if(void 0===e)e=t;else if(e!==t)return}return e}function vb(t,n,e){return function(t,n=[],e={}){const r=function(t,n,{type:e,domain:r,range:o,scheme:i,pivot:a,projection:u}){if("fx"===t||"fy"===t)return"band";"x"!==t&&"y"!==t||null==u||(e=gb);for(const{type:t}of n)if(void 0!==t)if(void 0===e)e=t;else if(e!==t)throw new Error(`scale incompatible with channel: ${e} !== ${t}`);if(e===gb)return;if(void 0!==e)return e;if(void 0===r&&!n.some((({value:t})=>void 0!==t)))return;const c=Em.get(t);if(c===wm)return"sqrt";if(c===Om||c===Sm)return"linear";if(c===jm)return"ordinal";if((r||o||[]).length>2)return mb(c);if(void 0!==r)return pm(r)?mb(c):hm(r)?"utc":c!==bm||null==a&&!Wm(i)?"linear":"diverging";const s=n.map((({value:t})=>t)).filter((t=>void 0!==t));return s.some(pm)?mb(c):s.some(hm)?"utc":c!==bm||null==a&&!Wm(i)?"linear":"diverging"}(t,n,e);if(void 0===e.type&&void 0===e.domain&&void 0===e.range&&null==e.interval&&"fx"!==t&&"fy"!==t&&function({type:t}){return"ordinal"===t||"point"===t||"band"===t||t===sb}({type:r})){const e=n.map((({value:t})=>t)).filter((t=>void 0!==t));e.some(hm)?Am(`Warning: some data associated with the ${t} scale are dates. Dates are typically associated with a "utc" or "time" scale rather than a "${yb(r)}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can specify the interval of the ${t} scale (e.g., d3.utcDay), or you can suppress this warning by setting the type of the ${t} scale to "${yb(r)}".`):e.some(vm)?Am(`Warning: some data associated with the ${t} scale are strings that appear to be dates (e.g., YYYY-MM-DD). If these strings represent dates, you should parse them to Date objects. Dates are typically associated with a "utc" or "time" scale rather than a "${yb(r)}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can suppress this warning by setting the type of the ${t} scale to "${yb(r)}".`):e.some(ym)&&Am(`Warning: some data associated with the ${t} scale are strings that appear to be numbers. If these strings represent numbers, you should parse or coerce them to numbers. Numbers are typically associated with a "linear" scale rather than a "${yb(r)}" scale. If you want to treat this data as ordinal, you can specify the interval of the ${t} scale (e.g., 1 for integers), or you can suppress this warning by setting the type of the ${t} scale to "${yb(r)}".`)}switch(e.type=r,r){case"diverging":case"diverging-sqrt":case"diverging-pow":case"diverging-log":case"diverging-symlog":case"cyclical":case"sequential":case"linear":case"sqrt":case"threshold":case"quantile":case"pow":case"log":case"symlog":e=bb(n,e,rm);break;case"identity":switch(Em.get(t)){case mm:e=bb(n,e,rm);break;case jm:e=bb(n,e,wb)}break;case"utc":case"time":e=bb(n,e,im)}switch(r){case"diverging":return function(t,n,e){return eb(t,Nn(),ib,n,e)}(t,n,e);case"diverging-sqrt":return function(t,n,e){return rb(t,n,{...e,exponent:.5})}(t,n,e);case"diverging-pow":return rb(t,n,e);case"diverging-log":return function(t,n,{base:e=10,pivot:r=1,domain:o=Km(n,r<0?Vg:Hg),...i}){return eb(t,Fn().base(e=+e),ab,n,{domain:o,pivot:r,...i})}(t,n,e);case"diverging-symlog":return ob(t,n,e);case"categorical":case"ordinal":case sb:return lb(t,n,e);case"cyclical":case"sequential":case"linear":return function(t,n,e){return Um(t,wn(),n,e)}(t,n,e);case"sqrt":return function(t,n,e){return Hm(t,n,{...e,exponent:.5})}(t,n,e);case"threshold":return Vm(t,0,e);case"quantile":return function(t,n,{range:e,quantiles:r=(void 0===e?5:(e=[...e]).length),n:o=r,scheme:i="rdylbu",domain:a=tb(n),unknown:u,interpolate:c,reverse:s}){return void 0===e&&(e=void 0!==c?et(c,o):Em.get(t)===bm?Dm(i,o):void 0),a.length>0&&(a=En(a,void 0===e?{length:o}:e).quantiles()),Vm(t,0,{domain:a,range:e,reverse:s,unknown:u})}(t,n,e);case"quantize":return function(t,n,{range:e,n:r=(void 0===e?5:(e=[...e]).length),scheme:o="rdylbu",domain:i=Ym(t,n),unknown:a,interpolate:u,reverse:c}){const[s,f]=xn(i);let l;return void 0===e?(l=Tn(s,f,r),l[0]<=s&&l.splice(0,1),l[l.length-1]>=f&&l.pop(),r=l.length+1,e=void 0!==u?et(u,r):Em.get(t)===bm?Dm(o,r):void 0):(l=et(vn(s,f),r+1).slice(1,-1),s instanceof Date&&(l=l.map((t=>new Date(t))))),gm(um(i))<0&&l.reverse(),Vm(t,0,{domain:l,range:e,reverse:c,unknown:a})}(t,n,e);case"pow":return Hm(t,n,e);case"log":return function(t,n,{base:e=10,domain:r=Qm(n),...o}){return Um(t,On().base(e),n,{...o,domain:r})}(t,n,e);case"symlog":return function(t,n,{constant:e=1,...r}){return Um(t,jn().constant(e),n,r)}(t,n,e);case"utc":return function(t,n,e){return cb(t,qn(),n,e)}(t,n,e);case"time":return function(t,n,e){return cb(t,Wn(),n,e)}(t,n,e);case"point":return function(t,n,{align:e=.5,padding:r=.5,...o}){return db(Bn().align(e).padding(r),n,o,t)}(t,n,e);case"band":return function(t,n,{align:e=.5,padding:r=.1,paddingInner:o=r,paddingOuter:i=("fx"===t||"fy"===t?0:r),...a}){return db(Un().align(e).paddingInner(o).paddingOuter(i),n,a,t)}(t,n,e);case"identity":return Em.get(t)===mm?{type:"identity",scale:Mn()}:{type:"identity"};case void 0:return;default:throw new Error(`unknown scale type: ${r}`)}}(t,void 0===e?void 0:[{hint:e}],{...n})}function yb(t){return"symbol"==typeof t?t.description:t}const gb={toString:()=>"projection"};function mb(t){switch(t){case mm:return"point";case bm:return sb;default:return"ordinal"}}function bb(t,{domain:n,...e},r){for(const n of t)void 0!==n.value&&(n.value=r(n.value));return{domain:void 0===n?n:r(n),...e}}function wb(t){return cm(t,km)}function Sb({scale:t,type:n,domain:e,range:r,interpolate:o,interval:i,transform:a,percent:u,pivot:c}){if("identity"===n)return{type:"identity",apply:t=>t,invert:t=>t};const s=t.unknown?t.unknown():void 0;return{type:n,domain:sm(e),...void 0!==r&&{range:sm(r)},...void 0!==a&&{transform:a},...u&&{percent:u},...void 0!==s&&{unknown:s},...void 0!==i&&{interval:i},...void 0!==o&&{interpolate:o},...t.clamp&&{clamp:t.clamp()},...void 0!==c&&{pivot:c,symmetric:!1},...t.base&&{base:t.base()},...t.exponent&&{exponent:t.exponent()},...t.constant&&{constant:t.constant()},...t.align&&{align:t.align(),round:t.round()},...t.padding&&(t.paddingInner?{paddingInner:t.paddingInner(),paddingOuter:t.paddingOuter()}:{padding:t.padding()}),...t.bandwidth&&{bandwidth:t.bandwidth(),step:t.step()},apply:n=>t(n),...t.invert&&{invert:n=>t.invert(n)}}}var Ob,jb;!function(t){t[t.SCROLL_NONE=0]="SCROLL_NONE",t[t.SCROLL_BACKWARD=1]="SCROLL_BACKWARD",t[t.SCROLL_FORWARD=2]="SCROLL_FORWARD"}(Ob||(Ob={})),function(t){t[t.TOP=0]="TOP",t[t.RIGHT=1]="RIGHT",t[t.BOTTOM=2]="BOTTOM",t[t.LEFT=3]="LEFT"}(jb||(jb={}));var Eb="red";function xb(t){try{var n=Object.keys(t)[0];return function(t={}){let n;for(const e in t)if(Em.has(e)&&fm(t[e])){if(void 0!==n)throw new Error("ambiguous scale definition; multiple scales found");n=Sb(vb(e,t[e]))}if(void 0===n)throw new Error("invalid scale definition; no scale found");return n}((e={},r=n,o=Object.assign(Object.assign({},t[n]),{clamp:!0}),(r=ne(r))in e?Object.defineProperty(e,r,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[r]=o,e))}catch(t){return null}var e,r,o}function Tb(t,n,e,r){Object.entries(function(t,n){var e={};return n.hasOwnProperty("opacity")?(e.fill=function(){return n.opacity.baseColor||Eb},e["fill-opacity"]=function(n){return null==t?void 0:t.apply(n)}):e.fill=function(n){return"string"==typeof n&&(null==n?void 0:n.startsWith("#"))?n:null==t?void 0:t.apply(n)},e}(n,e)).forEach((function(n){var e=Xn(n,2),o=e[0],i=e[1];return t.style(o,(function(t){return i(r?t[r]:t)}))}))}var kb=TypeError,Ab=lu,Mb=re,Pb=_v,Ib=Xe,Rb=ge,Cb=ja,Lb=function(t){if(t>9007199254740991)throw kb("Maximum allowed index exceeded");return t},Nb=Lh,Db=Uv,Fb=Fy,_b=Er,$b=fo("isConcatSpreadable"),Wb=_b>=51||!Mb((function(){var t=[];return t[$b]=!1,t.concat()[0]!==t})),qb=function(t){if(!Ib(t))return!1;var n=t[$b];return void 0!==n?!!n:Pb(t)};Ab({target:"Array",proto:!0,arity:1,forced:!Wb||!Fb("concat")},{concat:function(t){var n,e,r,o,i,a=Rb(this),u=Db(a,0),c=0;for(n=-1,r=arguments.length;n<r;n++)if(qb(i=-1===n?a:arguments[n]))for(o=Cb(i),Lb(c+o),e=0;e<o;e++,c++)e in i&&Nb(u,c,i[e]);else Lb(c+1),Nb(u,c++,i);return u.length=c,u}});var zb=dr,Gb=Wr,Bb=hf,Ub=Ys,Hb=Yl;lu({target:"Promise",stat:!0,forced:ed},{allSettled:function(t){var n=this,e=Bb.f(n),r=e.resolve,o=e.reject,i=Ub((function(){var e=Gb(n.resolve),o=[],i=0,a=1;Hb(t,(function(t){var u=i++,c=!1;a++,zb(e,n,t).then((function(t){c||(c=!0,o[u]={status:"fulfilled",value:t},--a||r(o))}),(function(t){c||(c=!0,o[u]={status:"rejected",reason:t},--a||r(o))}))})),--a||r(o)}));return i.error&&o(i.value),e.promise}});var Vb=Jd,Kb=Ei,Yb=Dv,Jb=Bc,Xb=uc,Zb=le,Qb=Yl,tw=Yp,nw=Jp,ew=oc,rw=oe,ow=vv.fastKey,iw=ri.set,aw=ri.getterFor,uw={getConstructor:function(t,n,e,r){var o=t((function(t,o){Xb(t,i),iw(t,{type:n,index:Vb(null),first:void 0,last:void 0,size:0}),rw||(t.size=0),Zb(o)||Qb(o,t[r],{that:t,AS_ENTRIES:e})})),i=o.prototype,a=aw(n),u=function(t,n,e){var r,o,i=a(t),u=c(t,n);return u?u.value=e:(i.last=u={index:o=ow(n,!0),key:n,value:e,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=u),r&&(r.next=u),rw?i.size++:t.size++,"F"!==o&&(i.index[o]=u)),t},c=function(t,n){var e,r=a(t),o=ow(n);if("F"!==o)return r.index[o];for(e=r.first;e;e=e.next)if(e.key==n)return e};return Yb(i,{clear:function(){for(var t=a(this),n=t.index,e=t.first;e;)e.removed=!0,e.previous&&(e.previous=e.previous.next=void 0),delete n[e.index],e=e.next;t.first=t.last=void 0,rw?t.size=0:this.size=0},delete:function(t){var n=this,e=a(n),r=c(n,t);if(r){var o=r.next,i=r.previous;delete e.index[r.index],r.removed=!0,i&&(i.next=o),o&&(o.previous=i),e.first==r&&(e.first=o),e.last==r&&(e.last=i),rw?e.size--:n.size--}return!!r},forEach:function(t){for(var n,e=a(this),r=Jb(t,arguments.length>1?arguments[1]:void 0);n=n?n.next:e.first;)for(r(n.value,n.key,this);n&&n.removed;)n=n.previous},has:function(t){return!!c(this,t)}}),Yb(i,e?{get:function(t){var n=c(this,t);return n&&n.value},set:function(t,n){return u(this,0===t?0:t,n)}}:{add:function(t){return u(this,t=0===t?0:t,t)}}),rw&&Kb(i,"size",{configurable:!0,get:function(){return a(this).size}}),o},setStrong:function(t,n,e){var r=n+" Iterator",o=aw(n),i=aw(r);tw(t,n,(function(t,n){iw(this,{type:r,target:t,state:o(t),kind:n,last:void 0})}),(function(){for(var t=i(this),n=t.kind,e=t.last;e&&e.removed;)e=e.previous;return t.target&&(t.last=e=e?e.next:t.state.first)?nw("keys"==n?e.key:"values"==n?e.value:[e.key,e.value],!1):(t.target=void 0,nw(void 0,!0))}),e?"entries":"values",!e,!0),ew(n)}};Lv("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),uw);var cw=Dr,sw=TypeError,fw=Wh,lw=Math.floor,dw=function(t,n){var e=t.length,r=lw(e/2);return e<8?pw(t,n):hw(t,dw(fw(t,0,r),n),dw(fw(t,r),n),n)},pw=function(t,n){for(var e,r,o=t.length,i=1;i<o;){for(r=i,e=t[i];r&&n(t[r-1],e)>0;)t[r]=t[--r];r!==i++&&(t[r]=e)}return t},hw=function(t,n,e,r){for(var o=n.length,i=e.length,a=0,u=0;a<o||u<i;)t[a+u]=a<o&&u<i?r(n[a],e[u])<=0?n[a++]:e[u++]:a<o?n[a++]:e[u++];return t},vw=dw,yw=gr.match(/firefox\/(\d+)/i),gw=!!yw&&+yw[1],mw=/MSIE|Trident/.test(gr),bw=gr.match(/AppleWebKit\/(\d+)\./),ww=!!bw&&+bw[1],Sw=lu,Ow=fe,jw=Wr,Ew=ge,xw=ja,Tw=function(t,n){if(!delete t[n])throw sw("Cannot delete property "+cw(n)+" of "+cw(t))},kw=dh,Aw=re,Mw=vw,Pw=Qy,Iw=gw,Rw=mw,Cw=Er,Lw=ww,Nw=[],Dw=Ow(Nw.sort),Fw=Ow(Nw.push),_w=Aw((function(){Nw.sort(void 0)})),$w=Aw((function(){Nw.sort(null)})),Ww=Pw("sort"),qw=!Aw((function(){if(Cw)return Cw<70;if(!(Iw&&Iw>3)){if(Rw)return!0;if(Lw)return Lw<603;var t,n,e,r,o="";for(t=65;t<76;t++){switch(n=String.fromCharCode(t),t){case 66:case 69:case 70:case 72:e=3;break;case 68:case 71:e=4;break;default:e=2}for(r=0;r<47;r++)Nw.push({k:n+r,v:e})}for(Nw.sort((function(t,n){return n.v-t.v})),r=0;r<Nw.length;r++)n=Nw[r].k.charAt(0),o.charAt(o.length-1)!==n&&(o+=n);return"DGBEFHACIJK"!==o}}));Sw({target:"Array",proto:!0,forced:_w||!$w||!Ww||!qw},{sort:function(t){void 0!==t&&jw(t);var n=Ew(this);if(qw)return void 0===t?Dw(n):Dw(n,t);var e,r,o=[],i=xw(n);for(r=0;r<i;r++)r in n&&Fw(o,n[r]);for(Mw(o,function(t){return function(n,e){return void 0===e?-1:void 0===n?1:void 0!==t?+t(n,e)||0:kw(n)>kw(e)?1:-1}}(t)),e=xw(o),r=0;r<e;)n[r]=o[r++];for(;r<i;)Tw(n,r++);return n}}),new WeakSet,new WeakSet;var zw=Aa.includes,Gw=ip;lu({target:"Array",proto:!0,forced:re((function(){return!Array(1).includes()}))},{includes:function(t){return zw(this,t,arguments.length>1?arguments[1]:void 0)}}),Gw("includes");var Bw=Qv.map;lu({target:"Array",proto:!0,forced:!Fy("map")},{map:function(t){return Bw(this,t,arguments.length>1?arguments[1]:void 0)}});var Uw=Qv.filter;lu({target:"Array",proto:!0,forced:!Fy("filter")},{filter:function(t){return Uw(this,t,arguments.length>1?arguments[1]:void 0)}});var Hw=Wr,Vw=ge,Kw=Hi,Yw=ja,Jw=TypeError,Xw=function(t){return function(n,e,r,o){Hw(e);var i=Vw(n),a=Kw(i),u=Yw(i),c=t?u-1:0,s=t?-1:1;if(r<2)for(;;){if(c in a){o=a[c],c+=s;break}if(c+=s,t?c<0:u<=c)throw Jw("Reduce of empty array with no initial value")}for(;t?c>=0:u>c;c+=s)c in a&&(o=e(o,a[c],c,i));return o}},Zw={left:Xw(!1),right:Xw(!0)}.left;lu({target:"Array",proto:!0,forced:!Wu&&Er>79&&Er<83||!Qy("reduce")},{reduce:function(t){var n=arguments.length;return Zw(this,t,n,n>1?arguments[1]:void 0)}});var Qw=sr,tS=Nl,nS=Bc,eS=dr,rS=ge,oS=function(t,n,e,r){try{return r?n(Qw(e)[0],e[1]):n(e)}catch(n){tS(t,"throw",n)}},iS=ml,aS=xc,uS=ja,cS=Lh,sS=Il,fS=El,lS=Array,dS=function(t){var n=rS(t),e=aS(this),r=arguments.length,o=r>1?arguments[1]:void 0,i=void 0!==o;i&&(o=nS(o,r>2?arguments[2]:void 0));var a,u,c,s,f,l,d=fS(n),p=0;if(!d||this===lS&&iS(d))for(a=uS(n),u=e?new this(a):lS(a);a>p;p++)l=i?o(n[p],p):n[p],cS(u,p,l);else for(f=(s=sS(n,d)).next,u=e?new this:[];!(c=eS(f,s)).done;p++)l=i?oS(s,o,[c.value,p],!0):c.value,cS(u,p,l);return u.length=p,u};lu({target:"Array",stat:!0,forced:!td((function(t){Array.from(t)}))},{from:dS});var pS="\t\n\v\f\r    â€â€‚         âŸã€€\u2028\u2029\ufeff",hS=he,vS=dh,yS=pS,gS=fe("".replace),mS=RegExp("^["+yS+"]+"),bS=RegExp("(^|[^"+yS+"])["+yS+"]+$"),wS=function(t){return function(n){var e=vS(hS(n));return 1&t&&(e=gS(e,mS,"")),2&t&&(e=gS(e,bS,"$1")),e}},SS={start:wS(1),end:wS(2),trim:wS(3)},OS=Ce,jS=re,ES=fe,xS=dh,TS=SS.trim,kS=pS,AS=OS.parseInt,MS=OS.Symbol,PS=MS&&MS.iterator,IS=/^[+-]?0x/i,RS=ES(IS.exec),CS=8!==AS(kS+"08")||22!==AS(kS+"0x16")||PS&&!jS((function(){AS(Object(PS))}))?function(t,n){var e=TS(xS(t));return AS(e,n>>>0||(RS(IS,e)?16:10))}:AS;lu({global:!0,forced:parseInt!=CS},{parseInt:CS}),new WeakSet,new WeakSet;var LS=Te.PROPER,NS=re,DS=pS,FS=SS.trim;lu({target:"String",proto:!0,forced:function(t){return NS((function(){return!!DS[t]()||"â€‹Â…á Ž"!=="â€‹Â…á Ž"[t]()||LS&&DS[t].name!==t}))}("trim")},{trim:function(){return FS(this)}});new WeakSet,new WeakSet;var _S,$S,WS;new WeakSet;var qS=".ch-plugin-legend-lite",zS={enabled:!0,itemSelector:null,width:10,height:10,gutter:2,radius:0,includeBlank:!1},GS=function(){function n(t){!function(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}(this,n),_S.add(this),this.name="LegendLite",this.calendar=t,this.root=null,this.shown=!1,this.options=zS}var e,r,o;return e=n,r=[{key:"setup",value:function(t){this.options=Object.assign(Object.assign({},this.options),t)}},{key:"paint",value:function(){var n=this.options,e=n.enabled,r=n.itemSelector;if(!e||r&&t(r).empty())return this.destroy();this.shown=!0,this.root=t(r||this.calendar.options.options.itemSelector),this.root.select(qS).empty()?this.root=this.root.append("div").attr("class",qS.slice(1)):this.root=this.root.select(qS);var o=ig(this,_S,"m",$S).call(this);return this.root.selectAll("*").remove(),this.root.append((function(){return o.node()})),Promise.resolve()}},{key:"destroy",value:function(){return null!==this.root&&(this.root.remove(),this.root=null),Promise.resolve()}}],r&&Jn(e.prototype,r),o&&Jn(e,o),Object.defineProperty(e,"prototype",{writable:!1}),n}();_S=new WeakSet,$S=function(){var t=this,e=n("svg"),r=xb(this.calendar.options.options.scale),o=this.options,i=o.width,a=o.height,u=o.gutter,c=o.includeBlank,s=Zn(r.range);return c&&s.unshift(null),e.attr("class",".ch-container".slice(1)).attr("width",s.length*i+(s.length-1)*u).attr("height",a),e.selectAll("rect").data(s).join((function(n){return n.append("rect").call((function(n){return ig(t,_S,"m",WS).call(t,n,r)}))}),(function(n){return n.selectAll("rect").call((function(n){return ig(t,_S,"m",WS).call(t,n,r)}))})),e},WS=function(t,n){var e=this,r=this.options,o=r.width,i=r.height,a=r.radius,u=r.gutter;return t.attr("width",o).attr("height",i).attr("class","".concat(".ch-subdomain".slice(1),"-bg")).attr("rx",a).attr("ry",a).attr("x",(function(t,n){return n*(o+u)})).attr("y",0).call((function(t){Tb(t,n,e.calendar.options.options.scale)}))};export{GS as default};//# sourceMappingURL=LegendLite.min.esm.js.map diff --git a/static/javascripts/cal-heatmap/plugins/LegendLite.min.esm.js.map b/static/javascripts/cal-heatmap/plugins/LegendLite.min.esm.js.map new file mode 100644 index 000000000..20f2a1c02 --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/LegendLite.min.esm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"LegendLite.min.esm.js","sources":["../../node_modules/core-js/internals/fails.js","../../node_modules/core-js/internals/descriptors.js","../../node_modules/core-js/internals/function-bind-native.js","../../node_modules/core-js/internals/function-uncurry-this.js","../../node_modules/core-js/internals/is-null-or-undefined.js","../../node_modules/core-js/internals/require-object-coercible.js","../../node_modules/core-js/internals/to-object.js","../../node_modules/core-js/internals/has-own-property.js","../../node_modules/core-js/internals/function-name.js","../../node_modules/core-js/internals/document-all.js","../../node_modules/core-js/internals/is-callable.js","../../node_modules/core-js/internals/global.js","../../node_modules/core-js/internals/define-global-property.js","../../node_modules/core-js/internals/shared-store.js","../../node_modules/core-js/internals/inspect-source.js","../../node_modules/core-js/internals/engine-v8-version.js","../../node_modules/core-js/internals/weak-map-basic-detection.js","../../node_modules/core-js/internals/is-object.js","../../node_modules/core-js/internals/document-create-element.js","../../node_modules/core-js/internals/ie8-dom-define.js","../../node_modules/core-js/internals/v8-prototype-define-bug.js","../../node_modules/core-js/internals/an-object.js","../../node_modules/core-js/internals/function-call.js","../../node_modules/core-js/internals/get-built-in.js","../../node_modules/core-js/internals/object-is-prototype-of.js","../../node_modules/core-js/internals/engine-user-agent.js","../../node_modules/core-js/internals/symbol-constructor-detection.js","../../node_modules/core-js/internals/use-symbol-as-uid.js","../../node_modules/core-js/internals/is-symbol.js","../../node_modules/core-js/internals/try-to-string.js","../../node_modules/core-js/internals/a-callable.js","../../node_modules/core-js/internals/get-method.js","../../node_modules/core-js/internals/ordinary-to-primitive.js","../../node_modules/core-js/internals/shared.js","../../node_modules/core-js/internals/uid.js","../../node_modules/core-js/internals/well-known-symbol.js","../../node_modules/core-js/internals/to-primitive.js","../../node_modules/core-js/internals/to-property-key.js","../../node_modules/core-js/internals/object-define-property.js","../../node_modules/core-js/internals/create-property-descriptor.js","../../node_modules/core-js/internals/internal-state.js","../../node_modules/core-js/internals/create-non-enumerable-property.js","../../node_modules/core-js/internals/shared-key.js","../../node_modules/core-js/internals/hidden-keys.js","../../node_modules/core-js/internals/make-built-in.js","../../node_modules/core-js/internals/define-built-in-accessor.js","../../node_modules/core-js/modules/es.function.name.js","../../node_modules/core-js/internals/object-property-is-enumerable.js","../../node_modules/core-js/internals/classof-raw.js","../../node_modules/core-js/internals/indexed-object.js","../../node_modules/core-js/internals/to-indexed-object.js","../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../node_modules/core-js/internals/define-built-in.js","../../node_modules/core-js/internals/math-trunc.js","../../node_modules/core-js/internals/to-integer-or-infinity.js","../../node_modules/core-js/internals/to-absolute-index.js","../../node_modules/core-js/internals/to-length.js","../../node_modules/core-js/internals/length-of-array-like.js","../../node_modules/core-js/internals/array-includes.js","../../node_modules/core-js/internals/object-keys-internal.js","../../node_modules/core-js/internals/enum-bug-keys.js","../../node_modules/core-js/internals/object-get-own-property-names.js","../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../node_modules/core-js/internals/own-keys.js","../../node_modules/core-js/internals/copy-constructor-properties.js","../../node_modules/core-js/internals/is-forced.js","../../node_modules/core-js/internals/export.js","../../node_modules/core-js/internals/object-keys.js","../../node_modules/core-js/internals/object-assign.js","../../node_modules/core-js/modules/es.object.assign.js","../../node_modules/core-js/internals/to-string-tag-support.js","../../node_modules/core-js/internals/classof.js","../../node_modules/core-js/internals/object-to-string.js","../../node_modules/core-js/modules/es.object.to-string.js","../../node_modules/core-js/internals/engine-is-node.js","../../node_modules/core-js/internals/function-uncurry-this-accessor.js","../../node_modules/core-js/internals/a-possible-prototype.js","../../node_modules/core-js/internals/object-set-prototype-of.js","../../node_modules/core-js/internals/set-to-string-tag.js","../../node_modules/core-js/internals/set-species.js","../../node_modules/core-js/internals/an-instance.js","../../node_modules/core-js/internals/is-constructor.js","../../node_modules/core-js/internals/task.js","../../node_modules/core-js/internals/a-constructor.js","../../node_modules/core-js/internals/species-constructor.js","../../node_modules/core-js/internals/function-apply.js","../../node_modules/core-js/internals/function-uncurry-this-clause.js","../../node_modules/core-js/internals/function-bind-context.js","../../node_modules/core-js/internals/html.js","../../node_modules/core-js/internals/array-slice.js","../../node_modules/core-js/internals/validate-arguments-length.js","../../node_modules/core-js/internals/engine-is-ios.js","../../node_modules/core-js/internals/queue.js","../../node_modules/core-js/internals/microtask.js","../../node_modules/core-js/internals/engine-is-ios-pebble.js","../../node_modules/core-js/internals/engine-is-webos-webkit.js","../../node_modules/core-js/internals/perform.js","../../node_modules/core-js/internals/promise-native-constructor.js","../../node_modules/core-js/internals/engine-is-deno.js","../../node_modules/core-js/internals/engine-is-browser.js","../../node_modules/core-js/internals/promise-constructor-detection.js","../../node_modules/core-js/internals/new-promise-capability.js","../../node_modules/core-js/modules/es.promise.constructor.js","../../node_modules/core-js/internals/host-report-errors.js","../../node_modules/core-js/internals/iterators.js","../../node_modules/core-js/internals/is-array-iterator-method.js","../../node_modules/core-js/internals/get-iterator-method.js","../../node_modules/core-js/internals/get-iterator.js","../../node_modules/core-js/internals/iterator-close.js","../../node_modules/core-js/internals/iterate.js","../../node_modules/core-js/internals/check-correctness-of-iteration.js","../../node_modules/core-js/internals/promise-statics-incorrect-iteration.js","../../node_modules/core-js/modules/es.promise.all.js","../../node_modules/core-js/modules/es.promise.catch.js","../../node_modules/core-js/modules/es.promise.race.js","../../node_modules/core-js/modules/es.promise.reject.js","../../node_modules/core-js/internals/promise-resolve.js","../../node_modules/core-js/modules/es.promise.resolve.js","../../node_modules/core-js/internals/object-define-properties.js","../../node_modules/core-js/internals/object-create.js","../../node_modules/core-js/internals/add-to-unscopables.js","../../node_modules/core-js/internals/iterators-core.js","../../node_modules/core-js/internals/correct-prototype-getter.js","../../node_modules/core-js/internals/object-get-prototype-of.js","../../node_modules/core-js/internals/iterator-create-constructor.js","../../node_modules/core-js/internals/iterator-define.js","../../node_modules/core-js/internals/create-iter-result-object.js","../../node_modules/core-js/modules/es.array.iterator.js","../../node_modules/core-js/internals/to-string.js","../../node_modules/core-js/internals/string-multibyte.js","../../node_modules/core-js/modules/es.string.iterator.js","../../node_modules/core-js/internals/create-property.js","../../node_modules/core-js/internals/array-slice-simple.js","../../node_modules/core-js/internals/object-get-own-property-names-external.js","../../node_modules/core-js/internals/array-buffer-non-extensible.js","../../node_modules/core-js/internals/object-is-extensible.js","../../node_modules/core-js/internals/freezing.js","../../node_modules/core-js/internals/internal-metadata.js","../../node_modules/core-js/internals/inherit-if-required.js","../../node_modules/core-js/internals/collection.js","../../node_modules/core-js/internals/define-built-ins.js","../../node_modules/core-js/internals/is-array.js","../../node_modules/core-js/internals/array-species-constructor.js","../../node_modules/core-js/internals/array-species-create.js","../../node_modules/core-js/internals/array-iteration.js","../../node_modules/core-js/internals/collection-weak.js","../../node_modules/core-js/modules/es.weak-set.constructor.js","../../node_modules/core-js/internals/dom-iterables.js","../../node_modules/core-js/internals/dom-token-list-prototype.js","../../node_modules/core-js/modules/web.dom-collections.iterator.js","../../node_modules/core-js/internals/array-method-has-species-support.js","../../node_modules/core-js/modules/es.array.slice.js","../../node_modules/core-js/internals/array-method-is-strict.js","../../node_modules/core-js/modules/es.array.join.js","../../node_modules/tslib/tslib.es6.js","../../node_modules/core-js/modules/es.object.keys.js","../../node_modules/core-js/internals/is-regexp.js","../../node_modules/core-js/modules/es.string.starts-with.js","../../node_modules/core-js/internals/not-a-regexp.js","../../node_modules/core-js/internals/correct-is-regexp-logic.js","../../node_modules/core-js/internals/array-for-each.js","../../node_modules/core-js/modules/web.dom-collections.for-each.js","../../node_modules/core-js/internals/object-to-array.js","../../node_modules/core-js/modules/es.object.entries.js","../../node_modules/@observablehq/plot/src/defined.js","../../node_modules/isoformat/src/parse.js","../../node_modules/@observablehq/plot/src/time.js","../../node_modules/@observablehq/plot/src/options.js","../../node_modules/@observablehq/plot/src/scales/index.js","../../node_modules/@observablehq/plot/src/symbol.js","../../node_modules/@observablehq/plot/src/warnings.js","../../node_modules/@observablehq/plot/src/scales/schemes.js","../../node_modules/@observablehq/plot/src/scales/quantitative.js","../../node_modules/@observablehq/plot/src/scales/diverging.js","../../node_modules/@observablehq/plot/src/scales/temporal.js","../../node_modules/@observablehq/plot/src/scales/ordinal.js","../../node_modules/@observablehq/plot/src/scales.js","../../../src/constant.ts","../../../src/scale.ts","../../node_modules/core-js/internals/does-not-exceed-safe-integer.js","../../node_modules/core-js/modules/es.array.concat.js","../../node_modules/core-js/modules/es.promise.all-settled.js","../../node_modules/core-js/internals/collection-strong.js","../../node_modules/core-js/modules/es.map.constructor.js","../../node_modules/core-js/internals/delete-property-or-throw.js","../../node_modules/core-js/internals/array-sort.js","../../node_modules/core-js/internals/engine-ff-version.js","../../node_modules/core-js/internals/engine-is-ie-or-edge.js","../../node_modules/core-js/internals/engine-webkit-version.js","../../node_modules/core-js/modules/es.array.sort.js","../../node_modules/core-js/modules/es.array.includes.js","../../node_modules/core-js/modules/es.array.map.js","../../node_modules/core-js/modules/es.array.filter.js","../../node_modules/core-js/internals/array-reduce.js","../../node_modules/core-js/modules/es.array.reduce.js","../../node_modules/core-js/internals/call-with-safe-iteration-closing.js","../../node_modules/core-js/internals/array-from.js","../../node_modules/core-js/modules/es.array.from.js","../../node_modules/core-js/internals/whitespaces.js","../../node_modules/core-js/internals/string-trim.js","../../node_modules/core-js/internals/number-parse-int.js","../../node_modules/core-js/modules/es.parse-int.js","../../../src/calendar/DomainCollection.ts","../../node_modules/core-js/internals/string-trim-forced.js","../../node_modules/core-js/modules/es.string.trim.js","../../../src/calendar/CalendarPainter.ts","../../../src/plugins/LegendLite.ts","../../../src/subDomain/SubDomainPainter.ts"],"sourcesContent":["module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.30.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineBuiltInAccessor(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var classof = require('../internals/classof-raw');\n\nmodule.exports = typeof process != 'undefined' && classof(process) == 'process';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","module.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","module.exports = {};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (state) {\n return state.frozen || (state.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) splice(this.entries, index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n defineBuiltIns(Prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && hasOwn(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && hasOwn(data, state.id);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return Constructor;\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.es/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: FORCED }, {\n join: function join(separator) {\n return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport default {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __createBinding,\r\n __exportStar,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n __classPrivateFieldIn,\r\n};\r\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar nativeStartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return nativeStartsWith\n ? nativeStartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","var isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","import {ascending, descending} from \"d3\";\n\nexport function defined(x) {\n return x != null && !Number.isNaN(x);\n}\n\nexport function ascendingDefined(a, b) {\n return +defined(b) - +defined(a) || ascending(a, b);\n}\n\nexport function descendingDefined(a, b) {\n return +defined(b) - +defined(a) || descending(a, b);\n}\n\nexport function nonempty(x) {\n return x != null && `${x}` !== \"\";\n}\n\nexport function finite(x) {\n return isFinite(x) ? x : NaN;\n}\n\nexport function positive(x) {\n return x > 0 && isFinite(x) ? x : NaN;\n}\n\nexport function negative(x) {\n return x < 0 && isFinite(x) ? x : NaN;\n}\n","const re = /^(?:[-+]\\d{2})?\\d{4}(?:-\\d{2}(?:-\\d{2})?)?(?:T\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{3})?)?(?:Z|[-+]\\d{2}:?\\d{2})?)?$/;\n\nexport default function parse(string, fallback) {\n if (!re.test(string += \"\")) return typeof fallback === \"function\" ? fallback(string) : fallback;\n return new Date(string);\n}\n","import {utcSecond, utcMinute, utcHour, utcDay, utcWeek, utcMonth, utcYear} from \"d3\";\nimport {utcMonday, utcTuesday, utcWednesday, utcThursday, utcFriday, utcSaturday, utcSunday} from \"d3\";\nimport {timeSecond, timeMinute, timeHour, timeDay, timeWeek, timeMonth, timeYear} from \"d3\";\nimport {timeMonday, timeTuesday, timeWednesday, timeThursday, timeFriday, timeSaturday, timeSunday} from \"d3\";\n\nconst timeIntervals = new Map([\n [\"second\", timeSecond],\n [\"minute\", timeMinute],\n [\"hour\", timeHour],\n [\"day\", timeDay],\n [\"week\", timeWeek],\n [\"month\", timeMonth],\n [\"quarter\", timeMonth.every(3)],\n [\"half\", timeMonth.every(6)],\n [\"year\", timeYear],\n [\"monday\", timeMonday],\n [\"tuesday\", timeTuesday],\n [\"wednesday\", timeWednesday],\n [\"thursday\", timeThursday],\n [\"friday\", timeFriday],\n [\"saturday\", timeSaturday],\n [\"sunday\", timeSunday]\n]);\n\nconst utcIntervals = new Map([\n [\"second\", utcSecond],\n [\"minute\", utcMinute],\n [\"hour\", utcHour],\n [\"day\", utcDay],\n [\"week\", utcWeek],\n [\"month\", utcMonth],\n [\"quarter\", utcMonth.every(3)],\n [\"half\", utcMonth.every(6)],\n [\"year\", utcYear],\n [\"monday\", utcMonday],\n [\"tuesday\", utcTuesday],\n [\"wednesday\", utcWednesday],\n [\"thursday\", utcThursday],\n [\"friday\", utcFriday],\n [\"saturday\", utcSaturday],\n [\"sunday\", utcSunday]\n]);\n\nexport function maybeTimeInterval(interval) {\n const i = timeIntervals.get(`${interval}`.toLowerCase());\n if (!i) throw new Error(`unknown interval: ${interval}`);\n return i;\n}\n\nexport function maybeUtcInterval(interval) {\n const i = utcIntervals.get(`${interval}`.toLowerCase());\n if (!i) throw new Error(`unknown interval: ${interval}`);\n return i;\n}\n","import {parse as isoParse} from \"isoformat\";\nimport {color, descending, range as rangei, quantile} from \"d3\";\nimport {maybeTimeInterval, maybeUtcInterval} from \"./time.js\";\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray\nexport const TypedArray = Object.getPrototypeOf(Uint8Array);\nconst objectToString = Object.prototype.toString;\n\nexport function valueof(data, value, type) {\n const valueType = typeof value;\n return valueType === \"string\"\n ? maybeTypedMap(data, field(value), type)\n : valueType === \"function\"\n ? maybeTypedMap(data, value, type)\n : valueType === \"number\" || value instanceof Date || valueType === \"boolean\"\n ? map(data, constant(value), type)\n : typeof value?.transform === \"function\"\n ? maybeTypedArrayify(value.transform(data), type)\n : maybeTypedArrayify(value, type);\n}\n\nfunction maybeTypedMap(data, f, type) {\n return map(data, type?.prototype instanceof TypedArray ? floater(f) : f, type);\n}\n\nfunction maybeTypedArrayify(data, type) {\n return type === undefined\n ? arrayify(data) // preserve undefined type\n : data instanceof type\n ? data\n : type.prototype instanceof TypedArray && !(data instanceof TypedArray)\n ? type.from(data, coerceNumber)\n : type.from(data);\n}\n\nfunction floater(f) {\n return (d, i) => coerceNumber(f(d, i));\n}\n\nexport const field = (name) => (d) => d[name];\nexport const indexOf = {transform: range};\nexport const identity = {transform: (d) => d};\nexport const zero = () => 0;\nexport const one = () => 1;\nexport const yes = () => true;\nexport const string = (x) => (x == null ? x : `${x}`);\nexport const number = (x) => (x == null ? x : +x);\nexport const boolean = (x) => (x == null ? x : !!x);\nexport const first = (x) => (x ? x[0] : undefined);\nexport const second = (x) => (x ? x[1] : undefined);\nexport const third = (x) => (x ? x[2] : undefined);\nexport const constant = (x) => () => x;\n\n// Converts a string like “p25†into a function that takes an index I and an\n// accessor function f, returning the corresponding percentile value.\nexport function percentile(reduce) {\n const p = +`${reduce}`.slice(1) / 100;\n return (I, f) => quantile(I, p, f);\n}\n\n// If the values are specified as a typed array, no coercion is required.\nexport function coerceNumbers(values) {\n return values instanceof TypedArray ? values : map(values, coerceNumber, Float64Array);\n}\n\n// Unlike Mark’s number, here we want to convert null and undefined to NaN since\n// the result will be stored in a Float64Array and we don’t want null to be\n// coerced to zero. We use Number instead of unary + to allow BigInt coercion.\nfunction coerceNumber(x) {\n return x == null ? NaN : Number(x);\n}\n\nexport function coerceDates(values) {\n return map(values, coerceDate);\n}\n\n// When coercing strings to dates, we only want to allow the ISO 8601 format\n// since the built-in string parsing of the Date constructor varies across\n// browsers. (In the future, this could be made more liberal if desired, though\n// it is still generally preferable to do date parsing yourself explicitly,\n// rather than rely on Plot.) Any non-string values are coerced to number first\n// and treated as milliseconds since UNIX epoch.\nexport function coerceDate(x) {\n return x instanceof Date && !isNaN(x)\n ? x\n : typeof x === \"string\"\n ? isoParse(x)\n : x == null || isNaN((x = +x))\n ? undefined\n : new Date(x);\n}\n\n// Some channels may allow a string constant to be specified; to differentiate\n// string constants (e.g., \"red\") from named fields (e.g., \"date\"), this\n// function tests whether the given value is a CSS color string and returns a\n// tuple [channel, constant] where one of the two is undefined, and the other is\n// the given value. If you wish to reference a named field that is also a valid\n// CSS color, use an accessor (d => d.red) instead.\nexport function maybeColorChannel(value, defaultValue) {\n if (value === undefined) value = defaultValue;\n return value === null ? [undefined, \"none\"] : isColor(value) ? [undefined, value] : [value, undefined];\n}\n\n// Similar to maybeColorChannel, this tests whether the given value is a number\n// indicating a constant, and otherwise assumes that it’s a channel value.\nexport function maybeNumberChannel(value, defaultValue) {\n if (value === undefined) value = defaultValue;\n return value === null || typeof value === \"number\" ? [undefined, value] : [value, undefined];\n}\n\n// Validates the specified optional string against the allowed list of keywords.\nexport function maybeKeyword(input, name, allowed) {\n if (input != null) return keyword(input, name, allowed);\n}\n\n// Validates the specified required string against the allowed list of keywords.\nexport function keyword(input, name, allowed) {\n const i = `${input}`.toLowerCase();\n if (!allowed.includes(i)) throw new Error(`invalid ${name}: ${input}`);\n return i;\n}\n\n// Promotes the specified data to an array as needed.\nexport function arrayify(data) {\n return data == null || data instanceof Array || data instanceof TypedArray ? data : Array.from(data);\n}\n\n// An optimization of type.from(values, f): if the given values are already an\n// instanceof the desired array type, the faster values.map method is used.\nexport function map(values, f, type = Array) {\n return values == null ? values : values instanceof type ? values.map(f) : type.from(values, f);\n}\n\n// An optimization of type.from(values): if the given values are already an\n// instanceof the desired array type, the faster values.slice method is used.\nexport function slice(values, type = Array) {\n return values instanceof type ? values.slice() : type.from(values);\n}\n\n// Disambiguates an options object (e.g., {y: \"x2\"}) from a primitive value.\nexport function isObject(option) {\n return option?.toString === objectToString;\n}\n\n// Disambiguates a scale options object (e.g., {color: {type: \"linear\"}}) from\n// some other option (e.g., {color: \"red\"}). When creating standalone legends,\n// this is used to test whether a scale is defined; this should be consistent\n// with inferScaleType when there are no channels associated with the scale, and\n// if this returns true, then normalizeScale must return non-null.\nexport function isScaleOptions(option) {\n return isObject(option) && (option.type !== undefined || option.domain !== undefined);\n}\n\n// Disambiguates an options object (e.g., {y: \"x2\"}) from a channel value\n// definition expressed as a channel transform (e.g., {transform: …}).\nexport function isOptions(option) {\n return isObject(option) && typeof option.transform !== \"function\";\n}\n\n// Disambiguates a sort transform (e.g., {sort: \"date\"}) from a channel domain\n// sort definition (e.g., {sort: {y: \"x\"}}).\nexport function isDomainSort(sort) {\n return isOptions(sort) && sort.value === undefined && sort.channel === undefined;\n}\n\n// For marks specified either as [0, x] or [x1, x2], such as areas and bars.\nexport function maybeZero(x, x1, x2, x3 = identity) {\n if (x1 === undefined && x2 === undefined) {\n // {x} or {}\n (x1 = 0), (x2 = x === undefined ? x3 : x);\n } else if (x1 === undefined) {\n // {x, x2} or {x2}\n x1 = x === undefined ? 0 : x;\n } else if (x2 === undefined) {\n // {x, x1} or {x1}\n x2 = x === undefined ? 0 : x;\n }\n return [x1, x2];\n}\n\n// For marks that have x and y channels (e.g., cell, dot, line, text).\nexport function maybeTuple(x, y) {\n return x === undefined && y === undefined ? [first, second] : [x, y];\n}\n\n// A helper for extracting the z channel, if it is variable. Used by transforms\n// that require series, such as moving average and normalize.\nexport function maybeZ({z, fill, stroke} = {}) {\n if (z === undefined) [z] = maybeColorChannel(fill);\n if (z === undefined) [z] = maybeColorChannel(stroke);\n return z;\n}\n\n// Returns a Uint32Array with elements [0, 1, 2, … data.length - 1].\nexport function range(data) {\n const n = data.length;\n const r = new Uint32Array(n);\n for (let i = 0; i < n; ++i) r[i] = i;\n return r;\n}\n\n// Returns a filtered range of data given the test function.\nexport function where(data, test) {\n return range(data).filter((i) => test(data[i], i, data));\n}\n\n// Returns an array [values[index[0]], values[index[1]], …].\nexport function take(values, index) {\n return map(index, (i) => values[i]);\n}\n\n// Based on InternMap (d3.group).\nexport function keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n\nexport function maybeInput(key, options) {\n if (options[key] !== undefined) return options[key];\n switch (key) {\n case \"x1\":\n case \"x2\":\n key = \"x\";\n break;\n case \"y1\":\n case \"y2\":\n key = \"y\";\n break;\n }\n return options[key];\n}\n\nexport function column(source) {\n // Defines a column whose values are lazily populated by calling the returned\n // setter. If the given source is labeled, the label is propagated to the\n // returned column definition.\n let value;\n return [\n {\n transform: () => value,\n label: labelof(source)\n },\n (v) => (value = v)\n ];\n}\n\n// Like column, but allows the source to be null.\nexport function maybeColumn(source) {\n return source == null ? [source] : column(source);\n}\n\nexport function labelof(value, defaultValue) {\n return typeof value === \"string\" ? value : value && value.label !== undefined ? value.label : defaultValue;\n}\n\n// Assuming that both x1 and x2 and lazy columns (per above), this derives a new\n// a column that’s the average of the two, and which inherits the column label\n// (if any). Both input columns are assumed to be quantitative. If either column\n// is temporal, the returned column is also temporal.\nexport function mid(x1, x2) {\n return {\n transform(data) {\n const X1 = x1.transform(data);\n const X2 = x2.transform(data);\n return isTemporal(X1) || isTemporal(X2)\n ? map(X1, (_, i) => new Date((+X1[i] + +X2[i]) / 2))\n : map(X1, (_, i) => (+X1[i] + +X2[i]) / 2, Float64Array);\n },\n label: x1.label\n };\n}\n\n// If interval is not nullish, converts interval shorthand such as a number (for\n// multiples) or a time interval name (such as “dayâ€) to a {floor, offset,\n// range} object similar to a D3 time interval.\nexport function maybeInterval(interval, type) {\n if (interval == null) return;\n if (typeof interval === \"number\") {\n if (0 < interval && interval < 1 && Number.isInteger(1 / interval)) interval = -1 / interval;\n const n = Math.abs(interval);\n return interval < 0\n ? {\n floor: (d) => Math.floor(d * n) / n,\n offset: (d) => (d * n + 1) / n, // note: no optional step for simplicity\n range: (lo, hi) => rangei(Math.ceil(lo * n), hi * n).map((x) => x / n)\n }\n : {\n floor: (d) => Math.floor(d / n) * n,\n offset: (d) => d + n, // note: no optional step for simplicity\n range: (lo, hi) => rangei(Math.ceil(lo / n), hi / n).map((x) => x * n)\n };\n }\n if (typeof interval === \"string\") return (type === \"time\" ? maybeTimeInterval : maybeUtcInterval)(interval);\n if (typeof interval.floor !== \"function\") throw new Error(\"invalid interval; missing floor method\");\n if (typeof interval.offset !== \"function\") throw new Error(\"invalid interval; missing offset method\");\n return interval;\n}\n\n// Like maybeInterval, but requires a range method too.\nexport function maybeRangeInterval(interval, type) {\n interval = maybeInterval(interval, type);\n if (interval && typeof interval.range !== \"function\") throw new Error(\"invalid interval: missing range method\");\n return interval;\n}\n\n// Like maybeRangeInterval, but requires a ceil method too.\nexport function maybeNiceInterval(interval, type) {\n interval = maybeRangeInterval(interval, type);\n if (interval && typeof interval.ceil !== \"function\") throw new Error(\"invalid interval: missing ceil method\");\n return interval;\n}\n\n// This distinguishes between per-dimension options and a standalone value.\nexport function maybeValue(value) {\n return value === undefined || isOptions(value) ? value : {value};\n}\n\n// Coerces the given channel values (if any) to numbers. This is useful when\n// values will be interpolated into other code, such as an SVG transform, and\n// where we don’t wish to allow unexpected behavior for weird input.\nexport function numberChannel(source) {\n return source == null\n ? null\n : {\n transform: (data) => valueof(data, source, Float64Array),\n label: labelof(source)\n };\n}\n\nexport function isTuples(data) {\n if (!isIterable(data)) return false;\n for (const d of data) {\n if (d == null) continue;\n return typeof d === \"object\" && \"0\" in d && \"1\" in d;\n }\n}\n\nexport function isIterable(value) {\n return value && typeof value[Symbol.iterator] === \"function\";\n}\n\nexport function isTextual(values) {\n for (const value of values) {\n if (value == null) continue;\n return typeof value !== \"object\" || value instanceof Date;\n }\n}\n\nexport function isOrdinal(values) {\n for (const value of values) {\n if (value == null) continue;\n const type = typeof value;\n return type === \"string\" || type === \"boolean\";\n }\n}\n\nexport function isTemporal(values) {\n for (const value of values) {\n if (value == null) continue;\n return value instanceof Date;\n }\n}\n\n// Are these strings that might represent dates? This is stricter than ISO 8601\n// because we want to ignore false positives on numbers; for example, the string\n// \"1192\" is more likely to represent a number than a date even though it is\n// valid ISO 8601 representing 1192-01-01.\nexport function isTemporalString(values) {\n for (const value of values) {\n if (value == null) continue;\n return typeof value === \"string\" && isNaN(value) && isoParse(value);\n }\n}\n\n// Are these strings that might represent numbers? This is stricter than\n// coercion because we want to ignore false positives on e.g. empty strings.\nexport function isNumericString(values) {\n for (const value of values) {\n if (value == null) continue;\n if (typeof value !== \"string\") return false;\n if (!value.trim()) continue;\n return !isNaN(value);\n }\n}\n\nexport function isNumeric(values) {\n for (const value of values) {\n if (value == null) continue;\n return typeof value === \"number\";\n }\n}\n\n// Returns true if every non-null value in the specified iterable of values\n// passes the specified predicate, and there is at least one non-null value;\n// returns false if at least one non-null value does not pass the specified\n// predicate; otherwise returns undefined (as if all values are null).\nexport function isEvery(values, is) {\n let every;\n for (const value of values) {\n if (value == null) continue;\n if (!is(value)) return false;\n every = true;\n }\n return every;\n}\n\n// Mostly relies on d3-color, with a few extra color keywords. Currently this\n// strictly requires that the value be a string; we might want to apply string\n// coercion here, though note that d3-color instances would need to support\n// valueOf to work correctly with InternMap.\n// https://www.w3.org/TR/SVG11/painting.html#SpecifyingPaint\nexport function isColor(value) {\n if (typeof value !== \"string\") return false;\n value = value.toLowerCase().trim();\n return (\n value === \"none\" ||\n value === \"currentcolor\" ||\n (value.startsWith(\"url(\") && value.endsWith(\")\")) || // <funciri>, e.g. pattern or gradient\n (value.startsWith(\"var(\") && value.endsWith(\")\")) || // CSS variable\n color(value) !== null\n );\n}\n\nexport function isOpacity(value) {\n return typeof value === \"number\" && ((0 <= value && value <= 1) || isNaN(value));\n}\n\nexport function isNoneish(value) {\n return value == null || isNone(value);\n}\n\nexport function isNone(value) {\n return /^\\s*none\\s*$/i.test(value);\n}\n\nexport function isRound(value) {\n return /^\\s*round\\s*$/i.test(value);\n}\n\nexport function maybeFrameAnchor(value = \"middle\") {\n return keyword(value, \"frameAnchor\", [\n \"middle\",\n \"top-left\",\n \"top\",\n \"top-right\",\n \"right\",\n \"bottom-right\",\n \"bottom\",\n \"bottom-left\",\n \"left\"\n ]);\n}\n\n// Like a sort comparator, returns a positive value if the given array of values\n// is in ascending order, a negative value if the values are in descending\n// order. Assumes monotonicity; only tests the first and last values.\nexport function orderof(values) {\n if (values == null) return;\n const first = values[0];\n const last = values[values.length - 1];\n return descending(first, last);\n}\n\n// Unlike {...defaults, ...options}, this ensures that any undefined (but\n// present) properties in options inherit the given default value.\nexport function inherit(options = {}, ...rest) {\n let o = options;\n for (const defaults of rest) {\n for (const key in defaults) {\n if (o[key] === undefined) {\n const value = defaults[key];\n if (o === options) o = {...o, [key]: value};\n else o[key] = value;\n }\n }\n }\n return o;\n}\n\n// Given an iterable of named things (objects with a name property), returns a\n// corresponding object with properties associated with the given name.\nexport function named(things) {\n console.warn(\"named iterables are deprecated; please use an object instead\");\n const names = new Set();\n return Object.fromEntries(\n Array.from(things, (thing) => {\n const {name} = thing;\n if (name == null) throw new Error(\"missing name\");\n const key = `${name}`;\n if (key === \"__proto__\") throw new Error(`illegal name: ${key}`);\n if (names.has(key)) throw new Error(`duplicate name: ${key}`);\n names.add(key);\n return [name, thing];\n })\n );\n}\n\nexport function maybeNamed(things) {\n return isIterable(things) ? named(things) : things;\n}\n","// Positional scales have associated axes, and for ordinal data, a point or band\n// scale is used instead of an ordinal scale.\nexport const position = Symbol(\"position\");\n\n// Color scales default to the turbo interpolator for quantitative data, and to\n// the Tableau10 scheme for ordinal data. Color scales may also have an\n// associated legend.\nexport const color = Symbol(\"color\");\n\n// Radius scales default to the sqrt type, have a default range of [0, 3], and a\n// default domain from 0 to the median first quartile of associated channels.\nexport const radius = Symbol(\"radius\");\n\n// Length scales default to the linear type, have a default range of [0, 12],\n// and a default domain from 0 to the median median of associated channels.\nexport const length = Symbol(\"length\");\n\n// Opacity scales have a default range of [0, 1], and a default domain from 0 to\n// the maximum value of associated channels.\nexport const opacity = Symbol(\"opacity\");\n\n// Symbol scales have a default range of categorical symbols.\nexport const symbol = Symbol(\"symbol\");\n\n// TODO Rather than hard-coding the list of known scale names, collect the names\n// and categories for each plot specification, so that custom marks can register\n// custom scales.\nexport const registry = new Map([\n [\"x\", position],\n [\"y\", position],\n [\"fx\", position],\n [\"fy\", position],\n [\"r\", radius],\n [\"color\", color],\n [\"opacity\", opacity],\n [\"symbol\", symbol],\n [\"length\", length]\n]);\n","import {symbolAsterisk, symbolDiamond2, symbolPlus, symbolSquare2, symbolTriangle2, symbolTimes} from \"d3\";\nimport {symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye} from \"d3\";\n\nexport const sqrt3 = Math.sqrt(3);\nexport const sqrt4_3 = 2 / sqrt3;\n\nconst symbolHexagon = {\n draw(context, size) {\n const rx = Math.sqrt(size / Math.PI),\n ry = rx * sqrt4_3,\n hy = ry / 2;\n context.moveTo(0, ry);\n context.lineTo(rx, hy);\n context.lineTo(rx, -hy);\n context.lineTo(0, -ry);\n context.lineTo(-rx, -hy);\n context.lineTo(-rx, hy);\n context.closePath();\n }\n};\n\nconst symbols = new Map([\n [\"asterisk\", symbolAsterisk],\n [\"circle\", symbolCircle],\n [\"cross\", symbolCross],\n [\"diamond\", symbolDiamond],\n [\"diamond2\", symbolDiamond2],\n [\"hexagon\", symbolHexagon],\n [\"plus\", symbolPlus],\n [\"square\", symbolSquare],\n [\"square2\", symbolSquare2],\n [\"star\", symbolStar],\n [\"times\", symbolTimes],\n [\"triangle\", symbolTriangle],\n [\"triangle2\", symbolTriangle2],\n [\"wye\", symbolWye]\n]);\n\nfunction isSymbolObject(value) {\n return value && typeof value.draw === \"function\";\n}\n\nexport function isSymbol(value) {\n if (isSymbolObject(value)) return true;\n if (typeof value !== \"string\") return false;\n return symbols.has(value.toLowerCase());\n}\n\nexport function maybeSymbol(symbol) {\n if (symbol == null || isSymbolObject(symbol)) return symbol;\n const value = symbols.get(`${symbol}`.toLowerCase());\n if (value) return value;\n throw new Error(`invalid symbol: ${symbol}`);\n}\n\nexport function maybeSymbolChannel(symbol) {\n if (symbol == null || isSymbolObject(symbol)) return [undefined, symbol];\n if (typeof symbol === \"string\") {\n const value = symbols.get(`${symbol}`.toLowerCase());\n if (value) return [undefined, value];\n }\n return [symbol, undefined];\n}\n","let warnings = 0;\n\nexport function consumeWarnings() {\n const w = warnings;\n warnings = 0;\n return w;\n}\n\nexport function warn(message) {\n console.warn(message);\n ++warnings;\n}\n","import {\n interpolateBlues,\n interpolateBrBG,\n interpolateBuGn,\n interpolateBuPu,\n interpolateGnBu,\n interpolateGreens,\n interpolateGreys,\n interpolateOranges,\n interpolateOrRd,\n interpolatePiYG,\n interpolatePRGn,\n interpolatePuBu,\n interpolatePuBuGn,\n interpolatePuOr,\n interpolatePuRd,\n interpolatePurples,\n interpolateRdBu,\n interpolateRdGy,\n interpolateRdPu,\n interpolateRdYlBu,\n interpolateRdYlGn,\n interpolateReds,\n interpolateSpectral,\n interpolateYlGn,\n interpolateYlGnBu,\n interpolateYlOrBr,\n interpolateYlOrRd,\n interpolateTurbo,\n interpolateViridis,\n interpolateMagma,\n interpolateInferno,\n interpolatePlasma,\n interpolateCividis,\n interpolateCubehelixDefault,\n interpolateWarm,\n interpolateCool,\n interpolateRainbow,\n interpolateSinebow,\n quantize,\n schemeAccent,\n schemeBlues,\n schemeBrBG,\n schemeBuGn,\n schemeBuPu,\n schemeCategory10,\n schemeDark2,\n schemeGnBu,\n schemeGreens,\n schemeGreys,\n schemeOranges,\n schemeOrRd,\n schemePaired,\n schemePastel1,\n schemePastel2,\n schemePiYG,\n schemePRGn,\n schemePuBu,\n schemePuBuGn,\n schemePuOr,\n schemePuRd,\n schemePurples,\n schemeRdBu,\n schemeRdGy,\n schemeRdPu,\n schemeRdYlBu,\n schemeRdYlGn,\n schemeReds,\n schemeSet1,\n schemeSet2,\n schemeSet3,\n schemeSpectral,\n schemeTableau10,\n schemeYlGn,\n schemeYlGnBu,\n schemeYlOrBr,\n schemeYlOrRd\n} from \"d3\";\n\nconst ordinalSchemes = new Map([\n // categorical\n [\"accent\", schemeAccent],\n [\"category10\", schemeCategory10],\n [\"dark2\", schemeDark2],\n [\"paired\", schemePaired],\n [\"pastel1\", schemePastel1],\n [\"pastel2\", schemePastel2],\n [\"set1\", schemeSet1],\n [\"set2\", schemeSet2],\n [\"set3\", schemeSet3],\n [\"tableau10\", schemeTableau10],\n\n // diverging\n [\"brbg\", scheme11(schemeBrBG, interpolateBrBG)],\n [\"prgn\", scheme11(schemePRGn, interpolatePRGn)],\n [\"piyg\", scheme11(schemePiYG, interpolatePiYG)],\n [\"puor\", scheme11(schemePuOr, interpolatePuOr)],\n [\"rdbu\", scheme11(schemeRdBu, interpolateRdBu)],\n [\"rdgy\", scheme11(schemeRdGy, interpolateRdGy)],\n [\"rdylbu\", scheme11(schemeRdYlBu, interpolateRdYlBu)],\n [\"rdylgn\", scheme11(schemeRdYlGn, interpolateRdYlGn)],\n [\"spectral\", scheme11(schemeSpectral, interpolateSpectral)],\n\n // reversed diverging (for temperature data)\n [\"burd\", scheme11r(schemeRdBu, interpolateRdBu)],\n [\"buylrd\", scheme11r(schemeRdYlBu, interpolateRdYlBu)],\n\n // sequential (single-hue)\n [\"blues\", scheme9(schemeBlues, interpolateBlues)],\n [\"greens\", scheme9(schemeGreens, interpolateGreens)],\n [\"greys\", scheme9(schemeGreys, interpolateGreys)],\n [\"oranges\", scheme9(schemeOranges, interpolateOranges)],\n [\"purples\", scheme9(schemePurples, interpolatePurples)],\n [\"reds\", scheme9(schemeReds, interpolateReds)],\n\n // sequential (multi-hue)\n [\"turbo\", schemei(interpolateTurbo)],\n [\"viridis\", schemei(interpolateViridis)],\n [\"magma\", schemei(interpolateMagma)],\n [\"inferno\", schemei(interpolateInferno)],\n [\"plasma\", schemei(interpolatePlasma)],\n [\"cividis\", schemei(interpolateCividis)],\n [\"cubehelix\", schemei(interpolateCubehelixDefault)],\n [\"warm\", schemei(interpolateWarm)],\n [\"cool\", schemei(interpolateCool)],\n [\"bugn\", scheme9(schemeBuGn, interpolateBuGn)],\n [\"bupu\", scheme9(schemeBuPu, interpolateBuPu)],\n [\"gnbu\", scheme9(schemeGnBu, interpolateGnBu)],\n [\"orrd\", scheme9(schemeOrRd, interpolateOrRd)],\n [\"pubu\", scheme9(schemePuBu, interpolatePuBu)],\n [\"pubugn\", scheme9(schemePuBuGn, interpolatePuBuGn)],\n [\"purd\", scheme9(schemePuRd, interpolatePuRd)],\n [\"rdpu\", scheme9(schemeRdPu, interpolateRdPu)],\n [\"ylgn\", scheme9(schemeYlGn, interpolateYlGn)],\n [\"ylgnbu\", scheme9(schemeYlGnBu, interpolateYlGnBu)],\n [\"ylorbr\", scheme9(schemeYlOrBr, interpolateYlOrBr)],\n [\"ylorrd\", scheme9(schemeYlOrRd, interpolateYlOrRd)],\n\n // cyclical\n [\"rainbow\", schemeicyclical(interpolateRainbow)],\n [\"sinebow\", schemeicyclical(interpolateSinebow)]\n]);\n\nfunction scheme9(scheme, interpolate) {\n return ({length: n}) => {\n if (n === 1) return [scheme[3][1]]; // favor midpoint\n if (n === 2) return [scheme[3][1], scheme[3][2]]; // favor darker\n n = Math.max(3, Math.floor(n));\n return n > 9 ? quantize(interpolate, n) : scheme[n];\n };\n}\n\nfunction scheme11(scheme, interpolate) {\n return ({length: n}) => {\n if (n === 2) return [scheme[3][0], scheme[3][2]]; // favor diverging extrema\n n = Math.max(3, Math.floor(n));\n return n > 11 ? quantize(interpolate, n) : scheme[n];\n };\n}\n\nfunction scheme11r(scheme, interpolate) {\n return ({length: n}) => {\n if (n === 2) return [scheme[3][2], scheme[3][0]]; // favor diverging extrema\n n = Math.max(3, Math.floor(n));\n return n > 11 ? quantize((t) => interpolate(1 - t), n) : scheme[n].slice().reverse();\n };\n}\n\nfunction schemei(interpolate) {\n return ({length: n}) => quantize(interpolate, Math.max(2, Math.floor(n)));\n}\n\nfunction schemeicyclical(interpolate) {\n return ({length: n}) => quantize(interpolate, Math.floor(n) + 1).slice(0, -1);\n}\n\nexport function ordinalScheme(scheme) {\n const s = `${scheme}`.toLowerCase();\n if (!ordinalSchemes.has(s)) throw new Error(`unknown ordinal scheme: ${s}`);\n return ordinalSchemes.get(s);\n}\n\nexport function ordinalRange(scheme, length) {\n const s = ordinalScheme(scheme);\n const r = typeof s === \"function\" ? s({length}) : s;\n return r.length !== length ? r.slice(0, length) : r;\n}\n\n// If the specified domain contains only booleans (ignoring null and undefined),\n// returns a corresponding range where false is mapped to the low color and true\n// is mapped to the high color of the specified scheme.\nexport function maybeBooleanRange(domain, scheme = \"greys\") {\n const range = new Set();\n const [f, t] = ordinalRange(scheme, 2);\n for (const value of domain) {\n if (value == null) continue;\n if (value === true) range.add(t);\n else if (value === false) range.add(f);\n else return;\n }\n return [...range];\n}\n\nconst quantitativeSchemes = new Map([\n // diverging\n [\"brbg\", interpolateBrBG],\n [\"prgn\", interpolatePRGn],\n [\"piyg\", interpolatePiYG],\n [\"puor\", interpolatePuOr],\n [\"rdbu\", interpolateRdBu],\n [\"rdgy\", interpolateRdGy],\n [\"rdylbu\", interpolateRdYlBu],\n [\"rdylgn\", interpolateRdYlGn],\n [\"spectral\", interpolateSpectral],\n\n // reversed diverging (for temperature data)\n [\"burd\", (t) => interpolateRdBu(1 - t)],\n [\"buylrd\", (t) => interpolateRdYlBu(1 - t)],\n\n // sequential (single-hue)\n [\"blues\", interpolateBlues],\n [\"greens\", interpolateGreens],\n [\"greys\", interpolateGreys],\n [\"purples\", interpolatePurples],\n [\"reds\", interpolateReds],\n [\"oranges\", interpolateOranges],\n\n // sequential (multi-hue)\n [\"turbo\", interpolateTurbo],\n [\"viridis\", interpolateViridis],\n [\"magma\", interpolateMagma],\n [\"inferno\", interpolateInferno],\n [\"plasma\", interpolatePlasma],\n [\"cividis\", interpolateCividis],\n [\"cubehelix\", interpolateCubehelixDefault],\n [\"warm\", interpolateWarm],\n [\"cool\", interpolateCool],\n [\"bugn\", interpolateBuGn],\n [\"bupu\", interpolateBuPu],\n [\"gnbu\", interpolateGnBu],\n [\"orrd\", interpolateOrRd],\n [\"pubugn\", interpolatePuBuGn],\n [\"pubu\", interpolatePuBu],\n [\"purd\", interpolatePuRd],\n [\"rdpu\", interpolateRdPu],\n [\"ylgnbu\", interpolateYlGnBu],\n [\"ylgn\", interpolateYlGn],\n [\"ylorbr\", interpolateYlOrBr],\n [\"ylorrd\", interpolateYlOrRd],\n\n // cyclical\n [\"rainbow\", interpolateRainbow],\n [\"sinebow\", interpolateSinebow]\n]);\n\nexport function quantitativeScheme(scheme) {\n const s = `${scheme}`.toLowerCase();\n if (!quantitativeSchemes.has(s)) throw new Error(`unknown quantitative scheme: ${s}`);\n return quantitativeSchemes.get(s);\n}\n\nconst divergingSchemes = new Set([\n \"brbg\",\n \"prgn\",\n \"piyg\",\n \"puor\",\n \"rdbu\",\n \"rdgy\",\n \"rdylbu\",\n \"rdylgn\",\n \"spectral\",\n \"burd\",\n \"buylrd\"\n]);\n\nexport function isDivergingScheme(scheme) {\n return scheme != null && divergingSchemes.has(`${scheme}`.toLowerCase());\n}\n","import {\n descending,\n extent,\n interpolateHcl,\n interpolateHsl,\n interpolateLab,\n interpolateNumber,\n interpolateRgb,\n interpolateRound,\n min,\n max,\n median,\n quantile,\n quantize,\n reverse as reverseof,\n scaleLinear,\n scaleLog,\n scalePow,\n scaleQuantile,\n scaleSymlog,\n scaleThreshold,\n scaleIdentity,\n ticks\n} from \"d3\";\nimport {positive, negative, finite} from \"../defined.js\";\nimport {arrayify, constant, orderof, slice, maybeNiceInterval, maybeRangeInterval} from \"../options.js\";\nimport {ordinalRange, quantitativeScheme} from \"./schemes.js\";\nimport {registry, radius, opacity, color, length} from \"./index.js\";\n\nexport const flip = (i) => (t) => i(1 - t);\nconst unit = [0, 1];\n\nconst interpolators = new Map([\n // numbers\n [\"number\", interpolateNumber],\n\n // color spaces\n [\"rgb\", interpolateRgb],\n [\"hsl\", interpolateHsl],\n [\"hcl\", interpolateHcl],\n [\"lab\", interpolateLab]\n]);\n\nexport function maybeInterpolator(interpolate) {\n const i = `${interpolate}`.toLowerCase();\n if (!interpolators.has(i)) throw new Error(`unknown interpolator: ${i}`);\n return interpolators.get(i);\n}\n\nexport function createScaleQ(\n key,\n scale,\n channels,\n {\n type,\n nice,\n clamp,\n zero,\n domain = inferAutoDomain(key, channels),\n unknown,\n round,\n scheme,\n interval,\n range = registry.get(key) === radius\n ? inferRadialRange(channels, domain)\n : registry.get(key) === length\n ? inferLengthRange(channels, domain)\n : registry.get(key) === opacity\n ? unit\n : undefined,\n interpolate = registry.get(key) === color\n ? scheme == null && range !== undefined\n ? interpolateRgb\n : quantitativeScheme(scheme !== undefined ? scheme : type === \"cyclical\" ? \"rainbow\" : \"turbo\")\n : round\n ? interpolateRound\n : interpolateNumber,\n reverse\n }\n) {\n interval = maybeRangeInterval(interval, type);\n if (type === \"cyclical\" || type === \"sequential\") type = \"linear\"; // shorthand for color schemes\n reverse = !!reverse;\n\n // Sometimes interpolate is a named interpolator, such as \"lab\" for Lab color\n // space. Other times interpolate is a function that takes two arguments and\n // is used in conjunction with the range. And other times the interpolate\n // function is a “fixed†interpolator on the [0, 1] interval, as when a\n // color scheme such as interpolateRdBu is used.\n if (typeof interpolate !== \"function\") {\n interpolate = maybeInterpolator(interpolate);\n }\n if (interpolate.length === 1) {\n if (reverse) {\n interpolate = flip(interpolate);\n reverse = false;\n }\n if (range === undefined) {\n range = Float64Array.from(domain, (_, i) => i / (domain.length - 1));\n if (range.length === 2) range = unit; // optimize common case of [0, 1]\n }\n scale.interpolate((range === unit ? constant : interpolatePiecewise)(interpolate));\n } else {\n scale.interpolate(interpolate);\n }\n\n // If a zero option is specified, we assume that the domain is numeric, and we\n // want to ensure that the domain crosses zero. However, note that the domain\n // may be reversed (descending) so we shouldn’t assume that the first value is\n // smaller than the last; and also it’s possible that the domain has more than\n // two values for a “poly†scale. And lastly be careful not to mutate input!\n if (zero) {\n const [min, max] = extent(domain);\n if (min > 0 || max < 0) {\n domain = slice(domain);\n if (orderof(domain) !== Math.sign(min)) domain[domain.length - 1] = 0;\n // [2, 1] or [-2, -1]\n else domain[0] = 0; // [1, 2] or [-1, -2]\n }\n }\n\n if (reverse) domain = reverseof(domain);\n scale.domain(domain).unknown(unknown);\n if (nice) scale.nice(maybeNice(nice, type)), (domain = scale.domain());\n if (range !== undefined) scale.range(range);\n if (clamp) scale.clamp(clamp);\n return {type, domain, range, scale, interpolate, interval};\n}\n\nfunction maybeNice(nice, type) {\n return nice === true ? undefined : typeof nice === \"number\" ? nice : maybeNiceInterval(nice, type);\n}\n\nexport function createScaleLinear(key, channels, options) {\n return createScaleQ(key, scaleLinear(), channels, options);\n}\n\nexport function createScaleSqrt(key, channels, options) {\n return createScalePow(key, channels, {...options, exponent: 0.5});\n}\n\nexport function createScalePow(key, channels, {exponent = 1, ...options}) {\n return createScaleQ(key, scalePow().exponent(exponent), channels, {...options, type: \"pow\"});\n}\n\nexport function createScaleLog(key, channels, {base = 10, domain = inferLogDomain(channels), ...options}) {\n return createScaleQ(key, scaleLog().base(base), channels, {...options, domain});\n}\n\nexport function createScaleSymlog(key, channels, {constant = 1, ...options}) {\n return createScaleQ(key, scaleSymlog().constant(constant), channels, options);\n}\n\nexport function createScaleQuantile(\n key,\n channels,\n {\n range,\n quantiles = range === undefined ? 5 : (range = [...range]).length, // deprecated; use n instead\n n = quantiles,\n scheme = \"rdylbu\",\n domain = inferQuantileDomain(channels),\n unknown,\n interpolate,\n reverse\n }\n) {\n if (range === undefined) {\n range =\n interpolate !== undefined\n ? quantize(interpolate, n)\n : registry.get(key) === color\n ? ordinalRange(scheme, n)\n : undefined;\n }\n if (domain.length > 0) {\n domain = scaleQuantile(domain, range === undefined ? {length: n} : range).quantiles();\n }\n return createScaleThreshold(key, channels, {domain, range, reverse, unknown});\n}\n\nexport function createScaleQuantize(\n key,\n channels,\n {\n range,\n n = range === undefined ? 5 : (range = [...range]).length,\n scheme = \"rdylbu\",\n domain = inferAutoDomain(key, channels),\n unknown,\n interpolate,\n reverse\n }\n) {\n const [min, max] = extent(domain);\n let thresholds;\n if (range === undefined) {\n thresholds = ticks(min, max, n); // approximate number of nice, round thresholds\n if (thresholds[0] <= min) thresholds.splice(0, 1); // drop exact lower bound\n if (thresholds[thresholds.length - 1] >= max) thresholds.pop(); // drop exact upper bound\n n = thresholds.length + 1;\n range =\n interpolate !== undefined\n ? quantize(interpolate, n)\n : registry.get(key) === color\n ? ordinalRange(scheme, n)\n : undefined;\n } else {\n thresholds = quantize(interpolateNumber(min, max), n + 1).slice(1, -1); // exactly n - 1 thresholds to match range\n if (min instanceof Date) thresholds = thresholds.map((x) => new Date(x)); // preserve date types\n }\n if (orderof(arrayify(domain)) < 0) thresholds.reverse(); // preserve descending domain\n return createScaleThreshold(key, channels, {domain: thresholds, range, reverse, unknown});\n}\n\nexport function createScaleThreshold(\n key,\n channels,\n {\n domain = [0], // explicit thresholds in ascending order\n unknown,\n scheme = \"rdylbu\",\n interpolate,\n range = interpolate !== undefined\n ? quantize(interpolate, domain.length + 1)\n : registry.get(key) === color\n ? ordinalRange(scheme, domain.length + 1)\n : undefined,\n reverse\n }\n) {\n domain = arrayify(domain);\n const sign = orderof(domain); // preserve descending domain\n if (!isNaN(sign) && !isOrdered(domain, sign)) throw new Error(`the ${key} scale has a non-monotonic domain`);\n if (reverse) range = reverseof(range); // domain ascending, so reverse range\n return {\n type: \"threshold\",\n scale: scaleThreshold(sign < 0 ? reverseof(domain) : domain, range === undefined ? [] : range).unknown(unknown),\n domain,\n range\n };\n}\n\nfunction isOrdered(domain, sign) {\n for (let i = 1, n = domain.length, d = domain[0]; i < n; ++i) {\n const s = descending(d, (d = domain[i]));\n if (s !== 0 && s !== sign) return false;\n }\n return true;\n}\n\nexport function createScaleIdentity() {\n return {type: \"identity\", scale: scaleIdentity()};\n}\n\nexport function inferDomain(channels, f = finite) {\n return channels.length\n ? [\n min(channels, ({value}) => (value === undefined ? value : min(value, f))),\n max(channels, ({value}) => (value === undefined ? value : max(value, f)))\n ]\n : [0, 1];\n}\n\nfunction inferAutoDomain(key, channels) {\n const type = registry.get(key);\n return (type === radius || type === opacity || type === length ? inferZeroDomain : inferDomain)(channels);\n}\n\nfunction inferZeroDomain(channels) {\n return [0, channels.length ? max(channels, ({value}) => (value === undefined ? value : max(value, finite))) : 1];\n}\n\n// We don’t want the upper bound of the radial domain to be zero, as this would\n// be degenerate, so we ignore nonpositive values. We also don’t want the\n// maximum default radius to exceed 30px.\nfunction inferRadialRange(channels, domain) {\n const hint = channels.find(({radius}) => radius !== undefined);\n if (hint !== undefined) return [0, hint.radius]; // a natural maximum radius, e.g. hexbins\n const h25 = quantile(channels, 0.5, ({value}) => (value === undefined ? NaN : quantile(value, 0.25, positive)));\n const range = domain.map((d) => 3 * Math.sqrt(d / h25));\n const k = 30 / max(range);\n return k < 1 ? range.map((r) => r * k) : range;\n}\n\n// We want a length scale’s domain to go from zero to a positive value, and to\n// treat negative lengths if any as inverted vectors of equivalent magnitude. We\n// also don’t want the maximum default length to exceed 60px.\nfunction inferLengthRange(channels, domain) {\n const h50 = median(channels, ({value}) => (value === undefined ? NaN : median(value, Math.abs)));\n const range = domain.map((d) => (12 * d) / h50);\n const k = 60 / max(range);\n return k < 1 ? range.map((r) => r * k) : range;\n}\n\nfunction inferLogDomain(channels) {\n for (const {value} of channels) {\n if (value !== undefined) {\n for (let v of value) {\n if (v > 0) return inferDomain(channels, positive);\n if (v < 0) return inferDomain(channels, negative);\n }\n }\n }\n return [1, 10];\n}\n\nfunction inferQuantileDomain(channels) {\n const domain = [];\n for (const {value} of channels) {\n if (value === undefined) continue;\n for (const v of value) domain.push(v);\n }\n return domain;\n}\n\nexport function interpolatePiecewise(interpolate) {\n return (i, j) => (t) => interpolate(i + t * (j - i));\n}\n","import {\n descending,\n interpolateNumber,\n interpolateRgb,\n piecewise,\n scaleDiverging,\n scaleDivergingLog,\n scaleDivergingPow,\n scaleDivergingSymlog\n} from \"d3\";\nimport {positive, negative} from \"../defined.js\";\nimport {quantitativeScheme} from \"./schemes.js\";\nimport {registry, color} from \"./index.js\";\nimport {inferDomain, maybeInterpolator, flip, interpolatePiecewise} from \"./quantitative.js\";\n\nfunction createScaleD(\n key,\n scale,\n transform,\n channels,\n {\n type,\n nice,\n clamp,\n domain = inferDomain(channels),\n unknown,\n pivot = 0,\n scheme,\n range,\n symmetric = true,\n interpolate = registry.get(key) === color\n ? scheme == null && range !== undefined\n ? interpolateRgb\n : quantitativeScheme(scheme !== undefined ? scheme : \"rdbu\")\n : interpolateNumber,\n reverse\n }\n) {\n pivot = +pivot;\n let [min, max] = domain;\n if (descending(min, max) < 0) ([min, max] = [max, min]), (reverse = !reverse);\n min = Math.min(min, pivot);\n max = Math.max(max, pivot);\n\n // Sometimes interpolate is a named interpolator, such as \"lab\" for Lab color\n // space. Other times interpolate is a function that takes two arguments and\n // is used in conjunction with the range. And other times the interpolate\n // function is a “fixed†interpolator on the [0, 1] interval, as when a\n // color scheme such as interpolateRdBu is used.\n if (typeof interpolate !== \"function\") {\n interpolate = maybeInterpolator(interpolate);\n }\n\n // If an explicit range is specified, promote it to a piecewise interpolator.\n if (range !== undefined) {\n interpolate =\n interpolate.length === 1 ? interpolatePiecewise(interpolate)(...range) : piecewise(interpolate, range);\n }\n\n // Reverse before normalization.\n if (reverse) interpolate = flip(interpolate);\n\n // Normalize the interpolator for symmetric difference around the pivot.\n if (symmetric) {\n const mid = transform.apply(pivot);\n const mindelta = mid - transform.apply(min);\n const maxdelta = transform.apply(max) - mid;\n if (mindelta < maxdelta) min = transform.invert(mid - maxdelta);\n else if (mindelta > maxdelta) max = transform.invert(mid + mindelta);\n }\n\n scale.domain([min, pivot, max]).unknown(unknown).interpolator(interpolate);\n if (clamp) scale.clamp(clamp);\n if (nice) scale.nice(nice);\n return {type, domain: [min, max], pivot, interpolate, scale};\n}\n\nexport function createScaleDiverging(key, channels, options) {\n return createScaleD(key, scaleDiverging(), transformIdentity, channels, options);\n}\n\nexport function createScaleDivergingSqrt(key, channels, options) {\n return createScaleDivergingPow(key, channels, {...options, exponent: 0.5});\n}\n\nexport function createScaleDivergingPow(key, channels, {exponent = 1, ...options}) {\n return createScaleD(key, scaleDivergingPow().exponent((exponent = +exponent)), transformPow(exponent), channels, {\n ...options,\n type: \"diverging-pow\"\n });\n}\n\nexport function createScaleDivergingLog(\n key,\n channels,\n {base = 10, pivot = 1, domain = inferDomain(channels, pivot < 0 ? negative : positive), ...options}\n) {\n return createScaleD(key, scaleDivergingLog().base((base = +base)), transformLog, channels, {\n domain,\n pivot,\n ...options\n });\n}\n\nexport function createScaleDivergingSymlog(key, channels, {constant = 1, ...options}) {\n return createScaleD(\n key,\n scaleDivergingSymlog().constant((constant = +constant)),\n transformSymlog(constant),\n channels,\n options\n );\n}\n\nconst transformIdentity = {\n apply(x) {\n return x;\n },\n invert(x) {\n return x;\n }\n};\n\nconst transformLog = {\n apply: Math.log,\n invert: Math.exp\n};\n\nconst transformSqrt = {\n apply(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n },\n invert(x) {\n return Math.sign(x) * (x * x);\n }\n};\n\nfunction transformPow(exponent) {\n return exponent === 0.5\n ? transformSqrt\n : {\n apply(x) {\n return Math.sign(x) * Math.pow(Math.abs(x), exponent);\n },\n invert(x) {\n return Math.sign(x) * Math.pow(Math.abs(x), 1 / exponent);\n }\n };\n}\n\nfunction transformSymlog(constant) {\n return {\n apply(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / constant));\n },\n invert(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * constant;\n }\n };\n}\n","import {scaleTime, scaleUtc} from \"d3\";\nimport {createScaleQ} from \"./quantitative.js\";\n\nfunction createScaleT(key, scale, channels, options) {\n return createScaleQ(key, scale, channels, options);\n}\n\nexport function createScaleTime(key, channels, options) {\n return createScaleT(key, scaleTime(), channels, options);\n}\n\nexport function createScaleUtc(key, channels, options) {\n return createScaleT(key, scaleUtc(), channels, options);\n}\n","import {InternSet, extent, quantize, reverse as reverseof, sort, symbolsFill, symbolsStroke} from \"d3\";\nimport {scaleBand, scaleOrdinal, scalePoint, scaleImplicit} from \"d3\";\nimport {ascendingDefined} from \"../defined.js\";\nimport {isNoneish, map, maybeRangeInterval} from \"../options.js\";\nimport {maybeSymbol} from \"../symbol.js\";\nimport {registry, color, position, symbol} from \"./index.js\";\nimport {maybeBooleanRange, ordinalScheme, quantitativeScheme} from \"./schemes.js\";\n\n// This denotes an implicitly ordinal color scale: the scale type was not set,\n// but the associated values are strings or booleans. If the associated defined\n// values are entirely boolean, the range will default to greys. You can opt out\n// of this by setting the type explicitly.\nexport const ordinalImplicit = Symbol(\"ordinal\");\n\nfunction createScaleO(key, scale, channels, {type, interval, domain, range, reverse, hint}) {\n interval = maybeRangeInterval(interval, type);\n if (domain === undefined) domain = inferDomain(channels, interval, key);\n if (type === \"categorical\" || type === ordinalImplicit) type = \"ordinal\"; // shorthand for color schemes\n if (reverse) domain = reverseof(domain);\n scale.domain(domain);\n if (range !== undefined) {\n // If the range is specified as a function, pass it the domain.\n if (typeof range === \"function\") range = range(domain);\n scale.range(range);\n }\n return {type, domain, range, scale, hint, interval};\n}\n\nexport function createScaleOrdinal(key, channels, {type, interval, domain, range, scheme, unknown, ...options}) {\n interval = maybeRangeInterval(interval, type);\n if (domain === undefined) domain = inferDomain(channels, interval, key);\n let hint;\n if (registry.get(key) === symbol) {\n hint = inferSymbolHint(channels);\n range = range === undefined ? inferSymbolRange(hint) : map(range, maybeSymbol);\n } else if (registry.get(key) === color) {\n if (range === undefined && (type === \"ordinal\" || type === ordinalImplicit)) {\n range = maybeBooleanRange(domain, scheme);\n if (range !== undefined) scheme = undefined; // Don’t re-apply scheme.\n }\n if (scheme === undefined && range === undefined) {\n scheme = type === \"ordinal\" ? \"turbo\" : \"tableau10\";\n }\n if (scheme !== undefined) {\n if (range !== undefined) {\n const interpolate = quantitativeScheme(scheme);\n const t0 = range[0],\n d = range[1] - range[0];\n range = ({length: n}) => quantize((t) => interpolate(t0 + d * t), n);\n } else {\n range = ordinalScheme(scheme);\n }\n }\n }\n if (unknown === scaleImplicit) {\n throw new Error(`implicit unknown on ${key} scale is not supported`);\n }\n return createScaleO(key, scaleOrdinal().unknown(unknown), channels, {...options, type, domain, range, hint});\n}\n\nexport function createScalePoint(key, channels, {align = 0.5, padding = 0.5, ...options}) {\n return maybeRound(scalePoint().align(align).padding(padding), channels, options, key);\n}\n\nexport function createScaleBand(\n key,\n channels,\n {\n align = 0.5,\n padding = 0.1,\n paddingInner = padding,\n paddingOuter = key === \"fx\" || key === \"fy\" ? 0 : padding,\n ...options\n }\n) {\n return maybeRound(\n scaleBand().align(align).paddingInner(paddingInner).paddingOuter(paddingOuter),\n channels,\n options,\n key\n );\n}\n\nfunction maybeRound(scale, channels, options, key) {\n let {round} = options;\n if (round !== undefined) scale.round((round = !!round));\n scale = createScaleO(key, scale, channels, options);\n scale.round = round; // preserve for autoScaleRound\n return scale;\n}\n\nfunction inferDomain(channels, interval, key) {\n const values = new InternSet();\n for (const {value, domain} of channels) {\n if (domain !== undefined) return domain(); // see channelDomain\n if (value === undefined) continue;\n for (const v of value) values.add(v);\n }\n if (interval !== undefined) {\n const [min, max] = extent(values).map(interval.floor, interval);\n return interval.range(min, interval.offset(max));\n }\n if (values.size > 10e3 && registry.get(key) === position) {\n throw new Error(`implicit ordinal domain of ${key} scale has more than 10,000 values`);\n }\n return sort(values, ascendingDefined);\n}\n\n// If all channels provide a consistent hint, propagate it to the scale.\nfunction inferHint(channels, key) {\n let value;\n for (const {hint} of channels) {\n const candidate = hint?.[key];\n if (candidate === undefined) continue; // no hint here\n if (value === undefined) value = candidate;\n // first hint\n else if (value !== candidate) return; // inconsistent hint\n }\n return value;\n}\n\nfunction inferSymbolHint(channels) {\n return {\n fill: inferHint(channels, \"fill\"),\n stroke: inferHint(channels, \"stroke\")\n };\n}\n\nfunction inferSymbolRange(hint) {\n return isNoneish(hint.fill) ? symbolsStroke : symbolsFill;\n}\n","import {\n isOrdinal,\n isTemporal,\n isTemporalString,\n isNumericString,\n isScaleOptions,\n map,\n slice,\n coerceNumbers,\n coerceDates\n} from \"./options.js\";\nimport {registry, color, position, radius, opacity, symbol, length} from \"./scales/index.js\";\nimport {\n createScaleLinear,\n createScaleSqrt,\n createScalePow,\n createScaleLog,\n createScaleSymlog,\n createScaleQuantile,\n createScaleQuantize,\n createScaleThreshold,\n createScaleIdentity\n} from \"./scales/quantitative.js\";\nimport {\n createScaleDiverging,\n createScaleDivergingSqrt,\n createScaleDivergingPow,\n createScaleDivergingLog,\n createScaleDivergingSymlog\n} from \"./scales/diverging.js\";\nimport {isDivergingScheme} from \"./scales/schemes.js\";\nimport {createScaleTime, createScaleUtc} from \"./scales/temporal.js\";\nimport {createScaleOrdinal, createScalePoint, createScaleBand, ordinalImplicit} from \"./scales/ordinal.js\";\nimport {maybeSymbol} from \"./symbol.js\";\nimport {warn} from \"./warnings.js\";\n\nexport function createScales(\n channelsByScale,\n {\n label: globalLabel,\n inset: globalInset = 0,\n insetTop: globalInsetTop = globalInset,\n insetRight: globalInsetRight = globalInset,\n insetBottom: globalInsetBottom = globalInset,\n insetLeft: globalInsetLeft = globalInset,\n round,\n nice,\n clamp,\n zero,\n align,\n padding,\n projection,\n facet: {label: facetLabel = globalLabel} = {},\n ...options\n } = {}\n) {\n const scales = {};\n for (const [key, channels] of channelsByScale) {\n const scaleOptions = options[key];\n const scale = createScale(key, channels, {\n round: registry.get(key) === position ? round : undefined, // only for position\n nice,\n clamp,\n zero,\n align,\n padding,\n projection,\n ...scaleOptions\n });\n if (scale) {\n // populate generic scale options (percent, transform, insets)\n let {\n label = key === \"fx\" || key === \"fy\" ? facetLabel : globalLabel,\n percent,\n transform,\n inset,\n insetTop = inset !== undefined ? inset : key === \"y\" ? globalInsetTop : 0, // not fy\n insetRight = inset !== undefined ? inset : key === \"x\" ? globalInsetRight : 0, // not fx\n insetBottom = inset !== undefined ? inset : key === \"y\" ? globalInsetBottom : 0, // not fy\n insetLeft = inset !== undefined ? inset : key === \"x\" ? globalInsetLeft : 0 // not fx\n } = scaleOptions || {};\n if (transform == null) transform = undefined;\n else if (typeof transform !== \"function\") throw new Error(\"invalid scale transform; not a function\");\n scale.percent = !!percent;\n scale.label = label === undefined ? inferScaleLabel(channels, scale) : label;\n scale.transform = transform;\n if (key === \"x\" || key === \"fx\") {\n scale.insetLeft = +insetLeft;\n scale.insetRight = +insetRight;\n } else if (key === \"y\" || key === \"fy\") {\n scale.insetTop = +insetTop;\n scale.insetBottom = +insetBottom;\n }\n scales[key] = scale;\n }\n }\n return scales;\n}\n\nexport function createScaleFunctions(scales) {\n return Object.fromEntries(\n Object.entries(scales)\n .filter(([, {scale}]) => scale) // drop identity scales\n .map(([name, {scale, type, interval, label}]) => {\n scale.type = type; // for axis\n if (interval != null) scale.interval = interval; // for axis\n if (label != null) scale.label = label; // for axis\n return [name, scale];\n })\n );\n}\n\n// Mutates scale.range!\nexport function autoScaleRange(scales, dimensions) {\n const {x, y, fx, fy} = scales;\n const superdimensions = fx || fy ? outerDimensions(dimensions) : dimensions;\n if (fx) autoScaleRangeX(fx, superdimensions);\n if (fy) autoScaleRangeY(fy, superdimensions);\n const subdimensions = fx || fy ? innerDimensions(scales, dimensions) : dimensions;\n if (x) autoScaleRangeX(x, subdimensions);\n if (y) autoScaleRangeY(y, subdimensions);\n}\n\n// Channels can have labels; if all the channels for a given scale are\n// consistently labeled (i.e., have the same value if not undefined), and the\n// corresponding scale doesn’t already have an explicit label, then the\n// channels’ label is promoted to the scale. This inferred label should have an\n// orientation-appropriate arrow added when used as an axis, but we don’t want\n// to add the arrow when the label is set explicitly as an option; so, the\n// inferred label is distinguished as an object with an “inferred†property.\nfunction inferScaleLabel(channels = [], scale) {\n let label;\n for (const {label: l} of channels) {\n if (l === undefined) continue;\n if (label === undefined) label = l;\n else if (label !== l) return;\n }\n if (label === undefined) return;\n // Ignore the implicit label for temporal scales if it’s simply “dateâ€.\n if (isTemporalScale(scale) && /^(date|time|year)$/i.test(label)) return;\n if (!isOrdinalScale(scale) && scale.percent) label = `${label} (%)`;\n return {inferred: true, toString: () => label};\n}\n\n// Returns the dimensions of the outer frame; this is subdivided into facets\n// with the margins of each facet collapsing into the outer margins.\nexport function outerDimensions(dimensions) {\n const {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n width,\n height,\n facet: {\n marginTop: facetMarginTop,\n marginRight: facetMarginRight,\n marginBottom: facetMarginBottom,\n marginLeft: facetMarginLeft\n }\n } = dimensions;\n return {\n marginTop: Math.max(marginTop, facetMarginTop),\n marginRight: Math.max(marginRight, facetMarginRight),\n marginBottom: Math.max(marginBottom, facetMarginBottom),\n marginLeft: Math.max(marginLeft, facetMarginLeft),\n width,\n height\n };\n}\n\n// Returns the dimensions of each facet.\nexport function innerDimensions({fx, fy}, dimensions) {\n const {marginTop, marginRight, marginBottom, marginLeft, width, height} = outerDimensions(dimensions);\n return {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n width: fx ? fx.scale.bandwidth() + marginLeft + marginRight : width,\n height: fy ? fy.scale.bandwidth() + marginTop + marginBottom : height\n };\n}\n\nfunction autoScaleRangeX(scale, dimensions) {\n if (scale.range === undefined) {\n const {insetLeft, insetRight} = scale;\n const {width, marginLeft = 0, marginRight = 0} = dimensions;\n const left = marginLeft + insetLeft;\n const right = width - marginRight - insetRight;\n scale.range = [left, Math.max(left, right)];\n if (!isOrdinalScale(scale)) scale.range = piecewiseRange(scale);\n scale.scale.range(scale.range);\n }\n autoScaleRound(scale);\n}\n\nfunction autoScaleRangeY(scale, dimensions) {\n if (scale.range === undefined) {\n const {insetTop, insetBottom} = scale;\n const {height, marginTop = 0, marginBottom = 0} = dimensions;\n const top = marginTop + insetTop;\n const bottom = height - marginBottom - insetBottom;\n scale.range = [Math.max(top, bottom), top];\n if (!isOrdinalScale(scale)) scale.range = piecewiseRange(scale);\n else scale.range.reverse();\n scale.scale.range(scale.range);\n }\n autoScaleRound(scale);\n}\n\nfunction autoScaleRound(scale) {\n if (scale.round === undefined && isBandScale(scale) && roundError(scale) <= 30) {\n scale.scale.round(true);\n }\n}\n\n// If we were to turn on rounding for this band or point scale, how much wasted\n// space would it introduce (on both ends of the range)? This must match\n// d3.scaleBand’s rounding behavior:\n// https://github.com/d3/d3-scale/blob/83555bd759c7314420bd4240642beda5e258db9e/src/band.js#L20-L32\nfunction roundError({scale}) {\n const n = scale.domain().length;\n const [start, stop] = scale.range();\n const paddingInner = scale.paddingInner ? scale.paddingInner() : 1;\n const paddingOuter = scale.paddingOuter ? scale.paddingOuter() : scale.padding();\n const m = n - paddingInner;\n const step = Math.abs(stop - start) / Math.max(1, m + paddingOuter * 2);\n return (step - Math.floor(step)) * m;\n}\n\nfunction piecewiseRange(scale) {\n const length = scale.scale.domain().length + isThresholdScale(scale);\n if (!(length > 2)) return scale.range;\n const [start, end] = scale.range;\n return Array.from({length}, (_, i) => start + (i / (length - 1)) * (end - start));\n}\n\nexport function normalizeScale(key, scale, hint) {\n return createScale(key, hint === undefined ? undefined : [{hint}], {...scale});\n}\n\nfunction createScale(key, channels = [], options = {}) {\n const type = inferScaleType(key, channels, options);\n\n // Warn for common misuses of implicit ordinal scales. We disable this test if\n // you specify a scale interval or if you set the domain or range explicitly,\n // since setting the domain or range (typically with a cardinality of more than\n // two) is another indication that you intended for the scale to be ordinal; we\n // also disable it for facet scales since these are always band scales.\n if (\n options.type === undefined &&\n options.domain === undefined &&\n options.range === undefined &&\n options.interval == null &&\n key !== \"fx\" &&\n key !== \"fy\" &&\n isOrdinalScale({type})\n ) {\n const values = channels.map(({value}) => value).filter((value) => value !== undefined);\n if (values.some(isTemporal))\n warn(\n `Warning: some data associated with the ${key} scale are dates. Dates are typically associated with a \"utc\" or \"time\" scale rather than a \"${formatScaleType(\n type\n )}\" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., d3.utcDay), or you can suppress this warning by setting the type of the ${key} scale to \"${formatScaleType(\n type\n )}\".`\n );\n else if (values.some(isTemporalString))\n warn(\n `Warning: some data associated with the ${key} scale are strings that appear to be dates (e.g., YYYY-MM-DD). If these strings represent dates, you should parse them to Date objects. Dates are typically associated with a \"utc\" or \"time\" scale rather than a \"${formatScaleType(\n type\n )}\" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can suppress this warning by setting the type of the ${key} scale to \"${formatScaleType(\n type\n )}\".`\n );\n else if (values.some(isNumericString))\n warn(\n `Warning: some data associated with the ${key} scale are strings that appear to be numbers. If these strings represent numbers, you should parse or coerce them to numbers. Numbers are typically associated with a \"linear\" scale rather than a \"${formatScaleType(\n type\n )}\" scale. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., 1 for integers), or you can suppress this warning by setting the type of the ${key} scale to \"${formatScaleType(\n type\n )}\".`\n );\n }\n\n options.type = type; // Mutates input!\n\n // Once the scale type is known, coerce the associated channel values and any\n // explicitly-specified domain to the expected type.\n switch (type) {\n case \"diverging\":\n case \"diverging-sqrt\":\n case \"diverging-pow\":\n case \"diverging-log\":\n case \"diverging-symlog\":\n case \"cyclical\":\n case \"sequential\":\n case \"linear\":\n case \"sqrt\":\n case \"threshold\":\n case \"quantile\":\n case \"pow\":\n case \"log\":\n case \"symlog\":\n options = coerceType(channels, options, coerceNumbers);\n break;\n case \"identity\":\n switch (registry.get(key)) {\n case position:\n options = coerceType(channels, options, coerceNumbers);\n break;\n case symbol:\n options = coerceType(channels, options, coerceSymbols);\n break;\n }\n break;\n case \"utc\":\n case \"time\":\n options = coerceType(channels, options, coerceDates);\n break;\n }\n\n switch (type) {\n case \"diverging\":\n return createScaleDiverging(key, channels, options);\n case \"diverging-sqrt\":\n return createScaleDivergingSqrt(key, channels, options);\n case \"diverging-pow\":\n return createScaleDivergingPow(key, channels, options);\n case \"diverging-log\":\n return createScaleDivergingLog(key, channels, options);\n case \"diverging-symlog\":\n return createScaleDivergingSymlog(key, channels, options);\n case \"categorical\":\n case \"ordinal\":\n case ordinalImplicit:\n return createScaleOrdinal(key, channels, options);\n case \"cyclical\":\n case \"sequential\":\n case \"linear\":\n return createScaleLinear(key, channels, options);\n case \"sqrt\":\n return createScaleSqrt(key, channels, options);\n case \"threshold\":\n return createScaleThreshold(key, channels, options);\n case \"quantile\":\n return createScaleQuantile(key, channels, options);\n case \"quantize\":\n return createScaleQuantize(key, channels, options);\n case \"pow\":\n return createScalePow(key, channels, options);\n case \"log\":\n return createScaleLog(key, channels, options);\n case \"symlog\":\n return createScaleSymlog(key, channels, options);\n case \"utc\":\n return createScaleUtc(key, channels, options);\n case \"time\":\n return createScaleTime(key, channels, options);\n case \"point\":\n return createScalePoint(key, channels, options);\n case \"band\":\n return createScaleBand(key, channels, options);\n case \"identity\":\n return registry.get(key) === position ? createScaleIdentity() : {type: \"identity\"};\n case undefined:\n return;\n default:\n throw new Error(`unknown scale type: ${type}`);\n }\n}\n\nfunction formatScaleType(type) {\n return typeof type === \"symbol\" ? type.description : type;\n}\n\n// A special type symbol when the x and y scales are replaced with a projection.\nconst typeProjection = {toString: () => \"projection\"};\n\nfunction inferScaleType(key, channels, {type, domain, range, scheme, pivot, projection}) {\n // The facet scales are always band scales; this cannot be changed.\n if (key === \"fx\" || key === \"fy\") return \"band\";\n\n // If a projection is specified, the x- and y-scales are disabled; these\n // channels will be projected rather than scaled. (But still check that none\n // of the associated channels are incompatible with a projection.)\n if ((key === \"x\" || key === \"y\") && projection != null) type = typeProjection;\n\n // If a channel dictates a scale type, make sure that it is consistent with\n // the user-specified scale type (if any) and all other channels. For example,\n // barY requires x to be a band scale and disallows any other scale type.\n for (const {type: t} of channels) {\n if (t === undefined) continue;\n else if (type === undefined) type = t;\n else if (type !== t) throw new Error(`scale incompatible with channel: ${type} !== ${t}`);\n }\n\n // If the scale, a channel, or user specified a (consistent) type, return it.\n if (type === typeProjection) return;\n if (type !== undefined) return type;\n\n // If there’s no data (and no type) associated with this scale, don’t create a scale.\n if (domain === undefined && !channels.some(({value}) => value !== undefined)) return;\n\n // Some scales have default types.\n const kind = registry.get(key);\n if (kind === radius) return \"sqrt\";\n if (kind === opacity || kind === length) return \"linear\";\n if (kind === symbol) return \"ordinal\";\n\n // If the domain or range has more than two values, assume it’s ordinal. You\n // can still use a “piecewise†(or “polylinearâ€) scale, but you must set the\n // type explicitly.\n if ((domain || range || []).length > 2) return asOrdinalType(kind);\n\n // Otherwise, infer the scale type from the data! Prefer the domain, if\n // present, over channels. (The domain and channels should be consistently\n // typed, and the domain is more explicit and typically much smaller.) We only\n // check the first defined value for expedience and simplicity; we expect\n // that the types are consistent.\n if (domain !== undefined) {\n if (isOrdinal(domain)) return asOrdinalType(kind);\n if (isTemporal(domain)) return \"utc\";\n if (kind === color && (pivot != null || isDivergingScheme(scheme))) return \"diverging\";\n return \"linear\";\n }\n\n // If any channel is ordinal or temporal, it takes priority.\n const values = channels.map(({value}) => value).filter((value) => value !== undefined);\n if (values.some(isOrdinal)) return asOrdinalType(kind);\n if (values.some(isTemporal)) return \"utc\";\n if (kind === color && (pivot != null || isDivergingScheme(scheme))) return \"diverging\";\n return \"linear\";\n}\n\n// Positional scales default to a point scale instead of an ordinal scale.\nfunction asOrdinalType(kind) {\n switch (kind) {\n case position:\n return \"point\";\n case color:\n return ordinalImplicit;\n default:\n return \"ordinal\";\n }\n}\n\nexport function isTemporalScale({type}) {\n return type === \"time\" || type === \"utc\";\n}\n\nexport function isOrdinalScale({type}) {\n return type === \"ordinal\" || type === \"point\" || type === \"band\" || type === ordinalImplicit;\n}\n\nexport function isThresholdScale({type}) {\n return type === \"threshold\";\n}\n\nfunction isBandScale({type}) {\n return type === \"point\" || type === \"band\";\n}\n\nexport function isDivergingScale({type}) {\n return /^diverging($|-)/.test(type);\n}\n\n// Certain marks have special behavior if a scale is collapsed, i.e. if the\n// domain is degenerate and represents only a single value such as [3, 3]; for\n// example, a rect will span the full extent of the chart along a collapsed\n// dimension (whereas a dot will simply be drawn in the center).\nexport function isCollapsed(scale) {\n if (scale === undefined) return true; // treat missing scale as collapsed\n const domain = scale.domain();\n const value = scale(domain[0]);\n for (let i = 1, n = domain.length; i < n; ++i) {\n if (scale(domain[i]) - value) {\n return false;\n }\n }\n return true;\n}\n\n// Mutates channel.value!\nfunction coerceType(channels, {domain, ...options}, coerceValues) {\n for (const c of channels) {\n if (c.value !== undefined) {\n c.value = coerceValues(c.value);\n }\n }\n return {\n domain: domain === undefined ? domain : coerceValues(domain),\n ...options\n };\n}\n\nfunction coerceSymbols(values) {\n return map(values, maybeSymbol);\n}\n\nexport function scale(options = {}) {\n let scale;\n for (const key in options) {\n if (!registry.has(key)) continue; // ignore unknown properties\n if (!isScaleOptions(options[key])) continue; // e.g., ignore {color: \"red\"}\n if (scale !== undefined) throw new Error(\"ambiguous scale definition; multiple scales found\");\n scale = exposeScale(normalizeScale(key, options[key]));\n }\n if (scale === undefined) throw new Error(\"invalid scale definition; no scale found\");\n return scale;\n}\n\nexport function exposeScales(scaleDescriptors) {\n return (key) => {\n if (!registry.has((key = `${key}`))) throw new Error(`unknown scale: ${key}`);\n return key in scaleDescriptors ? exposeScale(scaleDescriptors[key]) : undefined;\n };\n}\n\n// Note: axis- and legend-related properties (such as label, ticks and\n// tickFormat) are not included here as they do not affect the scale’s behavior.\nfunction exposeScale({scale, type, domain, range, interpolate, interval, transform, percent, pivot}) {\n if (type === \"identity\") return {type: \"identity\", apply: (d) => d, invert: (d) => d};\n const unknown = scale.unknown ? scale.unknown() : undefined;\n return {\n type,\n domain: slice(domain), // defensive copy\n ...(range !== undefined && {range: slice(range)}), // defensive copy\n ...(transform !== undefined && {transform}),\n ...(percent && {percent}), // only exposed if truthy\n ...(unknown !== undefined && {unknown}),\n ...(interval !== undefined && {interval}),\n\n // quantitative\n ...(interpolate !== undefined && {interpolate}),\n ...(scale.clamp && {clamp: scale.clamp()}),\n\n // diverging (always asymmetric; we never want to apply the symmetric transform twice)\n ...(pivot !== undefined && {pivot, symmetric: false}),\n\n // log, diverging-log\n ...(scale.base && {base: scale.base()}),\n\n // pow, diverging-pow\n ...(scale.exponent && {exponent: scale.exponent()}),\n\n // symlog, diverging-symlog\n ...(scale.constant && {constant: scale.constant()}),\n\n // band, point\n ...(scale.align && {align: scale.align(), round: scale.round()}),\n ...(scale.padding &&\n (scale.paddingInner\n ? {paddingInner: scale.paddingInner(), paddingOuter: scale.paddingOuter()}\n : {padding: scale.padding()})),\n ...(scale.bandwidth && {bandwidth: scale.bandwidth(), step: scale.step()}),\n\n // utilities\n apply: (t) => scale(t),\n ...(scale.invert && {invert: (t) => scale.invert(t)})\n };\n}\n","export enum ScrollDirection {\n SCROLL_NONE,\n SCROLL_BACKWARD,\n SCROLL_FORWARD,\n}\n\nexport enum Position {\n TOP,\n RIGHT,\n BOTTOM,\n LEFT,\n}\n\nexport const OPTIONS_DEFAULT_DOMAIN_TYPE = 'hour';\n\nexport const OPTIONS_DEFAULT_SUBDOMAIN_TYPE = 'minute';\nexport const OPTIONS_DEFAULT_SUBDOMAIN_WIDTH = 10;\nexport const OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT = 10;\nexport const OPTIONS_DEFAULT_SUBDOMAIN_GUTTER = 2;\nexport const OPTIONS_DEFAULT_SUBDOMAIN_RADIUS = 0;\nexport const OPTIONS_DEFAULT_ANIMATION_DURATION = 200;\nexport const OPTIONS_DEFAULT_RANGE = 12;\nexport const OPTIONS_DEFAULT_ITEM_SELECTOR = '#cal-heatmap';\nexport const OPTIONS_DEFAULT_THEME = 'light';\nexport const OPTIONS_DEFAULT_LOCALE = 'en';\n\nexport const SCALE_BASE_OPACITY_COLOR = 'red';\nexport const SCALE_BASE_COLOR_SCHEME = 'YlOrBr';\nexport const SCALE_BASE_COLOR_TYPE = 'quantize';\nexport const SCALE_BASE_COLOR_DOMAIN = [0, 100];\n","// @ts-ignore\nimport { scale } from '@observablehq/plot';\nimport { OptionsType } from './options/Options';\nimport { SCALE_BASE_OPACITY_COLOR } from './constant';\n\nimport type { SubDomain } from './index';\n\ntype ValueType = string | number | undefined;\n\nexport function normalizedScale(scaleOptions: OptionsType['scale']): any {\n try {\n const scaleType = Object.keys(scaleOptions!)[0];\n\n return scale({\n [scaleType]: {\n ...scaleOptions![scaleType as 'color' | 'opacity'],\n clamp: true,\n },\n });\n } catch (error) {\n return null;\n }\n}\n\nfunction scaleStyle(_scale: any, scaleOptions: OptionsType['scale']) {\n const styles: { fill?: Function; 'fill-opacity'?: Function } = {};\n\n if (scaleOptions!.hasOwnProperty('opacity')) {\n styles.fill = () =>\n // eslint-disable-next-line implicit-arrow-linebreak\n scaleOptions!.opacity!.baseColor || SCALE_BASE_OPACITY_COLOR;\n styles['fill-opacity'] = (d: ValueType) => _scale?.apply(d);\n } else {\n styles.fill = (d: ValueType) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n (typeof d === 'string' && d?.startsWith('#') ? d : _scale?.apply(d));\n }\n\n return styles;\n}\n\nexport function applyScaleStyle(\n elem: any,\n _scale: any,\n scaleOptions: OptionsType['scale'],\n keyname?: string,\n) {\n Object.entries(scaleStyle(_scale, scaleOptions)).forEach(([prop, val]) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n elem.style(prop, (d: SubDomain | string) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n val(keyname ? (d as SubDomain)[keyname as keyof SubDomain] : d)));\n}\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind == 'keys') return createIterResultObject(entry.key, false);\n if (kind == 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = lengthOfArrayLike(items);\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw $TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","var $ = require('../internals/export');\nvar $parseInt = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != $parseInt }, {\n parseInt: $parseInt\n});\n","import castArray from 'lodash-es/castArray';\n\nimport type { SubDomain } from '../index';\nimport type {\n DataOptions,\n DataGroupType,\n DataRecord,\n} from '../options/Options';\nimport { DomainType, Timestamp } from '../index';\nimport type DateHelper from '../helpers/DateHelper';\n\nexport const DOMAIN_FORMAT: Record<DomainType, string> = {\n year: 'YYYY',\n month: 'MMMM',\n week: 'wo [week] YYYY',\n xDay: 'Do MMM',\n ghDay: 'Do MMM',\n day: 'Do MMM',\n hour: 'HH:00',\n minute: 'HH:mm',\n};\n\ntype GroupedRecords = Map<Timestamp, { [key: Timestamp]: DataRecord[] }>;\ntype ValueType = string | number | null;\n\nexport default class DomainCollection {\n collection: Map<Timestamp, SubDomain[]>;\n\n dateHelper: DateHelper;\n\n min: Timestamp;\n\n max: Timestamp;\n\n keys: Timestamp[];\n\n yankedDomains: Timestamp[];\n\n constructor(\n dateHelper: DateHelper,\n interval?: DomainType,\n start?: Date | Timestamp,\n range?: Date | Timestamp,\n excludeEnd: boolean = false,\n ) {\n this.collection = new Map();\n this.dateHelper = dateHelper;\n\n if (interval && start && range) {\n const ts = this.dateHelper\n .intervals(interval, start, range, excludeEnd)\n .map((d: Timestamp) => castArray(d));\n\n // @ts-ignore\n this.collection = new Map(ts);\n }\n\n this.min = 0;\n this.max = 0;\n this.keys = [];\n this.yankedDomains = [];\n\n if (this.collection.size > 0) {\n this.#refreshKeys();\n }\n }\n\n has(key: Timestamp): boolean {\n return this.collection.has(key);\n }\n\n get(key: Timestamp) {\n return this.collection.get(key);\n }\n\n forEach(callback: any) {\n return this.collection.forEach(callback);\n }\n\n at(index: number): Timestamp {\n return this.keys[index];\n }\n\n clamp(minDate?: Timestamp, maxDate?: Timestamp): DomainCollection {\n if (minDate && this.min! < minDate) {\n this.keys\n .filter((key) => key < minDate)\n .forEach((d) => this.collection.delete(d));\n }\n\n if (maxDate && this.max! > maxDate) {\n this.keys\n .filter((key) => key > maxDate)\n .forEach((d) => this.collection.delete(d));\n }\n\n this.#refreshKeys();\n\n return this;\n }\n\n merge(\n newCollection: DomainCollection,\n limit: number,\n createValueCallback: Function,\n ): void {\n this.yankedDomains = [];\n\n newCollection.keys.forEach((domainKey, index) => {\n if (this.has(domainKey)) {\n return;\n }\n\n if (this.collection.size >= limit) {\n let keyToRemove = this.max;\n\n if (domainKey > this.max!) {\n keyToRemove = this.min;\n }\n\n if (keyToRemove && this.collection.delete(keyToRemove)) {\n this.yankedDomains.push(keyToRemove);\n }\n }\n this.collection.set(domainKey, createValueCallback(domainKey, index));\n this.#refreshKeys();\n });\n this.yankedDomains = this.yankedDomains.sort((a, b) => a - b);\n }\n\n slice(limit: number = 0, fromBeginning: boolean = true): DomainCollection {\n if (this.keys.length > limit) {\n const keysToDelete = fromBeginning ?\n this.keys.slice(0, -limit) :\n this.keys.slice(limit);\n\n keysToDelete.forEach((key) => {\n this.collection.delete(key);\n });\n\n this.#refreshKeys();\n }\n\n return this;\n }\n\n fill(\n data: DataRecord[],\n {\n x,\n y,\n groupY,\n defaultValue,\n }: {\n x: DataOptions['x'];\n y: DataOptions['y'];\n groupY: DataOptions['groupY'];\n defaultValue: DataOptions['defaultValue'];\n },\n subDomainKeyExtractor: Function,\n ): void {\n const groupedRecords: GroupedRecords = this.groupRecords(\n data,\n x,\n subDomainKeyExtractor,\n );\n\n this.keys.forEach((domainKey) => {\n const records = groupedRecords.get(domainKey) || {};\n this.#setSubDomainValues(domainKey, records, y, groupY, defaultValue);\n });\n }\n\n #setSubDomainValues(\n domainKey: Timestamp,\n records: { [key: string]: DataRecord[] },\n y: DataOptions['y'],\n groupY: DataOptions['groupY'],\n defaultValue: DataOptions['defaultValue'],\n ): void {\n this.get(domainKey)!.forEach((subDomain: SubDomain, index: number) => {\n let value: ValueType = defaultValue;\n if (records.hasOwnProperty(subDomain.t)) {\n value = this.groupValues(\n this.#extractValues(records[subDomain.t], y),\n groupY,\n );\n }\n\n this.get(domainKey)![index].v = value;\n });\n }\n\n groupRecords(\n data: DataRecord[],\n x: DataOptions['x'],\n subDomainKeyExtractor: Function,\n ): GroupedRecords {\n const results: GroupedRecords = new Map();\n const validSubDomainTimestamp: Map<Timestamp, Timestamp> = new Map();\n this.keys.forEach((domainKey) => {\n this.get(domainKey)!.forEach((subDomain: SubDomain) => {\n validSubDomainTimestamp.set(subDomain.t, domainKey);\n });\n });\n\n data.forEach((d) => {\n const timestamp = this.extractTimestamp(d, x, subDomainKeyExtractor);\n\n if (validSubDomainTimestamp.has(timestamp)) {\n const domainKey = validSubDomainTimestamp.get(timestamp)!;\n const records = results.get(domainKey) || {};\n records[timestamp] ||= [];\n records[timestamp].push(d);\n\n results.set(domainKey, records);\n }\n });\n\n return results;\n }\n\n // eslint-disable-next-line class-methods-use-this\n #extractValues(data: DataRecord[], y: string | Function): ValueType[] {\n return data.map((d): ValueType => (typeof y === 'function' ? y(d) : d[y]));\n }\n\n // eslint-disable-next-line class-methods-use-this\n groupValues(\n values: ValueType[],\n groupFn: DataGroupType | ((values: ValueType[]) => ValueType),\n ): ValueType {\n const cleanedValues = values.filter((n) => n !== null);\n\n if (typeof groupFn === 'string') {\n if (cleanedValues.every((n) => typeof n === 'number')) {\n switch (groupFn) {\n case 'sum':\n return (cleanedValues as number[]).reduce((a, b) => a + b, 0);\n case 'count':\n return cleanedValues.length;\n case 'min':\n return Math.min(...(cleanedValues as number[])) || null;\n case 'max':\n return Math.max(...(cleanedValues as number[])) || null;\n case 'average':\n return cleanedValues.length > 0 ?\n (cleanedValues as number[]).reduce((a, b) => a + b, 0) /\n cleanedValues.length :\n null;\n default:\n return null;\n }\n }\n\n switch (groupFn) {\n case 'count':\n return cleanedValues.length;\n default:\n return null;\n }\n } else if (typeof groupFn === 'function') {\n return groupFn(cleanedValues);\n }\n\n return null;\n }\n\n // eslint-disable-next-line class-methods-use-this\n extractTimestamp(\n datum: DataRecord,\n x: string | Function,\n extractorFn: Function,\n ): Timestamp {\n let timestamp: string | Timestamp =\n typeof x === 'function' ? x(datum) : datum[x];\n\n if (typeof timestamp === 'string') {\n timestamp = +new Date(timestamp);\n }\n\n return extractorFn(timestamp);\n }\n\n #refreshKeys(): Timestamp[] {\n this.keys = Array.from(this.collection.keys())\n .map((d: any) => parseInt(d, 10))\n .sort((a, b) => a - b);\n\n const { keys } = this;\n // eslint-disable-next-line prefer-destructuring\n this.min = keys[0];\n this.max = keys[keys.length - 1];\n\n return this.keys;\n }\n}\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","import { select } from 'd3-selection';\n\nimport DomainsContainerPainter from '../domain/DomainsContainerPainter';\nimport PluginPainter from '../plugins/PluginPainter';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport { ScrollDirection } from '../constant';\nimport type { Dimensions } from '../index';\n\nexport const DEFAULT_SELECTOR = '.ch-container';\n\nexport default class CalendarPainter {\n calendar: CalHeatmap;\n\n dimensions: Dimensions;\n\n root: any;\n\n domainsContainerPainter: DomainsContainerPainter;\n\n pluginPainter: PluginPainter;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n this.dimensions = {\n width: 0,\n height: 0,\n };\n this.root = null;\n this.domainsContainerPainter = new DomainsContainerPainter(calendar);\n this.pluginPainter = new PluginPainter(calendar);\n }\n\n setup(): boolean {\n const { itemSelector, theme } = this.calendar.options.options;\n\n if (!this.root) {\n this.root = select(itemSelector)\n .append('svg')\n .attr('data-theme', theme)\n .attr('class', DEFAULT_SELECTOR.slice(1));\n this.domainsContainerPainter.setup();\n }\n\n this.calendar.pluginManager.setupAll();\n\n return true;\n }\n\n paint(navigationDir: ScrollDirection = ScrollDirection.SCROLL_NONE) {\n const transitions = this.domainsContainerPainter\n .paint(navigationDir)\n .concat(this.pluginPainter.paint())\n .concat(this.domainsContainerPainter.updatePosition());\n\n this.#resize();\n\n return Promise.allSettled(transitions);\n }\n\n #getHeight(): Dimensions['height'] {\n return (\n this.domainsContainerPainter.height() + this.pluginPainter.insideHeight()\n );\n }\n\n #getWidth(): Dimensions['width'] {\n return (\n this.domainsContainerPainter.width() + this.pluginPainter.insideWidth()\n );\n }\n\n #resize(): void {\n const { options } = this.calendar.options;\n\n const newWidth = this.#getWidth();\n const newHeight = this.#getHeight();\n\n this.root\n .transition()\n .duration(options.animationDuration)\n .attr('width', newWidth)\n .attr('height', newHeight);\n\n if (\n newWidth !== this.dimensions.width ||\n newHeight !== this.dimensions.height\n ) {\n this.calendar.eventEmitter.emit(\n 'resize',\n newWidth,\n newHeight,\n this.dimensions.width,\n this.dimensions.height,\n );\n }\n\n this.dimensions = {\n width: newWidth,\n height: newHeight,\n };\n }\n\n destroy(): Promise<unknown> {\n const result: Promise<unknown>[] = this.calendar.pluginManager\n .destroyAll()\n .concat(this.domainsContainerPainter.destroy());\n\n if (!this.root) {\n return Promise.allSettled(result);\n }\n\n result.push(\n this.root\n .transition()\n .duration(this.calendar.options.options.animationDuration)\n .attr('width', 0)\n .attr('height', 0)\n .remove()\n .end(),\n );\n\n return Promise.allSettled(result);\n }\n}\n","import { select, create } from 'd3-selection';\nimport { normalizedScale, applyScaleStyle } from '../scale';\nimport { DEFAULT_SELECTOR as MAIN_SELECTOR } from '../calendar/CalendarPainter';\nimport {\n // force line break from prettier\n DEFAULT_SELECTOR as SUBDOMAIN_SELECTOR,\n} from '../subDomain/SubDomainPainter';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport type { IPlugin, PluginOptions } from '../index';\nimport {\n OPTIONS_DEFAULT_SUBDOMAIN_WIDTH,\n OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT,\n OPTIONS_DEFAULT_SUBDOMAIN_GUTTER,\n OPTIONS_DEFAULT_SUBDOMAIN_RADIUS,\n} from '../constant';\n\ninterface LegendOptions extends PluginOptions {\n enabled: boolean;\n itemSelector: string | null;\n width: number;\n height: number;\n radius: number;\n gutter: number;\n includeBlank: boolean;\n}\n\nconst DEFAULT_SELECTOR = '.ch-plugin-legend-lite';\n\nconst defaultOptions: LegendOptions = {\n enabled: true, // Whether to display the legend\n itemSelector: null,\n width: OPTIONS_DEFAULT_SUBDOMAIN_WIDTH,\n height: OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT,\n gutter: OPTIONS_DEFAULT_SUBDOMAIN_GUTTER,\n radius: OPTIONS_DEFAULT_SUBDOMAIN_RADIUS,\n includeBlank: false,\n};\n\nexport default class LegendLite implements IPlugin {\n name = 'LegendLite';\n\n calendar: CalHeatmap;\n\n root: any;\n\n shown: boolean;\n\n options: LegendOptions;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n this.root = null;\n this.shown = false;\n this.options = defaultOptions;\n }\n\n setup(pluginOptions?: Partial<LegendOptions>): void {\n this.options = { ...this.options, ...pluginOptions };\n }\n\n paint(): Promise<unknown> {\n const { enabled, itemSelector } = this.options;\n\n if (!enabled || (itemSelector && select(itemSelector).empty())) {\n return this.destroy();\n }\n\n this.shown = true;\n\n this.root = select(\n itemSelector || this.calendar.options.options.itemSelector,\n );\n\n if (this.root.select(DEFAULT_SELECTOR).empty()) {\n this.root = this.root\n .append('div')\n .attr('class', DEFAULT_SELECTOR.slice(1));\n } else {\n this.root = this.root.select(DEFAULT_SELECTOR);\n }\n\n const node = this.#buildLegend();\n\n this.root.selectAll('*').remove();\n this.root.append(() => node.node());\n\n return Promise.resolve();\n }\n\n destroy(): Promise<unknown> {\n if (this.root !== null) {\n this.root.remove();\n this.root = null;\n }\n\n return Promise.resolve();\n }\n\n #buildLegend() {\n const node = create('svg');\n const scale = normalizedScale(this.calendar.options.options.scale);\n const {\n width, height, gutter, includeBlank,\n } = this.options;\n\n const localRange = [...scale.range];\n if (includeBlank) {\n localRange.unshift(null);\n }\n\n node\n .attr('class', MAIN_SELECTOR.slice(1))\n .attr(\n 'width',\n localRange.length * width + (localRange.length - 1) * gutter,\n )\n .attr('height', height);\n\n node\n .selectAll('rect')\n .data(localRange)\n .join(\n (enter: any) => enter.append('rect').call((sc: any) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.#nodeAttrs(sc, scale)),\n (update: any) => update\n .selectAll('rect')\n .call((sc: any) => this.#nodeAttrs(sc, scale)),\n );\n\n return node;\n }\n\n #nodeAttrs(selection: any, scale: any) {\n const {\n width, height, radius, gutter,\n } = this.options;\n\n return selection\n .attr('width', width)\n .attr('height', height)\n .attr('class', `${SUBDOMAIN_SELECTOR.slice(1)}-bg`)\n .attr('rx', radius)\n .attr('ry', radius)\n .attr('x', (_d: any, i: number) => i * (width + gutter))\n .attr('y', 0)\n .call((element: any) => {\n applyScaleStyle(element, scale, this.calendar.options.options.scale!);\n });\n }\n}\n","import { Position } from '../constant';\nimport type CalHeatmap from '../CalHeatmap';\nimport type { Timestamp, SubDomain } from '../index';\n\nexport const DEFAULT_SELECTOR = '.ch-subdomain';\nconst HIGHLIGHT_CLASSNAME = 'highlight';\n\nexport default class SubDomainPainter {\n calendar: CalHeatmap;\n\n root: any;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n this.root = null;\n }\n\n paint(root: any): void {\n this.root = root || this.root;\n const containerClassname = `${DEFAULT_SELECTOR}-container`;\n\n const subDomainSvgGroup = this.root\n .selectAll(containerClassname)\n .data(\n (d: Timestamp) => [d],\n (d: Timestamp) => d,\n )\n .join(\n (enter: any) => enter\n .append('svg')\n .call((selection: any) => this.#setPositions(selection))\n .attr('class', containerClassname.slice(1)),\n\n (update: any) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n update.call((selection: any) => this.#setPositions(selection)),\n );\n\n const {\n subDomain: {\n radius, width, height, sort,\n },\n } = this.calendar.options.options;\n const evt = this.calendar.eventEmitter;\n\n subDomainSvgGroup\n .selectAll('g')\n .data((d: Timestamp) => {\n const subDomainsCollection: SubDomain[] =\n this.calendar.domainCollection.get(d)!;\n if (sort === 'desc') {\n const max = Math.max(\n ...subDomainsCollection.map((s: SubDomain) => s.x),\n );\n subDomainsCollection.forEach((s: SubDomain, i: number) => {\n subDomainsCollection[i].x = Math.abs(s.x - max);\n });\n }\n\n return subDomainsCollection;\n })\n .join(\n (enter: any) => enter\n .append('g')\n .call((selection: any) => selection\n .insert('rect')\n .attr('class', (d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.#classname(d.t, `${DEFAULT_SELECTOR.slice(1)}-bg`))\n .attr('width', width)\n .attr('height', height)\n .attr('x', (d: SubDomain) => this.#getX(d))\n .attr('y', (d: SubDomain) => this.#getY(d))\n .on('click', (ev: PointerEvent, d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n evt.emit('click', ev, d.t, d.v))\n .on('mouseover', (ev: PointerEvent, d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n evt.emit('mouseover', ev, d.t, d.v))\n .on('mouseout', (ev: PointerEvent, d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n evt.emit('mouseout', ev, d.t, d.v))\n .attr('rx', radius > 0 ? radius : null)\n .attr('ry', radius > 0 ? radius : null))\n .call((selection: any) => this.#appendText(selection)),\n (update: any) => update\n .selectAll('rect')\n .attr('class', (d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.#classname(d.t, `${DEFAULT_SELECTOR.slice(1)}-bg`))\n .attr('width', width)\n .attr('height', height)\n .attr('x', (d: SubDomain) => this.#getX(d))\n .attr('y', (d: SubDomain) => this.#getY(d))\n .attr('rx', radius)\n .attr('ry', radius),\n );\n }\n\n /**\n * Set the subDomain group X and Y position\n * @param {d3-selection} selection A d3-selection object\n */\n #setPositions(selection: any): void {\n const { options } = this.calendar.options;\n const {\n padding,\n label: { position },\n } = options.domain;\n\n selection\n .attr('x', () => {\n let pos = padding[Position.LEFT];\n if (position === 'left') {\n pos += options.x.domainHorizontalLabelWidth;\n }\n return pos;\n })\n .attr('y', () => {\n let pos = padding[Position.TOP];\n if (position === 'top') {\n pos += options.x.domainVerticalLabelHeight;\n }\n return pos;\n });\n }\n\n /**\n * Return a classname if the specified date should be highlighted\n *\n * @param {number} timestamp Unix timestamp of the current subDomain\n * @return {String} the highlight class\n */\n #classname(timestamp: Timestamp, ...otherClasses: string[]): string {\n const {\n date: { highlight },\n subDomain: { type },\n } = this.calendar.options.options;\n let classname = '';\n\n if (highlight.length > 0) {\n highlight.forEach((d) => {\n const unitFn = this.calendar.templateCollection.get(type).extractUnit;\n\n if (unitFn(+d) === unitFn(timestamp)) {\n classname = HIGHLIGHT_CLASSNAME;\n }\n });\n }\n\n return [classname, ...otherClasses].join(' ').trim();\n }\n\n #appendText(elem: any) {\n const { width, height, label } = this.calendar.options.options.subDomain;\n\n if (!label) {\n return null;\n }\n\n return elem\n .append('text')\n .attr('class', (d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.#classname(d.t, `${DEFAULT_SELECTOR.slice(1)}-text`))\n .attr('x', (d: SubDomain) => this.#getX(d) + width / 2)\n .attr('y', (d: SubDomain) => this.#getY(d) + height / 2)\n .attr('text-anchor', 'middle')\n .attr('dominant-baseline', 'central')\n .text((d: SubDomain, i: number, nodes: any[]) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.calendar.dateHelper.format(d.t, label, d.v, nodes[i]));\n }\n\n #getCoordinates(axis: 'x' | 'y', d: SubDomain): number {\n const { subDomain } = this.calendar.options.options;\n return (\n d[axis] *\n (subDomain[axis === 'x' ? 'width' : 'height'] + subDomain.gutter)\n );\n }\n\n #getX(d: SubDomain): number {\n return this.#getCoordinates('x', d);\n }\n\n #getY(d: SubDomain): number {\n return this.#getCoordinates('y', d);\n }\n}\n"],"names":["fails","exec","error","descriptors","require$$0","Object","defineProperty","get","functionBindNative","test","bind","hasOwnProperty","NATIVE_BIND","FunctionPrototype","Function","prototype","call","uncurryThisWithBind","functionUncurryThis","fn","apply","arguments","isNullOrUndefined","it","$TypeError","TypeError","requireObjectCoercible","$Object","toObject","argument","require$$1","hasOwnProperty_1","hasOwn","key","DESCRIPTORS","getDescriptor","getOwnPropertyDescriptor","EXISTS","functionName","PROPER","name","CONFIGURABLE","configurable","makeBuiltIn$3","exports","documentAll","document","all","documentAll_1","IS_HTMLDDA","undefined","isCallable","check","Math","global","globalThis","window","self","this","defineGlobalProperty","value","writable","SHARED","sharedStore","store","require$$2","functionToString","toString","inspectSource","match","version","WeakMap","weakMapBasicDetection","String","isObject","objectDefineProperty","createElement","documentCreateElement","ie8DomDefine","a","v8PrototypeDefineBug","$String","anObject","functionCall","getBuiltIn","namespace","method","length","objectIsPrototypeOf","isPrototypeOf","engineUserAgent","navigator","userAgent","process","Deno","versions","v8","split","engineV8Version","V8_VERSION","symbolConstructorDetection","getOwnPropertySymbols","symbol","Symbol","sham","useSymbolAsUid","iterator","isSymbol","require$$3","$Symbol","tryToString","aCallable","getMethod","V","P","func","shared$3","sharedModule","push","mode","copyright","license","source","uncurryThis","id","postfix","random","uid","shared","NATIVE_SYMBOL","require$$4","USE_SYMBOL_AS_UID","require$$5","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","wellKnownSymbol","ordinaryToPrimitive","input","pref","val","valueOf","TO_PRIMITIVE","toPrimitive","result","exoticToPrim","toPropertyKey","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","f","O","Attributes","current","enumerable","set","has","createPropertyDescriptor","bitmap","definePropertyModule","createNonEnumerableProperty","object","keys","sharedKey","hiddenKeys","NATIVE_WEAK_MAP","require$$6","require$$7","OBJECT_ALREADY_INITIALIZED","state","metadata","facade","STATE","internalState","enforce","getterFor","TYPE","type","CONFIGURABLE_FUNCTION_NAME","enforceInternalState","getInternalState","stringSlice","slice","replace","join","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","makeBuiltInModule","options","getter","setter","arity","constructor","defineBuiltInAccessor","target","descriptor","FUNCTION_NAME_EXISTS","nameRE","regExpExec","objectGetOwnPropertyDescriptor","objectPropertyIsEnumerable","$propertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","classofRaw","classof","indexedObject","IndexedObject","toIndexedObject","propertyIsEnumerableModule","defineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","ceil","floor","trunc","x","n","toIntegerOrInfinity","number","max","min","toAbsoluteIndex","index","integer","toLength","lengthOfArrayLike","obj","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","includes","indexOf","objectKeysInternal","names","i","enumBugKeys","internalObjectKeys","concat","objectGetOwnPropertyNames","getOwnPropertyNames","objectGetOwnPropertySymbols","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","isForced_1","copyConstructorProperties","exceptions","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","objectKeys","require$$8","$assign","assign","objectAssign","b","A","B","alphabet","forEach","chr","T","argumentsLength","S","j","toStringTagSupport","TO_STRING_TAG_SUPPORT","TO_STRING_TAG","CORRECT_ARGUMENTS","tag","tryGet","callee","engineIsNode","uncurryThisAccessor","aPossiblePrototype","objectSetPrototypeOf","setPrototypeOf","CORRECT_SETTER","Array","proto","__proto__","setToStringTag","TAG","SPECIES","setSpecies","CONSTRUCTOR_NAME","Constructor","anInstance","Prototype","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","$location","defer","channel","port","isConstructor","called","aConstructor","functionApply","Reflect","functionUncurryThisClause","functionBindContext","that","html","arraySlice","engineIsIos","validateArgumentsLength","passed","required","IS_IOS","require$$10","IS_NODE","require$$11","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","location","run","runner","eventListener","event","globalPostMessageDefer","postMessage","protocol","host","handler","args","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","appendChild","removeChild","setTimeout","task","Queue","head","tail","add","item","entry","next","notify","toggle","node","promise","then","engineIsIosPebble","Pebble","engineIsWebosWebkit","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","Promise","queueMicrotaskDescriptor","microtask","flush","parent","domain","exit","enter","resolve","createTextNode","observe","characterData","microtask_1","perform","promiseNativeConstructor","engineIsDeno","engineIsBrowser","NativePromiseConstructor","IS_BROWSER","IS_DENO","require$$9","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","promiseConstructorDetection","CONSTRUCTOR","REJECTION_EVENT","newPromiseCapability$2","PromiseCapability","C","reject","$$resolve","$$reject","newPromiseCapability","Internal","OwnPromiseCapability","nativeThen","$","require$$12","speciesConstructor","defaultConstructor","require$$14","require$$15","hostReportErrors","console","require$$17","require$$18","InternalStateModule","require$$19","require$$20","newPromiseCapabilityModule","require$$22","PROMISE","require$$21","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","setInternalState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","ok","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","isUnhandled","emit","unwrap","internalReject","done","internalResolve","wrapper","executor","onFulfilled","onRejected","PromiseWrapper","wrap","iterators","Iterators","ITERATOR","ArrayPrototype","isArrayIteratorMethod","getIteratorMethod","getIterator","usingIterator","iteratorMethod","iteratorClose","kind","innerResult","innerError","Result","stopped","ResultPrototype","iterate","iterable","unboundFunction","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","SAFE_CLOSING","iteratorWithReturn","return","from","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","promiseStaticsIncorrectIteration","capability","$promiseResolve","values","remaining","alreadyCalled","real","catch","race","r","promiseResolve","promiseCapability","objectDefineProperties","defineProperties","Properties","props","activeXDocument","definePropertiesModule","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","style","display","src","contentWindow","open","F","objectCreate","create","UNSCOPABLES","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","addToUnscopables","correctPrototypeGetter","getPrototypeOf","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","objectGetPrototypeOf","BUGGY_SAFARI_ITERATORS","NEW_ITERATOR_PROTOTYPE","iteratorsCore","returnThis","createIteratorConstructor","IteratorConstructor","NAME","ENUMERABLE_NEXT","PROPER_FUNCTION_NAME","require$$13","KEYS","VALUES","ENTRIES","iteratorDefine","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","createIterResultObject","defineIterator","ARRAY_ITERATOR","es_array_iterator","iterated","Arguments","charAt","charCodeAt","CONVERT_TO_STRING","pos","first","second","position","size","codeAt","STRING_ITERATOR","point","internalMetadata","objectGetOwnPropertyNamesExternal","createProperty","propertyKey","$Array","arraySliceSimple","start","end","k","fin","$getOwnPropertyNames","windowNames","getWindowNames","arrayBufferNonExtensible","ArrayBuffer","buffer","isExtensible","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","objectIsExtensible","freezing","preventExtensions","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","meta","internalMetadataModule","enable","splice","fastKey","getWeakData","onFreeze","InternalMetadataModule","inheritIfRequired","dummy","Wrapper","NewTarget","NewTargetPrototype","collection","common","IS_MAP","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","getConstructor","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setStrong","defineBuiltIns","isArray","arraySpeciesConstructor","originalArray","arraySpeciesCreate","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","boundFunction","arrayIteration","map","filter","some","every","find","findIndex","filterReject","internalStateGetterFor","uncaughtFrozenStore","frozen","UncaughtFrozenStore","findUncaughtFrozen","delete","collectionWeak","define","init","domIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","classList","DOMTokenListPrototype","domTokenListPrototype","DOMIterables","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","METHOD_NAME","arrayMethodHasSpeciesSupport","array","foo","Boolean","nativeSlice","HAS_SPECIES_SUPPORT","arrayMethodIsStrict","nativeJoin","__classPrivateFieldGet","receiver","separator","nativeKeys","MATCH","isRegExp","notARegExp","correctIsRegExpLogic","regexp","error1","error2","nativeStartsWith","startsWith","CORRECT_IS_REGEXP_LOGIC","searchString","search","$forEach","TO_ENTRIES","$entries","defined","Number","isNaN","ascendingDefined","ascending","finite","isFinite","NaN","positive","negative","re","parse","fallback","Date","timeIntervals","Map","timeSecond","timeMinute","timeHour","timeDay","timeWeek","timeMonth","timeYear","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","timeSunday","utcIntervals","utcSecond","utcMinute","utcHour","utcDay","utcWeek","utcMonth","utcYear","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcSunday","maybeTimeInterval","interval","Error","maybeUtcInterval","TypedArray","Uint8Array","objectToString","constant","coerceNumbers","coerceNumber","Float64Array","coerceDates","coerceDate","isoParse","arrayify","isScaleOptions","option","maybeInterval","isInteger","abs","d","offset","range","lo","hi","rangei","maybeRangeInterval","isOrdinal","isTemporal","isTemporalString","isNumericString","trim","orderof","last","descending","color","radius","opacity","registry","sqrt4_3","sqrt","symbols","symbolAsterisk","symbolCircle","symbolCross","symbolDiamond","symbolDiamond2","draw","context","rx","PI","ry","hy","moveTo","lineTo","closePath","symbolPlus","symbolSquare","symbolSquare2","symbolStar","symbolTimes","symbolTriangle","symbolTriangle2","symbolWye","maybeSymbol","isSymbolObject","warn","message","ordinalSchemes","schemeAccent","schemeCategory10","schemeDark2","schemePaired","schemePastel1","schemePastel2","schemeSet1","schemeSet2","schemeSet3","schemeTableau10","scheme11","schemeBrBG","interpolateBrBG","schemePRGn","interpolatePRGn","schemePiYG","interpolatePiYG","schemePuOr","interpolatePuOr","schemeRdBu","interpolateRdBu","schemeRdGy","interpolateRdGy","schemeRdYlBu","interpolateRdYlBu","schemeRdYlGn","interpolateRdYlGn","schemeSpectral","interpolateSpectral","scheme11r","scheme9","schemeBlues","interpolateBlues","schemeGreens","interpolateGreens","schemeGreys","interpolateGreys","schemeOranges","interpolateOranges","schemePurples","interpolatePurples","schemeReds","interpolateReds","schemei","interpolateTurbo","interpolateViridis","interpolateMagma","interpolateInferno","interpolatePlasma","interpolateCividis","interpolateCubehelixDefault","interpolateWarm","interpolateCool","schemeBuGn","interpolateBuGn","schemeBuPu","interpolateBuPu","schemeGnBu","interpolateGnBu","schemeOrRd","interpolateOrRd","schemePuBu","interpolatePuBu","schemePuBuGn","interpolatePuBuGn","schemePuRd","interpolatePuRd","schemeRdPu","interpolateRdPu","schemeYlGn","interpolateYlGn","schemeYlGnBu","interpolateYlGnBu","schemeYlOrBr","interpolateYlOrBr","schemeYlOrRd","interpolateYlOrRd","schemeicyclical","interpolateRainbow","interpolateSinebow","scheme","interpolate","quantize","t","reverse","ordinalScheme","s","ordinalRange","quantitativeSchemes","quantitativeScheme","divergingSchemes","Set","isDivergingScheme","flip","unit","interpolators","interpolateNumber","interpolateRgb","interpolateHsl","interpolateHcl","interpolateLab","maybeInterpolator","createScaleQ","scale","channels","nice","clamp","zero","inferAutoDomain","unknown","round","inferRadialRange","inferLengthRange","interpolateRound","_","interpolatePiecewise","extent","sign","reverseof","maybeNiceInterval","maybeNice","createScalePow","exponent","scalePow","createScaleThreshold","isOrdered","scaleThreshold","inferDomain","inferZeroDomain","hint","h25","quantile","h50","median","inferLogDomain","v","inferQuantileDomain","createScaleD","transform","pivot","symmetric","piecewise","mid","mindelta","maxdelta","invert","interpolator","createScaleDivergingPow","scaleDivergingPow","transformSqrt","pow","transformPow","createScaleDivergingSymlog","scaleDivergingSymlog","log1p","expm1","transformSymlog","transformIdentity","transformLog","log","exp","createScaleT","ordinalImplicit","createScaleO","createScaleOrdinal","fill","inferHint","stroke","inferSymbolHint","isNone","symbolsStroke","symbolsFill","inferSymbolRange","maybeBooleanRange","t0","scaleImplicit","scaleOrdinal","maybeRound","InternSet","sort","candidate","normalizeScale","projection","typeProjection","asOrdinalType","inferScaleType","isOrdinalScale","formatScaleType","coerceType","coerceSymbols","scaleDiverging","createScaleDiverging","createScaleDivergingSqrt","base","scaleDivergingLog","createScaleDivergingLog","scaleLinear","createScaleLinear","createScaleSqrt","quantiles","scaleQuantile","createScaleQuantile","thresholds","ticks","pop","createScaleQuantize","scaleLog","createScaleLog","scaleSymlog","createScaleSymlog","scaleUtc","createScaleUtc","scaleTime","createScaleTime","align","padding","scalePoint","createScalePoint","paddingInner","paddingOuter","scaleBand","createScaleBand","scaleIdentity","createScale","description","coerceValues","c","exposeScale","percent","bandwidth","ScrollDirection","Position","SCALE_BASE_OPACITY_COLOR","normalizedScale","scaleOptions","scaleType","applyScaleStyle","elem","_scale","keyname","styles","baseColor","scaleStyle","_ref","_ref2","_slicedToArray","prop","doesNotExceedSafeInteger","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","isConcatSpreadable","spreadable","arg","len","E","allSettled","status","collectionStrong","previous","getEntry","removed","prev","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","mergeSort","comparefn","middle","insertionSort","merge","element","left","right","llength","rlength","lindex","rindex","arraySort","firefox","engineFfVersion","engineIsIeOrEdge","webkit","engineWebkitVersion","deletePropertyOrThrow","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","STABLE_SORT","code","fromCharCode","itemsLength","items","arrayLength","y","getSortCompare","$includes","$map","$filter","IS_RIGHT","memo","$reduce","reduce","callWithSafeIterationClosing","arrayLike","IS_CONSTRUCTOR","mapfn","mapping","whitespaces","ltrim","RegExp","rtrim","stringTrim","$parseInt","parseInt","hex","numberParseInt","radix","WeakSet","$trim","forcedStringTrimMethod","DEFAULT_SELECTOR","defaultOptions","enabled","itemSelector","width","height","gutter","includeBlank","LegendLite","calendar","_classCallCheck","root","shown","pluginOptions","_this$options","select","destroy","append","attr","selectAll","remove","_this$options2","localRange","_toConsumableArray","unshift","sc","_this","_LegendLite_instances","_LegendLite_nodeAttrs","update","selection","_this2","_this$options3","_d"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,203,204]} \ No newline at end of file diff --git a/static/javascripts/cal-heatmap/plugins/LegendLite.min.js b/static/javascripts/cal-heatmap/plugins/LegendLite.min.js new file mode 100644 index 000000000..fb51266d2 --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/LegendLite.min.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("d3-selection"),require("d3")):"function"==typeof define&&define.amd?define(["d3-selection","d3"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).LegendLite=e(t.d3,t.d3)}(this,(function(t,e){"use strict";function n(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,u(r.key),r)}}function r(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,i,a,u=[],c=!0,s=!1;try{if(i=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(u.push(r.value),u.length!==e);c=!0);}catch(t){s=!0,o=t}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw o}}return u}}(t,e)||i(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(t){return function(t){if(Array.isArray(t))return a(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||i(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(t,e){if(t){if("string"==typeof t)return a(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(t,e):void 0}}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function u(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},s=function(t){try{return!!t()}catch(t){return!0}},f=!s((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),l=!s((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})),d=l,p=Function.prototype,h=p.call,v=d&&p.bind.bind(h,h),y=d?v:function(t){return function(){return h.apply(t,arguments)}},g=function(t){return null==t},m=g,b=TypeError,w=function(t){if(m(t))throw b("Can't call method on "+t);return t},S=w,O=Object,j=function(t){return O(S(t))},E=j,T=y({}.hasOwnProperty),x=Object.hasOwn||function(t,e){return T(E(t),e)},P=f,R=x,k=Function.prototype,M=P&&Object.getOwnPropertyDescriptor,A=R(k,"name"),I={EXISTS:A,PROPER:A&&"something"===function(){}.name,CONFIGURABLE:A&&(!P||P&&M(k,"name").configurable)},C={exports:{}},L="object"==typeof document&&document.all,N={all:L,IS_HTMLDDA:void 0===L&&void 0!==L},B=N.all,D=N.IS_HTMLDDA?function(t){return"function"==typeof t||t===B}:function(t){return"function"==typeof t},G=function(t){return t&&t.Math==Math&&t},F=G("object"==typeof globalThis&&globalThis)||G("object"==typeof window&&window)||G("object"==typeof self&&self)||G("object"==typeof c&&c)||function(){return this}()||c||Function("return this")(),q=F,_=Object.defineProperty,W=function(t,e){try{_(q,t,{value:e,configurable:!0,writable:!0})}catch(n){q[t]=e}return e},$=W,z="__core-js_shared__",Y=F[z]||$(z,{}),U=D,H=Y,V=y(Function.toString);U(H.inspectSource)||(H.inspectSource=function(t){return V(t)});var K,J,X=H.inspectSource,Q=D,Z=F.WeakMap,tt=Q(Z)&&/native code/.test(String(Z)),et=D,nt=N.all,rt=N.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:et(t)||t===nt}:function(t){return"object"==typeof t?null!==t:et(t)},ot={},it=rt,at=F.document,ut=it(at)&&it(at.createElement),ct=function(t){return ut?at.createElement(t):{}},st=ct,ft=!f&&!s((function(){return 7!=Object.defineProperty(st("div"),"a",{get:function(){return 7}}).a})),lt=f&&s((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),dt=rt,pt=String,ht=TypeError,vt=function(t){if(dt(t))return t;throw ht(pt(t)+" is not an object")},yt=l,gt=Function.prototype.call,mt=yt?gt.bind(gt):function(){return gt.apply(gt,arguments)},bt=F,wt=D,St=function(t,e){return arguments.length<2?(n=bt[t],wt(n)?n:void 0):bt[t]&&bt[t][e];var n},Ot=y({}.isPrototypeOf),jt="undefined"!=typeof navigator&&String(navigator.userAgent)||"",Et=F,Tt=jt,xt=Et.process,Pt=Et.Deno,Rt=xt&&xt.versions||Pt&&Pt.version,kt=Rt&&Rt.v8;kt&&(J=(K=kt.split("."))[0]>0&&K[0]<4?1:+(K[0]+K[1])),!J&&Tt&&(!(K=Tt.match(/Edge\/(\d+)/))||K[1]>=74)&&(K=Tt.match(/Chrome\/(\d+)/))&&(J=+K[1]);var Mt=J,At=Mt,It=s,Ct=F.String,Lt=!!Object.getOwnPropertySymbols&&!It((function(){var t=Symbol();return!Ct(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&At&&At<41})),Nt=Lt&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Bt=St,Dt=D,Gt=Ot,Ft=Object,qt=Nt?function(t){return"symbol"==typeof t}:function(t){var e=Bt("Symbol");return Dt(e)&&Gt(e.prototype,Ft(t))},_t=String,Wt=function(t){try{return _t(t)}catch(t){return"Object"}},$t=D,zt=Wt,Yt=TypeError,Ut=function(t){if($t(t))return t;throw Yt(zt(t)+" is not a function")},Ht=Ut,Vt=g,Kt=function(t,e){var n=t[e];return Vt(n)?void 0:Ht(n)},Jt=mt,Xt=D,Qt=rt,Zt=TypeError,te={exports:{}},ee=Y;(te.exports=function(t,e){return ee[t]||(ee[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.30.2",mode:"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE",source:"https://github.com/zloirock/core-js"});var ne=te.exports,re=y,oe=0,ie=Math.random(),ae=re(1..toString),ue=function(t){return"Symbol("+(void 0===t?"":t)+")_"+ae(++oe+ie,36)},ce=ne,se=x,fe=ue,le=Lt,de=Nt,pe=F.Symbol,he=ce("wks"),ve=de?pe.for||pe:pe&&pe.withoutSetter||fe,ye=function(t){return se(he,t)||(he[t]=le&&se(pe,t)?pe[t]:ve("Symbol."+t)),he[t]},ge=mt,me=rt,be=qt,we=Kt,Se=function(t,e){var n,r;if("string"===e&&Xt(n=t.toString)&&!Qt(r=Jt(n,t)))return r;if(Xt(n=t.valueOf)&&!Qt(r=Jt(n,t)))return r;if("string"!==e&&Xt(n=t.toString)&&!Qt(r=Jt(n,t)))return r;throw Zt("Can't convert object to primitive value")},Oe=TypeError,je=ye("toPrimitive"),Ee=function(t,e){if(!me(t)||be(t))return t;var n,r=we(t,je);if(r){if(void 0===e&&(e="default"),n=ge(r,t,e),!me(n)||be(n))return n;throw Oe("Can't convert object to primitive value")}return void 0===e&&(e="number"),Se(t,e)},Te=qt,xe=function(t){var e=Ee(t,"string");return Te(e)?e:e+""},Pe=f,Re=ft,ke=lt,Me=vt,Ae=xe,Ie=TypeError,Ce=Object.defineProperty,Le=Object.getOwnPropertyDescriptor,Ne="enumerable",Be="configurable",De="writable";ot.f=Pe?ke?function(t,e,n){if(Me(t),e=Ae(e),Me(n),"function"==typeof t&&"prototype"===e&&"value"in n&&De in n&&!n[De]){var r=Le(t,e);r&&r[De]&&(t[e]=n.value,n={configurable:Be in n?n[Be]:r[Be],enumerable:Ne in n?n[Ne]:r[Ne],writable:!1})}return Ce(t,e,n)}:Ce:function(t,e,n){if(Me(t),e=Ae(e),Me(n),Re)try{return Ce(t,e,n)}catch(t){}if("get"in n||"set"in n)throw Ie("Accessors not supported");return"value"in n&&(t[e]=n.value),t};var Ge,Fe,qe,_e=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},We=ot,$e=_e,ze=f?function(t,e,n){return We.f(t,e,$e(1,n))}:function(t,e,n){return t[e]=n,t},Ye=ue,Ue=ne("keys"),He=function(t){return Ue[t]||(Ue[t]=Ye(t))},Ve={},Ke=tt,Je=F,Xe=rt,Qe=ze,Ze=x,tn=Y,en=He,nn=Ve,rn="Object already initialized",on=Je.TypeError,an=Je.WeakMap;if(Ke||tn.state){var un=tn.state||(tn.state=new an);un.get=un.get,un.has=un.has,un.set=un.set,Ge=function(t,e){if(un.has(t))throw on(rn);return e.facade=t,un.set(t,e),e},Fe=function(t){return un.get(t)||{}},qe=function(t){return un.has(t)}}else{var cn=en("state");nn[cn]=!0,Ge=function(t,e){if(Ze(t,cn))throw on(rn);return e.facade=t,Qe(t,cn,e),e},Fe=function(t){return Ze(t,cn)?t[cn]:{}},qe=function(t){return Ze(t,cn)}}var sn={set:Ge,get:Fe,has:qe,enforce:function(t){return qe(t)?Fe(t):Ge(t,{})},getterFor:function(t){return function(e){var n;if(!Xe(e)||(n=Fe(e)).type!==t)throw on("Incompatible receiver, "+t+" required");return n}}},fn=y,ln=s,dn=D,pn=x,hn=f,vn=I.CONFIGURABLE,yn=X,gn=sn.enforce,mn=sn.get,bn=String,wn=Object.defineProperty,Sn=fn("".slice),On=fn("".replace),jn=fn([].join),En=hn&&!ln((function(){return 8!==wn((function(){}),"length",{value:8}).length})),Tn=String(String).split("String"),xn=C.exports=function(t,e,n){"Symbol("===Sn(bn(e),0,7)&&(e="["+On(bn(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!pn(t,"name")||vn&&t.name!==e)&&(hn?wn(t,"name",{value:e,configurable:!0}):t.name=e),En&&n&&pn(n,"arity")&&t.length!==n.arity&&wn(t,"length",{value:n.arity});try{n&&pn(n,"constructor")&&n.constructor?hn&&wn(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=gn(t);return pn(r,"source")||(r.source=jn(Tn,"string"==typeof e?e:"")),t};Function.prototype.toString=xn((function(){return dn(this)&&mn(this).source||yn(this)}),"toString");var Pn=C.exports,Rn=Pn,kn=ot,Mn=function(t,e,n){return n.get&&Rn(n.get,e,{getter:!0}),n.set&&Rn(n.set,e,{setter:!0}),kn.f(t,e,n)},An=f,In=I.EXISTS,Cn=y,Ln=Mn,Nn=Function.prototype,Bn=Cn(Nn.toString),Dn=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,Gn=Cn(Dn.exec);An&&!In&&Ln(Nn,"name",{configurable:!0,get:function(){try{return Gn(Dn,Bn(this))[1]}catch(t){return""}}});var Fn={},qn={},_n={}.propertyIsEnumerable,Wn=Object.getOwnPropertyDescriptor,$n=Wn&&!_n.call({1:2},1);qn.f=$n?function(t){var e=Wn(this,t);return!!e&&e.enumerable}:_n;var zn=y,Yn=zn({}.toString),Un=zn("".slice),Hn=function(t){return Un(Yn(t),8,-1)},Vn=s,Kn=Hn,Jn=Object,Xn=y("".split),Qn=Vn((function(){return!Jn("z").propertyIsEnumerable(0)}))?function(t){return"String"==Kn(t)?Xn(t,""):Jn(t)}:Jn,Zn=Qn,tr=w,er=function(t){return Zn(tr(t))},nr=f,rr=mt,or=qn,ir=_e,ar=er,ur=xe,cr=x,sr=ft,fr=Object.getOwnPropertyDescriptor;Fn.f=nr?fr:function(t,e){if(t=ar(t),e=ur(e),sr)try{return fr(t,e)}catch(t){}if(cr(t,e))return ir(!rr(or.f,t,e),t[e])};var lr=D,dr=ot,pr=Pn,hr=W,vr=function(t,e,n,r){r||(r={});var o=r.enumerable,i=void 0!==r.name?r.name:e;if(lr(n)&&pr(n,i,r),r.global)o?t[e]=n:hr(e,n);else{try{r.unsafe?t[e]&&(o=!0):delete t[e]}catch(t){}o?t[e]=n:dr.f(t,e,{value:n,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return t},yr={},gr=Math.ceil,mr=Math.floor,br=Math.trunc||function(t){var e=+t;return(e>0?mr:gr)(e)},wr=function(t){var e=+t;return e!=e||0===e?0:br(e)},Sr=wr,Or=Math.max,jr=Math.min,Er=function(t,e){var n=Sr(t);return n<0?Or(n+e,0):jr(n,e)},Tr=wr,xr=Math.min,Pr=function(t){return t>0?xr(Tr(t),9007199254740991):0},Rr=Pr,kr=function(t){return Rr(t.length)},Mr=er,Ar=Er,Ir=kr,Cr=function(t){return function(e,n,r){var o,i=Mr(e),a=Ir(i),u=Ar(r,a);if(t&&n!=n){for(;a>u;)if((o=i[u++])!=o)return!0}else for(;a>u;u++)if((t||u in i)&&i[u]===n)return t||u||0;return!t&&-1}},Lr={includes:Cr(!0),indexOf:Cr(!1)},Nr=x,Br=er,Dr=Lr.indexOf,Gr=Ve,Fr=y([].push),qr=function(t,e){var n,r=Br(t),o=0,i=[];for(n in r)!Nr(Gr,n)&&Nr(r,n)&&Fr(i,n);for(;e.length>o;)Nr(r,n=e[o++])&&(~Dr(i,n)||Fr(i,n));return i},_r=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Wr=qr,$r=_r.concat("length","prototype");yr.f=Object.getOwnPropertyNames||function(t){return Wr(t,$r)};var zr={};zr.f=Object.getOwnPropertySymbols;var Yr=St,Ur=yr,Hr=zr,Vr=vt,Kr=y([].concat),Jr=Yr("Reflect","ownKeys")||function(t){var e=Ur.f(Vr(t)),n=Hr.f;return n?Kr(e,n(t)):e},Xr=x,Qr=Jr,Zr=Fn,to=ot,eo=s,no=D,ro=/#|\.prototype\./,oo=function(t,e){var n=ao[io(t)];return n==co||n!=uo&&(no(e)?eo(e):!!e)},io=oo.normalize=function(t){return String(t).replace(ro,".").toLowerCase()},ao=oo.data={},uo=oo.NATIVE="N",co=oo.POLYFILL="P",so=oo,fo=F,lo=Fn.f,po=ze,ho=vr,vo=W,yo=function(t,e,n){for(var r=Qr(e),o=to.f,i=Zr.f,a=0;a<r.length;a++){var u=r[a];Xr(t,u)||n&&Xr(n,u)||o(t,u,i(e,u))}},go=so,mo=function(t,e){var n,r,o,i,a,u=t.target,c=t.global,s=t.stat;if(n=c?fo:s?fo[u]||vo(u,{}):(fo[u]||{}).prototype)for(r in e){if(i=e[r],o=t.dontCallGetSet?(a=lo(n,r))&&a.value:n[r],!go(c?r:u+(s?".":"#")+r,t.forced)&&void 0!==o){if(typeof i==typeof o)continue;yo(i,o)}(t.sham||o&&o.sham)&&po(i,"sham",!0),ho(n,r,i,t)}},bo=qr,wo=_r,So=Object.keys||function(t){return bo(t,wo)},Oo=f,jo=y,Eo=mt,To=s,xo=So,Po=zr,Ro=qn,ko=j,Mo=Qn,Ao=Object.assign,Io=Object.defineProperty,Co=jo([].concat),Lo=!Ao||To((function(){if(Oo&&1!==Ao({b:1},Ao(Io({},"a",{enumerable:!0,get:function(){Io(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach((function(t){e[t]=t})),7!=Ao({},t)[n]||xo(Ao({},e)).join("")!=r}))?function(t,e){for(var n=ko(t),r=arguments.length,o=1,i=Po.f,a=Ro.f;r>o;)for(var u,c=Mo(arguments[o++]),s=i?Co(xo(c),i(c)):xo(c),f=s.length,l=0;f>l;)u=s[l++],Oo&&!Eo(a,c,u)||(n[u]=c[u]);return n}:Ao,No=Lo;mo({target:"Object",stat:!0,arity:2,forced:Object.assign!==No},{assign:No});var Bo={};Bo[ye("toStringTag")]="z";var Do="[object z]"===String(Bo),Go=Do,Fo=D,qo=Hn,_o=ye("toStringTag"),Wo=Object,$o="Arguments"==qo(function(){return arguments}()),zo=Go?qo:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Wo(t),_o))?n:$o?qo(e):"Object"==(r=qo(e))&&Fo(e.callee)?"Arguments":r},Yo=zo,Uo=Do?{}.toString:function(){return"[object "+Yo(this)+"]"};Do||vr(Object.prototype,"toString",Uo,{unsafe:!0});var Ho="undefined"!=typeof process&&"process"==Hn(process),Vo=y,Ko=Ut,Jo=D,Xo=String,Qo=TypeError,Zo=function(t,e,n){try{return Vo(Ko(Object.getOwnPropertyDescriptor(t,e)[n]))}catch(t){}},ti=vt,ei=function(t){if("object"==typeof t||Jo(t))return t;throw Qo("Can't set "+Xo(t)+" as a prototype")},ni=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=Zo(Object.prototype,"__proto__","set"))(n,[]),e=n instanceof Array}catch(t){}return function(n,r){return ti(n),ei(r),e?t(n,r):n.__proto__=r,n}}():void 0),ri=ot.f,oi=x,ii=ye("toStringTag"),ai=function(t,e,n){t&&!n&&(t=t.prototype),t&&!oi(t,ii)&&ri(t,ii,{configurable:!0,value:e})},ui=St,ci=Mn,si=f,fi=ye("species"),li=function(t){var e=ui(t);si&&e&&!e[fi]&&ci(e,fi,{configurable:!0,get:function(){return this}})},di=Ot,pi=TypeError,hi=function(t,e){if(di(e,t))return t;throw pi("Incorrect invocation")},vi=y,yi=s,gi=D,mi=zo,bi=X,wi=function(){},Si=[],Oi=St("Reflect","construct"),ji=/^\s*(?:class|function)\b/,Ei=vi(ji.exec),Ti=!ji.exec(wi),xi=function(t){if(!gi(t))return!1;try{return Oi(wi,Si,t),!0}catch(t){return!1}},Pi=function(t){if(!gi(t))return!1;switch(mi(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Ti||!!Ei(ji,bi(t))}catch(t){return!0}};Pi.sham=!0;var Ri,ki,Mi,Ai,Ii=!Oi||yi((function(){var t;return xi(xi.call)||!xi(Object)||!xi((function(){t=!0}))||t}))?Pi:xi,Ci=Ii,Li=Wt,Ni=TypeError,Bi=vt,Di=function(t){if(Ci(t))return t;throw Ni(Li(t)+" is not a constructor")},Gi=g,Fi=ye("species"),qi=l,_i=Function.prototype,Wi=_i.apply,$i=_i.call,zi="object"==typeof Reflect&&Reflect.apply||(qi?$i.bind(Wi):function(){return $i.apply(Wi,arguments)}),Yi=Hn,Ui=y,Hi=function(t){if("Function"===Yi(t))return Ui(t)},Vi=Ut,Ki=l,Ji=Hi(Hi.bind),Xi=function(t,e){return Vi(t),void 0===e?t:Ki?Ji(t,e):function(){return t.apply(e,arguments)}},Qi=St("document","documentElement"),Zi=y([].slice),ta=TypeError,ea=/(?:ipad|iphone|ipod).*applewebkit/i.test(jt),na=F,ra=zi,oa=Xi,ia=D,aa=x,ua=s,ca=Qi,sa=Zi,fa=ct,la=function(t,e){if(t<e)throw ta("Not enough arguments");return t},da=ea,pa=Ho,ha=na.setImmediate,va=na.clearImmediate,ya=na.process,ga=na.Dispatch,ma=na.Function,ba=na.MessageChannel,wa=na.String,Sa=0,Oa={},ja="onreadystatechange";ua((function(){Ri=na.location}));var Ea=function(t){if(aa(Oa,t)){var e=Oa[t];delete Oa[t],e()}},Ta=function(t){return function(){Ea(t)}},xa=function(t){Ea(t.data)},Pa=function(t){na.postMessage(wa(t),Ri.protocol+"//"+Ri.host)};ha&&va||(ha=function(t){la(arguments.length,1);var e=ia(t)?t:ma(t),n=sa(arguments,1);return Oa[++Sa]=function(){ra(e,void 0,n)},ki(Sa),Sa},va=function(t){delete Oa[t]},pa?ki=function(t){ya.nextTick(Ta(t))}:ga&&ga.now?ki=function(t){ga.now(Ta(t))}:ba&&!da?(Ai=(Mi=new ba).port2,Mi.port1.onmessage=xa,ki=oa(Ai.postMessage,Ai)):na.addEventListener&&ia(na.postMessage)&&!na.importScripts&&Ri&&"file:"!==Ri.protocol&&!ua(Pa)?(ki=Pa,na.addEventListener("message",xa,!1)):ki=ja in fa("script")?function(t){ca.appendChild(fa("script"))[ja]=function(){ca.removeChild(this),Ea(t)}}:function(t){setTimeout(Ta(t),0)});var Ra={set:ha,clear:va},ka=function(){this.head=null,this.tail=null};ka.prototype={add:function(t){var e={item:t,next:null},n=this.tail;n?n.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}};var Ma,Aa,Ia,Ca,La,Na=ka,Ba=/ipad|iphone|ipod/i.test(jt)&&"undefined"!=typeof Pebble,Da=/web0s(?!.*chrome)/i.test(jt),Ga=F,Fa=Xi,qa=Fn.f,_a=Ra.set,Wa=Na,$a=ea,za=Ba,Ya=Da,Ua=Ho,Ha=Ga.MutationObserver||Ga.WebKitMutationObserver,Va=Ga.document,Ka=Ga.process,Ja=Ga.Promise,Xa=qa(Ga,"queueMicrotask"),Qa=Xa&&Xa.value;if(!Qa){var Za=new Wa,tu=function(){var t,e;for(Ua&&(t=Ka.domain)&&t.exit();e=Za.get();)try{e()}catch(t){throw Za.head&&Ma(),t}t&&t.enter()};$a||Ua||Ya||!Ha||!Va?!za&&Ja&&Ja.resolve?((Ca=Ja.resolve(void 0)).constructor=Ja,La=Fa(Ca.then,Ca),Ma=function(){La(tu)}):Ua?Ma=function(){Ka.nextTick(tu)}:(_a=Fa(_a,Ga),Ma=function(){_a(tu)}):(Aa=!0,Ia=Va.createTextNode(""),new Ha(tu).observe(Ia,{characterData:!0}),Ma=function(){Ia.data=Aa=!Aa}),Qa=function(t){Za.head||Ma(),Za.add(t)}}var eu=Qa,nu=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},ru=F.Promise,ou="object"==typeof Deno&&Deno&&"object"==typeof Deno.version,iu=!ou&&!Ho&&"object"==typeof window&&"object"==typeof document,au=F,uu=ru,cu=D,su=so,fu=X,lu=ye,du=iu,pu=ou,hu=Mt;uu&&uu.prototype;var vu=lu("species"),yu=!1,gu=cu(au.PromiseRejectionEvent),mu=su("Promise",(function(){var t=fu(uu),e=t!==String(uu);if(!e&&66===hu)return!0;if(!hu||hu<51||!/native code/.test(t)){var n=new uu((function(t){t(1)})),r=function(t){t((function(){}),(function(){}))};if((n.constructor={})[vu]=r,!(yu=n.then((function(){}))instanceof r))return!0}return!e&&(du||pu)&&!gu})),bu={CONSTRUCTOR:mu,REJECTION_EVENT:gu,SUBCLASSING:yu},wu={},Su=Ut,Ou=TypeError,ju=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw Ou("Bad Promise constructor");e=t,n=r})),this.resolve=Su(e),this.reject=Su(n)};wu.f=function(t){return new ju(t)};var Eu,Tu,xu,Pu=mo,Ru=Ho,ku=F,Mu=mt,Au=vr,Iu=ni,Cu=ai,Lu=li,Nu=Ut,Bu=D,Du=rt,Gu=hi,Fu=function(t,e){var n,r=Bi(t).constructor;return void 0===r||Gi(n=Bi(r)[Fi])?e:Di(n)},qu=Ra.set,_u=eu,Wu=function(t,e){try{1==arguments.length?console.error(t):console.error(t,e)}catch(t){}},$u=nu,zu=Na,Yu=sn,Uu=ru,Hu=wu,Vu="Promise",Ku=bu.CONSTRUCTOR,Ju=bu.REJECTION_EVENT,Xu=bu.SUBCLASSING,Qu=Yu.getterFor(Vu),Zu=Yu.set,tc=Uu&&Uu.prototype,ec=Uu,nc=tc,rc=ku.TypeError,oc=ku.document,ic=ku.process,ac=Hu.f,uc=ac,cc=!!(oc&&oc.createEvent&&ku.dispatchEvent),sc="unhandledrejection",fc=function(t){var e;return!(!Du(t)||!Bu(e=t.then))&&e},lc=function(t,e){var n,r,o,i=e.value,a=1==e.state,u=a?t.ok:t.fail,c=t.resolve,s=t.reject,f=t.domain;try{u?(a||(2===e.rejection&&yc(e),e.rejection=1),!0===u?n=i:(f&&f.enter(),n=u(i),f&&(f.exit(),o=!0)),n===t.promise?s(rc("Promise-chain cycle")):(r=fc(n))?Mu(r,n,c,s):c(n)):s(i)}catch(t){f&&!o&&f.exit(),s(t)}},dc=function(t,e){t.notified||(t.notified=!0,_u((function(){for(var n,r=t.reactions;n=r.get();)lc(n,t);t.notified=!1,e&&!t.rejection&&hc(t)})))},pc=function(t,e,n){var r,o;cc?((r=oc.createEvent("Event")).promise=e,r.reason=n,r.initEvent(t,!1,!0),ku.dispatchEvent(r)):r={promise:e,reason:n},!Ju&&(o=ku["on"+t])?o(r):t===sc&&Wu("Unhandled promise rejection",n)},hc=function(t){Mu(qu,ku,(function(){var e,n=t.facade,r=t.value;if(vc(t)&&(e=$u((function(){Ru?ic.emit("unhandledRejection",r,n):pc(sc,n,r)})),t.rejection=Ru||vc(t)?2:1,e.error))throw e.value}))},vc=function(t){return 1!==t.rejection&&!t.parent},yc=function(t){Mu(qu,ku,(function(){var e=t.facade;Ru?ic.emit("rejectionHandled",e):pc("rejectionhandled",e,t.value)}))},gc=function(t,e,n){return function(r){t(e,r,n)}},mc=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=2,dc(t,!0))},bc=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw rc("Promise can't be resolved itself");var r=fc(e);r?_u((function(){var n={done:!1};try{Mu(r,e,gc(bc,n,t),gc(mc,n,t))}catch(e){mc(n,e,t)}})):(t.value=e,t.state=1,dc(t,!1))}catch(e){mc({done:!1},e,t)}}};if(Ku&&(nc=(ec=function(t){Gu(this,nc),Nu(t),Mu(Eu,this);var e=Qu(this);try{t(gc(bc,e),gc(mc,e))}catch(t){mc(e,t)}}).prototype,(Eu=function(t){Zu(this,{type:Vu,done:!1,notified:!1,parent:!1,reactions:new zu,rejection:!1,state:0,value:void 0})}).prototype=Au(nc,"then",(function(t,e){var n=Qu(this),r=ac(Fu(this,ec));return n.parent=!0,r.ok=!Bu(t)||t,r.fail=Bu(e)&&e,r.domain=Ru?ic.domain:void 0,0==n.state?n.reactions.add(r):_u((function(){lc(r,n)})),r.promise})),Tu=function(){var t=new Eu,e=Qu(t);this.promise=t,this.resolve=gc(bc,e),this.reject=gc(mc,e)},Hu.f=ac=function(t){return t===ec||undefined===t?new Tu(t):uc(t)},Bu(Uu)&&tc!==Object.prototype)){xu=tc.then,Xu||Au(tc,"then",(function(t,e){var n=this;return new ec((function(t,e){Mu(xu,n,t,e)})).then(t,e)}),{unsafe:!0});try{delete tc.constructor}catch(t){}Iu&&Iu(tc,nc)}Pu({global:!0,constructor:!0,wrap:!0,forced:Ku},{Promise:ec}),Cu(ec,Vu,!1),Lu(Vu);var wc={},Sc=wc,Oc=ye("iterator"),jc=Array.prototype,Ec=function(t){return void 0!==t&&(Sc.Array===t||jc[Oc]===t)},Tc=zo,xc=Kt,Pc=g,Rc=wc,kc=ye("iterator"),Mc=function(t){if(!Pc(t))return xc(t,kc)||xc(t,"@@iterator")||Rc[Tc(t)]},Ac=mt,Ic=Ut,Cc=vt,Lc=Wt,Nc=Mc,Bc=TypeError,Dc=function(t,e){var n=arguments.length<2?Nc(t):e;if(Ic(n))return Cc(Ac(n,t));throw Bc(Lc(t)+" is not iterable")},Gc=mt,Fc=vt,qc=Kt,_c=function(t,e,n){var r,o;Fc(t);try{if(!(r=qc(t,"return"))){if("throw"===e)throw n;return n}r=Gc(r,t)}catch(t){o=!0,r=t}if("throw"===e)throw n;if(o)throw r;return Fc(r),n},Wc=Xi,$c=mt,zc=vt,Yc=Wt,Uc=Ec,Hc=kr,Vc=Ot,Kc=Dc,Jc=Mc,Xc=_c,Qc=TypeError,Zc=function(t,e){this.stopped=t,this.result=e},ts=Zc.prototype,es=function(t,e,n){var r,o,i,a,u,c,s,f=n&&n.that,l=!(!n||!n.AS_ENTRIES),d=!(!n||!n.IS_RECORD),p=!(!n||!n.IS_ITERATOR),h=!(!n||!n.INTERRUPTED),v=Wc(e,f),y=function(t){return r&&Xc(r,"normal",t),new Zc(!0,t)},g=function(t){return l?(zc(t),h?v(t[0],t[1],y):v(t[0],t[1])):h?v(t,y):v(t)};if(d)r=t.iterator;else if(p)r=t;else{if(!(o=Jc(t)))throw Qc(Yc(t)+" is not iterable");if(Uc(o)){for(i=0,a=Hc(t);a>i;i++)if((u=g(t[i]))&&Vc(ts,u))return u;return new Zc(!1)}r=Kc(t,o)}for(c=d?t.next:r.next;!(s=$c(c,r)).done;){try{u=g(s.value)}catch(t){Xc(r,"throw",t)}if("object"==typeof u&&u&&Vc(ts,u))return u}return new Zc(!1)},ns=ye("iterator"),rs=!1;try{var os=0,is={next:function(){return{done:!!os++}},return:function(){rs=!0}};is[ns]=function(){return this},Array.from(is,(function(){throw 2}))}catch(t){}var as=function(t,e){if(!e&&!rs)return!1;var n=!1;try{var r={};r[ns]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(t){}return n},us=ru,cs=bu.CONSTRUCTOR||!as((function(t){us.all(t).then(void 0,(function(){}))})),ss=mt,fs=Ut,ls=wu,ds=nu,ps=es;mo({target:"Promise",stat:!0,forced:cs},{all:function(t){var e=this,n=ls.f(e),r=n.resolve,o=n.reject,i=ds((function(){var n=fs(e.resolve),i=[],a=0,u=1;ps(t,(function(t){var c=a++,s=!1;u++,ss(n,e,t).then((function(t){s||(s=!0,i[c]=t,--u||r(i))}),o)})),--u||r(i)}));return i.error&&o(i.value),n.promise}});var hs=mo,vs=bu.CONSTRUCTOR,ys=ru,gs=St,ms=D,bs=vr,ws=ys&&ys.prototype;if(hs({target:"Promise",proto:!0,forced:vs,real:!0},{catch:function(t){return this.then(void 0,t)}}),ms(ys)){var Ss=gs("Promise").prototype.catch;ws.catch!==Ss&&bs(ws,"catch",Ss,{unsafe:!0})}var Os=mt,js=Ut,Es=wu,Ts=nu,xs=es;mo({target:"Promise",stat:!0,forced:cs},{race:function(t){var e=this,n=Es.f(e),r=n.reject,o=Ts((function(){var o=js(e.resolve);xs(t,(function(t){Os(o,e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}});var Ps=mt,Rs=wu;mo({target:"Promise",stat:!0,forced:bu.CONSTRUCTOR},{reject:function(t){var e=Rs.f(this);return Ps(e.reject,void 0,t),e.promise}});var ks=vt,Ms=rt,As=wu,Is=mo,Cs=bu.CONSTRUCTOR,Ls=function(t,e){if(ks(t),Ms(e)&&e.constructor===t)return e;var n=As.f(t);return(0,n.resolve)(e),n.promise};St("Promise"),Is({target:"Promise",stat:!0,forced:Cs},{resolve:function(t){return Ls(this,t)}});var Ns={},Bs=f,Ds=lt,Gs=ot,Fs=vt,qs=er,_s=So;Ns.f=Bs&&!Ds?Object.defineProperties:function(t,e){Fs(t);for(var n,r=qs(e),o=_s(e),i=o.length,a=0;i>a;)Gs.f(t,n=o[a++],r[n]);return t};var Ws,$s=vt,zs=Ns,Ys=_r,Us=Ve,Hs=Qi,Vs=ct,Ks="prototype",Js="script",Xs=He("IE_PROTO"),Qs=function(){},Zs=function(t){return"<"+Js+">"+t+"</"+Js+">"},tf=function(t){t.write(Zs("")),t.close();var e=t.parentWindow.Object;return t=null,e},ef=function(){try{Ws=new ActiveXObject("htmlfile")}catch(t){}var t,e,n;ef="undefined"!=typeof document?document.domain&&Ws?tf(Ws):(e=Vs("iframe"),n="java"+Js+":",e.style.display="none",Hs.appendChild(e),e.src=String(n),(t=e.contentWindow.document).open(),t.write(Zs("document.F=Object")),t.close(),t.F):tf(Ws);for(var r=Ys.length;r--;)delete ef[Ks][Ys[r]];return ef()};Us[Xs]=!0;var nf=Object.create||function(t,e){var n;return null!==t?(Qs[Ks]=$s(t),n=new Qs,Qs[Ks]=null,n[Xs]=t):n=ef(),void 0===e?n:zs.f(n,e)},rf=ye,of=nf,af=ot.f,uf=rf("unscopables"),cf=Array.prototype;null==cf[uf]&&af(cf,uf,{configurable:!0,value:of(null)});var sf,ff,lf,df=function(t){cf[uf][t]=!0},pf=!s((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})),hf=x,vf=D,yf=j,gf=pf,mf=He("IE_PROTO"),bf=Object,wf=bf.prototype,Sf=gf?bf.getPrototypeOf:function(t){var e=yf(t);if(hf(e,mf))return e[mf];var n=e.constructor;return vf(n)&&e instanceof n?n.prototype:e instanceof bf?wf:null},Of=s,jf=D,Ef=rt,Tf=Sf,xf=vr,Pf=ye("iterator"),Rf=!1;[].keys&&("next"in(lf=[].keys())?(ff=Tf(Tf(lf)))!==Object.prototype&&(sf=ff):Rf=!0);var kf=!Ef(sf)||Of((function(){var t={};return sf[Pf].call(t)!==t}));kf&&(sf={}),jf(sf[Pf])||xf(sf,Pf,(function(){return this}));var Mf={IteratorPrototype:sf,BUGGY_SAFARI_ITERATORS:Rf},Af=Mf.IteratorPrototype,If=nf,Cf=_e,Lf=ai,Nf=wc,Bf=function(){return this},Df=mo,Gf=mt,Ff=D,qf=function(t,e,n,r){var o=e+" Iterator";return t.prototype=If(Af,{next:Cf(+!r,n)}),Lf(t,o,!1),Nf[o]=Bf,t},_f=Sf,Wf=ni,$f=ai,zf=ze,Yf=vr,Uf=wc,Hf=I.PROPER,Vf=I.CONFIGURABLE,Kf=Mf.IteratorPrototype,Jf=Mf.BUGGY_SAFARI_ITERATORS,Xf=ye("iterator"),Qf="keys",Zf="values",tl="entries",el=function(){return this},nl=function(t,e,n,r,o,i,a){qf(n,e,r);var u,c,s,f=function(t){if(t===o&&v)return v;if(!Jf&&t in p)return p[t];switch(t){case Qf:case Zf:case tl:return function(){return new n(this,t)}}return function(){return new n(this)}},l=e+" Iterator",d=!1,p=t.prototype,h=p[Xf]||p["@@iterator"]||o&&p[o],v=!Jf&&h||f(o),y="Array"==e&&p.entries||h;if(y&&(u=_f(y.call(new t)))!==Object.prototype&&u.next&&(_f(u)!==Kf&&(Wf?Wf(u,Kf):Ff(u[Xf])||Yf(u,Xf,el)),$f(u,l,!0)),Hf&&o==Zf&&h&&h.name!==Zf&&(Vf?zf(p,"name",Zf):(d=!0,v=function(){return Gf(h,this)})),o)if(c={values:f(Zf),keys:i?v:f(Qf),entries:f(tl)},a)for(s in c)(Jf||d||!(s in p))&&Yf(p,s,c[s]);else Df({target:e,proto:!0,forced:Jf||d},c);return p[Xf]!==v&&Yf(p,Xf,v,{name:o}),Uf[e]=v,c},rl=function(t,e){return{value:t,done:e}},ol=er,il=df,al=wc,ul=sn,cl=ot.f,sl=nl,fl=rl,ll=f,dl="Array Iterator",pl=ul.set,hl=ul.getterFor(dl),vl=sl(Array,"Array",(function(t,e){pl(this,{type:dl,target:ol(t),index:0,kind:e})}),(function(){var t=hl(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,fl(void 0,!0)):fl("keys"==n?r:"values"==n?e[r]:[r,e[r]],!1)}),"values"),yl=al.Arguments=al.Array;if(il("keys"),il("values"),il("entries"),ll&&"values"!==yl.name)try{cl(yl,"name",{value:"values"})}catch(t){}var gl=zo,ml=String,bl=function(t){if("Symbol"===gl(t))throw TypeError("Cannot convert a Symbol value to a string");return ml(t)},wl=y,Sl=wr,Ol=bl,jl=w,El=wl("".charAt),Tl=wl("".charCodeAt),xl=wl("".slice),Pl=function(t){return function(e,n){var r,o,i=Ol(jl(e)),a=Sl(n),u=i.length;return a<0||a>=u?t?"":void 0:(r=Tl(i,a))<55296||r>56319||a+1===u||(o=Tl(i,a+1))<56320||o>57343?t?El(i,a):r:t?xl(i,a,a+2):o-56320+(r-55296<<10)+65536}},Rl={codeAt:Pl(!1),charAt:Pl(!0)}.charAt,kl=bl,Ml=sn,Al=nl,Il=rl,Cl="String Iterator",Ll=Ml.set,Nl=Ml.getterFor(Cl);Al(String,"String",(function(t){Ll(this,{type:Cl,string:kl(t),index:0})}),(function(){var t,e=Nl(this),n=e.string,r=e.index;return r>=n.length?Il(void 0,!0):(t=Rl(n,r),e.index+=t.length,Il(t,!1))}));var Bl={exports:{}},Dl={},Gl=xe,Fl=ot,ql=_e,_l=function(t,e,n){var r=Gl(e);r in t?Fl.f(t,r,ql(0,n)):t[r]=n},Wl=Er,$l=kr,zl=_l,Yl=Array,Ul=Math.max,Hl=function(t,e,n){for(var r=$l(t),o=Wl(e,r),i=Wl(void 0===n?r:n,r),a=Yl(Ul(i-o,0)),u=0;o<i;o++,u++)zl(a,u,t[o]);return a.length=u,a},Vl=Hn,Kl=er,Jl=yr.f,Xl=Hl,Ql="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];Dl.f=function(t){return Ql&&"Window"==Vl(t)?function(t){try{return Jl(t)}catch(t){return Xl(Ql)}}(t):Jl(Kl(t))};var Zl=s((function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}})),td=s,ed=rt,nd=Hn,rd=Zl,od=Object.isExtensible,id=td((function(){od(1)}))||rd?function(t){return!!ed(t)&&((!rd||"ArrayBuffer"!=nd(t))&&(!od||od(t)))}:od,ad=!s((function(){return Object.isExtensible(Object.preventExtensions({}))})),ud=mo,cd=y,sd=Ve,fd=rt,ld=x,dd=ot.f,pd=yr,hd=Dl,vd=id,yd=ad,gd=!1,md=ue("meta"),bd=0,wd=function(t){dd(t,md,{value:{objectID:"O"+bd++,weakData:{}}})},Sd=Bl.exports={enable:function(){Sd.enable=function(){},gd=!0;var t=pd.f,e=cd([].splice),n={};n[md]=1,t(n).length&&(pd.f=function(n){for(var r=t(n),o=0,i=r.length;o<i;o++)if(r[o]===md){e(r,o,1);break}return r},ud({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:hd.f}))},fastKey:function(t,e){if(!fd(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!ld(t,md)){if(!vd(t))return"F";if(!e)return"E";wd(t)}return t[md].objectID},getWeakData:function(t,e){if(!ld(t,md)){if(!vd(t))return!0;if(!e)return!1;wd(t)}return t[md].weakData},onFreeze:function(t){return yd&&gd&&vd(t)&&!ld(t,md)&&wd(t),t}};sd[md]=!0;var Od=Bl.exports,jd=D,Ed=rt,Td=ni,xd=mo,Pd=F,Rd=y,kd=so,Md=vr,Ad=Od,Id=es,Cd=hi,Ld=D,Nd=g,Bd=rt,Dd=s,Gd=as,Fd=ai,qd=function(t,e,n){var r,o;return Td&&jd(r=e.constructor)&&r!==n&&Ed(o=r.prototype)&&o!==n.prototype&&Td(t,o),t},_d=function(t,e,n){var r=-1!==t.indexOf("Map"),o=-1!==t.indexOf("Weak"),i=r?"set":"add",a=Pd[t],u=a&&a.prototype,c=a,s={},f=function(t){var e=Rd(u[t]);Md(u,t,"add"==t?function(t){return e(this,0===t?0:t),this}:"delete"==t?function(t){return!(o&&!Bd(t))&&e(this,0===t?0:t)}:"get"==t?function(t){return o&&!Bd(t)?void 0:e(this,0===t?0:t)}:"has"==t?function(t){return!(o&&!Bd(t))&&e(this,0===t?0:t)}:function(t,n){return e(this,0===t?0:t,n),this})};if(kd(t,!Ld(a)||!(o||u.forEach&&!Dd((function(){(new a).entries().next()})))))c=n.getConstructor(e,t,r,i),Ad.enable();else if(kd(t,!0)){var l=new c,d=l[i](o?{}:-0,1)!=l,p=Dd((function(){l.has(1)})),h=Gd((function(t){new a(t)})),v=!o&&Dd((function(){for(var t=new a,e=5;e--;)t[i](e,e);return!t.has(-0)}));h||((c=e((function(t,e){Cd(t,u);var n=qd(new a,t,c);return Nd(e)||Id(e,n[i],{that:n,AS_ENTRIES:r}),n}))).prototype=u,u.constructor=c),(p||v)&&(f("delete"),f("has"),r&&f("get")),(v||d)&&f(i),o&&u.clear&&delete u.clear}return s[t]=c,xd({global:!0,constructor:!0,forced:c!=a},s),Fd(c,t),o||n.setStrong(c,t,r),c},Wd=vr,$d=function(t,e,n){for(var r in e)Wd(t,r,e[r],n);return t},zd=Hn,Yd=Array.isArray||function(t){return"Array"==zd(t)},Ud=Yd,Hd=Ii,Vd=rt,Kd=ye("species"),Jd=Array,Xd=function(t){var e;return Ud(t)&&(e=t.constructor,(Hd(e)&&(e===Jd||Ud(e.prototype))||Vd(e)&&null===(e=e[Kd]))&&(e=void 0)),void 0===e?Jd:e},Qd=function(t,e){return new(Xd(t))(0===e?0:e)},Zd=Xi,tp=Qn,ep=j,np=kr,rp=Qd,op=y([].push),ip=function(t){var e=1==t,n=2==t,r=3==t,o=4==t,i=6==t,a=7==t,u=5==t||i;return function(c,s,f,l){for(var d,p,h=ep(c),v=tp(h),y=Zd(s,f),g=np(v),m=0,b=l||rp,w=e?b(c,g):n||a?b(c,0):void 0;g>m;m++)if((u||m in v)&&(p=y(d=v[m],m,h),t))if(e)w[m]=p;else if(p)switch(t){case 3:return!0;case 5:return d;case 6:return m;case 2:op(w,d)}else switch(t){case 4:return!1;case 7:op(w,d)}return i?-1:r||o?o:w}},ap={forEach:ip(0),map:ip(1),filter:ip(2),some:ip(3),every:ip(4),find:ip(5),findIndex:ip(6),filterReject:ip(7)},up=y,cp=$d,sp=Od.getWeakData,fp=hi,lp=vt,dp=g,pp=rt,hp=es,vp=x,yp=sn.set,gp=sn.getterFor,mp=ap.find,bp=ap.findIndex,wp=up([].splice),Sp=0,Op=function(t){return t.frozen||(t.frozen=new jp)},jp=function(){this.entries=[]},Ep=function(t,e){return mp(t.entries,(function(t){return t[0]===e}))};jp.prototype={get:function(t){var e=Ep(this,t);if(e)return e[1]},has:function(t){return!!Ep(this,t)},set:function(t,e){var n=Ep(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=bp(this.entries,(function(e){return e[0]===t}));return~e&&wp(this.entries,e,1),!!~e}};var Tp={getConstructor:function(t,e,n,r){var o=t((function(t,o){fp(t,i),yp(t,{type:e,id:Sp++,frozen:void 0}),dp(o)||hp(o,t[r],{that:t,AS_ENTRIES:n})})),i=o.prototype,a=gp(e),u=function(t,e,n){var r=a(t),o=sp(lp(e),!0);return!0===o?Op(r).set(e,n):o[r.id]=n,t};return cp(i,{delete:function(t){var e=a(this);if(!pp(t))return!1;var n=sp(t);return!0===n?Op(e).delete(t):n&&vp(n,e.id)&&delete n[e.id]},has:function(t){var e=a(this);if(!pp(t))return!1;var n=sp(t);return!0===n?Op(e).has(t):n&&vp(n,e.id)}}),cp(i,n?{get:function(t){var e=a(this);if(pp(t)){var n=sp(t);return!0===n?Op(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return u(this,t,e)}}:{add:function(t){return u(this,t,!0)}}),o}};_d("WeakSet",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),Tp);var xp={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Pp=ct("span").classList,Rp=Pp&&Pp.constructor&&Pp.constructor.prototype,kp=Rp===Object.prototype?void 0:Rp,Mp=F,Ap=xp,Ip=kp,Cp=vl,Lp=ze,Np=ye,Bp=Np("iterator"),Dp=Np("toStringTag"),Gp=Cp.values,Fp=function(t,e){if(t){if(t[Bp]!==Gp)try{Lp(t,Bp,Gp)}catch(e){t[Bp]=Gp}if(t[Dp]||Lp(t,Dp,e),Ap[e])for(var n in Cp)if(t[n]!==Cp[n])try{Lp(t,n,Cp[n])}catch(e){t[n]=Cp[n]}}};for(var qp in Ap)Fp(Mp[qp]&&Mp[qp].prototype,qp);Fp(Ip,"DOMTokenList");var _p=s,Wp=Mt,$p=ye("species"),zp=function(t){return Wp>=51||!_p((function(){var e=[];return(e.constructor={})[$p]=function(){return{foo:1}},1!==e[t](Boolean).foo}))},Yp=mo,Up=Yd,Hp=Ii,Vp=rt,Kp=Er,Jp=kr,Xp=er,Qp=_l,Zp=ye,th=Zi,eh=zp("slice"),nh=Zp("species"),rh=Array,oh=Math.max;Yp({target:"Array",proto:!0,forced:!eh},{slice:function(t,e){var n,r,o,i=Xp(this),a=Jp(i),u=Kp(t,a),c=Kp(void 0===e?a:e,a);if(Up(i)&&(n=i.constructor,(Hp(n)&&(n===rh||Up(n.prototype))||Vp(n)&&null===(n=n[nh]))&&(n=void 0),n===rh||void 0===n))return th(i,u,c);for(r=new(void 0===n?rh:n)(oh(c-u,0)),o=0;u<c;u++,o++)u in i&&Qp(r,o,i[u]);return r.length=o,r}});var ih=s,ah=function(t,e){var n=[][t];return!!n&&ih((function(){n.call(null,e||function(){return 1},1)}))},uh=mo,ch=Qn,sh=er,fh=ah,lh=y([].join);function dh(t,e,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(t):r?r.value:e.get(t)}uh({target:"Array",proto:!0,forced:ch!=Object||!fh("join",",")},{join:function(t){return lh(sh(this),void 0===t?",":t)}});var ph=j,hh=So;mo({target:"Object",stat:!0,forced:s((function(){hh(1)}))},{keys:function(t){return hh(ph(t))}});var vh,yh=rt,gh=Hn,mh=ye("match"),bh=function(t){var e;return yh(t)&&(void 0!==(e=t[mh])?!!e:"RegExp"==gh(t))},wh=TypeError,Sh=ye("match"),Oh=mo,jh=Hi,Eh=Fn.f,Th=Pr,xh=bl,Ph=function(t){if(bh(t))throw wh("The method doesn't accept regular expressions");return t},Rh=w,kh=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[Sh]=!1,"/./"[t](e)}catch(t){}}return!1},Mh=jh("".startsWith),Ah=jh("".slice),Ih=Math.min,Ch=kh("startsWith");Oh({target:"String",proto:!0,forced:!!(Ch||(vh=Eh(String.prototype,"startsWith"),!vh||vh.writable))&&!Ch},{startsWith:function(t){var e=xh(Rh(this));Ph(t);var n=Th(Ih(arguments.length>1?arguments[1]:void 0,e.length)),r=xh(t);return Mh?Mh(e,r,n):Ah(e,n,n+r.length)===r}});var Lh=ap.forEach,Nh=ah("forEach")?[].forEach:function(t){return Lh(this,t,arguments.length>1?arguments[1]:void 0)},Bh=F,Dh=xp,Gh=kp,Fh=Nh,qh=ze,_h=function(t){if(t&&t.forEach!==Fh)try{qh(t,"forEach",Fh)}catch(e){t.forEach=Fh}};for(var Wh in Dh)Dh[Wh]&&_h(Bh[Wh]&&Bh[Wh].prototype);_h(Gh);var $h=f,zh=y,Yh=So,Uh=er,Hh=zh(qn.f),Vh=zh([].push),Kh=function(t){return function(e){for(var n,r=Uh(e),o=Yh(r),i=o.length,a=0,u=[];i>a;)n=o[a++],$h&&!Hh(r,n)||Vh(u,t?[n,r[n]]:r[n]);return u}},Jh={entries:Kh(!0),values:Kh(!1)}.entries;function Xh(t){return null!=t&&!Number.isNaN(t)}function Qh(t,n){return+Xh(n)-+Xh(t)||e.ascending(t,n)}function Zh(t){return isFinite(t)?t:NaN}function tv(t){return t>0&&isFinite(t)?t:NaN}function ev(t){return t<0&&isFinite(t)?t:NaN}mo({target:"Object",stat:!0},{entries:function(t){return Jh(t)}});const nv=/^(?:[-+]\d{2})?\d{4}(?:-\d{2}(?:-\d{2})?)?(?:T\d{2}:\d{2}(?::\d{2}(?:\.\d{3})?)?(?:Z|[-+]\d{2}:?\d{2})?)?$/;function rv(t,e){return nv.test(t+="")?new Date(t):"function"==typeof e?e(t):e}const ov=new Map([["second",e.timeSecond],["minute",e.timeMinute],["hour",e.timeHour],["day",e.timeDay],["week",e.timeWeek],["month",e.timeMonth],["quarter",e.timeMonth.every(3)],["half",e.timeMonth.every(6)],["year",e.timeYear],["monday",e.timeMonday],["tuesday",e.timeTuesday],["wednesday",e.timeWednesday],["thursday",e.timeThursday],["friday",e.timeFriday],["saturday",e.timeSaturday],["sunday",e.timeSunday]]),iv=new Map([["second",e.utcSecond],["minute",e.utcMinute],["hour",e.utcHour],["day",e.utcDay],["week",e.utcWeek],["month",e.utcMonth],["quarter",e.utcMonth.every(3)],["half",e.utcMonth.every(6)],["year",e.utcYear],["monday",e.utcMonday],["tuesday",e.utcTuesday],["wednesday",e.utcWednesday],["thursday",e.utcThursday],["friday",e.utcFriday],["saturday",e.utcSaturday],["sunday",e.utcSunday]]);function av(t){const e=ov.get(`${t}`.toLowerCase());if(!e)throw new Error(`unknown interval: ${t}`);return e}function uv(t){const e=iv.get(`${t}`.toLowerCase());if(!e)throw new Error(`unknown interval: ${t}`);return e}const cv=Object.getPrototypeOf(Uint8Array),sv=Object.prototype.toString,fv=t=>()=>t;function lv(t){return t instanceof cv?t:yv(t,dv,Float64Array)}function dv(t){return null==t?NaN:Number(t)}function pv(t){return yv(t,hv)}function hv(t){return t instanceof Date&&!isNaN(t)?t:"string"==typeof t?rv(t):null==t||isNaN(t=+t)?void 0:new Date(t)}function vv(t){return null==t||t instanceof Array||t instanceof cv?t:Array.from(t)}function yv(t,e,n=Array){return null==t?t:t instanceof n?t.map(e):n.from(t,e)}function gv(t,e=Array){return t instanceof e?t.slice():e.from(t)}function mv(t){return function(t){return t?.toString===sv}(t)&&(void 0!==t.type||void 0!==t.domain)}function bv(t,n){if(null!=t){if("number"==typeof t){0<t&&t<1&&Number.isInteger(1/t)&&(t=-1/t);const n=Math.abs(t);return t<0?{floor:t=>Math.floor(t*n)/n,offset:t=>(t*n+1)/n,range:(t,r)=>e.range(Math.ceil(t*n),r*n).map((t=>t/n))}:{floor:t=>Math.floor(t/n)*n,offset:t=>t+n,range:(t,r)=>e.range(Math.ceil(t/n),r/n).map((t=>t*n))}}if("string"==typeof t)return("time"===n?av:uv)(t);if("function"!=typeof t.floor)throw new Error("invalid interval; missing floor method");if("function"!=typeof t.offset)throw new Error("invalid interval; missing offset method");return t}}function wv(t,e){if((t=bv(t,e))&&"function"!=typeof t.range)throw new Error("invalid interval: missing range method");return t}function Sv(t){for(const e of t){if(null==e)continue;const t=typeof e;return"string"===t||"boolean"===t}}function Ov(t){for(const e of t)if(null!=e)return e instanceof Date}function jv(t){for(const e of t)if(null!=e)return"string"==typeof e&&isNaN(e)&&rv(e)}function Ev(t){for(const e of t)if(null!=e){if("string"!=typeof e)return!1;if(e.trim())return!isNaN(e)}}function Tv(t){if(null==t)return;const n=t[0],r=t[t.length-1];return e.descending(n,r)}const xv=Symbol("position"),Pv=Symbol("color"),Rv=Symbol("radius"),kv=Symbol("length"),Mv=Symbol("opacity"),Av=Symbol("symbol"),Iv=new Map([["x",xv],["y",xv],["fx",xv],["fy",xv],["r",Rv],["color",Pv],["opacity",Mv],["symbol",Av],["length",kv]]),Cv=2/Math.sqrt(3),Lv={draw(t,e){const n=Math.sqrt(e/Math.PI),r=n*Cv,o=r/2;t.moveTo(0,r),t.lineTo(n,o),t.lineTo(n,-o),t.lineTo(0,-r),t.lineTo(-n,-o),t.lineTo(-n,o),t.closePath()}},Nv=new Map([["asterisk",e.symbolAsterisk],["circle",e.symbolCircle],["cross",e.symbolCross],["diamond",e.symbolDiamond],["diamond2",e.symbolDiamond2],["hexagon",Lv],["plus",e.symbolPlus],["square",e.symbolSquare],["square2",e.symbolSquare2],["star",e.symbolStar],["times",e.symbolTimes],["triangle",e.symbolTriangle],["triangle2",e.symbolTriangle2],["wye",e.symbolWye]]);function Bv(t){if(null==t||function(t){return t&&"function"==typeof t.draw}(t))return t;const e=Nv.get(`${t}`.toLowerCase());if(e)return e;throw new Error(`invalid symbol: ${t}`)}function Dv(t){console.warn(t)}const Gv=new Map([["accent",e.schemeAccent],["category10",e.schemeCategory10],["dark2",e.schemeDark2],["paired",e.schemePaired],["pastel1",e.schemePastel1],["pastel2",e.schemePastel2],["set1",e.schemeSet1],["set2",e.schemeSet2],["set3",e.schemeSet3],["tableau10",e.schemeTableau10],["brbg",qv(e.schemeBrBG,e.interpolateBrBG)],["prgn",qv(e.schemePRGn,e.interpolatePRGn)],["piyg",qv(e.schemePiYG,e.interpolatePiYG)],["puor",qv(e.schemePuOr,e.interpolatePuOr)],["rdbu",qv(e.schemeRdBu,e.interpolateRdBu)],["rdgy",qv(e.schemeRdGy,e.interpolateRdGy)],["rdylbu",qv(e.schemeRdYlBu,e.interpolateRdYlBu)],["rdylgn",qv(e.schemeRdYlGn,e.interpolateRdYlGn)],["spectral",qv(e.schemeSpectral,e.interpolateSpectral)],["burd",_v(e.schemeRdBu,e.interpolateRdBu)],["buylrd",_v(e.schemeRdYlBu,e.interpolateRdYlBu)],["blues",Fv(e.schemeBlues,e.interpolateBlues)],["greens",Fv(e.schemeGreens,e.interpolateGreens)],["greys",Fv(e.schemeGreys,e.interpolateGreys)],["oranges",Fv(e.schemeOranges,e.interpolateOranges)],["purples",Fv(e.schemePurples,e.interpolatePurples)],["reds",Fv(e.schemeReds,e.interpolateReds)],["turbo",Wv(e.interpolateTurbo)],["viridis",Wv(e.interpolateViridis)],["magma",Wv(e.interpolateMagma)],["inferno",Wv(e.interpolateInferno)],["plasma",Wv(e.interpolatePlasma)],["cividis",Wv(e.interpolateCividis)],["cubehelix",Wv(e.interpolateCubehelixDefault)],["warm",Wv(e.interpolateWarm)],["cool",Wv(e.interpolateCool)],["bugn",Fv(e.schemeBuGn,e.interpolateBuGn)],["bupu",Fv(e.schemeBuPu,e.interpolateBuPu)],["gnbu",Fv(e.schemeGnBu,e.interpolateGnBu)],["orrd",Fv(e.schemeOrRd,e.interpolateOrRd)],["pubu",Fv(e.schemePuBu,e.interpolatePuBu)],["pubugn",Fv(e.schemePuBuGn,e.interpolatePuBuGn)],["purd",Fv(e.schemePuRd,e.interpolatePuRd)],["rdpu",Fv(e.schemeRdPu,e.interpolateRdPu)],["ylgn",Fv(e.schemeYlGn,e.interpolateYlGn)],["ylgnbu",Fv(e.schemeYlGnBu,e.interpolateYlGnBu)],["ylorbr",Fv(e.schemeYlOrBr,e.interpolateYlOrBr)],["ylorrd",Fv(e.schemeYlOrRd,e.interpolateYlOrRd)],["rainbow",$v(e.interpolateRainbow)],["sinebow",$v(e.interpolateSinebow)]]);function Fv(t,n){return({length:r})=>1===r?[t[3][1]]:2===r?[t[3][1],t[3][2]]:(r=Math.max(3,Math.floor(r)))>9?e.quantize(n,r):t[r]}function qv(t,n){return({length:r})=>2===r?[t[3][0],t[3][2]]:(r=Math.max(3,Math.floor(r)))>11?e.quantize(n,r):t[r]}function _v(t,n){return({length:r})=>2===r?[t[3][2],t[3][0]]:(r=Math.max(3,Math.floor(r)))>11?e.quantize((t=>n(1-t)),r):t[r].slice().reverse()}function Wv(t){return({length:n})=>e.quantize(t,Math.max(2,Math.floor(n)))}function $v(t){return({length:n})=>e.quantize(t,Math.floor(n)+1).slice(0,-1)}function zv(t){const e=`${t}`.toLowerCase();if(!Gv.has(e))throw new Error(`unknown ordinal scheme: ${e}`);return Gv.get(e)}function Yv(t,e){const n=zv(t),r="function"==typeof n?n({length:e}):n;return r.length!==e?r.slice(0,e):r}const Uv=new Map([["brbg",e.interpolateBrBG],["prgn",e.interpolatePRGn],["piyg",e.interpolatePiYG],["puor",e.interpolatePuOr],["rdbu",e.interpolateRdBu],["rdgy",e.interpolateRdGy],["rdylbu",e.interpolateRdYlBu],["rdylgn",e.interpolateRdYlGn],["spectral",e.interpolateSpectral],["burd",t=>e.interpolateRdBu(1-t)],["buylrd",t=>e.interpolateRdYlBu(1-t)],["blues",e.interpolateBlues],["greens",e.interpolateGreens],["greys",e.interpolateGreys],["purples",e.interpolatePurples],["reds",e.interpolateReds],["oranges",e.interpolateOranges],["turbo",e.interpolateTurbo],["viridis",e.interpolateViridis],["magma",e.interpolateMagma],["inferno",e.interpolateInferno],["plasma",e.interpolatePlasma],["cividis",e.interpolateCividis],["cubehelix",e.interpolateCubehelixDefault],["warm",e.interpolateWarm],["cool",e.interpolateCool],["bugn",e.interpolateBuGn],["bupu",e.interpolateBuPu],["gnbu",e.interpolateGnBu],["orrd",e.interpolateOrRd],["pubugn",e.interpolatePuBuGn],["pubu",e.interpolatePuBu],["purd",e.interpolatePuRd],["rdpu",e.interpolateRdPu],["ylgnbu",e.interpolateYlGnBu],["ylgn",e.interpolateYlGn],["ylorbr",e.interpolateYlOrBr],["ylorrd",e.interpolateYlOrRd],["rainbow",e.interpolateRainbow],["sinebow",e.interpolateSinebow]]);function Hv(t){const e=`${t}`.toLowerCase();if(!Uv.has(e))throw new Error(`unknown quantitative scheme: ${e}`);return Uv.get(e)}const Vv=new Set(["brbg","prgn","piyg","puor","rdbu","rdgy","rdylbu","rdylgn","spectral","burd","buylrd"]);function Kv(t){return null!=t&&Vv.has(`${t}`.toLowerCase())}const Jv=t=>e=>t(1-e),Xv=[0,1],Qv=new Map([["number",e.interpolateNumber],["rgb",e.interpolateRgb],["hsl",e.interpolateHsl],["hcl",e.interpolateHcl],["lab",e.interpolateLab]]);function Zv(t){const e=`${t}`.toLowerCase();if(!Qv.has(e))throw new Error(`unknown interpolator: ${e}`);return Qv.get(e)}function ty(t,n,r,{type:o,nice:i,clamp:a,zero:u,domain:c=oy(t,r),unknown:s,round:f,scheme:l,interval:d,range:p=(Iv.get(t)===Rv?ay(r,c):Iv.get(t)===kv?uy(r,c):Iv.get(t)===Mv?Xv:void 0),interpolate:h=(Iv.get(t)===Pv?null==l&&void 0!==p?e.interpolateRgb:Hv(void 0!==l?l:"cyclical"===o?"rainbow":"turbo"):f?e.interpolateRound:e.interpolateNumber),reverse:v}){if(d=wv(d,o),"cyclical"!==o&&"sequential"!==o||(o="linear"),v=!!v,"function"!=typeof h&&(h=Zv(h)),1===h.length?(v&&(h=Jv(h),v=!1),void 0===p&&2===(p=Float64Array.from(c,((t,e)=>e/(c.length-1)))).length&&(p=Xv),n.interpolate((p===Xv?fv:fy)(h))):n.interpolate(h),u){const[t,n]=e.extent(c);(t>0||n<0)&&(Tv(c=gv(c))!==Math.sign(t)?c[c.length-1]=0:c[0]=0)}return v&&(c=e.reverse(c)),n.domain(c).unknown(s),i&&(n.nice(function(t,e){return!0===t?void 0:"number"==typeof t?t:function(t,e){if((t=wv(t,e))&&"function"!=typeof t.ceil)throw new Error("invalid interval: missing ceil method");return t}(t,e)}(i,o)),c=n.domain()),void 0!==p&&n.range(p),a&&n.clamp(a),{type:o,domain:c,range:p,scale:n,interpolate:h,interval:d}}function ey(t,n,{exponent:r=1,...o}){return ty(t,e.scalePow().exponent(r),n,{...o,type:"pow"})}function ny(t,n,{domain:r=[0],unknown:o,scheme:i="rdylbu",interpolate:a,range:u=(void 0!==a?e.quantize(a,r.length+1):Iv.get(t)===Pv?Yv(i,r.length+1):void 0),reverse:c}){const s=Tv(r=vv(r));if(!isNaN(s)&&!function(t,n){for(let r=1,o=t.length,i=t[0];r<o;++r){const o=e.descending(i,i=t[r]);if(0!==o&&o!==n)return!1}return!0}(r,s))throw new Error(`the ${t} scale has a non-monotonic domain`);return c&&(u=e.reverse(u)),{type:"threshold",scale:e.scaleThreshold(s<0?e.reverse(r):r,void 0===u?[]:u).unknown(o),domain:r,range:u}}function ry(t,n=Zh){return t.length?[e.min(t,(({value:t})=>void 0===t?t:e.min(t,n))),e.max(t,(({value:t})=>void 0===t?t:e.max(t,n)))]:[0,1]}function oy(t,e){const n=Iv.get(t);return(n===Rv||n===Mv||n===kv?iy:ry)(e)}function iy(t){return[0,t.length?e.max(t,(({value:t})=>void 0===t?t:e.max(t,Zh))):1]}function ay(t,n){const r=t.find((({radius:t})=>void 0!==t));if(void 0!==r)return[0,r.radius];const o=e.quantile(t,.5,(({value:t})=>void 0===t?NaN:e.quantile(t,.25,tv))),i=n.map((t=>3*Math.sqrt(t/o))),a=30/e.max(i);return a<1?i.map((t=>t*a)):i}function uy(t,n){const r=e.median(t,(({value:t})=>void 0===t?NaN:e.median(t,Math.abs))),o=n.map((t=>12*t/r)),i=60/e.max(o);return i<1?o.map((t=>t*i)):o}function cy(t){for(const{value:e}of t)if(void 0!==e)for(let n of e){if(n>0)return ry(t,tv);if(n<0)return ry(t,ev)}return[1,10]}function sy(t){const e=[];for(const{value:n}of t)if(void 0!==n)for(const t of n)e.push(t);return e}function fy(t){return(e,n)=>r=>t(e+r*(n-e))}function ly(t,n,r,o,{type:i,nice:a,clamp:u,domain:c=ry(o),unknown:s,pivot:f=0,scheme:l,range:d,symmetric:p=!0,interpolate:h=(Iv.get(t)===Pv?null==l&&void 0!==d?e.interpolateRgb:Hv(void 0!==l?l:"rdbu"):e.interpolateNumber),reverse:v}){f=+f;let[y,g]=c;if(e.descending(y,g)<0&&([y,g]=[g,y],v=!v),y=Math.min(y,f),g=Math.max(g,f),"function"!=typeof h&&(h=Zv(h)),void 0!==d&&(h=1===h.length?fy(h)(...d):e.piecewise(h,d)),v&&(h=Jv(h)),p){const t=r.apply(f),e=t-r.apply(y),n=r.apply(g)-t;e<n?y=r.invert(t-n):e>n&&(g=r.invert(t+e))}return n.domain([y,f,g]).unknown(s).interpolator(h),u&&n.clamp(u),a&&n.nice(a),{type:i,domain:[y,g],pivot:f,interpolate:h,scale:n}}function dy(t,n,{exponent:r=1,...o}){return ly(t,e.scaleDivergingPow().exponent(r=+r),function(t){return.5===t?yy:{apply:e=>Math.sign(e)*Math.pow(Math.abs(e),t),invert:e=>Math.sign(e)*Math.pow(Math.abs(e),1/t)}}(r),n,{...o,type:"diverging-pow"})}function py(t,n,{constant:r=1,...o}){return ly(t,e.scaleDivergingSymlog().constant(r=+r),function(t){return{apply:e=>Math.sign(e)*Math.log1p(Math.abs(e/t)),invert:e=>Math.sign(e)*Math.expm1(Math.abs(e))*t}}(r),n,o)}const hy={apply:t=>t,invert:t=>t},vy={apply:Math.log,invert:Math.exp},yy={apply:t=>Math.sign(t)*Math.sqrt(Math.abs(t)),invert:t=>Math.sign(t)*(t*t)};function gy(t,e,n,r){return ty(t,e,n,r)}const my=Symbol("ordinal");function by(t,n,r,{type:o,interval:i,domain:a,range:u,reverse:c,hint:s}){return i=wv(i,o),void 0===a&&(a=Oy(r,i,t)),"categorical"!==o&&o!==my||(o="ordinal"),c&&(a=e.reverse(a)),n.domain(a),void 0!==u&&("function"==typeof u&&(u=u(a)),n.range(u)),{type:o,domain:a,range:u,scale:n,hint:s,interval:i}}function wy(t,n,{type:r,interval:o,domain:i,range:a,scheme:u,unknown:c,...s}){let f;if(o=wv(o,r),void 0===i&&(i=Oy(n,o,t)),Iv.get(t)===Av)f=function(t){return{fill:jy(t,"fill"),stroke:jy(t,"stroke")}}(n),a=void 0===a?function(t){return n=t.fill,null==n||function(t){return/^\s*none\s*$/i.test(t)}(n)?e.symbolsStroke:e.symbolsFill;var n}(f):yv(a,Bv);else if(Iv.get(t)===Pv&&(void 0!==a||"ordinal"!==r&&r!==my||(a=function(t,e="greys"){const n=new Set,[r,o]=Yv(e,2);for(const e of t)if(null!=e)if(!0===e)n.add(o);else{if(!1!==e)return;n.add(r)}return[...n]}(i,u),void 0!==a&&(u=void 0)),void 0===u&&void 0===a&&(u="ordinal"===r?"turbo":"tableau10"),void 0!==u))if(void 0!==a){const t=Hv(u),n=a[0],r=a[1]-a[0];a=({length:o})=>e.quantize((e=>t(n+r*e)),o)}else a=zv(u);if(c===e.scaleImplicit)throw new Error(`implicit unknown on ${t} scale is not supported`);return by(t,e.scaleOrdinal().unknown(c),n,{...s,type:r,domain:i,range:a,hint:f})}function Sy(t,e,n,r){let{round:o}=n;return void 0!==o&&t.round(o=!!o),(t=by(r,t,e,n)).round=o,t}function Oy(t,n,r){const o=new e.InternSet;for(const{value:e,domain:n}of t){if(void 0!==n)return n();if(void 0!==e)for(const t of e)o.add(t)}if(void 0!==n){const[t,r]=e.extent(o).map(n.floor,n);return n.range(t,n.offset(r))}if(o.size>1e4&&Iv.get(r)===xv)throw new Error(`implicit ordinal domain of ${r} scale has more than 10,000 values`);return e.sort(o,Qh)}function jy(t,e){let n;for(const{hint:r}of t){const t=r?.[e];if(void 0!==t)if(void 0===n)n=t;else if(n!==t)return}return n}function Ey(t,n,r){return function(t,n=[],r={}){const o=function(t,e,{type:n,domain:r,range:o,scheme:i,pivot:a,projection:u}){if("fx"===t||"fy"===t)return"band";"x"!==t&&"y"!==t||null==u||(n=xy);for(const{type:t}of e)if(void 0!==t)if(void 0===n)n=t;else if(n!==t)throw new Error(`scale incompatible with channel: ${n} !== ${t}`);if(n===xy)return;if(void 0!==n)return n;if(void 0===r&&!e.some((({value:t})=>void 0!==t)))return;const c=Iv.get(t);if(c===Rv)return"sqrt";if(c===Mv||c===kv)return"linear";if(c===Av)return"ordinal";if((r||o||[]).length>2)return Py(c);if(void 0!==r)return Sv(r)?Py(c):Ov(r)?"utc":c!==Pv||null==a&&!Kv(i)?"linear":"diverging";const s=e.map((({value:t})=>t)).filter((t=>void 0!==t));return s.some(Sv)?Py(c):s.some(Ov)?"utc":c!==Pv||null==a&&!Kv(i)?"linear":"diverging"}(t,n,r);if(void 0===r.type&&void 0===r.domain&&void 0===r.range&&null==r.interval&&"fx"!==t&&"fy"!==t&&function({type:t}){return"ordinal"===t||"point"===t||"band"===t||t===my}({type:o})){const e=n.map((({value:t})=>t)).filter((t=>void 0!==t));e.some(Ov)?Dv(`Warning: some data associated with the ${t} scale are dates. Dates are typically associated with a "utc" or "time" scale rather than a "${Ty(o)}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can specify the interval of the ${t} scale (e.g., d3.utcDay), or you can suppress this warning by setting the type of the ${t} scale to "${Ty(o)}".`):e.some(jv)?Dv(`Warning: some data associated with the ${t} scale are strings that appear to be dates (e.g., YYYY-MM-DD). If these strings represent dates, you should parse them to Date objects. Dates are typically associated with a "utc" or "time" scale rather than a "${Ty(o)}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can suppress this warning by setting the type of the ${t} scale to "${Ty(o)}".`):e.some(Ev)&&Dv(`Warning: some data associated with the ${t} scale are strings that appear to be numbers. If these strings represent numbers, you should parse or coerce them to numbers. Numbers are typically associated with a "linear" scale rather than a "${Ty(o)}" scale. If you want to treat this data as ordinal, you can specify the interval of the ${t} scale (e.g., 1 for integers), or you can suppress this warning by setting the type of the ${t} scale to "${Ty(o)}".`)}switch(r.type=o,o){case"diverging":case"diverging-sqrt":case"diverging-pow":case"diverging-log":case"diverging-symlog":case"cyclical":case"sequential":case"linear":case"sqrt":case"threshold":case"quantile":case"pow":case"log":case"symlog":r=Ry(n,r,lv);break;case"identity":switch(Iv.get(t)){case xv:r=Ry(n,r,lv);break;case Av:r=Ry(n,r,ky)}break;case"utc":case"time":r=Ry(n,r,pv)}switch(o){case"diverging":return function(t,n,r){return ly(t,e.scaleDiverging(),hy,n,r)}(t,n,r);case"diverging-sqrt":return function(t,e,n){return dy(t,e,{...n,exponent:.5})}(t,n,r);case"diverging-pow":return dy(t,n,r);case"diverging-log":return function(t,n,{base:r=10,pivot:o=1,domain:i=ry(n,o<0?ev:tv),...a}){return ly(t,e.scaleDivergingLog().base(r=+r),vy,n,{domain:i,pivot:o,...a})}(t,n,r);case"diverging-symlog":return py(t,n,r);case"categorical":case"ordinal":case my:return wy(t,n,r);case"cyclical":case"sequential":case"linear":return function(t,n,r){return ty(t,e.scaleLinear(),n,r)}(t,n,r);case"sqrt":return function(t,e,n){return ey(t,e,{...n,exponent:.5})}(t,n,r);case"threshold":return ny(t,0,r);case"quantile":return function(t,n,{range:r,quantiles:o=(void 0===r?5:(r=[...r]).length),n:i=o,scheme:a="rdylbu",domain:u=sy(n),unknown:c,interpolate:s,reverse:f}){return void 0===r&&(r=void 0!==s?e.quantize(s,i):Iv.get(t)===Pv?Yv(a,i):void 0),u.length>0&&(u=e.scaleQuantile(u,void 0===r?{length:i}:r).quantiles()),ny(t,0,{domain:u,range:r,reverse:f,unknown:c})}(t,n,r);case"quantize":return function(t,n,{range:r,n:o=(void 0===r?5:(r=[...r]).length),scheme:i="rdylbu",domain:a=oy(t,n),unknown:u,interpolate:c,reverse:s}){const[f,l]=e.extent(a);let d;return void 0===r?(d=e.ticks(f,l,o),d[0]<=f&&d.splice(0,1),d[d.length-1]>=l&&d.pop(),o=d.length+1,r=void 0!==c?e.quantize(c,o):Iv.get(t)===Pv?Yv(i,o):void 0):(d=e.quantize(e.interpolateNumber(f,l),o+1).slice(1,-1),f instanceof Date&&(d=d.map((t=>new Date(t))))),Tv(vv(a))<0&&d.reverse(),ny(t,0,{domain:d,range:r,reverse:s,unknown:u})}(t,n,r);case"pow":return ey(t,n,r);case"log":return function(t,n,{base:r=10,domain:o=cy(n),...i}){return ty(t,e.scaleLog().base(r),n,{...i,domain:o})}(t,n,r);case"symlog":return function(t,n,{constant:r=1,...o}){return ty(t,e.scaleSymlog().constant(r),n,o)}(t,n,r);case"utc":return function(t,n,r){return gy(t,e.scaleUtc(),n,r)}(t,n,r);case"time":return function(t,n,r){return gy(t,e.scaleTime(),n,r)}(t,n,r);case"point":return function(t,n,{align:r=.5,padding:o=.5,...i}){return Sy(e.scalePoint().align(r).padding(o),n,i,t)}(t,n,r);case"band":return function(t,n,{align:r=.5,padding:o=.1,paddingInner:i=o,paddingOuter:a=("fx"===t||"fy"===t?0:o),...u}){return Sy(e.scaleBand().align(r).paddingInner(i).paddingOuter(a),n,u,t)}(t,n,r);case"identity":return Iv.get(t)===xv?{type:"identity",scale:e.scaleIdentity()}:{type:"identity"};case void 0:return;default:throw new Error(`unknown scale type: ${o}`)}}(t,void 0===r?void 0:[{hint:r}],{...n})}function Ty(t){return"symbol"==typeof t?t.description:t}const xy={toString:()=>"projection"};function Py(t){switch(t){case xv:return"point";case Pv:return my;default:return"ordinal"}}function Ry(t,{domain:e,...n},r){for(const e of t)void 0!==e.value&&(e.value=r(e.value));return{domain:void 0===e?e:r(e),...n}}function ky(t){return yv(t,Bv)}function My({scale:t,type:e,domain:n,range:r,interpolate:o,interval:i,transform:a,percent:u,pivot:c}){if("identity"===e)return{type:"identity",apply:t=>t,invert:t=>t};const s=t.unknown?t.unknown():void 0;return{type:e,domain:gv(n),...void 0!==r&&{range:gv(r)},...void 0!==a&&{transform:a},...u&&{percent:u},...void 0!==s&&{unknown:s},...void 0!==i&&{interval:i},...void 0!==o&&{interpolate:o},...t.clamp&&{clamp:t.clamp()},...void 0!==c&&{pivot:c,symmetric:!1},...t.base&&{base:t.base()},...t.exponent&&{exponent:t.exponent()},...t.constant&&{constant:t.constant()},...t.align&&{align:t.align(),round:t.round()},...t.padding&&(t.paddingInner?{paddingInner:t.paddingInner(),paddingOuter:t.paddingOuter()}:{padding:t.padding()}),...t.bandwidth&&{bandwidth:t.bandwidth(),step:t.step()},apply:e=>t(e),...t.invert&&{invert:e=>t.invert(e)}}}var Ay,Iy;!function(t){t[t.SCROLL_NONE=0]="SCROLL_NONE",t[t.SCROLL_BACKWARD=1]="SCROLL_BACKWARD",t[t.SCROLL_FORWARD=2]="SCROLL_FORWARD"}(Ay||(Ay={})),function(t){t[t.TOP=0]="TOP",t[t.RIGHT=1]="RIGHT",t[t.BOTTOM=2]="BOTTOM",t[t.LEFT=3]="LEFT"}(Iy||(Iy={}));var Cy="red";function Ly(t){try{var e=Object.keys(t)[0];return function(t={}){let e;for(const n in t)if(Iv.has(n)&&mv(t[n])){if(void 0!==e)throw new Error("ambiguous scale definition; multiple scales found");e=My(Ey(n,t[n]))}if(void 0===e)throw new Error("invalid scale definition; no scale found");return e}((n={},r=e,o=Object.assign(Object.assign({},t[e]),{clamp:!0}),(r=u(r))in n?Object.defineProperty(n,r,{value:o,enumerable:!0,configurable:!0,writable:!0}):n[r]=o,n))}catch(t){return null}var n,r,o}function Ny(t,e,n,o){Object.entries(function(t,e){var n={};return e.hasOwnProperty("opacity")?(n.fill=function(){return e.opacity.baseColor||Cy},n["fill-opacity"]=function(e){return null==t?void 0:t.apply(e)}):n.fill=function(e){return"string"==typeof e&&(null==e?void 0:e.startsWith("#"))?e:null==t?void 0:t.apply(e)},n}(e,n)).forEach((function(e){var n=r(e,2),i=n[0],a=n[1];return t.style(i,(function(t){return a(o?t[o]:t)}))}))}var By=TypeError,Dy=mo,Gy=s,Fy=Yd,qy=rt,_y=j,Wy=kr,$y=function(t){if(t>9007199254740991)throw By("Maximum allowed index exceeded");return t},zy=_l,Yy=Qd,Uy=zp,Hy=Mt,Vy=ye("isConcatSpreadable"),Ky=Hy>=51||!Gy((function(){var t=[];return t[Vy]=!1,t.concat()[0]!==t})),Jy=function(t){if(!qy(t))return!1;var e=t[Vy];return void 0!==e?!!e:Fy(t)};Dy({target:"Array",proto:!0,arity:1,forced:!Ky||!Uy("concat")},{concat:function(t){var e,n,r,o,i,a=_y(this),u=Yy(a,0),c=0;for(e=-1,r=arguments.length;e<r;e++)if(Jy(i=-1===e?a:arguments[e]))for(o=Wy(i),$y(c+o),n=0;n<o;n++,c++)n in i&&zy(u,c,i[n]);else $y(c+1),zy(u,c++,i);return u.length=c,u}});var Xy=mt,Qy=Ut,Zy=wu,tg=nu,eg=es;mo({target:"Promise",stat:!0,forced:cs},{allSettled:function(t){var e=this,n=Zy.f(e),r=n.resolve,o=n.reject,i=tg((function(){var n=Qy(e.resolve),o=[],i=0,a=1;eg(t,(function(t){var u=i++,c=!1;a++,Xy(n,e,t).then((function(t){c||(c=!0,o[u]={status:"fulfilled",value:t},--a||r(o))}),(function(t){c||(c=!0,o[u]={status:"rejected",reason:t},--a||r(o))}))})),--a||r(o)}));return i.error&&o(i.value),n.promise}});var ng=nf,rg=Mn,og=$d,ig=Xi,ag=hi,ug=g,cg=es,sg=nl,fg=rl,lg=li,dg=f,pg=Od.fastKey,hg=sn.set,vg=sn.getterFor,yg={getConstructor:function(t,e,n,r){var o=t((function(t,o){ag(t,i),hg(t,{type:e,index:ng(null),first:void 0,last:void 0,size:0}),dg||(t.size=0),ug(o)||cg(o,t[r],{that:t,AS_ENTRIES:n})})),i=o.prototype,a=vg(e),u=function(t,e,n){var r,o,i=a(t),u=c(t,e);return u?u.value=n:(i.last=u={index:o=pg(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=u),r&&(r.next=u),dg?i.size++:t.size++,"F"!==o&&(i.index[o]=u)),t},c=function(t,e){var n,r=a(t),o=pg(e);if("F"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return og(i,{clear:function(){for(var t=a(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,dg?t.size=0:this.size=0},delete:function(t){var e=this,n=a(e),r=c(e,t);if(r){var o=r.next,i=r.previous;delete n.index[r.index],r.removed=!0,i&&(i.next=o),o&&(o.previous=i),n.first==r&&(n.first=o),n.last==r&&(n.last=i),dg?n.size--:e.size--}return!!r},forEach:function(t){for(var e,n=a(this),r=ig(t,arguments.length>1?arguments[1]:void 0);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!c(this,t)}}),og(i,n?{get:function(t){var e=c(this,t);return e&&e.value},set:function(t,e){return u(this,0===t?0:t,e)}}:{add:function(t){return u(this,t=0===t?0:t,t)}}),dg&&rg(i,"size",{configurable:!0,get:function(){return a(this).size}}),o},setStrong:function(t,e,n){var r=e+" Iterator",o=vg(e),i=vg(r);sg(t,e,(function(t,e){hg(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?fg("keys"==e?n.key:"values"==e?n.value:[n.key,n.value],!1):(t.target=void 0,fg(void 0,!0))}),n?"entries":"values",!n,!0),lg(e)}};_d("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),yg);var gg=Wt,mg=TypeError,bg=Hl,wg=Math.floor,Sg=function(t,e){var n=t.length,r=wg(n/2);return n<8?Og(t,e):jg(t,Sg(bg(t,0,r),e),Sg(bg(t,r),e),e)},Og=function(t,e){for(var n,r,o=t.length,i=1;i<o;){for(r=i,n=t[i];r&&e(t[r-1],n)>0;)t[r]=t[--r];r!==i++&&(t[r]=n)}return t},jg=function(t,e,n,r){for(var o=e.length,i=n.length,a=0,u=0;a<o||u<i;)t[a+u]=a<o&&u<i?r(e[a],n[u])<=0?e[a++]:n[u++]:a<o?e[a++]:n[u++];return t},Eg=Sg,Tg=jt.match(/firefox\/(\d+)/i),xg=!!Tg&&+Tg[1],Pg=/MSIE|Trident/.test(jt),Rg=jt.match(/AppleWebKit\/(\d+)\./),kg=!!Rg&&+Rg[1],Mg=mo,Ag=y,Ig=Ut,Cg=j,Lg=kr,Ng=function(t,e){if(!delete t[e])throw mg("Cannot delete property "+gg(e)+" of "+gg(t))},Bg=bl,Dg=s,Gg=Eg,Fg=ah,qg=xg,_g=Pg,Wg=Mt,$g=kg,zg=[],Yg=Ag(zg.sort),Ug=Ag(zg.push),Hg=Dg((function(){zg.sort(void 0)})),Vg=Dg((function(){zg.sort(null)})),Kg=Fg("sort"),Jg=!Dg((function(){if(Wg)return Wg<70;if(!(qg&&qg>3)){if(_g)return!0;if($g)return $g<603;var t,e,n,r,o="";for(t=65;t<76;t++){switch(e=String.fromCharCode(t),t){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(r=0;r<47;r++)zg.push({k:e+r,v:n})}for(zg.sort((function(t,e){return e.v-t.v})),r=0;r<zg.length;r++)e=zg[r].k.charAt(0),o.charAt(o.length-1)!==e&&(o+=e);return"DGBEFHACIJK"!==o}}));Mg({target:"Array",proto:!0,forced:Hg||!Vg||!Kg||!Jg},{sort:function(t){void 0!==t&&Ig(t);var e=Cg(this);if(Jg)return void 0===t?Yg(e):Yg(e,t);var n,r,o=[],i=Lg(e);for(r=0;r<i;r++)r in e&&Ug(o,e[r]);for(Gg(o,function(t){return function(e,n){return void 0===n?-1:void 0===e?1:void 0!==t?+t(e,n)||0:Bg(e)>Bg(n)?1:-1}}(t)),n=Lg(o),r=0;r<n;)e[r]=o[r++];for(;r<i;)Ng(e,r++);return e}}),new WeakSet,new WeakSet;var Xg=Lr.includes,Qg=df;mo({target:"Array",proto:!0,forced:s((function(){return!Array(1).includes()}))},{includes:function(t){return Xg(this,t,arguments.length>1?arguments[1]:void 0)}}),Qg("includes");var Zg=ap.map;mo({target:"Array",proto:!0,forced:!zp("map")},{map:function(t){return Zg(this,t,arguments.length>1?arguments[1]:void 0)}});var tm=ap.filter;mo({target:"Array",proto:!0,forced:!zp("filter")},{filter:function(t){return tm(this,t,arguments.length>1?arguments[1]:void 0)}});var em=Ut,nm=j,rm=Qn,om=kr,im=TypeError,am=function(t){return function(e,n,r,o){em(n);var i=nm(e),a=rm(i),u=om(i),c=t?u-1:0,s=t?-1:1;if(r<2)for(;;){if(c in a){o=a[c],c+=s;break}if(c+=s,t?c<0:u<=c)throw im("Reduce of empty array with no initial value")}for(;t?c>=0:u>c;c+=s)c in a&&(o=n(o,a[c],c,i));return o}},um={left:am(!1),right:am(!0)}.left;mo({target:"Array",proto:!0,forced:!Ho&&Mt>79&&Mt<83||!ah("reduce")},{reduce:function(t){var e=arguments.length;return um(this,t,e,e>1?arguments[1]:void 0)}});var cm=vt,sm=_c,fm=Xi,lm=mt,dm=j,pm=function(t,e,n,r){try{return r?e(cm(n)[0],n[1]):e(n)}catch(e){sm(t,"throw",e)}},hm=Ec,vm=Ii,ym=kr,gm=_l,mm=Dc,bm=Mc,wm=Array,Sm=function(t){var e=dm(t),n=vm(this),r=arguments.length,o=r>1?arguments[1]:void 0,i=void 0!==o;i&&(o=fm(o,r>2?arguments[2]:void 0));var a,u,c,s,f,l,d=bm(e),p=0;if(!d||this===wm&&hm(d))for(a=ym(e),u=n?new this(a):wm(a);a>p;p++)l=i?o(e[p],p):e[p],gm(u,p,l);else for(f=(s=mm(e,d)).next,u=n?new this:[];!(c=lm(f,s)).done;p++)l=i?pm(s,o,[c.value,p],!0):c.value,gm(u,p,l);return u.length=p,u};mo({target:"Array",stat:!0,forced:!as((function(t){Array.from(t)}))},{from:Sm});var Om="\t\n\v\f\r    â€â€‚         âŸã€€\u2028\u2029\ufeff",jm=w,Em=bl,Tm=Om,xm=y("".replace),Pm=RegExp("^["+Tm+"]+"),Rm=RegExp("(^|[^"+Tm+"])["+Tm+"]+$"),km=function(t){return function(e){var n=Em(jm(e));return 1&t&&(n=xm(n,Pm,"")),2&t&&(n=xm(n,Rm,"$1")),n}},Mm={start:km(1),end:km(2),trim:km(3)},Am=F,Im=s,Cm=y,Lm=bl,Nm=Mm.trim,Bm=Om,Dm=Am.parseInt,Gm=Am.Symbol,Fm=Gm&&Gm.iterator,qm=/^[+-]?0x/i,_m=Cm(qm.exec),Wm=8!==Dm(Bm+"08")||22!==Dm(Bm+"0x16")||Fm&&!Im((function(){Dm(Object(Fm))}))?function(t,e){var n=Nm(Lm(t));return Dm(n,e>>>0||(_m(qm,n)?16:10))}:Dm;mo({global:!0,forced:parseInt!=Wm},{parseInt:Wm}),new WeakSet,new WeakSet;var $m=I.PROPER,zm=s,Ym=Om,Um=Mm.trim;mo({target:"String",proto:!0,forced:function(t){return zm((function(){return!!Ym[t]()||"â€‹Â…á Ž"!=="â€‹Â…á Ž"[t]()||$m&&Ym[t].name!==t}))}("trim")},{trim:function(){return Um(this)}});new WeakSet,new WeakSet;var Hm,Vm,Km;new WeakSet;var Jm=".ch-plugin-legend-lite",Xm={enabled:!0,itemSelector:null,width:10,height:10,gutter:2,radius:0,includeBlank:!1},Qm=function(){function e(t){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),Hm.add(this),this.name="LegendLite",this.calendar=t,this.root=null,this.shown=!1,this.options=Xm}var r,o,i;return r=e,o=[{key:"setup",value:function(t){this.options=Object.assign(Object.assign({},this.options),t)}},{key:"paint",value:function(){var e=this.options,n=e.enabled,r=e.itemSelector;if(!n||r&&t.select(r).empty())return this.destroy();this.shown=!0,this.root=t.select(r||this.calendar.options.options.itemSelector),this.root.select(Jm).empty()?this.root=this.root.append("div").attr("class",Jm.slice(1)):this.root=this.root.select(Jm);var o=dh(this,Hm,"m",Vm).call(this);return this.root.selectAll("*").remove(),this.root.append((function(){return o.node()})),Promise.resolve()}},{key:"destroy",value:function(){return null!==this.root&&(this.root.remove(),this.root=null),Promise.resolve()}}],o&&n(r.prototype,o),i&&n(r,i),Object.defineProperty(r,"prototype",{writable:!1}),e}();return Hm=new WeakSet,Vm=function(){var e=this,n=t.create("svg"),r=Ly(this.calendar.options.options.scale),i=this.options,a=i.width,u=i.height,c=i.gutter,s=i.includeBlank,f=o(r.range);return s&&f.unshift(null),n.attr("class",".ch-container".slice(1)).attr("width",f.length*a+(f.length-1)*c).attr("height",u),n.selectAll("rect").data(f).join((function(t){return t.append("rect").call((function(t){return dh(e,Hm,"m",Km).call(e,t,r)}))}),(function(t){return t.selectAll("rect").call((function(t){return dh(e,Hm,"m",Km).call(e,t,r)}))})),n},Km=function(t,e){var n=this,r=this.options,o=r.width,i=r.height,a=r.radius,u=r.gutter;return t.attr("width",o).attr("height",i).attr("class","".concat(".ch-subdomain".slice(1),"-bg")).attr("rx",a).attr("ry",a).attr("x",(function(t,e){return e*(o+u)})).attr("y",0).call((function(t){Ny(t,e,n.calendar.options.options.scale)}))},Qm}));//# sourceMappingURL=LegendLite.min.js.map diff --git a/static/javascripts/cal-heatmap/plugins/LegendLite.min.js.map b/static/javascripts/cal-heatmap/plugins/LegendLite.min.js.map new file mode 100644 index 000000000..119b836a2 --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/LegendLite.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"LegendLite.min.js","sources":["../../node_modules/core-js/internals/fails.js","../../node_modules/core-js/internals/descriptors.js","../../node_modules/core-js/internals/function-bind-native.js","../../node_modules/core-js/internals/function-uncurry-this.js","../../node_modules/core-js/internals/is-null-or-undefined.js","../../node_modules/core-js/internals/require-object-coercible.js","../../node_modules/core-js/internals/to-object.js","../../node_modules/core-js/internals/has-own-property.js","../../node_modules/core-js/internals/function-name.js","../../node_modules/core-js/internals/document-all.js","../../node_modules/core-js/internals/is-callable.js","../../node_modules/core-js/internals/global.js","../../node_modules/core-js/internals/define-global-property.js","../../node_modules/core-js/internals/shared-store.js","../../node_modules/core-js/internals/inspect-source.js","../../node_modules/core-js/internals/engine-v8-version.js","../../node_modules/core-js/internals/weak-map-basic-detection.js","../../node_modules/core-js/internals/is-object.js","../../node_modules/core-js/internals/document-create-element.js","../../node_modules/core-js/internals/ie8-dom-define.js","../../node_modules/core-js/internals/v8-prototype-define-bug.js","../../node_modules/core-js/internals/an-object.js","../../node_modules/core-js/internals/function-call.js","../../node_modules/core-js/internals/get-built-in.js","../../node_modules/core-js/internals/object-is-prototype-of.js","../../node_modules/core-js/internals/engine-user-agent.js","../../node_modules/core-js/internals/symbol-constructor-detection.js","../../node_modules/core-js/internals/use-symbol-as-uid.js","../../node_modules/core-js/internals/is-symbol.js","../../node_modules/core-js/internals/try-to-string.js","../../node_modules/core-js/internals/a-callable.js","../../node_modules/core-js/internals/get-method.js","../../node_modules/core-js/internals/ordinary-to-primitive.js","../../node_modules/core-js/internals/shared.js","../../node_modules/core-js/internals/uid.js","../../node_modules/core-js/internals/well-known-symbol.js","../../node_modules/core-js/internals/to-primitive.js","../../node_modules/core-js/internals/to-property-key.js","../../node_modules/core-js/internals/object-define-property.js","../../node_modules/core-js/internals/create-property-descriptor.js","../../node_modules/core-js/internals/internal-state.js","../../node_modules/core-js/internals/create-non-enumerable-property.js","../../node_modules/core-js/internals/shared-key.js","../../node_modules/core-js/internals/hidden-keys.js","../../node_modules/core-js/internals/make-built-in.js","../../node_modules/core-js/internals/define-built-in-accessor.js","../../node_modules/core-js/modules/es.function.name.js","../../node_modules/core-js/internals/object-property-is-enumerable.js","../../node_modules/core-js/internals/classof-raw.js","../../node_modules/core-js/internals/indexed-object.js","../../node_modules/core-js/internals/to-indexed-object.js","../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../node_modules/core-js/internals/define-built-in.js","../../node_modules/core-js/internals/math-trunc.js","../../node_modules/core-js/internals/to-integer-or-infinity.js","../../node_modules/core-js/internals/to-absolute-index.js","../../node_modules/core-js/internals/to-length.js","../../node_modules/core-js/internals/length-of-array-like.js","../../node_modules/core-js/internals/array-includes.js","../../node_modules/core-js/internals/object-keys-internal.js","../../node_modules/core-js/internals/enum-bug-keys.js","../../node_modules/core-js/internals/object-get-own-property-names.js","../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../node_modules/core-js/internals/own-keys.js","../../node_modules/core-js/internals/copy-constructor-properties.js","../../node_modules/core-js/internals/is-forced.js","../../node_modules/core-js/internals/export.js","../../node_modules/core-js/internals/object-keys.js","../../node_modules/core-js/internals/object-assign.js","../../node_modules/core-js/modules/es.object.assign.js","../../node_modules/core-js/internals/to-string-tag-support.js","../../node_modules/core-js/internals/classof.js","../../node_modules/core-js/internals/object-to-string.js","../../node_modules/core-js/modules/es.object.to-string.js","../../node_modules/core-js/internals/engine-is-node.js","../../node_modules/core-js/internals/function-uncurry-this-accessor.js","../../node_modules/core-js/internals/a-possible-prototype.js","../../node_modules/core-js/internals/object-set-prototype-of.js","../../node_modules/core-js/internals/set-to-string-tag.js","../../node_modules/core-js/internals/set-species.js","../../node_modules/core-js/internals/an-instance.js","../../node_modules/core-js/internals/is-constructor.js","../../node_modules/core-js/internals/task.js","../../node_modules/core-js/internals/a-constructor.js","../../node_modules/core-js/internals/species-constructor.js","../../node_modules/core-js/internals/function-apply.js","../../node_modules/core-js/internals/function-uncurry-this-clause.js","../../node_modules/core-js/internals/function-bind-context.js","../../node_modules/core-js/internals/html.js","../../node_modules/core-js/internals/array-slice.js","../../node_modules/core-js/internals/validate-arguments-length.js","../../node_modules/core-js/internals/engine-is-ios.js","../../node_modules/core-js/internals/queue.js","../../node_modules/core-js/internals/microtask.js","../../node_modules/core-js/internals/engine-is-ios-pebble.js","../../node_modules/core-js/internals/engine-is-webos-webkit.js","../../node_modules/core-js/internals/perform.js","../../node_modules/core-js/internals/promise-native-constructor.js","../../node_modules/core-js/internals/engine-is-deno.js","../../node_modules/core-js/internals/engine-is-browser.js","../../node_modules/core-js/internals/promise-constructor-detection.js","../../node_modules/core-js/internals/new-promise-capability.js","../../node_modules/core-js/modules/es.promise.constructor.js","../../node_modules/core-js/internals/host-report-errors.js","../../node_modules/core-js/internals/iterators.js","../../node_modules/core-js/internals/is-array-iterator-method.js","../../node_modules/core-js/internals/get-iterator-method.js","../../node_modules/core-js/internals/get-iterator.js","../../node_modules/core-js/internals/iterator-close.js","../../node_modules/core-js/internals/iterate.js","../../node_modules/core-js/internals/check-correctness-of-iteration.js","../../node_modules/core-js/internals/promise-statics-incorrect-iteration.js","../../node_modules/core-js/modules/es.promise.all.js","../../node_modules/core-js/modules/es.promise.catch.js","../../node_modules/core-js/modules/es.promise.race.js","../../node_modules/core-js/modules/es.promise.reject.js","../../node_modules/core-js/internals/promise-resolve.js","../../node_modules/core-js/modules/es.promise.resolve.js","../../node_modules/core-js/internals/object-define-properties.js","../../node_modules/core-js/internals/object-create.js","../../node_modules/core-js/internals/add-to-unscopables.js","../../node_modules/core-js/internals/iterators-core.js","../../node_modules/core-js/internals/correct-prototype-getter.js","../../node_modules/core-js/internals/object-get-prototype-of.js","../../node_modules/core-js/internals/iterator-create-constructor.js","../../node_modules/core-js/internals/iterator-define.js","../../node_modules/core-js/internals/create-iter-result-object.js","../../node_modules/core-js/modules/es.array.iterator.js","../../node_modules/core-js/internals/to-string.js","../../node_modules/core-js/internals/string-multibyte.js","../../node_modules/core-js/modules/es.string.iterator.js","../../node_modules/core-js/internals/create-property.js","../../node_modules/core-js/internals/array-slice-simple.js","../../node_modules/core-js/internals/object-get-own-property-names-external.js","../../node_modules/core-js/internals/array-buffer-non-extensible.js","../../node_modules/core-js/internals/object-is-extensible.js","../../node_modules/core-js/internals/freezing.js","../../node_modules/core-js/internals/internal-metadata.js","../../node_modules/core-js/internals/inherit-if-required.js","../../node_modules/core-js/internals/collection.js","../../node_modules/core-js/internals/define-built-ins.js","../../node_modules/core-js/internals/is-array.js","../../node_modules/core-js/internals/array-species-constructor.js","../../node_modules/core-js/internals/array-species-create.js","../../node_modules/core-js/internals/array-iteration.js","../../node_modules/core-js/internals/collection-weak.js","../../node_modules/core-js/modules/es.weak-set.constructor.js","../../node_modules/core-js/internals/dom-iterables.js","../../node_modules/core-js/internals/dom-token-list-prototype.js","../../node_modules/core-js/modules/web.dom-collections.iterator.js","../../node_modules/core-js/internals/array-method-has-species-support.js","../../node_modules/core-js/modules/es.array.slice.js","../../node_modules/core-js/internals/array-method-is-strict.js","../../node_modules/core-js/modules/es.array.join.js","../../node_modules/tslib/tslib.es6.js","../../node_modules/core-js/modules/es.object.keys.js","../../node_modules/core-js/internals/is-regexp.js","../../node_modules/core-js/modules/es.string.starts-with.js","../../node_modules/core-js/internals/not-a-regexp.js","../../node_modules/core-js/internals/correct-is-regexp-logic.js","../../node_modules/core-js/internals/array-for-each.js","../../node_modules/core-js/modules/web.dom-collections.for-each.js","../../node_modules/core-js/internals/object-to-array.js","../../node_modules/core-js/modules/es.object.entries.js","../../node_modules/@observablehq/plot/src/defined.js","../../node_modules/isoformat/src/parse.js","../../node_modules/@observablehq/plot/src/time.js","../../node_modules/@observablehq/plot/src/options.js","../../node_modules/@observablehq/plot/src/scales/index.js","../../node_modules/@observablehq/plot/src/symbol.js","../../node_modules/@observablehq/plot/src/warnings.js","../../node_modules/@observablehq/plot/src/scales/schemes.js","../../node_modules/@observablehq/plot/src/scales/quantitative.js","../../node_modules/@observablehq/plot/src/scales/diverging.js","../../node_modules/@observablehq/plot/src/scales/temporal.js","../../node_modules/@observablehq/plot/src/scales/ordinal.js","../../node_modules/@observablehq/plot/src/scales.js","../../../src/constant.ts","../../../src/scale.ts","../../node_modules/core-js/internals/does-not-exceed-safe-integer.js","../../node_modules/core-js/modules/es.array.concat.js","../../node_modules/core-js/modules/es.promise.all-settled.js","../../node_modules/core-js/internals/collection-strong.js","../../node_modules/core-js/modules/es.map.constructor.js","../../node_modules/core-js/internals/delete-property-or-throw.js","../../node_modules/core-js/internals/array-sort.js","../../node_modules/core-js/internals/engine-ff-version.js","../../node_modules/core-js/internals/engine-is-ie-or-edge.js","../../node_modules/core-js/internals/engine-webkit-version.js","../../node_modules/core-js/modules/es.array.sort.js","../../node_modules/core-js/modules/es.array.includes.js","../../node_modules/core-js/modules/es.array.map.js","../../node_modules/core-js/modules/es.array.filter.js","../../node_modules/core-js/internals/array-reduce.js","../../node_modules/core-js/modules/es.array.reduce.js","../../node_modules/core-js/internals/call-with-safe-iteration-closing.js","../../node_modules/core-js/internals/array-from.js","../../node_modules/core-js/modules/es.array.from.js","../../node_modules/core-js/internals/whitespaces.js","../../node_modules/core-js/internals/string-trim.js","../../node_modules/core-js/internals/number-parse-int.js","../../node_modules/core-js/modules/es.parse-int.js","../../../src/calendar/DomainCollection.ts","../../node_modules/core-js/internals/string-trim-forced.js","../../node_modules/core-js/modules/es.string.trim.js","../../../src/calendar/CalendarPainter.ts","../../../src/plugins/LegendLite.ts","../../../src/subDomain/SubDomainPainter.ts"],"sourcesContent":["module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.30.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineBuiltInAccessor(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var classof = require('../internals/classof-raw');\n\nmodule.exports = typeof process != 'undefined' && classof(process) == 'process';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","module.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","module.exports = {};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (state) {\n return state.frozen || (state.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) splice(this.entries, index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n defineBuiltIns(Prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && hasOwn(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && hasOwn(data, state.id);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return Constructor;\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.es/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: FORCED }, {\n join: function join(separator) {\n return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport default {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __createBinding,\r\n __exportStar,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n __classPrivateFieldIn,\r\n};\r\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar nativeStartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return nativeStartsWith\n ? nativeStartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","var isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","import {ascending, descending} from \"d3\";\n\nexport function defined(x) {\n return x != null && !Number.isNaN(x);\n}\n\nexport function ascendingDefined(a, b) {\n return +defined(b) - +defined(a) || ascending(a, b);\n}\n\nexport function descendingDefined(a, b) {\n return +defined(b) - +defined(a) || descending(a, b);\n}\n\nexport function nonempty(x) {\n return x != null && `${x}` !== \"\";\n}\n\nexport function finite(x) {\n return isFinite(x) ? x : NaN;\n}\n\nexport function positive(x) {\n return x > 0 && isFinite(x) ? x : NaN;\n}\n\nexport function negative(x) {\n return x < 0 && isFinite(x) ? x : NaN;\n}\n","const re = /^(?:[-+]\\d{2})?\\d{4}(?:-\\d{2}(?:-\\d{2})?)?(?:T\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{3})?)?(?:Z|[-+]\\d{2}:?\\d{2})?)?$/;\n\nexport default function parse(string, fallback) {\n if (!re.test(string += \"\")) return typeof fallback === \"function\" ? fallback(string) : fallback;\n return new Date(string);\n}\n","import {utcSecond, utcMinute, utcHour, utcDay, utcWeek, utcMonth, utcYear} from \"d3\";\nimport {utcMonday, utcTuesday, utcWednesday, utcThursday, utcFriday, utcSaturday, utcSunday} from \"d3\";\nimport {timeSecond, timeMinute, timeHour, timeDay, timeWeek, timeMonth, timeYear} from \"d3\";\nimport {timeMonday, timeTuesday, timeWednesday, timeThursday, timeFriday, timeSaturday, timeSunday} from \"d3\";\n\nconst timeIntervals = new Map([\n [\"second\", timeSecond],\n [\"minute\", timeMinute],\n [\"hour\", timeHour],\n [\"day\", timeDay],\n [\"week\", timeWeek],\n [\"month\", timeMonth],\n [\"quarter\", timeMonth.every(3)],\n [\"half\", timeMonth.every(6)],\n [\"year\", timeYear],\n [\"monday\", timeMonday],\n [\"tuesday\", timeTuesday],\n [\"wednesday\", timeWednesday],\n [\"thursday\", timeThursday],\n [\"friday\", timeFriday],\n [\"saturday\", timeSaturday],\n [\"sunday\", timeSunday]\n]);\n\nconst utcIntervals = new Map([\n [\"second\", utcSecond],\n [\"minute\", utcMinute],\n [\"hour\", utcHour],\n [\"day\", utcDay],\n [\"week\", utcWeek],\n [\"month\", utcMonth],\n [\"quarter\", utcMonth.every(3)],\n [\"half\", utcMonth.every(6)],\n [\"year\", utcYear],\n [\"monday\", utcMonday],\n [\"tuesday\", utcTuesday],\n [\"wednesday\", utcWednesday],\n [\"thursday\", utcThursday],\n [\"friday\", utcFriday],\n [\"saturday\", utcSaturday],\n [\"sunday\", utcSunday]\n]);\n\nexport function maybeTimeInterval(interval) {\n const i = timeIntervals.get(`${interval}`.toLowerCase());\n if (!i) throw new Error(`unknown interval: ${interval}`);\n return i;\n}\n\nexport function maybeUtcInterval(interval) {\n const i = utcIntervals.get(`${interval}`.toLowerCase());\n if (!i) throw new Error(`unknown interval: ${interval}`);\n return i;\n}\n","import {parse as isoParse} from \"isoformat\";\nimport {color, descending, range as rangei, quantile} from \"d3\";\nimport {maybeTimeInterval, maybeUtcInterval} from \"./time.js\";\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray\nexport const TypedArray = Object.getPrototypeOf(Uint8Array);\nconst objectToString = Object.prototype.toString;\n\nexport function valueof(data, value, type) {\n const valueType = typeof value;\n return valueType === \"string\"\n ? maybeTypedMap(data, field(value), type)\n : valueType === \"function\"\n ? maybeTypedMap(data, value, type)\n : valueType === \"number\" || value instanceof Date || valueType === \"boolean\"\n ? map(data, constant(value), type)\n : typeof value?.transform === \"function\"\n ? maybeTypedArrayify(value.transform(data), type)\n : maybeTypedArrayify(value, type);\n}\n\nfunction maybeTypedMap(data, f, type) {\n return map(data, type?.prototype instanceof TypedArray ? floater(f) : f, type);\n}\n\nfunction maybeTypedArrayify(data, type) {\n return type === undefined\n ? arrayify(data) // preserve undefined type\n : data instanceof type\n ? data\n : type.prototype instanceof TypedArray && !(data instanceof TypedArray)\n ? type.from(data, coerceNumber)\n : type.from(data);\n}\n\nfunction floater(f) {\n return (d, i) => coerceNumber(f(d, i));\n}\n\nexport const field = (name) => (d) => d[name];\nexport const indexOf = {transform: range};\nexport const identity = {transform: (d) => d};\nexport const zero = () => 0;\nexport const one = () => 1;\nexport const yes = () => true;\nexport const string = (x) => (x == null ? x : `${x}`);\nexport const number = (x) => (x == null ? x : +x);\nexport const boolean = (x) => (x == null ? x : !!x);\nexport const first = (x) => (x ? x[0] : undefined);\nexport const second = (x) => (x ? x[1] : undefined);\nexport const third = (x) => (x ? x[2] : undefined);\nexport const constant = (x) => () => x;\n\n// Converts a string like “p25†into a function that takes an index I and an\n// accessor function f, returning the corresponding percentile value.\nexport function percentile(reduce) {\n const p = +`${reduce}`.slice(1) / 100;\n return (I, f) => quantile(I, p, f);\n}\n\n// If the values are specified as a typed array, no coercion is required.\nexport function coerceNumbers(values) {\n return values instanceof TypedArray ? values : map(values, coerceNumber, Float64Array);\n}\n\n// Unlike Mark’s number, here we want to convert null and undefined to NaN since\n// the result will be stored in a Float64Array and we don’t want null to be\n// coerced to zero. We use Number instead of unary + to allow BigInt coercion.\nfunction coerceNumber(x) {\n return x == null ? NaN : Number(x);\n}\n\nexport function coerceDates(values) {\n return map(values, coerceDate);\n}\n\n// When coercing strings to dates, we only want to allow the ISO 8601 format\n// since the built-in string parsing of the Date constructor varies across\n// browsers. (In the future, this could be made more liberal if desired, though\n// it is still generally preferable to do date parsing yourself explicitly,\n// rather than rely on Plot.) Any non-string values are coerced to number first\n// and treated as milliseconds since UNIX epoch.\nexport function coerceDate(x) {\n return x instanceof Date && !isNaN(x)\n ? x\n : typeof x === \"string\"\n ? isoParse(x)\n : x == null || isNaN((x = +x))\n ? undefined\n : new Date(x);\n}\n\n// Some channels may allow a string constant to be specified; to differentiate\n// string constants (e.g., \"red\") from named fields (e.g., \"date\"), this\n// function tests whether the given value is a CSS color string and returns a\n// tuple [channel, constant] where one of the two is undefined, and the other is\n// the given value. If you wish to reference a named field that is also a valid\n// CSS color, use an accessor (d => d.red) instead.\nexport function maybeColorChannel(value, defaultValue) {\n if (value === undefined) value = defaultValue;\n return value === null ? [undefined, \"none\"] : isColor(value) ? [undefined, value] : [value, undefined];\n}\n\n// Similar to maybeColorChannel, this tests whether the given value is a number\n// indicating a constant, and otherwise assumes that it’s a channel value.\nexport function maybeNumberChannel(value, defaultValue) {\n if (value === undefined) value = defaultValue;\n return value === null || typeof value === \"number\" ? [undefined, value] : [value, undefined];\n}\n\n// Validates the specified optional string against the allowed list of keywords.\nexport function maybeKeyword(input, name, allowed) {\n if (input != null) return keyword(input, name, allowed);\n}\n\n// Validates the specified required string against the allowed list of keywords.\nexport function keyword(input, name, allowed) {\n const i = `${input}`.toLowerCase();\n if (!allowed.includes(i)) throw new Error(`invalid ${name}: ${input}`);\n return i;\n}\n\n// Promotes the specified data to an array as needed.\nexport function arrayify(data) {\n return data == null || data instanceof Array || data instanceof TypedArray ? data : Array.from(data);\n}\n\n// An optimization of type.from(values, f): if the given values are already an\n// instanceof the desired array type, the faster values.map method is used.\nexport function map(values, f, type = Array) {\n return values == null ? values : values instanceof type ? values.map(f) : type.from(values, f);\n}\n\n// An optimization of type.from(values): if the given values are already an\n// instanceof the desired array type, the faster values.slice method is used.\nexport function slice(values, type = Array) {\n return values instanceof type ? values.slice() : type.from(values);\n}\n\n// Disambiguates an options object (e.g., {y: \"x2\"}) from a primitive value.\nexport function isObject(option) {\n return option?.toString === objectToString;\n}\n\n// Disambiguates a scale options object (e.g., {color: {type: \"linear\"}}) from\n// some other option (e.g., {color: \"red\"}). When creating standalone legends,\n// this is used to test whether a scale is defined; this should be consistent\n// with inferScaleType when there are no channels associated with the scale, and\n// if this returns true, then normalizeScale must return non-null.\nexport function isScaleOptions(option) {\n return isObject(option) && (option.type !== undefined || option.domain !== undefined);\n}\n\n// Disambiguates an options object (e.g., {y: \"x2\"}) from a channel value\n// definition expressed as a channel transform (e.g., {transform: …}).\nexport function isOptions(option) {\n return isObject(option) && typeof option.transform !== \"function\";\n}\n\n// Disambiguates a sort transform (e.g., {sort: \"date\"}) from a channel domain\n// sort definition (e.g., {sort: {y: \"x\"}}).\nexport function isDomainSort(sort) {\n return isOptions(sort) && sort.value === undefined && sort.channel === undefined;\n}\n\n// For marks specified either as [0, x] or [x1, x2], such as areas and bars.\nexport function maybeZero(x, x1, x2, x3 = identity) {\n if (x1 === undefined && x2 === undefined) {\n // {x} or {}\n (x1 = 0), (x2 = x === undefined ? x3 : x);\n } else if (x1 === undefined) {\n // {x, x2} or {x2}\n x1 = x === undefined ? 0 : x;\n } else if (x2 === undefined) {\n // {x, x1} or {x1}\n x2 = x === undefined ? 0 : x;\n }\n return [x1, x2];\n}\n\n// For marks that have x and y channels (e.g., cell, dot, line, text).\nexport function maybeTuple(x, y) {\n return x === undefined && y === undefined ? [first, second] : [x, y];\n}\n\n// A helper for extracting the z channel, if it is variable. Used by transforms\n// that require series, such as moving average and normalize.\nexport function maybeZ({z, fill, stroke} = {}) {\n if (z === undefined) [z] = maybeColorChannel(fill);\n if (z === undefined) [z] = maybeColorChannel(stroke);\n return z;\n}\n\n// Returns a Uint32Array with elements [0, 1, 2, … data.length - 1].\nexport function range(data) {\n const n = data.length;\n const r = new Uint32Array(n);\n for (let i = 0; i < n; ++i) r[i] = i;\n return r;\n}\n\n// Returns a filtered range of data given the test function.\nexport function where(data, test) {\n return range(data).filter((i) => test(data[i], i, data));\n}\n\n// Returns an array [values[index[0]], values[index[1]], …].\nexport function take(values, index) {\n return map(index, (i) => values[i]);\n}\n\n// Based on InternMap (d3.group).\nexport function keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n\nexport function maybeInput(key, options) {\n if (options[key] !== undefined) return options[key];\n switch (key) {\n case \"x1\":\n case \"x2\":\n key = \"x\";\n break;\n case \"y1\":\n case \"y2\":\n key = \"y\";\n break;\n }\n return options[key];\n}\n\nexport function column(source) {\n // Defines a column whose values are lazily populated by calling the returned\n // setter. If the given source is labeled, the label is propagated to the\n // returned column definition.\n let value;\n return [\n {\n transform: () => value,\n label: labelof(source)\n },\n (v) => (value = v)\n ];\n}\n\n// Like column, but allows the source to be null.\nexport function maybeColumn(source) {\n return source == null ? [source] : column(source);\n}\n\nexport function labelof(value, defaultValue) {\n return typeof value === \"string\" ? value : value && value.label !== undefined ? value.label : defaultValue;\n}\n\n// Assuming that both x1 and x2 and lazy columns (per above), this derives a new\n// a column that’s the average of the two, and which inherits the column label\n// (if any). Both input columns are assumed to be quantitative. If either column\n// is temporal, the returned column is also temporal.\nexport function mid(x1, x2) {\n return {\n transform(data) {\n const X1 = x1.transform(data);\n const X2 = x2.transform(data);\n return isTemporal(X1) || isTemporal(X2)\n ? map(X1, (_, i) => new Date((+X1[i] + +X2[i]) / 2))\n : map(X1, (_, i) => (+X1[i] + +X2[i]) / 2, Float64Array);\n },\n label: x1.label\n };\n}\n\n// If interval is not nullish, converts interval shorthand such as a number (for\n// multiples) or a time interval name (such as “dayâ€) to a {floor, offset,\n// range} object similar to a D3 time interval.\nexport function maybeInterval(interval, type) {\n if (interval == null) return;\n if (typeof interval === \"number\") {\n if (0 < interval && interval < 1 && Number.isInteger(1 / interval)) interval = -1 / interval;\n const n = Math.abs(interval);\n return interval < 0\n ? {\n floor: (d) => Math.floor(d * n) / n,\n offset: (d) => (d * n + 1) / n, // note: no optional step for simplicity\n range: (lo, hi) => rangei(Math.ceil(lo * n), hi * n).map((x) => x / n)\n }\n : {\n floor: (d) => Math.floor(d / n) * n,\n offset: (d) => d + n, // note: no optional step for simplicity\n range: (lo, hi) => rangei(Math.ceil(lo / n), hi / n).map((x) => x * n)\n };\n }\n if (typeof interval === \"string\") return (type === \"time\" ? maybeTimeInterval : maybeUtcInterval)(interval);\n if (typeof interval.floor !== \"function\") throw new Error(\"invalid interval; missing floor method\");\n if (typeof interval.offset !== \"function\") throw new Error(\"invalid interval; missing offset method\");\n return interval;\n}\n\n// Like maybeInterval, but requires a range method too.\nexport function maybeRangeInterval(interval, type) {\n interval = maybeInterval(interval, type);\n if (interval && typeof interval.range !== \"function\") throw new Error(\"invalid interval: missing range method\");\n return interval;\n}\n\n// Like maybeRangeInterval, but requires a ceil method too.\nexport function maybeNiceInterval(interval, type) {\n interval = maybeRangeInterval(interval, type);\n if (interval && typeof interval.ceil !== \"function\") throw new Error(\"invalid interval: missing ceil method\");\n return interval;\n}\n\n// This distinguishes between per-dimension options and a standalone value.\nexport function maybeValue(value) {\n return value === undefined || isOptions(value) ? value : {value};\n}\n\n// Coerces the given channel values (if any) to numbers. This is useful when\n// values will be interpolated into other code, such as an SVG transform, and\n// where we don’t wish to allow unexpected behavior for weird input.\nexport function numberChannel(source) {\n return source == null\n ? null\n : {\n transform: (data) => valueof(data, source, Float64Array),\n label: labelof(source)\n };\n}\n\nexport function isTuples(data) {\n if (!isIterable(data)) return false;\n for (const d of data) {\n if (d == null) continue;\n return typeof d === \"object\" && \"0\" in d && \"1\" in d;\n }\n}\n\nexport function isIterable(value) {\n return value && typeof value[Symbol.iterator] === \"function\";\n}\n\nexport function isTextual(values) {\n for (const value of values) {\n if (value == null) continue;\n return typeof value !== \"object\" || value instanceof Date;\n }\n}\n\nexport function isOrdinal(values) {\n for (const value of values) {\n if (value == null) continue;\n const type = typeof value;\n return type === \"string\" || type === \"boolean\";\n }\n}\n\nexport function isTemporal(values) {\n for (const value of values) {\n if (value == null) continue;\n return value instanceof Date;\n }\n}\n\n// Are these strings that might represent dates? This is stricter than ISO 8601\n// because we want to ignore false positives on numbers; for example, the string\n// \"1192\" is more likely to represent a number than a date even though it is\n// valid ISO 8601 representing 1192-01-01.\nexport function isTemporalString(values) {\n for (const value of values) {\n if (value == null) continue;\n return typeof value === \"string\" && isNaN(value) && isoParse(value);\n }\n}\n\n// Are these strings that might represent numbers? This is stricter than\n// coercion because we want to ignore false positives on e.g. empty strings.\nexport function isNumericString(values) {\n for (const value of values) {\n if (value == null) continue;\n if (typeof value !== \"string\") return false;\n if (!value.trim()) continue;\n return !isNaN(value);\n }\n}\n\nexport function isNumeric(values) {\n for (const value of values) {\n if (value == null) continue;\n return typeof value === \"number\";\n }\n}\n\n// Returns true if every non-null value in the specified iterable of values\n// passes the specified predicate, and there is at least one non-null value;\n// returns false if at least one non-null value does not pass the specified\n// predicate; otherwise returns undefined (as if all values are null).\nexport function isEvery(values, is) {\n let every;\n for (const value of values) {\n if (value == null) continue;\n if (!is(value)) return false;\n every = true;\n }\n return every;\n}\n\n// Mostly relies on d3-color, with a few extra color keywords. Currently this\n// strictly requires that the value be a string; we might want to apply string\n// coercion here, though note that d3-color instances would need to support\n// valueOf to work correctly with InternMap.\n// https://www.w3.org/TR/SVG11/painting.html#SpecifyingPaint\nexport function isColor(value) {\n if (typeof value !== \"string\") return false;\n value = value.toLowerCase().trim();\n return (\n value === \"none\" ||\n value === \"currentcolor\" ||\n (value.startsWith(\"url(\") && value.endsWith(\")\")) || // <funciri>, e.g. pattern or gradient\n (value.startsWith(\"var(\") && value.endsWith(\")\")) || // CSS variable\n color(value) !== null\n );\n}\n\nexport function isOpacity(value) {\n return typeof value === \"number\" && ((0 <= value && value <= 1) || isNaN(value));\n}\n\nexport function isNoneish(value) {\n return value == null || isNone(value);\n}\n\nexport function isNone(value) {\n return /^\\s*none\\s*$/i.test(value);\n}\n\nexport function isRound(value) {\n return /^\\s*round\\s*$/i.test(value);\n}\n\nexport function maybeFrameAnchor(value = \"middle\") {\n return keyword(value, \"frameAnchor\", [\n \"middle\",\n \"top-left\",\n \"top\",\n \"top-right\",\n \"right\",\n \"bottom-right\",\n \"bottom\",\n \"bottom-left\",\n \"left\"\n ]);\n}\n\n// Like a sort comparator, returns a positive value if the given array of values\n// is in ascending order, a negative value if the values are in descending\n// order. Assumes monotonicity; only tests the first and last values.\nexport function orderof(values) {\n if (values == null) return;\n const first = values[0];\n const last = values[values.length - 1];\n return descending(first, last);\n}\n\n// Unlike {...defaults, ...options}, this ensures that any undefined (but\n// present) properties in options inherit the given default value.\nexport function inherit(options = {}, ...rest) {\n let o = options;\n for (const defaults of rest) {\n for (const key in defaults) {\n if (o[key] === undefined) {\n const value = defaults[key];\n if (o === options) o = {...o, [key]: value};\n else o[key] = value;\n }\n }\n }\n return o;\n}\n\n// Given an iterable of named things (objects with a name property), returns a\n// corresponding object with properties associated with the given name.\nexport function named(things) {\n console.warn(\"named iterables are deprecated; please use an object instead\");\n const names = new Set();\n return Object.fromEntries(\n Array.from(things, (thing) => {\n const {name} = thing;\n if (name == null) throw new Error(\"missing name\");\n const key = `${name}`;\n if (key === \"__proto__\") throw new Error(`illegal name: ${key}`);\n if (names.has(key)) throw new Error(`duplicate name: ${key}`);\n names.add(key);\n return [name, thing];\n })\n );\n}\n\nexport function maybeNamed(things) {\n return isIterable(things) ? named(things) : things;\n}\n","// Positional scales have associated axes, and for ordinal data, a point or band\n// scale is used instead of an ordinal scale.\nexport const position = Symbol(\"position\");\n\n// Color scales default to the turbo interpolator for quantitative data, and to\n// the Tableau10 scheme for ordinal data. Color scales may also have an\n// associated legend.\nexport const color = Symbol(\"color\");\n\n// Radius scales default to the sqrt type, have a default range of [0, 3], and a\n// default domain from 0 to the median first quartile of associated channels.\nexport const radius = Symbol(\"radius\");\n\n// Length scales default to the linear type, have a default range of [0, 12],\n// and a default domain from 0 to the median median of associated channels.\nexport const length = Symbol(\"length\");\n\n// Opacity scales have a default range of [0, 1], and a default domain from 0 to\n// the maximum value of associated channels.\nexport const opacity = Symbol(\"opacity\");\n\n// Symbol scales have a default range of categorical symbols.\nexport const symbol = Symbol(\"symbol\");\n\n// TODO Rather than hard-coding the list of known scale names, collect the names\n// and categories for each plot specification, so that custom marks can register\n// custom scales.\nexport const registry = new Map([\n [\"x\", position],\n [\"y\", position],\n [\"fx\", position],\n [\"fy\", position],\n [\"r\", radius],\n [\"color\", color],\n [\"opacity\", opacity],\n [\"symbol\", symbol],\n [\"length\", length]\n]);\n","import {symbolAsterisk, symbolDiamond2, symbolPlus, symbolSquare2, symbolTriangle2, symbolTimes} from \"d3\";\nimport {symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye} from \"d3\";\n\nexport const sqrt3 = Math.sqrt(3);\nexport const sqrt4_3 = 2 / sqrt3;\n\nconst symbolHexagon = {\n draw(context, size) {\n const rx = Math.sqrt(size / Math.PI),\n ry = rx * sqrt4_3,\n hy = ry / 2;\n context.moveTo(0, ry);\n context.lineTo(rx, hy);\n context.lineTo(rx, -hy);\n context.lineTo(0, -ry);\n context.lineTo(-rx, -hy);\n context.lineTo(-rx, hy);\n context.closePath();\n }\n};\n\nconst symbols = new Map([\n [\"asterisk\", symbolAsterisk],\n [\"circle\", symbolCircle],\n [\"cross\", symbolCross],\n [\"diamond\", symbolDiamond],\n [\"diamond2\", symbolDiamond2],\n [\"hexagon\", symbolHexagon],\n [\"plus\", symbolPlus],\n [\"square\", symbolSquare],\n [\"square2\", symbolSquare2],\n [\"star\", symbolStar],\n [\"times\", symbolTimes],\n [\"triangle\", symbolTriangle],\n [\"triangle2\", symbolTriangle2],\n [\"wye\", symbolWye]\n]);\n\nfunction isSymbolObject(value) {\n return value && typeof value.draw === \"function\";\n}\n\nexport function isSymbol(value) {\n if (isSymbolObject(value)) return true;\n if (typeof value !== \"string\") return false;\n return symbols.has(value.toLowerCase());\n}\n\nexport function maybeSymbol(symbol) {\n if (symbol == null || isSymbolObject(symbol)) return symbol;\n const value = symbols.get(`${symbol}`.toLowerCase());\n if (value) return value;\n throw new Error(`invalid symbol: ${symbol}`);\n}\n\nexport function maybeSymbolChannel(symbol) {\n if (symbol == null || isSymbolObject(symbol)) return [undefined, symbol];\n if (typeof symbol === \"string\") {\n const value = symbols.get(`${symbol}`.toLowerCase());\n if (value) return [undefined, value];\n }\n return [symbol, undefined];\n}\n","let warnings = 0;\n\nexport function consumeWarnings() {\n const w = warnings;\n warnings = 0;\n return w;\n}\n\nexport function warn(message) {\n console.warn(message);\n ++warnings;\n}\n","import {\n interpolateBlues,\n interpolateBrBG,\n interpolateBuGn,\n interpolateBuPu,\n interpolateGnBu,\n interpolateGreens,\n interpolateGreys,\n interpolateOranges,\n interpolateOrRd,\n interpolatePiYG,\n interpolatePRGn,\n interpolatePuBu,\n interpolatePuBuGn,\n interpolatePuOr,\n interpolatePuRd,\n interpolatePurples,\n interpolateRdBu,\n interpolateRdGy,\n interpolateRdPu,\n interpolateRdYlBu,\n interpolateRdYlGn,\n interpolateReds,\n interpolateSpectral,\n interpolateYlGn,\n interpolateYlGnBu,\n interpolateYlOrBr,\n interpolateYlOrRd,\n interpolateTurbo,\n interpolateViridis,\n interpolateMagma,\n interpolateInferno,\n interpolatePlasma,\n interpolateCividis,\n interpolateCubehelixDefault,\n interpolateWarm,\n interpolateCool,\n interpolateRainbow,\n interpolateSinebow,\n quantize,\n schemeAccent,\n schemeBlues,\n schemeBrBG,\n schemeBuGn,\n schemeBuPu,\n schemeCategory10,\n schemeDark2,\n schemeGnBu,\n schemeGreens,\n schemeGreys,\n schemeOranges,\n schemeOrRd,\n schemePaired,\n schemePastel1,\n schemePastel2,\n schemePiYG,\n schemePRGn,\n schemePuBu,\n schemePuBuGn,\n schemePuOr,\n schemePuRd,\n schemePurples,\n schemeRdBu,\n schemeRdGy,\n schemeRdPu,\n schemeRdYlBu,\n schemeRdYlGn,\n schemeReds,\n schemeSet1,\n schemeSet2,\n schemeSet3,\n schemeSpectral,\n schemeTableau10,\n schemeYlGn,\n schemeYlGnBu,\n schemeYlOrBr,\n schemeYlOrRd\n} from \"d3\";\n\nconst ordinalSchemes = new Map([\n // categorical\n [\"accent\", schemeAccent],\n [\"category10\", schemeCategory10],\n [\"dark2\", schemeDark2],\n [\"paired\", schemePaired],\n [\"pastel1\", schemePastel1],\n [\"pastel2\", schemePastel2],\n [\"set1\", schemeSet1],\n [\"set2\", schemeSet2],\n [\"set3\", schemeSet3],\n [\"tableau10\", schemeTableau10],\n\n // diverging\n [\"brbg\", scheme11(schemeBrBG, interpolateBrBG)],\n [\"prgn\", scheme11(schemePRGn, interpolatePRGn)],\n [\"piyg\", scheme11(schemePiYG, interpolatePiYG)],\n [\"puor\", scheme11(schemePuOr, interpolatePuOr)],\n [\"rdbu\", scheme11(schemeRdBu, interpolateRdBu)],\n [\"rdgy\", scheme11(schemeRdGy, interpolateRdGy)],\n [\"rdylbu\", scheme11(schemeRdYlBu, interpolateRdYlBu)],\n [\"rdylgn\", scheme11(schemeRdYlGn, interpolateRdYlGn)],\n [\"spectral\", scheme11(schemeSpectral, interpolateSpectral)],\n\n // reversed diverging (for temperature data)\n [\"burd\", scheme11r(schemeRdBu, interpolateRdBu)],\n [\"buylrd\", scheme11r(schemeRdYlBu, interpolateRdYlBu)],\n\n // sequential (single-hue)\n [\"blues\", scheme9(schemeBlues, interpolateBlues)],\n [\"greens\", scheme9(schemeGreens, interpolateGreens)],\n [\"greys\", scheme9(schemeGreys, interpolateGreys)],\n [\"oranges\", scheme9(schemeOranges, interpolateOranges)],\n [\"purples\", scheme9(schemePurples, interpolatePurples)],\n [\"reds\", scheme9(schemeReds, interpolateReds)],\n\n // sequential (multi-hue)\n [\"turbo\", schemei(interpolateTurbo)],\n [\"viridis\", schemei(interpolateViridis)],\n [\"magma\", schemei(interpolateMagma)],\n [\"inferno\", schemei(interpolateInferno)],\n [\"plasma\", schemei(interpolatePlasma)],\n [\"cividis\", schemei(interpolateCividis)],\n [\"cubehelix\", schemei(interpolateCubehelixDefault)],\n [\"warm\", schemei(interpolateWarm)],\n [\"cool\", schemei(interpolateCool)],\n [\"bugn\", scheme9(schemeBuGn, interpolateBuGn)],\n [\"bupu\", scheme9(schemeBuPu, interpolateBuPu)],\n [\"gnbu\", scheme9(schemeGnBu, interpolateGnBu)],\n [\"orrd\", scheme9(schemeOrRd, interpolateOrRd)],\n [\"pubu\", scheme9(schemePuBu, interpolatePuBu)],\n [\"pubugn\", scheme9(schemePuBuGn, interpolatePuBuGn)],\n [\"purd\", scheme9(schemePuRd, interpolatePuRd)],\n [\"rdpu\", scheme9(schemeRdPu, interpolateRdPu)],\n [\"ylgn\", scheme9(schemeYlGn, interpolateYlGn)],\n [\"ylgnbu\", scheme9(schemeYlGnBu, interpolateYlGnBu)],\n [\"ylorbr\", scheme9(schemeYlOrBr, interpolateYlOrBr)],\n [\"ylorrd\", scheme9(schemeYlOrRd, interpolateYlOrRd)],\n\n // cyclical\n [\"rainbow\", schemeicyclical(interpolateRainbow)],\n [\"sinebow\", schemeicyclical(interpolateSinebow)]\n]);\n\nfunction scheme9(scheme, interpolate) {\n return ({length: n}) => {\n if (n === 1) return [scheme[3][1]]; // favor midpoint\n if (n === 2) return [scheme[3][1], scheme[3][2]]; // favor darker\n n = Math.max(3, Math.floor(n));\n return n > 9 ? quantize(interpolate, n) : scheme[n];\n };\n}\n\nfunction scheme11(scheme, interpolate) {\n return ({length: n}) => {\n if (n === 2) return [scheme[3][0], scheme[3][2]]; // favor diverging extrema\n n = Math.max(3, Math.floor(n));\n return n > 11 ? quantize(interpolate, n) : scheme[n];\n };\n}\n\nfunction scheme11r(scheme, interpolate) {\n return ({length: n}) => {\n if (n === 2) return [scheme[3][2], scheme[3][0]]; // favor diverging extrema\n n = Math.max(3, Math.floor(n));\n return n > 11 ? quantize((t) => interpolate(1 - t), n) : scheme[n].slice().reverse();\n };\n}\n\nfunction schemei(interpolate) {\n return ({length: n}) => quantize(interpolate, Math.max(2, Math.floor(n)));\n}\n\nfunction schemeicyclical(interpolate) {\n return ({length: n}) => quantize(interpolate, Math.floor(n) + 1).slice(0, -1);\n}\n\nexport function ordinalScheme(scheme) {\n const s = `${scheme}`.toLowerCase();\n if (!ordinalSchemes.has(s)) throw new Error(`unknown ordinal scheme: ${s}`);\n return ordinalSchemes.get(s);\n}\n\nexport function ordinalRange(scheme, length) {\n const s = ordinalScheme(scheme);\n const r = typeof s === \"function\" ? s({length}) : s;\n return r.length !== length ? r.slice(0, length) : r;\n}\n\n// If the specified domain contains only booleans (ignoring null and undefined),\n// returns a corresponding range where false is mapped to the low color and true\n// is mapped to the high color of the specified scheme.\nexport function maybeBooleanRange(domain, scheme = \"greys\") {\n const range = new Set();\n const [f, t] = ordinalRange(scheme, 2);\n for (const value of domain) {\n if (value == null) continue;\n if (value === true) range.add(t);\n else if (value === false) range.add(f);\n else return;\n }\n return [...range];\n}\n\nconst quantitativeSchemes = new Map([\n // diverging\n [\"brbg\", interpolateBrBG],\n [\"prgn\", interpolatePRGn],\n [\"piyg\", interpolatePiYG],\n [\"puor\", interpolatePuOr],\n [\"rdbu\", interpolateRdBu],\n [\"rdgy\", interpolateRdGy],\n [\"rdylbu\", interpolateRdYlBu],\n [\"rdylgn\", interpolateRdYlGn],\n [\"spectral\", interpolateSpectral],\n\n // reversed diverging (for temperature data)\n [\"burd\", (t) => interpolateRdBu(1 - t)],\n [\"buylrd\", (t) => interpolateRdYlBu(1 - t)],\n\n // sequential (single-hue)\n [\"blues\", interpolateBlues],\n [\"greens\", interpolateGreens],\n [\"greys\", interpolateGreys],\n [\"purples\", interpolatePurples],\n [\"reds\", interpolateReds],\n [\"oranges\", interpolateOranges],\n\n // sequential (multi-hue)\n [\"turbo\", interpolateTurbo],\n [\"viridis\", interpolateViridis],\n [\"magma\", interpolateMagma],\n [\"inferno\", interpolateInferno],\n [\"plasma\", interpolatePlasma],\n [\"cividis\", interpolateCividis],\n [\"cubehelix\", interpolateCubehelixDefault],\n [\"warm\", interpolateWarm],\n [\"cool\", interpolateCool],\n [\"bugn\", interpolateBuGn],\n [\"bupu\", interpolateBuPu],\n [\"gnbu\", interpolateGnBu],\n [\"orrd\", interpolateOrRd],\n [\"pubugn\", interpolatePuBuGn],\n [\"pubu\", interpolatePuBu],\n [\"purd\", interpolatePuRd],\n [\"rdpu\", interpolateRdPu],\n [\"ylgnbu\", interpolateYlGnBu],\n [\"ylgn\", interpolateYlGn],\n [\"ylorbr\", interpolateYlOrBr],\n [\"ylorrd\", interpolateYlOrRd],\n\n // cyclical\n [\"rainbow\", interpolateRainbow],\n [\"sinebow\", interpolateSinebow]\n]);\n\nexport function quantitativeScheme(scheme) {\n const s = `${scheme}`.toLowerCase();\n if (!quantitativeSchemes.has(s)) throw new Error(`unknown quantitative scheme: ${s}`);\n return quantitativeSchemes.get(s);\n}\n\nconst divergingSchemes = new Set([\n \"brbg\",\n \"prgn\",\n \"piyg\",\n \"puor\",\n \"rdbu\",\n \"rdgy\",\n \"rdylbu\",\n \"rdylgn\",\n \"spectral\",\n \"burd\",\n \"buylrd\"\n]);\n\nexport function isDivergingScheme(scheme) {\n return scheme != null && divergingSchemes.has(`${scheme}`.toLowerCase());\n}\n","import {\n descending,\n extent,\n interpolateHcl,\n interpolateHsl,\n interpolateLab,\n interpolateNumber,\n interpolateRgb,\n interpolateRound,\n min,\n max,\n median,\n quantile,\n quantize,\n reverse as reverseof,\n scaleLinear,\n scaleLog,\n scalePow,\n scaleQuantile,\n scaleSymlog,\n scaleThreshold,\n scaleIdentity,\n ticks\n} from \"d3\";\nimport {positive, negative, finite} from \"../defined.js\";\nimport {arrayify, constant, orderof, slice, maybeNiceInterval, maybeRangeInterval} from \"../options.js\";\nimport {ordinalRange, quantitativeScheme} from \"./schemes.js\";\nimport {registry, radius, opacity, color, length} from \"./index.js\";\n\nexport const flip = (i) => (t) => i(1 - t);\nconst unit = [0, 1];\n\nconst interpolators = new Map([\n // numbers\n [\"number\", interpolateNumber],\n\n // color spaces\n [\"rgb\", interpolateRgb],\n [\"hsl\", interpolateHsl],\n [\"hcl\", interpolateHcl],\n [\"lab\", interpolateLab]\n]);\n\nexport function maybeInterpolator(interpolate) {\n const i = `${interpolate}`.toLowerCase();\n if (!interpolators.has(i)) throw new Error(`unknown interpolator: ${i}`);\n return interpolators.get(i);\n}\n\nexport function createScaleQ(\n key,\n scale,\n channels,\n {\n type,\n nice,\n clamp,\n zero,\n domain = inferAutoDomain(key, channels),\n unknown,\n round,\n scheme,\n interval,\n range = registry.get(key) === radius\n ? inferRadialRange(channels, domain)\n : registry.get(key) === length\n ? inferLengthRange(channels, domain)\n : registry.get(key) === opacity\n ? unit\n : undefined,\n interpolate = registry.get(key) === color\n ? scheme == null && range !== undefined\n ? interpolateRgb\n : quantitativeScheme(scheme !== undefined ? scheme : type === \"cyclical\" ? \"rainbow\" : \"turbo\")\n : round\n ? interpolateRound\n : interpolateNumber,\n reverse\n }\n) {\n interval = maybeRangeInterval(interval, type);\n if (type === \"cyclical\" || type === \"sequential\") type = \"linear\"; // shorthand for color schemes\n reverse = !!reverse;\n\n // Sometimes interpolate is a named interpolator, such as \"lab\" for Lab color\n // space. Other times interpolate is a function that takes two arguments and\n // is used in conjunction with the range. And other times the interpolate\n // function is a “fixed†interpolator on the [0, 1] interval, as when a\n // color scheme such as interpolateRdBu is used.\n if (typeof interpolate !== \"function\") {\n interpolate = maybeInterpolator(interpolate);\n }\n if (interpolate.length === 1) {\n if (reverse) {\n interpolate = flip(interpolate);\n reverse = false;\n }\n if (range === undefined) {\n range = Float64Array.from(domain, (_, i) => i / (domain.length - 1));\n if (range.length === 2) range = unit; // optimize common case of [0, 1]\n }\n scale.interpolate((range === unit ? constant : interpolatePiecewise)(interpolate));\n } else {\n scale.interpolate(interpolate);\n }\n\n // If a zero option is specified, we assume that the domain is numeric, and we\n // want to ensure that the domain crosses zero. However, note that the domain\n // may be reversed (descending) so we shouldn’t assume that the first value is\n // smaller than the last; and also it’s possible that the domain has more than\n // two values for a “poly†scale. And lastly be careful not to mutate input!\n if (zero) {\n const [min, max] = extent(domain);\n if (min > 0 || max < 0) {\n domain = slice(domain);\n if (orderof(domain) !== Math.sign(min)) domain[domain.length - 1] = 0;\n // [2, 1] or [-2, -1]\n else domain[0] = 0; // [1, 2] or [-1, -2]\n }\n }\n\n if (reverse) domain = reverseof(domain);\n scale.domain(domain).unknown(unknown);\n if (nice) scale.nice(maybeNice(nice, type)), (domain = scale.domain());\n if (range !== undefined) scale.range(range);\n if (clamp) scale.clamp(clamp);\n return {type, domain, range, scale, interpolate, interval};\n}\n\nfunction maybeNice(nice, type) {\n return nice === true ? undefined : typeof nice === \"number\" ? nice : maybeNiceInterval(nice, type);\n}\n\nexport function createScaleLinear(key, channels, options) {\n return createScaleQ(key, scaleLinear(), channels, options);\n}\n\nexport function createScaleSqrt(key, channels, options) {\n return createScalePow(key, channels, {...options, exponent: 0.5});\n}\n\nexport function createScalePow(key, channels, {exponent = 1, ...options}) {\n return createScaleQ(key, scalePow().exponent(exponent), channels, {...options, type: \"pow\"});\n}\n\nexport function createScaleLog(key, channels, {base = 10, domain = inferLogDomain(channels), ...options}) {\n return createScaleQ(key, scaleLog().base(base), channels, {...options, domain});\n}\n\nexport function createScaleSymlog(key, channels, {constant = 1, ...options}) {\n return createScaleQ(key, scaleSymlog().constant(constant), channels, options);\n}\n\nexport function createScaleQuantile(\n key,\n channels,\n {\n range,\n quantiles = range === undefined ? 5 : (range = [...range]).length, // deprecated; use n instead\n n = quantiles,\n scheme = \"rdylbu\",\n domain = inferQuantileDomain(channels),\n unknown,\n interpolate,\n reverse\n }\n) {\n if (range === undefined) {\n range =\n interpolate !== undefined\n ? quantize(interpolate, n)\n : registry.get(key) === color\n ? ordinalRange(scheme, n)\n : undefined;\n }\n if (domain.length > 0) {\n domain = scaleQuantile(domain, range === undefined ? {length: n} : range).quantiles();\n }\n return createScaleThreshold(key, channels, {domain, range, reverse, unknown});\n}\n\nexport function createScaleQuantize(\n key,\n channels,\n {\n range,\n n = range === undefined ? 5 : (range = [...range]).length,\n scheme = \"rdylbu\",\n domain = inferAutoDomain(key, channels),\n unknown,\n interpolate,\n reverse\n }\n) {\n const [min, max] = extent(domain);\n let thresholds;\n if (range === undefined) {\n thresholds = ticks(min, max, n); // approximate number of nice, round thresholds\n if (thresholds[0] <= min) thresholds.splice(0, 1); // drop exact lower bound\n if (thresholds[thresholds.length - 1] >= max) thresholds.pop(); // drop exact upper bound\n n = thresholds.length + 1;\n range =\n interpolate !== undefined\n ? quantize(interpolate, n)\n : registry.get(key) === color\n ? ordinalRange(scheme, n)\n : undefined;\n } else {\n thresholds = quantize(interpolateNumber(min, max), n + 1).slice(1, -1); // exactly n - 1 thresholds to match range\n if (min instanceof Date) thresholds = thresholds.map((x) => new Date(x)); // preserve date types\n }\n if (orderof(arrayify(domain)) < 0) thresholds.reverse(); // preserve descending domain\n return createScaleThreshold(key, channels, {domain: thresholds, range, reverse, unknown});\n}\n\nexport function createScaleThreshold(\n key,\n channels,\n {\n domain = [0], // explicit thresholds in ascending order\n unknown,\n scheme = \"rdylbu\",\n interpolate,\n range = interpolate !== undefined\n ? quantize(interpolate, domain.length + 1)\n : registry.get(key) === color\n ? ordinalRange(scheme, domain.length + 1)\n : undefined,\n reverse\n }\n) {\n domain = arrayify(domain);\n const sign = orderof(domain); // preserve descending domain\n if (!isNaN(sign) && !isOrdered(domain, sign)) throw new Error(`the ${key} scale has a non-monotonic domain`);\n if (reverse) range = reverseof(range); // domain ascending, so reverse range\n return {\n type: \"threshold\",\n scale: scaleThreshold(sign < 0 ? reverseof(domain) : domain, range === undefined ? [] : range).unknown(unknown),\n domain,\n range\n };\n}\n\nfunction isOrdered(domain, sign) {\n for (let i = 1, n = domain.length, d = domain[0]; i < n; ++i) {\n const s = descending(d, (d = domain[i]));\n if (s !== 0 && s !== sign) return false;\n }\n return true;\n}\n\nexport function createScaleIdentity() {\n return {type: \"identity\", scale: scaleIdentity()};\n}\n\nexport function inferDomain(channels, f = finite) {\n return channels.length\n ? [\n min(channels, ({value}) => (value === undefined ? value : min(value, f))),\n max(channels, ({value}) => (value === undefined ? value : max(value, f)))\n ]\n : [0, 1];\n}\n\nfunction inferAutoDomain(key, channels) {\n const type = registry.get(key);\n return (type === radius || type === opacity || type === length ? inferZeroDomain : inferDomain)(channels);\n}\n\nfunction inferZeroDomain(channels) {\n return [0, channels.length ? max(channels, ({value}) => (value === undefined ? value : max(value, finite))) : 1];\n}\n\n// We don’t want the upper bound of the radial domain to be zero, as this would\n// be degenerate, so we ignore nonpositive values. We also don’t want the\n// maximum default radius to exceed 30px.\nfunction inferRadialRange(channels, domain) {\n const hint = channels.find(({radius}) => radius !== undefined);\n if (hint !== undefined) return [0, hint.radius]; // a natural maximum radius, e.g. hexbins\n const h25 = quantile(channels, 0.5, ({value}) => (value === undefined ? NaN : quantile(value, 0.25, positive)));\n const range = domain.map((d) => 3 * Math.sqrt(d / h25));\n const k = 30 / max(range);\n return k < 1 ? range.map((r) => r * k) : range;\n}\n\n// We want a length scale’s domain to go from zero to a positive value, and to\n// treat negative lengths if any as inverted vectors of equivalent magnitude. We\n// also don’t want the maximum default length to exceed 60px.\nfunction inferLengthRange(channels, domain) {\n const h50 = median(channels, ({value}) => (value === undefined ? NaN : median(value, Math.abs)));\n const range = domain.map((d) => (12 * d) / h50);\n const k = 60 / max(range);\n return k < 1 ? range.map((r) => r * k) : range;\n}\n\nfunction inferLogDomain(channels) {\n for (const {value} of channels) {\n if (value !== undefined) {\n for (let v of value) {\n if (v > 0) return inferDomain(channels, positive);\n if (v < 0) return inferDomain(channels, negative);\n }\n }\n }\n return [1, 10];\n}\n\nfunction inferQuantileDomain(channels) {\n const domain = [];\n for (const {value} of channels) {\n if (value === undefined) continue;\n for (const v of value) domain.push(v);\n }\n return domain;\n}\n\nexport function interpolatePiecewise(interpolate) {\n return (i, j) => (t) => interpolate(i + t * (j - i));\n}\n","import {\n descending,\n interpolateNumber,\n interpolateRgb,\n piecewise,\n scaleDiverging,\n scaleDivergingLog,\n scaleDivergingPow,\n scaleDivergingSymlog\n} from \"d3\";\nimport {positive, negative} from \"../defined.js\";\nimport {quantitativeScheme} from \"./schemes.js\";\nimport {registry, color} from \"./index.js\";\nimport {inferDomain, maybeInterpolator, flip, interpolatePiecewise} from \"./quantitative.js\";\n\nfunction createScaleD(\n key,\n scale,\n transform,\n channels,\n {\n type,\n nice,\n clamp,\n domain = inferDomain(channels),\n unknown,\n pivot = 0,\n scheme,\n range,\n symmetric = true,\n interpolate = registry.get(key) === color\n ? scheme == null && range !== undefined\n ? interpolateRgb\n : quantitativeScheme(scheme !== undefined ? scheme : \"rdbu\")\n : interpolateNumber,\n reverse\n }\n) {\n pivot = +pivot;\n let [min, max] = domain;\n if (descending(min, max) < 0) ([min, max] = [max, min]), (reverse = !reverse);\n min = Math.min(min, pivot);\n max = Math.max(max, pivot);\n\n // Sometimes interpolate is a named interpolator, such as \"lab\" for Lab color\n // space. Other times interpolate is a function that takes two arguments and\n // is used in conjunction with the range. And other times the interpolate\n // function is a “fixed†interpolator on the [0, 1] interval, as when a\n // color scheme such as interpolateRdBu is used.\n if (typeof interpolate !== \"function\") {\n interpolate = maybeInterpolator(interpolate);\n }\n\n // If an explicit range is specified, promote it to a piecewise interpolator.\n if (range !== undefined) {\n interpolate =\n interpolate.length === 1 ? interpolatePiecewise(interpolate)(...range) : piecewise(interpolate, range);\n }\n\n // Reverse before normalization.\n if (reverse) interpolate = flip(interpolate);\n\n // Normalize the interpolator for symmetric difference around the pivot.\n if (symmetric) {\n const mid = transform.apply(pivot);\n const mindelta = mid - transform.apply(min);\n const maxdelta = transform.apply(max) - mid;\n if (mindelta < maxdelta) min = transform.invert(mid - maxdelta);\n else if (mindelta > maxdelta) max = transform.invert(mid + mindelta);\n }\n\n scale.domain([min, pivot, max]).unknown(unknown).interpolator(interpolate);\n if (clamp) scale.clamp(clamp);\n if (nice) scale.nice(nice);\n return {type, domain: [min, max], pivot, interpolate, scale};\n}\n\nexport function createScaleDiverging(key, channels, options) {\n return createScaleD(key, scaleDiverging(), transformIdentity, channels, options);\n}\n\nexport function createScaleDivergingSqrt(key, channels, options) {\n return createScaleDivergingPow(key, channels, {...options, exponent: 0.5});\n}\n\nexport function createScaleDivergingPow(key, channels, {exponent = 1, ...options}) {\n return createScaleD(key, scaleDivergingPow().exponent((exponent = +exponent)), transformPow(exponent), channels, {\n ...options,\n type: \"diverging-pow\"\n });\n}\n\nexport function createScaleDivergingLog(\n key,\n channels,\n {base = 10, pivot = 1, domain = inferDomain(channels, pivot < 0 ? negative : positive), ...options}\n) {\n return createScaleD(key, scaleDivergingLog().base((base = +base)), transformLog, channels, {\n domain,\n pivot,\n ...options\n });\n}\n\nexport function createScaleDivergingSymlog(key, channels, {constant = 1, ...options}) {\n return createScaleD(\n key,\n scaleDivergingSymlog().constant((constant = +constant)),\n transformSymlog(constant),\n channels,\n options\n );\n}\n\nconst transformIdentity = {\n apply(x) {\n return x;\n },\n invert(x) {\n return x;\n }\n};\n\nconst transformLog = {\n apply: Math.log,\n invert: Math.exp\n};\n\nconst transformSqrt = {\n apply(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n },\n invert(x) {\n return Math.sign(x) * (x * x);\n }\n};\n\nfunction transformPow(exponent) {\n return exponent === 0.5\n ? transformSqrt\n : {\n apply(x) {\n return Math.sign(x) * Math.pow(Math.abs(x), exponent);\n },\n invert(x) {\n return Math.sign(x) * Math.pow(Math.abs(x), 1 / exponent);\n }\n };\n}\n\nfunction transformSymlog(constant) {\n return {\n apply(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / constant));\n },\n invert(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * constant;\n }\n };\n}\n","import {scaleTime, scaleUtc} from \"d3\";\nimport {createScaleQ} from \"./quantitative.js\";\n\nfunction createScaleT(key, scale, channels, options) {\n return createScaleQ(key, scale, channels, options);\n}\n\nexport function createScaleTime(key, channels, options) {\n return createScaleT(key, scaleTime(), channels, options);\n}\n\nexport function createScaleUtc(key, channels, options) {\n return createScaleT(key, scaleUtc(), channels, options);\n}\n","import {InternSet, extent, quantize, reverse as reverseof, sort, symbolsFill, symbolsStroke} from \"d3\";\nimport {scaleBand, scaleOrdinal, scalePoint, scaleImplicit} from \"d3\";\nimport {ascendingDefined} from \"../defined.js\";\nimport {isNoneish, map, maybeRangeInterval} from \"../options.js\";\nimport {maybeSymbol} from \"../symbol.js\";\nimport {registry, color, position, symbol} from \"./index.js\";\nimport {maybeBooleanRange, ordinalScheme, quantitativeScheme} from \"./schemes.js\";\n\n// This denotes an implicitly ordinal color scale: the scale type was not set,\n// but the associated values are strings or booleans. If the associated defined\n// values are entirely boolean, the range will default to greys. You can opt out\n// of this by setting the type explicitly.\nexport const ordinalImplicit = Symbol(\"ordinal\");\n\nfunction createScaleO(key, scale, channels, {type, interval, domain, range, reverse, hint}) {\n interval = maybeRangeInterval(interval, type);\n if (domain === undefined) domain = inferDomain(channels, interval, key);\n if (type === \"categorical\" || type === ordinalImplicit) type = \"ordinal\"; // shorthand for color schemes\n if (reverse) domain = reverseof(domain);\n scale.domain(domain);\n if (range !== undefined) {\n // If the range is specified as a function, pass it the domain.\n if (typeof range === \"function\") range = range(domain);\n scale.range(range);\n }\n return {type, domain, range, scale, hint, interval};\n}\n\nexport function createScaleOrdinal(key, channels, {type, interval, domain, range, scheme, unknown, ...options}) {\n interval = maybeRangeInterval(interval, type);\n if (domain === undefined) domain = inferDomain(channels, interval, key);\n let hint;\n if (registry.get(key) === symbol) {\n hint = inferSymbolHint(channels);\n range = range === undefined ? inferSymbolRange(hint) : map(range, maybeSymbol);\n } else if (registry.get(key) === color) {\n if (range === undefined && (type === \"ordinal\" || type === ordinalImplicit)) {\n range = maybeBooleanRange(domain, scheme);\n if (range !== undefined) scheme = undefined; // Don’t re-apply scheme.\n }\n if (scheme === undefined && range === undefined) {\n scheme = type === \"ordinal\" ? \"turbo\" : \"tableau10\";\n }\n if (scheme !== undefined) {\n if (range !== undefined) {\n const interpolate = quantitativeScheme(scheme);\n const t0 = range[0],\n d = range[1] - range[0];\n range = ({length: n}) => quantize((t) => interpolate(t0 + d * t), n);\n } else {\n range = ordinalScheme(scheme);\n }\n }\n }\n if (unknown === scaleImplicit) {\n throw new Error(`implicit unknown on ${key} scale is not supported`);\n }\n return createScaleO(key, scaleOrdinal().unknown(unknown), channels, {...options, type, domain, range, hint});\n}\n\nexport function createScalePoint(key, channels, {align = 0.5, padding = 0.5, ...options}) {\n return maybeRound(scalePoint().align(align).padding(padding), channels, options, key);\n}\n\nexport function createScaleBand(\n key,\n channels,\n {\n align = 0.5,\n padding = 0.1,\n paddingInner = padding,\n paddingOuter = key === \"fx\" || key === \"fy\" ? 0 : padding,\n ...options\n }\n) {\n return maybeRound(\n scaleBand().align(align).paddingInner(paddingInner).paddingOuter(paddingOuter),\n channels,\n options,\n key\n );\n}\n\nfunction maybeRound(scale, channels, options, key) {\n let {round} = options;\n if (round !== undefined) scale.round((round = !!round));\n scale = createScaleO(key, scale, channels, options);\n scale.round = round; // preserve for autoScaleRound\n return scale;\n}\n\nfunction inferDomain(channels, interval, key) {\n const values = new InternSet();\n for (const {value, domain} of channels) {\n if (domain !== undefined) return domain(); // see channelDomain\n if (value === undefined) continue;\n for (const v of value) values.add(v);\n }\n if (interval !== undefined) {\n const [min, max] = extent(values).map(interval.floor, interval);\n return interval.range(min, interval.offset(max));\n }\n if (values.size > 10e3 && registry.get(key) === position) {\n throw new Error(`implicit ordinal domain of ${key} scale has more than 10,000 values`);\n }\n return sort(values, ascendingDefined);\n}\n\n// If all channels provide a consistent hint, propagate it to the scale.\nfunction inferHint(channels, key) {\n let value;\n for (const {hint} of channels) {\n const candidate = hint?.[key];\n if (candidate === undefined) continue; // no hint here\n if (value === undefined) value = candidate;\n // first hint\n else if (value !== candidate) return; // inconsistent hint\n }\n return value;\n}\n\nfunction inferSymbolHint(channels) {\n return {\n fill: inferHint(channels, \"fill\"),\n stroke: inferHint(channels, \"stroke\")\n };\n}\n\nfunction inferSymbolRange(hint) {\n return isNoneish(hint.fill) ? symbolsStroke : symbolsFill;\n}\n","import {\n isOrdinal,\n isTemporal,\n isTemporalString,\n isNumericString,\n isScaleOptions,\n map,\n slice,\n coerceNumbers,\n coerceDates\n} from \"./options.js\";\nimport {registry, color, position, radius, opacity, symbol, length} from \"./scales/index.js\";\nimport {\n createScaleLinear,\n createScaleSqrt,\n createScalePow,\n createScaleLog,\n createScaleSymlog,\n createScaleQuantile,\n createScaleQuantize,\n createScaleThreshold,\n createScaleIdentity\n} from \"./scales/quantitative.js\";\nimport {\n createScaleDiverging,\n createScaleDivergingSqrt,\n createScaleDivergingPow,\n createScaleDivergingLog,\n createScaleDivergingSymlog\n} from \"./scales/diverging.js\";\nimport {isDivergingScheme} from \"./scales/schemes.js\";\nimport {createScaleTime, createScaleUtc} from \"./scales/temporal.js\";\nimport {createScaleOrdinal, createScalePoint, createScaleBand, ordinalImplicit} from \"./scales/ordinal.js\";\nimport {maybeSymbol} from \"./symbol.js\";\nimport {warn} from \"./warnings.js\";\n\nexport function createScales(\n channelsByScale,\n {\n label: globalLabel,\n inset: globalInset = 0,\n insetTop: globalInsetTop = globalInset,\n insetRight: globalInsetRight = globalInset,\n insetBottom: globalInsetBottom = globalInset,\n insetLeft: globalInsetLeft = globalInset,\n round,\n nice,\n clamp,\n zero,\n align,\n padding,\n projection,\n facet: {label: facetLabel = globalLabel} = {},\n ...options\n } = {}\n) {\n const scales = {};\n for (const [key, channels] of channelsByScale) {\n const scaleOptions = options[key];\n const scale = createScale(key, channels, {\n round: registry.get(key) === position ? round : undefined, // only for position\n nice,\n clamp,\n zero,\n align,\n padding,\n projection,\n ...scaleOptions\n });\n if (scale) {\n // populate generic scale options (percent, transform, insets)\n let {\n label = key === \"fx\" || key === \"fy\" ? facetLabel : globalLabel,\n percent,\n transform,\n inset,\n insetTop = inset !== undefined ? inset : key === \"y\" ? globalInsetTop : 0, // not fy\n insetRight = inset !== undefined ? inset : key === \"x\" ? globalInsetRight : 0, // not fx\n insetBottom = inset !== undefined ? inset : key === \"y\" ? globalInsetBottom : 0, // not fy\n insetLeft = inset !== undefined ? inset : key === \"x\" ? globalInsetLeft : 0 // not fx\n } = scaleOptions || {};\n if (transform == null) transform = undefined;\n else if (typeof transform !== \"function\") throw new Error(\"invalid scale transform; not a function\");\n scale.percent = !!percent;\n scale.label = label === undefined ? inferScaleLabel(channels, scale) : label;\n scale.transform = transform;\n if (key === \"x\" || key === \"fx\") {\n scale.insetLeft = +insetLeft;\n scale.insetRight = +insetRight;\n } else if (key === \"y\" || key === \"fy\") {\n scale.insetTop = +insetTop;\n scale.insetBottom = +insetBottom;\n }\n scales[key] = scale;\n }\n }\n return scales;\n}\n\nexport function createScaleFunctions(scales) {\n return Object.fromEntries(\n Object.entries(scales)\n .filter(([, {scale}]) => scale) // drop identity scales\n .map(([name, {scale, type, interval, label}]) => {\n scale.type = type; // for axis\n if (interval != null) scale.interval = interval; // for axis\n if (label != null) scale.label = label; // for axis\n return [name, scale];\n })\n );\n}\n\n// Mutates scale.range!\nexport function autoScaleRange(scales, dimensions) {\n const {x, y, fx, fy} = scales;\n const superdimensions = fx || fy ? outerDimensions(dimensions) : dimensions;\n if (fx) autoScaleRangeX(fx, superdimensions);\n if (fy) autoScaleRangeY(fy, superdimensions);\n const subdimensions = fx || fy ? innerDimensions(scales, dimensions) : dimensions;\n if (x) autoScaleRangeX(x, subdimensions);\n if (y) autoScaleRangeY(y, subdimensions);\n}\n\n// Channels can have labels; if all the channels for a given scale are\n// consistently labeled (i.e., have the same value if not undefined), and the\n// corresponding scale doesn’t already have an explicit label, then the\n// channels’ label is promoted to the scale. This inferred label should have an\n// orientation-appropriate arrow added when used as an axis, but we don’t want\n// to add the arrow when the label is set explicitly as an option; so, the\n// inferred label is distinguished as an object with an “inferred†property.\nfunction inferScaleLabel(channels = [], scale) {\n let label;\n for (const {label: l} of channels) {\n if (l === undefined) continue;\n if (label === undefined) label = l;\n else if (label !== l) return;\n }\n if (label === undefined) return;\n // Ignore the implicit label for temporal scales if it’s simply “dateâ€.\n if (isTemporalScale(scale) && /^(date|time|year)$/i.test(label)) return;\n if (!isOrdinalScale(scale) && scale.percent) label = `${label} (%)`;\n return {inferred: true, toString: () => label};\n}\n\n// Returns the dimensions of the outer frame; this is subdivided into facets\n// with the margins of each facet collapsing into the outer margins.\nexport function outerDimensions(dimensions) {\n const {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n width,\n height,\n facet: {\n marginTop: facetMarginTop,\n marginRight: facetMarginRight,\n marginBottom: facetMarginBottom,\n marginLeft: facetMarginLeft\n }\n } = dimensions;\n return {\n marginTop: Math.max(marginTop, facetMarginTop),\n marginRight: Math.max(marginRight, facetMarginRight),\n marginBottom: Math.max(marginBottom, facetMarginBottom),\n marginLeft: Math.max(marginLeft, facetMarginLeft),\n width,\n height\n };\n}\n\n// Returns the dimensions of each facet.\nexport function innerDimensions({fx, fy}, dimensions) {\n const {marginTop, marginRight, marginBottom, marginLeft, width, height} = outerDimensions(dimensions);\n return {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n width: fx ? fx.scale.bandwidth() + marginLeft + marginRight : width,\n height: fy ? fy.scale.bandwidth() + marginTop + marginBottom : height\n };\n}\n\nfunction autoScaleRangeX(scale, dimensions) {\n if (scale.range === undefined) {\n const {insetLeft, insetRight} = scale;\n const {width, marginLeft = 0, marginRight = 0} = dimensions;\n const left = marginLeft + insetLeft;\n const right = width - marginRight - insetRight;\n scale.range = [left, Math.max(left, right)];\n if (!isOrdinalScale(scale)) scale.range = piecewiseRange(scale);\n scale.scale.range(scale.range);\n }\n autoScaleRound(scale);\n}\n\nfunction autoScaleRangeY(scale, dimensions) {\n if (scale.range === undefined) {\n const {insetTop, insetBottom} = scale;\n const {height, marginTop = 0, marginBottom = 0} = dimensions;\n const top = marginTop + insetTop;\n const bottom = height - marginBottom - insetBottom;\n scale.range = [Math.max(top, bottom), top];\n if (!isOrdinalScale(scale)) scale.range = piecewiseRange(scale);\n else scale.range.reverse();\n scale.scale.range(scale.range);\n }\n autoScaleRound(scale);\n}\n\nfunction autoScaleRound(scale) {\n if (scale.round === undefined && isBandScale(scale) && roundError(scale) <= 30) {\n scale.scale.round(true);\n }\n}\n\n// If we were to turn on rounding for this band or point scale, how much wasted\n// space would it introduce (on both ends of the range)? This must match\n// d3.scaleBand’s rounding behavior:\n// https://github.com/d3/d3-scale/blob/83555bd759c7314420bd4240642beda5e258db9e/src/band.js#L20-L32\nfunction roundError({scale}) {\n const n = scale.domain().length;\n const [start, stop] = scale.range();\n const paddingInner = scale.paddingInner ? scale.paddingInner() : 1;\n const paddingOuter = scale.paddingOuter ? scale.paddingOuter() : scale.padding();\n const m = n - paddingInner;\n const step = Math.abs(stop - start) / Math.max(1, m + paddingOuter * 2);\n return (step - Math.floor(step)) * m;\n}\n\nfunction piecewiseRange(scale) {\n const length = scale.scale.domain().length + isThresholdScale(scale);\n if (!(length > 2)) return scale.range;\n const [start, end] = scale.range;\n return Array.from({length}, (_, i) => start + (i / (length - 1)) * (end - start));\n}\n\nexport function normalizeScale(key, scale, hint) {\n return createScale(key, hint === undefined ? undefined : [{hint}], {...scale});\n}\n\nfunction createScale(key, channels = [], options = {}) {\n const type = inferScaleType(key, channels, options);\n\n // Warn for common misuses of implicit ordinal scales. We disable this test if\n // you specify a scale interval or if you set the domain or range explicitly,\n // since setting the domain or range (typically with a cardinality of more than\n // two) is another indication that you intended for the scale to be ordinal; we\n // also disable it for facet scales since these are always band scales.\n if (\n options.type === undefined &&\n options.domain === undefined &&\n options.range === undefined &&\n options.interval == null &&\n key !== \"fx\" &&\n key !== \"fy\" &&\n isOrdinalScale({type})\n ) {\n const values = channels.map(({value}) => value).filter((value) => value !== undefined);\n if (values.some(isTemporal))\n warn(\n `Warning: some data associated with the ${key} scale are dates. Dates are typically associated with a \"utc\" or \"time\" scale rather than a \"${formatScaleType(\n type\n )}\" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., d3.utcDay), or you can suppress this warning by setting the type of the ${key} scale to \"${formatScaleType(\n type\n )}\".`\n );\n else if (values.some(isTemporalString))\n warn(\n `Warning: some data associated with the ${key} scale are strings that appear to be dates (e.g., YYYY-MM-DD). If these strings represent dates, you should parse them to Date objects. Dates are typically associated with a \"utc\" or \"time\" scale rather than a \"${formatScaleType(\n type\n )}\" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can suppress this warning by setting the type of the ${key} scale to \"${formatScaleType(\n type\n )}\".`\n );\n else if (values.some(isNumericString))\n warn(\n `Warning: some data associated with the ${key} scale are strings that appear to be numbers. If these strings represent numbers, you should parse or coerce them to numbers. Numbers are typically associated with a \"linear\" scale rather than a \"${formatScaleType(\n type\n )}\" scale. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., 1 for integers), or you can suppress this warning by setting the type of the ${key} scale to \"${formatScaleType(\n type\n )}\".`\n );\n }\n\n options.type = type; // Mutates input!\n\n // Once the scale type is known, coerce the associated channel values and any\n // explicitly-specified domain to the expected type.\n switch (type) {\n case \"diverging\":\n case \"diverging-sqrt\":\n case \"diverging-pow\":\n case \"diverging-log\":\n case \"diverging-symlog\":\n case \"cyclical\":\n case \"sequential\":\n case \"linear\":\n case \"sqrt\":\n case \"threshold\":\n case \"quantile\":\n case \"pow\":\n case \"log\":\n case \"symlog\":\n options = coerceType(channels, options, coerceNumbers);\n break;\n case \"identity\":\n switch (registry.get(key)) {\n case position:\n options = coerceType(channels, options, coerceNumbers);\n break;\n case symbol:\n options = coerceType(channels, options, coerceSymbols);\n break;\n }\n break;\n case \"utc\":\n case \"time\":\n options = coerceType(channels, options, coerceDates);\n break;\n }\n\n switch (type) {\n case \"diverging\":\n return createScaleDiverging(key, channels, options);\n case \"diverging-sqrt\":\n return createScaleDivergingSqrt(key, channels, options);\n case \"diverging-pow\":\n return createScaleDivergingPow(key, channels, options);\n case \"diverging-log\":\n return createScaleDivergingLog(key, channels, options);\n case \"diverging-symlog\":\n return createScaleDivergingSymlog(key, channels, options);\n case \"categorical\":\n case \"ordinal\":\n case ordinalImplicit:\n return createScaleOrdinal(key, channels, options);\n case \"cyclical\":\n case \"sequential\":\n case \"linear\":\n return createScaleLinear(key, channels, options);\n case \"sqrt\":\n return createScaleSqrt(key, channels, options);\n case \"threshold\":\n return createScaleThreshold(key, channels, options);\n case \"quantile\":\n return createScaleQuantile(key, channels, options);\n case \"quantize\":\n return createScaleQuantize(key, channels, options);\n case \"pow\":\n return createScalePow(key, channels, options);\n case \"log\":\n return createScaleLog(key, channels, options);\n case \"symlog\":\n return createScaleSymlog(key, channels, options);\n case \"utc\":\n return createScaleUtc(key, channels, options);\n case \"time\":\n return createScaleTime(key, channels, options);\n case \"point\":\n return createScalePoint(key, channels, options);\n case \"band\":\n return createScaleBand(key, channels, options);\n case \"identity\":\n return registry.get(key) === position ? createScaleIdentity() : {type: \"identity\"};\n case undefined:\n return;\n default:\n throw new Error(`unknown scale type: ${type}`);\n }\n}\n\nfunction formatScaleType(type) {\n return typeof type === \"symbol\" ? type.description : type;\n}\n\n// A special type symbol when the x and y scales are replaced with a projection.\nconst typeProjection = {toString: () => \"projection\"};\n\nfunction inferScaleType(key, channels, {type, domain, range, scheme, pivot, projection}) {\n // The facet scales are always band scales; this cannot be changed.\n if (key === \"fx\" || key === \"fy\") return \"band\";\n\n // If a projection is specified, the x- and y-scales are disabled; these\n // channels will be projected rather than scaled. (But still check that none\n // of the associated channels are incompatible with a projection.)\n if ((key === \"x\" || key === \"y\") && projection != null) type = typeProjection;\n\n // If a channel dictates a scale type, make sure that it is consistent with\n // the user-specified scale type (if any) and all other channels. For example,\n // barY requires x to be a band scale and disallows any other scale type.\n for (const {type: t} of channels) {\n if (t === undefined) continue;\n else if (type === undefined) type = t;\n else if (type !== t) throw new Error(`scale incompatible with channel: ${type} !== ${t}`);\n }\n\n // If the scale, a channel, or user specified a (consistent) type, return it.\n if (type === typeProjection) return;\n if (type !== undefined) return type;\n\n // If there’s no data (and no type) associated with this scale, don’t create a scale.\n if (domain === undefined && !channels.some(({value}) => value !== undefined)) return;\n\n // Some scales have default types.\n const kind = registry.get(key);\n if (kind === radius) return \"sqrt\";\n if (kind === opacity || kind === length) return \"linear\";\n if (kind === symbol) return \"ordinal\";\n\n // If the domain or range has more than two values, assume it’s ordinal. You\n // can still use a “piecewise†(or “polylinearâ€) scale, but you must set the\n // type explicitly.\n if ((domain || range || []).length > 2) return asOrdinalType(kind);\n\n // Otherwise, infer the scale type from the data! Prefer the domain, if\n // present, over channels. (The domain and channels should be consistently\n // typed, and the domain is more explicit and typically much smaller.) We only\n // check the first defined value for expedience and simplicity; we expect\n // that the types are consistent.\n if (domain !== undefined) {\n if (isOrdinal(domain)) return asOrdinalType(kind);\n if (isTemporal(domain)) return \"utc\";\n if (kind === color && (pivot != null || isDivergingScheme(scheme))) return \"diverging\";\n return \"linear\";\n }\n\n // If any channel is ordinal or temporal, it takes priority.\n const values = channels.map(({value}) => value).filter((value) => value !== undefined);\n if (values.some(isOrdinal)) return asOrdinalType(kind);\n if (values.some(isTemporal)) return \"utc\";\n if (kind === color && (pivot != null || isDivergingScheme(scheme))) return \"diverging\";\n return \"linear\";\n}\n\n// Positional scales default to a point scale instead of an ordinal scale.\nfunction asOrdinalType(kind) {\n switch (kind) {\n case position:\n return \"point\";\n case color:\n return ordinalImplicit;\n default:\n return \"ordinal\";\n }\n}\n\nexport function isTemporalScale({type}) {\n return type === \"time\" || type === \"utc\";\n}\n\nexport function isOrdinalScale({type}) {\n return type === \"ordinal\" || type === \"point\" || type === \"band\" || type === ordinalImplicit;\n}\n\nexport function isThresholdScale({type}) {\n return type === \"threshold\";\n}\n\nfunction isBandScale({type}) {\n return type === \"point\" || type === \"band\";\n}\n\nexport function isDivergingScale({type}) {\n return /^diverging($|-)/.test(type);\n}\n\n// Certain marks have special behavior if a scale is collapsed, i.e. if the\n// domain is degenerate and represents only a single value such as [3, 3]; for\n// example, a rect will span the full extent of the chart along a collapsed\n// dimension (whereas a dot will simply be drawn in the center).\nexport function isCollapsed(scale) {\n if (scale === undefined) return true; // treat missing scale as collapsed\n const domain = scale.domain();\n const value = scale(domain[0]);\n for (let i = 1, n = domain.length; i < n; ++i) {\n if (scale(domain[i]) - value) {\n return false;\n }\n }\n return true;\n}\n\n// Mutates channel.value!\nfunction coerceType(channels, {domain, ...options}, coerceValues) {\n for (const c of channels) {\n if (c.value !== undefined) {\n c.value = coerceValues(c.value);\n }\n }\n return {\n domain: domain === undefined ? domain : coerceValues(domain),\n ...options\n };\n}\n\nfunction coerceSymbols(values) {\n return map(values, maybeSymbol);\n}\n\nexport function scale(options = {}) {\n let scale;\n for (const key in options) {\n if (!registry.has(key)) continue; // ignore unknown properties\n if (!isScaleOptions(options[key])) continue; // e.g., ignore {color: \"red\"}\n if (scale !== undefined) throw new Error(\"ambiguous scale definition; multiple scales found\");\n scale = exposeScale(normalizeScale(key, options[key]));\n }\n if (scale === undefined) throw new Error(\"invalid scale definition; no scale found\");\n return scale;\n}\n\nexport function exposeScales(scaleDescriptors) {\n return (key) => {\n if (!registry.has((key = `${key}`))) throw new Error(`unknown scale: ${key}`);\n return key in scaleDescriptors ? exposeScale(scaleDescriptors[key]) : undefined;\n };\n}\n\n// Note: axis- and legend-related properties (such as label, ticks and\n// tickFormat) are not included here as they do not affect the scale’s behavior.\nfunction exposeScale({scale, type, domain, range, interpolate, interval, transform, percent, pivot}) {\n if (type === \"identity\") return {type: \"identity\", apply: (d) => d, invert: (d) => d};\n const unknown = scale.unknown ? scale.unknown() : undefined;\n return {\n type,\n domain: slice(domain), // defensive copy\n ...(range !== undefined && {range: slice(range)}), // defensive copy\n ...(transform !== undefined && {transform}),\n ...(percent && {percent}), // only exposed if truthy\n ...(unknown !== undefined && {unknown}),\n ...(interval !== undefined && {interval}),\n\n // quantitative\n ...(interpolate !== undefined && {interpolate}),\n ...(scale.clamp && {clamp: scale.clamp()}),\n\n // diverging (always asymmetric; we never want to apply the symmetric transform twice)\n ...(pivot !== undefined && {pivot, symmetric: false}),\n\n // log, diverging-log\n ...(scale.base && {base: scale.base()}),\n\n // pow, diverging-pow\n ...(scale.exponent && {exponent: scale.exponent()}),\n\n // symlog, diverging-symlog\n ...(scale.constant && {constant: scale.constant()}),\n\n // band, point\n ...(scale.align && {align: scale.align(), round: scale.round()}),\n ...(scale.padding &&\n (scale.paddingInner\n ? {paddingInner: scale.paddingInner(), paddingOuter: scale.paddingOuter()}\n : {padding: scale.padding()})),\n ...(scale.bandwidth && {bandwidth: scale.bandwidth(), step: scale.step()}),\n\n // utilities\n apply: (t) => scale(t),\n ...(scale.invert && {invert: (t) => scale.invert(t)})\n };\n}\n","export enum ScrollDirection {\n SCROLL_NONE,\n SCROLL_BACKWARD,\n SCROLL_FORWARD,\n}\n\nexport enum Position {\n TOP,\n RIGHT,\n BOTTOM,\n LEFT,\n}\n\nexport const OPTIONS_DEFAULT_DOMAIN_TYPE = 'hour';\n\nexport const OPTIONS_DEFAULT_SUBDOMAIN_TYPE = 'minute';\nexport const OPTIONS_DEFAULT_SUBDOMAIN_WIDTH = 10;\nexport const OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT = 10;\nexport const OPTIONS_DEFAULT_SUBDOMAIN_GUTTER = 2;\nexport const OPTIONS_DEFAULT_SUBDOMAIN_RADIUS = 0;\nexport const OPTIONS_DEFAULT_ANIMATION_DURATION = 200;\nexport const OPTIONS_DEFAULT_RANGE = 12;\nexport const OPTIONS_DEFAULT_ITEM_SELECTOR = '#cal-heatmap';\nexport const OPTIONS_DEFAULT_THEME = 'light';\nexport const OPTIONS_DEFAULT_LOCALE = 'en';\n\nexport const SCALE_BASE_OPACITY_COLOR = 'red';\nexport const SCALE_BASE_COLOR_SCHEME = 'YlOrBr';\nexport const SCALE_BASE_COLOR_TYPE = 'quantize';\nexport const SCALE_BASE_COLOR_DOMAIN = [0, 100];\n","// @ts-ignore\nimport { scale } from '@observablehq/plot';\nimport { OptionsType } from './options/Options';\nimport { SCALE_BASE_OPACITY_COLOR } from './constant';\n\nimport type { SubDomain } from './index';\n\ntype ValueType = string | number | undefined;\n\nexport function normalizedScale(scaleOptions: OptionsType['scale']): any {\n try {\n const scaleType = Object.keys(scaleOptions!)[0];\n\n return scale({\n [scaleType]: {\n ...scaleOptions![scaleType as 'color' | 'opacity'],\n clamp: true,\n },\n });\n } catch (error) {\n return null;\n }\n}\n\nfunction scaleStyle(_scale: any, scaleOptions: OptionsType['scale']) {\n const styles: { fill?: Function; 'fill-opacity'?: Function } = {};\n\n if (scaleOptions!.hasOwnProperty('opacity')) {\n styles.fill = () =>\n // eslint-disable-next-line implicit-arrow-linebreak\n scaleOptions!.opacity!.baseColor || SCALE_BASE_OPACITY_COLOR;\n styles['fill-opacity'] = (d: ValueType) => _scale?.apply(d);\n } else {\n styles.fill = (d: ValueType) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n (typeof d === 'string' && d?.startsWith('#') ? d : _scale?.apply(d));\n }\n\n return styles;\n}\n\nexport function applyScaleStyle(\n elem: any,\n _scale: any,\n scaleOptions: OptionsType['scale'],\n keyname?: string,\n) {\n Object.entries(scaleStyle(_scale, scaleOptions)).forEach(([prop, val]) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n elem.style(prop, (d: SubDomain | string) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n val(keyname ? (d as SubDomain)[keyname as keyof SubDomain] : d)));\n}\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind == 'keys') return createIterResultObject(entry.key, false);\n if (kind == 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = lengthOfArrayLike(items);\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw $TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","var $ = require('../internals/export');\nvar $parseInt = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != $parseInt }, {\n parseInt: $parseInt\n});\n","import castArray from 'lodash-es/castArray';\n\nimport type { SubDomain } from '../index';\nimport type {\n DataOptions,\n DataGroupType,\n DataRecord,\n} from '../options/Options';\nimport { DomainType, Timestamp } from '../index';\nimport type DateHelper from '../helpers/DateHelper';\n\nexport const DOMAIN_FORMAT: Record<DomainType, string> = {\n year: 'YYYY',\n month: 'MMMM',\n week: 'wo [week] YYYY',\n xDay: 'Do MMM',\n ghDay: 'Do MMM',\n day: 'Do MMM',\n hour: 'HH:00',\n minute: 'HH:mm',\n};\n\ntype GroupedRecords = Map<Timestamp, { [key: Timestamp]: DataRecord[] }>;\ntype ValueType = string | number | null;\n\nexport default class DomainCollection {\n collection: Map<Timestamp, SubDomain[]>;\n\n dateHelper: DateHelper;\n\n min: Timestamp;\n\n max: Timestamp;\n\n keys: Timestamp[];\n\n yankedDomains: Timestamp[];\n\n constructor(\n dateHelper: DateHelper,\n interval?: DomainType,\n start?: Date | Timestamp,\n range?: Date | Timestamp,\n excludeEnd: boolean = false,\n ) {\n this.collection = new Map();\n this.dateHelper = dateHelper;\n\n if (interval && start && range) {\n const ts = this.dateHelper\n .intervals(interval, start, range, excludeEnd)\n .map((d: Timestamp) => castArray(d));\n\n // @ts-ignore\n this.collection = new Map(ts);\n }\n\n this.min = 0;\n this.max = 0;\n this.keys = [];\n this.yankedDomains = [];\n\n if (this.collection.size > 0) {\n this.#refreshKeys();\n }\n }\n\n has(key: Timestamp): boolean {\n return this.collection.has(key);\n }\n\n get(key: Timestamp) {\n return this.collection.get(key);\n }\n\n forEach(callback: any) {\n return this.collection.forEach(callback);\n }\n\n at(index: number): Timestamp {\n return this.keys[index];\n }\n\n clamp(minDate?: Timestamp, maxDate?: Timestamp): DomainCollection {\n if (minDate && this.min! < minDate) {\n this.keys\n .filter((key) => key < minDate)\n .forEach((d) => this.collection.delete(d));\n }\n\n if (maxDate && this.max! > maxDate) {\n this.keys\n .filter((key) => key > maxDate)\n .forEach((d) => this.collection.delete(d));\n }\n\n this.#refreshKeys();\n\n return this;\n }\n\n merge(\n newCollection: DomainCollection,\n limit: number,\n createValueCallback: Function,\n ): void {\n this.yankedDomains = [];\n\n newCollection.keys.forEach((domainKey, index) => {\n if (this.has(domainKey)) {\n return;\n }\n\n if (this.collection.size >= limit) {\n let keyToRemove = this.max;\n\n if (domainKey > this.max!) {\n keyToRemove = this.min;\n }\n\n if (keyToRemove && this.collection.delete(keyToRemove)) {\n this.yankedDomains.push(keyToRemove);\n }\n }\n this.collection.set(domainKey, createValueCallback(domainKey, index));\n this.#refreshKeys();\n });\n this.yankedDomains = this.yankedDomains.sort((a, b) => a - b);\n }\n\n slice(limit: number = 0, fromBeginning: boolean = true): DomainCollection {\n if (this.keys.length > limit) {\n const keysToDelete = fromBeginning ?\n this.keys.slice(0, -limit) :\n this.keys.slice(limit);\n\n keysToDelete.forEach((key) => {\n this.collection.delete(key);\n });\n\n this.#refreshKeys();\n }\n\n return this;\n }\n\n fill(\n data: DataRecord[],\n {\n x,\n y,\n groupY,\n defaultValue,\n }: {\n x: DataOptions['x'];\n y: DataOptions['y'];\n groupY: DataOptions['groupY'];\n defaultValue: DataOptions['defaultValue'];\n },\n subDomainKeyExtractor: Function,\n ): void {\n const groupedRecords: GroupedRecords = this.groupRecords(\n data,\n x,\n subDomainKeyExtractor,\n );\n\n this.keys.forEach((domainKey) => {\n const records = groupedRecords.get(domainKey) || {};\n this.#setSubDomainValues(domainKey, records, y, groupY, defaultValue);\n });\n }\n\n #setSubDomainValues(\n domainKey: Timestamp,\n records: { [key: string]: DataRecord[] },\n y: DataOptions['y'],\n groupY: DataOptions['groupY'],\n defaultValue: DataOptions['defaultValue'],\n ): void {\n this.get(domainKey)!.forEach((subDomain: SubDomain, index: number) => {\n let value: ValueType = defaultValue;\n if (records.hasOwnProperty(subDomain.t)) {\n value = this.groupValues(\n this.#extractValues(records[subDomain.t], y),\n groupY,\n );\n }\n\n this.get(domainKey)![index].v = value;\n });\n }\n\n groupRecords(\n data: DataRecord[],\n x: DataOptions['x'],\n subDomainKeyExtractor: Function,\n ): GroupedRecords {\n const results: GroupedRecords = new Map();\n const validSubDomainTimestamp: Map<Timestamp, Timestamp> = new Map();\n this.keys.forEach((domainKey) => {\n this.get(domainKey)!.forEach((subDomain: SubDomain) => {\n validSubDomainTimestamp.set(subDomain.t, domainKey);\n });\n });\n\n data.forEach((d) => {\n const timestamp = this.extractTimestamp(d, x, subDomainKeyExtractor);\n\n if (validSubDomainTimestamp.has(timestamp)) {\n const domainKey = validSubDomainTimestamp.get(timestamp)!;\n const records = results.get(domainKey) || {};\n records[timestamp] ||= [];\n records[timestamp].push(d);\n\n results.set(domainKey, records);\n }\n });\n\n return results;\n }\n\n // eslint-disable-next-line class-methods-use-this\n #extractValues(data: DataRecord[], y: string | Function): ValueType[] {\n return data.map((d): ValueType => (typeof y === 'function' ? y(d) : d[y]));\n }\n\n // eslint-disable-next-line class-methods-use-this\n groupValues(\n values: ValueType[],\n groupFn: DataGroupType | ((values: ValueType[]) => ValueType),\n ): ValueType {\n const cleanedValues = values.filter((n) => n !== null);\n\n if (typeof groupFn === 'string') {\n if (cleanedValues.every((n) => typeof n === 'number')) {\n switch (groupFn) {\n case 'sum':\n return (cleanedValues as number[]).reduce((a, b) => a + b, 0);\n case 'count':\n return cleanedValues.length;\n case 'min':\n return Math.min(...(cleanedValues as number[])) || null;\n case 'max':\n return Math.max(...(cleanedValues as number[])) || null;\n case 'average':\n return cleanedValues.length > 0 ?\n (cleanedValues as number[]).reduce((a, b) => a + b, 0) /\n cleanedValues.length :\n null;\n default:\n return null;\n }\n }\n\n switch (groupFn) {\n case 'count':\n return cleanedValues.length;\n default:\n return null;\n }\n } else if (typeof groupFn === 'function') {\n return groupFn(cleanedValues);\n }\n\n return null;\n }\n\n // eslint-disable-next-line class-methods-use-this\n extractTimestamp(\n datum: DataRecord,\n x: string | Function,\n extractorFn: Function,\n ): Timestamp {\n let timestamp: string | Timestamp =\n typeof x === 'function' ? x(datum) : datum[x];\n\n if (typeof timestamp === 'string') {\n timestamp = +new Date(timestamp);\n }\n\n return extractorFn(timestamp);\n }\n\n #refreshKeys(): Timestamp[] {\n this.keys = Array.from(this.collection.keys())\n .map((d: any) => parseInt(d, 10))\n .sort((a, b) => a - b);\n\n const { keys } = this;\n // eslint-disable-next-line prefer-destructuring\n this.min = keys[0];\n this.max = keys[keys.length - 1];\n\n return this.keys;\n }\n}\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","import { select } from 'd3-selection';\n\nimport DomainsContainerPainter from '../domain/DomainsContainerPainter';\nimport PluginPainter from '../plugins/PluginPainter';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport { ScrollDirection } from '../constant';\nimport type { Dimensions } from '../index';\n\nexport const DEFAULT_SELECTOR = '.ch-container';\n\nexport default class CalendarPainter {\n calendar: CalHeatmap;\n\n dimensions: Dimensions;\n\n root: any;\n\n domainsContainerPainter: DomainsContainerPainter;\n\n pluginPainter: PluginPainter;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n this.dimensions = {\n width: 0,\n height: 0,\n };\n this.root = null;\n this.domainsContainerPainter = new DomainsContainerPainter(calendar);\n this.pluginPainter = new PluginPainter(calendar);\n }\n\n setup(): boolean {\n const { itemSelector, theme } = this.calendar.options.options;\n\n if (!this.root) {\n this.root = select(itemSelector)\n .append('svg')\n .attr('data-theme', theme)\n .attr('class', DEFAULT_SELECTOR.slice(1));\n this.domainsContainerPainter.setup();\n }\n\n this.calendar.pluginManager.setupAll();\n\n return true;\n }\n\n paint(navigationDir: ScrollDirection = ScrollDirection.SCROLL_NONE) {\n const transitions = this.domainsContainerPainter\n .paint(navigationDir)\n .concat(this.pluginPainter.paint())\n .concat(this.domainsContainerPainter.updatePosition());\n\n this.#resize();\n\n return Promise.allSettled(transitions);\n }\n\n #getHeight(): Dimensions['height'] {\n return (\n this.domainsContainerPainter.height() + this.pluginPainter.insideHeight()\n );\n }\n\n #getWidth(): Dimensions['width'] {\n return (\n this.domainsContainerPainter.width() + this.pluginPainter.insideWidth()\n );\n }\n\n #resize(): void {\n const { options } = this.calendar.options;\n\n const newWidth = this.#getWidth();\n const newHeight = this.#getHeight();\n\n this.root\n .transition()\n .duration(options.animationDuration)\n .attr('width', newWidth)\n .attr('height', newHeight);\n\n if (\n newWidth !== this.dimensions.width ||\n newHeight !== this.dimensions.height\n ) {\n this.calendar.eventEmitter.emit(\n 'resize',\n newWidth,\n newHeight,\n this.dimensions.width,\n this.dimensions.height,\n );\n }\n\n this.dimensions = {\n width: newWidth,\n height: newHeight,\n };\n }\n\n destroy(): Promise<unknown> {\n const result: Promise<unknown>[] = this.calendar.pluginManager\n .destroyAll()\n .concat(this.domainsContainerPainter.destroy());\n\n if (!this.root) {\n return Promise.allSettled(result);\n }\n\n result.push(\n this.root\n .transition()\n .duration(this.calendar.options.options.animationDuration)\n .attr('width', 0)\n .attr('height', 0)\n .remove()\n .end(),\n );\n\n return Promise.allSettled(result);\n }\n}\n","import { select, create } from 'd3-selection';\nimport { normalizedScale, applyScaleStyle } from '../scale';\nimport { DEFAULT_SELECTOR as MAIN_SELECTOR } from '../calendar/CalendarPainter';\nimport {\n // force line break from prettier\n DEFAULT_SELECTOR as SUBDOMAIN_SELECTOR,\n} from '../subDomain/SubDomainPainter';\n\nimport type CalHeatmap from '../CalHeatmap';\nimport type { IPlugin, PluginOptions } from '../index';\nimport {\n OPTIONS_DEFAULT_SUBDOMAIN_WIDTH,\n OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT,\n OPTIONS_DEFAULT_SUBDOMAIN_GUTTER,\n OPTIONS_DEFAULT_SUBDOMAIN_RADIUS,\n} from '../constant';\n\ninterface LegendOptions extends PluginOptions {\n enabled: boolean;\n itemSelector: string | null;\n width: number;\n height: number;\n radius: number;\n gutter: number;\n includeBlank: boolean;\n}\n\nconst DEFAULT_SELECTOR = '.ch-plugin-legend-lite';\n\nconst defaultOptions: LegendOptions = {\n enabled: true, // Whether to display the legend\n itemSelector: null,\n width: OPTIONS_DEFAULT_SUBDOMAIN_WIDTH,\n height: OPTIONS_DEFAULT_SUBDOMAIN_HEIGHT,\n gutter: OPTIONS_DEFAULT_SUBDOMAIN_GUTTER,\n radius: OPTIONS_DEFAULT_SUBDOMAIN_RADIUS,\n includeBlank: false,\n};\n\nexport default class LegendLite implements IPlugin {\n name = 'LegendLite';\n\n calendar: CalHeatmap;\n\n root: any;\n\n shown: boolean;\n\n options: LegendOptions;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n this.root = null;\n this.shown = false;\n this.options = defaultOptions;\n }\n\n setup(pluginOptions?: Partial<LegendOptions>): void {\n this.options = { ...this.options, ...pluginOptions };\n }\n\n paint(): Promise<unknown> {\n const { enabled, itemSelector } = this.options;\n\n if (!enabled || (itemSelector && select(itemSelector).empty())) {\n return this.destroy();\n }\n\n this.shown = true;\n\n this.root = select(\n itemSelector || this.calendar.options.options.itemSelector,\n );\n\n if (this.root.select(DEFAULT_SELECTOR).empty()) {\n this.root = this.root\n .append('div')\n .attr('class', DEFAULT_SELECTOR.slice(1));\n } else {\n this.root = this.root.select(DEFAULT_SELECTOR);\n }\n\n const node = this.#buildLegend();\n\n this.root.selectAll('*').remove();\n this.root.append(() => node.node());\n\n return Promise.resolve();\n }\n\n destroy(): Promise<unknown> {\n if (this.root !== null) {\n this.root.remove();\n this.root = null;\n }\n\n return Promise.resolve();\n }\n\n #buildLegend() {\n const node = create('svg');\n const scale = normalizedScale(this.calendar.options.options.scale);\n const {\n width, height, gutter, includeBlank,\n } = this.options;\n\n const localRange = [...scale.range];\n if (includeBlank) {\n localRange.unshift(null);\n }\n\n node\n .attr('class', MAIN_SELECTOR.slice(1))\n .attr(\n 'width',\n localRange.length * width + (localRange.length - 1) * gutter,\n )\n .attr('height', height);\n\n node\n .selectAll('rect')\n .data(localRange)\n .join(\n (enter: any) => enter.append('rect').call((sc: any) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.#nodeAttrs(sc, scale)),\n (update: any) => update\n .selectAll('rect')\n .call((sc: any) => this.#nodeAttrs(sc, scale)),\n );\n\n return node;\n }\n\n #nodeAttrs(selection: any, scale: any) {\n const {\n width, height, radius, gutter,\n } = this.options;\n\n return selection\n .attr('width', width)\n .attr('height', height)\n .attr('class', `${SUBDOMAIN_SELECTOR.slice(1)}-bg`)\n .attr('rx', radius)\n .attr('ry', radius)\n .attr('x', (_d: any, i: number) => i * (width + gutter))\n .attr('y', 0)\n .call((element: any) => {\n applyScaleStyle(element, scale, this.calendar.options.options.scale!);\n });\n }\n}\n","import { Position } from '../constant';\nimport type CalHeatmap from '../CalHeatmap';\nimport type { Timestamp, SubDomain } from '../index';\n\nexport const DEFAULT_SELECTOR = '.ch-subdomain';\nconst HIGHLIGHT_CLASSNAME = 'highlight';\n\nexport default class SubDomainPainter {\n calendar: CalHeatmap;\n\n root: any;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n this.root = null;\n }\n\n paint(root: any): void {\n this.root = root || this.root;\n const containerClassname = `${DEFAULT_SELECTOR}-container`;\n\n const subDomainSvgGroup = this.root\n .selectAll(containerClassname)\n .data(\n (d: Timestamp) => [d],\n (d: Timestamp) => d,\n )\n .join(\n (enter: any) => enter\n .append('svg')\n .call((selection: any) => this.#setPositions(selection))\n .attr('class', containerClassname.slice(1)),\n\n (update: any) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n update.call((selection: any) => this.#setPositions(selection)),\n );\n\n const {\n subDomain: {\n radius, width, height, sort,\n },\n } = this.calendar.options.options;\n const evt = this.calendar.eventEmitter;\n\n subDomainSvgGroup\n .selectAll('g')\n .data((d: Timestamp) => {\n const subDomainsCollection: SubDomain[] =\n this.calendar.domainCollection.get(d)!;\n if (sort === 'desc') {\n const max = Math.max(\n ...subDomainsCollection.map((s: SubDomain) => s.x),\n );\n subDomainsCollection.forEach((s: SubDomain, i: number) => {\n subDomainsCollection[i].x = Math.abs(s.x - max);\n });\n }\n\n return subDomainsCollection;\n })\n .join(\n (enter: any) => enter\n .append('g')\n .call((selection: any) => selection\n .insert('rect')\n .attr('class', (d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.#classname(d.t, `${DEFAULT_SELECTOR.slice(1)}-bg`))\n .attr('width', width)\n .attr('height', height)\n .attr('x', (d: SubDomain) => this.#getX(d))\n .attr('y', (d: SubDomain) => this.#getY(d))\n .on('click', (ev: PointerEvent, d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n evt.emit('click', ev, d.t, d.v))\n .on('mouseover', (ev: PointerEvent, d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n evt.emit('mouseover', ev, d.t, d.v))\n .on('mouseout', (ev: PointerEvent, d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n evt.emit('mouseout', ev, d.t, d.v))\n .attr('rx', radius > 0 ? radius : null)\n .attr('ry', radius > 0 ? radius : null))\n .call((selection: any) => this.#appendText(selection)),\n (update: any) => update\n .selectAll('rect')\n .attr('class', (d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.#classname(d.t, `${DEFAULT_SELECTOR.slice(1)}-bg`))\n .attr('width', width)\n .attr('height', height)\n .attr('x', (d: SubDomain) => this.#getX(d))\n .attr('y', (d: SubDomain) => this.#getY(d))\n .attr('rx', radius)\n .attr('ry', radius),\n );\n }\n\n /**\n * Set the subDomain group X and Y position\n * @param {d3-selection} selection A d3-selection object\n */\n #setPositions(selection: any): void {\n const { options } = this.calendar.options;\n const {\n padding,\n label: { position },\n } = options.domain;\n\n selection\n .attr('x', () => {\n let pos = padding[Position.LEFT];\n if (position === 'left') {\n pos += options.x.domainHorizontalLabelWidth;\n }\n return pos;\n })\n .attr('y', () => {\n let pos = padding[Position.TOP];\n if (position === 'top') {\n pos += options.x.domainVerticalLabelHeight;\n }\n return pos;\n });\n }\n\n /**\n * Return a classname if the specified date should be highlighted\n *\n * @param {number} timestamp Unix timestamp of the current subDomain\n * @return {String} the highlight class\n */\n #classname(timestamp: Timestamp, ...otherClasses: string[]): string {\n const {\n date: { highlight },\n subDomain: { type },\n } = this.calendar.options.options;\n let classname = '';\n\n if (highlight.length > 0) {\n highlight.forEach((d) => {\n const unitFn = this.calendar.templateCollection.get(type).extractUnit;\n\n if (unitFn(+d) === unitFn(timestamp)) {\n classname = HIGHLIGHT_CLASSNAME;\n }\n });\n }\n\n return [classname, ...otherClasses].join(' ').trim();\n }\n\n #appendText(elem: any) {\n const { width, height, label } = this.calendar.options.options.subDomain;\n\n if (!label) {\n return null;\n }\n\n return elem\n .append('text')\n .attr('class', (d: SubDomain) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.#classname(d.t, `${DEFAULT_SELECTOR.slice(1)}-text`))\n .attr('x', (d: SubDomain) => this.#getX(d) + width / 2)\n .attr('y', (d: SubDomain) => this.#getY(d) + height / 2)\n .attr('text-anchor', 'middle')\n .attr('dominant-baseline', 'central')\n .text((d: SubDomain, i: number, nodes: any[]) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n this.calendar.dateHelper.format(d.t, label, d.v, nodes[i]));\n }\n\n #getCoordinates(axis: 'x' | 'y', d: SubDomain): number {\n const { subDomain } = this.calendar.options.options;\n return (\n d[axis] *\n (subDomain[axis === 'x' ? 'width' : 'height'] + subDomain.gutter)\n );\n }\n\n #getX(d: SubDomain): number {\n return this.#getCoordinates('x', d);\n }\n\n #getY(d: SubDomain): number {\n return this.#getCoordinates('y', d);\n }\n}\n"],"names":["fails","exec","error","descriptors","require$$0","Object","defineProperty","get","functionBindNative","test","bind","hasOwnProperty","NATIVE_BIND","FunctionPrototype","Function","prototype","call","uncurryThisWithBind","functionUncurryThis","fn","apply","arguments","isNullOrUndefined","it","$TypeError","TypeError","requireObjectCoercible","$Object","toObject","argument","require$$1","hasOwnProperty_1","hasOwn","key","DESCRIPTORS","getDescriptor","getOwnPropertyDescriptor","EXISTS","functionName","PROPER","name","CONFIGURABLE","configurable","makeBuiltIn$3","exports","documentAll","document","all","documentAll_1","IS_HTMLDDA","undefined","isCallable","check","Math","global","globalThis","window","self","this","defineGlobalProperty","value","writable","SHARED","sharedStore","store","require$$2","functionToString","toString","inspectSource","match","version","WeakMap","weakMapBasicDetection","String","isObject","objectDefineProperty","createElement","documentCreateElement","ie8DomDefine","a","v8PrototypeDefineBug","$String","anObject","functionCall","getBuiltIn","namespace","method","length","objectIsPrototypeOf","isPrototypeOf","engineUserAgent","navigator","userAgent","process","Deno","versions","v8","split","engineV8Version","V8_VERSION","symbolConstructorDetection","getOwnPropertySymbols","symbol","Symbol","sham","useSymbolAsUid","iterator","isSymbol","require$$3","$Symbol","tryToString","aCallable","getMethod","V","P","func","shared$3","sharedModule","push","mode","copyright","license","source","uncurryThis","id","postfix","random","uid","shared","NATIVE_SYMBOL","require$$4","USE_SYMBOL_AS_UID","require$$5","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","wellKnownSymbol","ordinaryToPrimitive","input","pref","val","valueOf","TO_PRIMITIVE","toPrimitive","result","exoticToPrim","toPropertyKey","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","f","O","Attributes","current","enumerable","set","has","createPropertyDescriptor","bitmap","definePropertyModule","createNonEnumerableProperty","object","keys","sharedKey","hiddenKeys","NATIVE_WEAK_MAP","require$$6","require$$7","OBJECT_ALREADY_INITIALIZED","state","metadata","facade","STATE","internalState","enforce","getterFor","TYPE","type","CONFIGURABLE_FUNCTION_NAME","enforceInternalState","getInternalState","stringSlice","slice","replace","join","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","makeBuiltInModule","options","getter","setter","arity","constructor","defineBuiltInAccessor","target","descriptor","FUNCTION_NAME_EXISTS","nameRE","regExpExec","objectGetOwnPropertyDescriptor","objectPropertyIsEnumerable","$propertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","classofRaw","classof","indexedObject","IndexedObject","toIndexedObject","propertyIsEnumerableModule","defineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","ceil","floor","trunc","x","n","toIntegerOrInfinity","number","max","min","toAbsoluteIndex","index","integer","toLength","lengthOfArrayLike","obj","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","includes","indexOf","objectKeysInternal","names","i","enumBugKeys","internalObjectKeys","concat","objectGetOwnPropertyNames","getOwnPropertyNames","objectGetOwnPropertySymbols","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","isForced_1","copyConstructorProperties","exceptions","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","objectKeys","require$$8","$assign","assign","objectAssign","b","A","B","alphabet","forEach","chr","T","argumentsLength","S","j","toStringTagSupport","TO_STRING_TAG_SUPPORT","TO_STRING_TAG","CORRECT_ARGUMENTS","tag","tryGet","callee","engineIsNode","uncurryThisAccessor","aPossiblePrototype","objectSetPrototypeOf","setPrototypeOf","CORRECT_SETTER","Array","proto","__proto__","setToStringTag","TAG","SPECIES","setSpecies","CONSTRUCTOR_NAME","Constructor","anInstance","Prototype","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","$location","defer","channel","port","isConstructor","called","aConstructor","functionApply","Reflect","functionUncurryThisClause","functionBindContext","that","html","arraySlice","engineIsIos","validateArgumentsLength","passed","required","IS_IOS","require$$10","IS_NODE","require$$11","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","location","run","runner","eventListener","event","globalPostMessageDefer","postMessage","protocol","host","handler","args","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","appendChild","removeChild","setTimeout","task","Queue","head","tail","add","item","entry","next","notify","toggle","node","promise","then","engineIsIosPebble","Pebble","engineIsWebosWebkit","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","Promise","queueMicrotaskDescriptor","microtask","flush","parent","domain","exit","enter","resolve","createTextNode","observe","characterData","microtask_1","perform","promiseNativeConstructor","engineIsDeno","engineIsBrowser","NativePromiseConstructor","IS_BROWSER","IS_DENO","require$$9","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","promiseConstructorDetection","CONSTRUCTOR","REJECTION_EVENT","newPromiseCapability$2","PromiseCapability","C","reject","$$resolve","$$reject","newPromiseCapability","Internal","OwnPromiseCapability","nativeThen","$","require$$12","speciesConstructor","defaultConstructor","require$$14","require$$15","hostReportErrors","console","require$$17","require$$18","InternalStateModule","require$$19","require$$20","newPromiseCapabilityModule","require$$22","PROMISE","require$$21","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","setInternalState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","ok","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","isUnhandled","emit","unwrap","internalReject","done","internalResolve","wrapper","executor","onFulfilled","onRejected","PromiseWrapper","wrap","iterators","Iterators","ITERATOR","ArrayPrototype","isArrayIteratorMethod","getIteratorMethod","getIterator","usingIterator","iteratorMethod","iteratorClose","kind","innerResult","innerError","Result","stopped","ResultPrototype","iterate","iterable","unboundFunction","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","SAFE_CLOSING","iteratorWithReturn","return","from","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","promiseStaticsIncorrectIteration","capability","$promiseResolve","values","remaining","alreadyCalled","real","catch","race","r","promiseResolve","promiseCapability","objectDefineProperties","defineProperties","Properties","props","activeXDocument","definePropertiesModule","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","style","display","src","contentWindow","open","F","objectCreate","create","UNSCOPABLES","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","addToUnscopables","correctPrototypeGetter","getPrototypeOf","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","objectGetPrototypeOf","BUGGY_SAFARI_ITERATORS","NEW_ITERATOR_PROTOTYPE","iteratorsCore","returnThis","createIteratorConstructor","IteratorConstructor","NAME","ENUMERABLE_NEXT","PROPER_FUNCTION_NAME","require$$13","KEYS","VALUES","ENTRIES","iteratorDefine","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","createIterResultObject","defineIterator","ARRAY_ITERATOR","es_array_iterator","iterated","Arguments","charAt","charCodeAt","CONVERT_TO_STRING","pos","first","second","position","size","codeAt","STRING_ITERATOR","point","internalMetadata","objectGetOwnPropertyNamesExternal","createProperty","propertyKey","$Array","arraySliceSimple","start","end","k","fin","$getOwnPropertyNames","windowNames","getWindowNames","arrayBufferNonExtensible","ArrayBuffer","buffer","isExtensible","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","objectIsExtensible","freezing","preventExtensions","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","meta","internalMetadataModule","enable","splice","fastKey","getWeakData","onFreeze","InternalMetadataModule","inheritIfRequired","dummy","Wrapper","NewTarget","NewTargetPrototype","collection","common","IS_MAP","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","getConstructor","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setStrong","defineBuiltIns","isArray","arraySpeciesConstructor","originalArray","arraySpeciesCreate","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","boundFunction","arrayIteration","map","filter","some","every","find","findIndex","filterReject","internalStateGetterFor","uncaughtFrozenStore","frozen","UncaughtFrozenStore","findUncaughtFrozen","delete","collectionWeak","define","init","domIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","classList","DOMTokenListPrototype","domTokenListPrototype","DOMIterables","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","METHOD_NAME","arrayMethodHasSpeciesSupport","array","foo","Boolean","nativeSlice","HAS_SPECIES_SUPPORT","arrayMethodIsStrict","nativeJoin","__classPrivateFieldGet","receiver","separator","nativeKeys","MATCH","isRegExp","notARegExp","correctIsRegExpLogic","regexp","error1","error2","nativeStartsWith","startsWith","CORRECT_IS_REGEXP_LOGIC","searchString","search","$forEach","arrayForEach","TO_ENTRIES","$entries","defined","Number","isNaN","ascendingDefined","ascending","finite","isFinite","NaN","positive","negative","re","parse","fallback","Date","timeIntervals","Map","timeSecond","timeMinute","timeHour","timeDay","timeWeek","timeMonth","timeYear","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","timeSunday","utcIntervals","utcSecond","utcMinute","utcHour","utcDay","utcWeek","utcMonth","utcYear","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcSunday","maybeTimeInterval","interval","Error","maybeUtcInterval","TypedArray","Uint8Array","objectToString","constant","coerceNumbers","coerceNumber","Float64Array","coerceDates","coerceDate","isoParse","arrayify","isScaleOptions","option","maybeInterval","isInteger","abs","d","offset","range","lo","hi","rangei","maybeRangeInterval","isOrdinal","isTemporal","isTemporalString","isNumericString","trim","orderof","last","descending","color","radius","opacity","registry","sqrt4_3","sqrt","symbolHexagon","draw","context","rx","PI","ry","hy","moveTo","lineTo","closePath","symbols","symbolAsterisk","symbolCircle","symbolCross","symbolDiamond","symbolDiamond2","symbolPlus","symbolSquare","symbolSquare2","symbolStar","symbolTimes","symbolTriangle","symbolTriangle2","symbolWye","maybeSymbol","isSymbolObject","warn","message","ordinalSchemes","schemeAccent","schemeCategory10","schemeDark2","schemePaired","schemePastel1","schemePastel2","schemeSet1","schemeSet2","schemeSet3","schemeTableau10","scheme11","schemeBrBG","interpolateBrBG","schemePRGn","interpolatePRGn","schemePiYG","interpolatePiYG","schemePuOr","interpolatePuOr","schemeRdBu","interpolateRdBu","schemeRdGy","interpolateRdGy","schemeRdYlBu","interpolateRdYlBu","schemeRdYlGn","interpolateRdYlGn","schemeSpectral","interpolateSpectral","scheme11r","scheme9","schemeBlues","interpolateBlues","schemeGreens","interpolateGreens","schemeGreys","interpolateGreys","schemeOranges","interpolateOranges","schemePurples","interpolatePurples","schemeReds","interpolateReds","schemei","interpolateTurbo","interpolateViridis","interpolateMagma","interpolateInferno","interpolatePlasma","interpolateCividis","interpolateCubehelixDefault","interpolateWarm","interpolateCool","schemeBuGn","interpolateBuGn","schemeBuPu","interpolateBuPu","schemeGnBu","interpolateGnBu","schemeOrRd","interpolateOrRd","schemePuBu","interpolatePuBu","schemePuBuGn","interpolatePuBuGn","schemePuRd","interpolatePuRd","schemeRdPu","interpolateRdPu","schemeYlGn","interpolateYlGn","schemeYlGnBu","interpolateYlGnBu","schemeYlOrBr","interpolateYlOrBr","schemeYlOrRd","interpolateYlOrRd","schemeicyclical","interpolateRainbow","interpolateSinebow","scheme","interpolate","quantize","t","reverse","ordinalScheme","s","ordinalRange","quantitativeSchemes","quantitativeScheme","divergingSchemes","Set","isDivergingScheme","flip","unit","interpolators","interpolateNumber","interpolateRgb","interpolateHsl","interpolateHcl","interpolateLab","maybeInterpolator","createScaleQ","scale","channels","nice","clamp","zero","inferAutoDomain","unknown","round","inferRadialRange","inferLengthRange","interpolateRound","_","interpolatePiecewise","extent","sign","reverseof","maybeNiceInterval","maybeNice","createScalePow","exponent","scalePow","createScaleThreshold","isOrdered","scaleThreshold","inferDomain","inferZeroDomain","hint","h25","quantile","h50","median","inferLogDomain","v","inferQuantileDomain","createScaleD","transform","pivot","symmetric","piecewise","mid","mindelta","maxdelta","invert","interpolator","createScaleDivergingPow","scaleDivergingPow","transformSqrt","pow","transformPow","createScaleDivergingSymlog","scaleDivergingSymlog","log1p","expm1","transformSymlog","transformIdentity","transformLog","log","exp","createScaleT","ordinalImplicit","createScaleO","createScaleOrdinal","fill","inferHint","stroke","inferSymbolHint","isNone","symbolsStroke","symbolsFill","inferSymbolRange","maybeBooleanRange","t0","scaleImplicit","scaleOrdinal","maybeRound","InternSet","sort","candidate","normalizeScale","projection","typeProjection","asOrdinalType","inferScaleType","isOrdinalScale","formatScaleType","coerceType","coerceSymbols","scaleDiverging","createScaleDiverging","createScaleDivergingSqrt","base","scaleDivergingLog","createScaleDivergingLog","scaleLinear","createScaleLinear","createScaleSqrt","quantiles","scaleQuantile","createScaleQuantile","thresholds","ticks","pop","createScaleQuantize","scaleLog","createScaleLog","scaleSymlog","createScaleSymlog","scaleUtc","createScaleUtc","scaleTime","createScaleTime","align","padding","scalePoint","createScalePoint","paddingInner","paddingOuter","scaleBand","createScaleBand","scaleIdentity","createScale","description","coerceValues","c","exposeScale","percent","bandwidth","ScrollDirection","Position","SCALE_BASE_OPACITY_COLOR","normalizedScale","scaleOptions","scaleType","applyScaleStyle","elem","_scale","keyname","styles","baseColor","scaleStyle","_ref","_ref2","_slicedToArray","prop","doesNotExceedSafeInteger","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","isConcatSpreadable","spreadable","arg","len","E","allSettled","status","collectionStrong","previous","getEntry","removed","prev","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","mergeSort","comparefn","middle","insertionSort","merge","element","left","right","llength","rlength","lindex","rindex","arraySort","firefox","engineFfVersion","engineIsIeOrEdge","webkit","engineWebkitVersion","deletePropertyOrThrow","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","STABLE_SORT","code","fromCharCode","itemsLength","items","arrayLength","y","getSortCompare","$includes","$map","$filter","IS_RIGHT","memo","$reduce","reduce","callWithSafeIterationClosing","arrayLike","IS_CONSTRUCTOR","mapfn","mapping","whitespaces","ltrim","RegExp","rtrim","stringTrim","$parseInt","parseInt","hex","numberParseInt","radix","WeakSet","$trim","forcedStringTrimMethod","DEFAULT_SELECTOR","defaultOptions","enabled","itemSelector","width","height","gutter","includeBlank","LegendLite","calendar","_classCallCheck","root","shown","pluginOptions","_this$options","select","destroy","append","attr","selectAll","remove","_this$options2","localRange","_toConsumableArray","unshift","sc","_this","_LegendLite_instances","_LegendLite_nodeAttrs","update","selection","_this2","_this$options3","_d"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,203,204]} \ No newline at end of file diff --git a/static/javascripts/cal-heatmap/plugins/Tooltip.esm.js b/static/javascripts/cal-heatmap/plugins/Tooltip.esm.js new file mode 100644 index 000000000..da2af147a --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/Tooltip.esm.js @@ -0,0 +1,3768 @@ +import { createPopper } from '@popperjs/core'; + +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); + } +} +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); +} +function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); +} +function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); +} +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); +} +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; +} +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} +function _toPrimitive(input, hint) { + if (typeof input !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (typeof res !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} +function _toPropertyKey(arg) { + var key = _toPrimitive(arg, "string"); + return typeof key === "symbol" ? key : String(key); +} + +var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +var check = function (it) { + return it && it.Math == Math && it; +}; + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +var global$i = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || commonjsGlobal || Function('return this')(); + +var objectGetOwnPropertyDescriptor = {}; + +var fails$j = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } +}; + +var fails$i = fails$j; + +// Detect IE8's incomplete defineProperty implementation +var descriptors = !fails$i(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; +}); + +var fails$h = fails$j; + +var functionBindNative = !fails$h(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); +}); + +var NATIVE_BIND$3 = functionBindNative; + +var call$e = Function.prototype.call; + +var functionCall = NATIVE_BIND$3 ? call$e.bind(call$e) : function () { + return call$e.apply(call$e, arguments); +}; + +var objectPropertyIsEnumerable = {}; + +var $propertyIsEnumerable = {}.propertyIsEnumerable; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor$2 = Object.getOwnPropertyDescriptor; + +// Nashorn ~ JDK8 bug +var NASHORN_BUG = getOwnPropertyDescriptor$2 && !$propertyIsEnumerable.call({ 1: 2 }, 1); + +// `Object.prototype.propertyIsEnumerable` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable +objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor$2(this, V); + return !!descriptor && descriptor.enumerable; +} : $propertyIsEnumerable; + +var createPropertyDescriptor$4 = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + +var NATIVE_BIND$2 = functionBindNative; + +var FunctionPrototype$3 = Function.prototype; +var call$d = FunctionPrototype$3.call; +var uncurryThisWithBind = NATIVE_BIND$2 && FunctionPrototype$3.bind.bind(call$d, call$d); + +var functionUncurryThis = NATIVE_BIND$2 ? uncurryThisWithBind : function (fn) { + return function () { + return call$d.apply(fn, arguments); + }; +}; + +var uncurryThis$k = functionUncurryThis; + +var toString$5 = uncurryThis$k({}.toString); +var stringSlice$2 = uncurryThis$k(''.slice); + +var classofRaw$2 = function (it) { + return stringSlice$2(toString$5(it), 8, -1); +}; + +var uncurryThis$j = functionUncurryThis; +var fails$g = fails$j; +var classof$9 = classofRaw$2; + +var $Object$4 = Object; +var split = uncurryThis$j(''.split); + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +var indexedObject = fails$g(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object$4('z').propertyIsEnumerable(0); +}) ? function (it) { + return classof$9(it) == 'String' ? split(it, '') : $Object$4(it); +} : $Object$4; + +// we can't use just `it == null` since of `document.all` special case +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec +var isNullOrUndefined$6 = function (it) { + return it === null || it === undefined; +}; + +var isNullOrUndefined$5 = isNullOrUndefined$6; + +var $TypeError$d = TypeError; + +// `RequireObjectCoercible` abstract operation +// https://tc39.es/ecma262/#sec-requireobjectcoercible +var requireObjectCoercible$3 = function (it) { + if (isNullOrUndefined$5(it)) throw $TypeError$d("Can't call method on " + it); + return it; +}; + +// toObject with fallback for non-array-like ES3 strings +var IndexedObject$2 = indexedObject; +var requireObjectCoercible$2 = requireObjectCoercible$3; + +var toIndexedObject$6 = function (it) { + return IndexedObject$2(requireObjectCoercible$2(it)); +}; + +var documentAll$2 = typeof document == 'object' && document.all; + +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot +// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing +var IS_HTMLDDA = typeof documentAll$2 == 'undefined' && documentAll$2 !== undefined; + +var documentAll_1 = { + all: documentAll$2, + IS_HTMLDDA: IS_HTMLDDA +}; + +var $documentAll$1 = documentAll_1; + +var documentAll$1 = $documentAll$1.all; + +// `IsCallable` abstract operation +// https://tc39.es/ecma262/#sec-iscallable +var isCallable$m = $documentAll$1.IS_HTMLDDA ? function (argument) { + return typeof argument == 'function' || argument === documentAll$1; +} : function (argument) { + return typeof argument == 'function'; +}; + +var isCallable$l = isCallable$m; +var $documentAll = documentAll_1; + +var documentAll = $documentAll.all; + +var isObject$f = $documentAll.IS_HTMLDDA ? function (it) { + return typeof it == 'object' ? it !== null : isCallable$l(it) || it === documentAll; +} : function (it) { + return typeof it == 'object' ? it !== null : isCallable$l(it); +}; + +var global$h = global$i; +var isCallable$k = isCallable$m; + +var aFunction = function (argument) { + return isCallable$k(argument) ? argument : undefined; +}; + +var getBuiltIn$7 = function (namespace, method) { + return arguments.length < 2 ? aFunction(global$h[namespace]) : global$h[namespace] && global$h[namespace][method]; +}; + +var uncurryThis$i = functionUncurryThis; + +var objectIsPrototypeOf = uncurryThis$i({}.isPrototypeOf); + +var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + +var global$g = global$i; +var userAgent$3 = engineUserAgent; + +var process$4 = global$g.process; +var Deno$1 = global$g.Deno; +var versions = process$4 && process$4.versions || Deno$1 && Deno$1.version; +var v8 = versions && versions.v8; +var match, version; + +if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); +} + +// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` +// so check `userAgent` even if `.v8` exists, but 0 +if (!version && userAgent$3) { + match = userAgent$3.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent$3.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } +} + +var engineV8Version = version; + +/* eslint-disable es/no-symbol -- required for testing */ + +var V8_VERSION$3 = engineV8Version; +var fails$f = fails$j; +var global$f = global$i; + +var $String$5 = global$f.String; + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing +var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$f(function () { + var symbol = Symbol(); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String$5(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION$3 && V8_VERSION$3 < 41; +}); + +/* eslint-disable es/no-symbol -- required for testing */ + +var NATIVE_SYMBOL$1 = symbolConstructorDetection; + +var useSymbolAsUid = NATIVE_SYMBOL$1 + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + +var getBuiltIn$6 = getBuiltIn$7; +var isCallable$j = isCallable$m; +var isPrototypeOf$2 = objectIsPrototypeOf; +var USE_SYMBOL_AS_UID$1 = useSymbolAsUid; + +var $Object$3 = Object; + +var isSymbol$2 = USE_SYMBOL_AS_UID$1 ? function (it) { + return typeof it == 'symbol'; +} : function (it) { + var $Symbol = getBuiltIn$6('Symbol'); + return isCallable$j($Symbol) && isPrototypeOf$2($Symbol.prototype, $Object$3(it)); +}; + +var $String$4 = String; + +var tryToString$4 = function (argument) { + try { + return $String$4(argument); + } catch (error) { + return 'Object'; + } +}; + +var isCallable$i = isCallable$m; +var tryToString$3 = tryToString$4; + +var $TypeError$c = TypeError; + +// `Assert: IsCallable(argument) is true` +var aCallable$8 = function (argument) { + if (isCallable$i(argument)) return argument; + throw $TypeError$c(tryToString$3(argument) + ' is not a function'); +}; + +var aCallable$7 = aCallable$8; +var isNullOrUndefined$4 = isNullOrUndefined$6; + +// `GetMethod` abstract operation +// https://tc39.es/ecma262/#sec-getmethod +var getMethod$3 = function (V, P) { + var func = V[P]; + return isNullOrUndefined$4(func) ? undefined : aCallable$7(func); +}; + +var call$c = functionCall; +var isCallable$h = isCallable$m; +var isObject$e = isObject$f; + +var $TypeError$b = TypeError; + +// `OrdinaryToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-ordinarytoprimitive +var ordinaryToPrimitive$1 = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable$h(fn = input.toString) && !isObject$e(val = call$c(fn, input))) return val; + if (isCallable$h(fn = input.valueOf) && !isObject$e(val = call$c(fn, input))) return val; + if (pref !== 'string' && isCallable$h(fn = input.toString) && !isObject$e(val = call$c(fn, input))) return val; + throw $TypeError$b("Can't convert object to primitive value"); +}; + +var shared$3 = {exports: {}}; + +var global$e = global$i; + +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty$7 = Object.defineProperty; + +var defineGlobalProperty$3 = function (key, value) { + try { + defineProperty$7(global$e, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global$e[key] = value; + } return value; +}; + +var global$d = global$i; +var defineGlobalProperty$2 = defineGlobalProperty$3; + +var SHARED = '__core-js_shared__'; +var store$3 = global$d[SHARED] || defineGlobalProperty$2(SHARED, {}); + +var sharedStore = store$3; + +var store$2 = sharedStore; + +(shared$3.exports = function (key, value) { + return store$2[key] || (store$2[key] = value !== undefined ? value : {}); +})('versions', []).push({ + version: '3.30.2', + mode: 'global', + copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE', + source: 'https://github.com/zloirock/core-js' +}); + +var sharedExports = shared$3.exports; + +var requireObjectCoercible$1 = requireObjectCoercible$3; + +var $Object$2 = Object; + +// `ToObject` abstract operation +// https://tc39.es/ecma262/#sec-toobject +var toObject$5 = function (argument) { + return $Object$2(requireObjectCoercible$1(argument)); +}; + +var uncurryThis$h = functionUncurryThis; +var toObject$4 = toObject$5; + +var hasOwnProperty = uncurryThis$h({}.hasOwnProperty); + +// `HasOwnProperty` abstract operation +// https://tc39.es/ecma262/#sec-hasownproperty +// eslint-disable-next-line es/no-object-hasown -- safe +var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject$4(it), key); +}; + +var uncurryThis$g = functionUncurryThis; + +var id$2 = 0; +var postfix = Math.random(); +var toString$4 = uncurryThis$g(1.0.toString); + +var uid$3 = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$4(++id$2 + postfix, 36); +}; + +var global$c = global$i; +var shared$2 = sharedExports; +var hasOwn$b = hasOwnProperty_1; +var uid$2 = uid$3; +var NATIVE_SYMBOL = symbolConstructorDetection; +var USE_SYMBOL_AS_UID = useSymbolAsUid; + +var Symbol$1 = global$c.Symbol; +var WellKnownSymbolsStore = shared$2('wks'); +var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1['for'] || Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$2; + +var wellKnownSymbol$h = function (name) { + if (!hasOwn$b(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn$b(Symbol$1, name) + ? Symbol$1[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; +}; + +var call$b = functionCall; +var isObject$d = isObject$f; +var isSymbol$1 = isSymbol$2; +var getMethod$2 = getMethod$3; +var ordinaryToPrimitive = ordinaryToPrimitive$1; +var wellKnownSymbol$g = wellKnownSymbol$h; + +var $TypeError$a = TypeError; +var TO_PRIMITIVE = wellKnownSymbol$g('toPrimitive'); + +// `ToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-toprimitive +var toPrimitive$1 = function (input, pref) { + if (!isObject$d(input) || isSymbol$1(input)) return input; + var exoticToPrim = getMethod$2(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call$b(exoticToPrim, input, pref); + if (!isObject$d(result) || isSymbol$1(result)) return result; + throw $TypeError$a("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); +}; + +var toPrimitive = toPrimitive$1; +var isSymbol = isSymbol$2; + +// `ToPropertyKey` abstract operation +// https://tc39.es/ecma262/#sec-topropertykey +var toPropertyKey$3 = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; +}; + +var global$b = global$i; +var isObject$c = isObject$f; + +var document$3 = global$b.document; +// typeof document.createElement is 'object' in old IE +var EXISTS$1 = isObject$c(document$3) && isObject$c(document$3.createElement); + +var documentCreateElement$2 = function (it) { + return EXISTS$1 ? document$3.createElement(it) : {}; +}; + +var DESCRIPTORS$b = descriptors; +var fails$e = fails$j; +var createElement$1 = documentCreateElement$2; + +// Thanks to IE8 for its funny defineProperty +var ie8DomDefine = !DESCRIPTORS$b && !fails$e(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement$1('div'), 'a', { + get: function () { return 7; } + }).a != 7; +}); + +var DESCRIPTORS$a = descriptors; +var call$a = functionCall; +var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable; +var createPropertyDescriptor$3 = createPropertyDescriptor$4; +var toIndexedObject$5 = toIndexedObject$6; +var toPropertyKey$2 = toPropertyKey$3; +var hasOwn$a = hasOwnProperty_1; +var IE8_DOM_DEFINE$1 = ie8DomDefine; + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +objectGetOwnPropertyDescriptor.f = DESCRIPTORS$a ? $getOwnPropertyDescriptor$1 : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject$5(O); + P = toPropertyKey$2(P); + if (IE8_DOM_DEFINE$1) try { + return $getOwnPropertyDescriptor$1(O, P); + } catch (error) { /* empty */ } + if (hasOwn$a(O, P)) return createPropertyDescriptor$3(!call$a(propertyIsEnumerableModule$1.f, O, P), O[P]); +}; + +var objectDefineProperty = {}; + +var DESCRIPTORS$9 = descriptors; +var fails$d = fails$j; + +// V8 ~ Chrome 36- +// https://bugs.chromium.org/p/v8/issues/detail?id=3334 +var v8PrototypeDefineBug = DESCRIPTORS$9 && fails$d(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype != 42; +}); + +var isObject$b = isObject$f; + +var $String$3 = String; +var $TypeError$9 = TypeError; + +// `Assert: Type(argument) is Object` +var anObject$b = function (argument) { + if (isObject$b(argument)) return argument; + throw $TypeError$9($String$3(argument) + ' is not an object'); +}; + +var DESCRIPTORS$8 = descriptors; +var IE8_DOM_DEFINE = ie8DomDefine; +var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug; +var anObject$a = anObject$b; +var toPropertyKey$1 = toPropertyKey$3; + +var $TypeError$8 = TypeError; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var $defineProperty = Object.defineProperty; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +var ENUMERABLE = 'enumerable'; +var CONFIGURABLE$1 = 'configurable'; +var WRITABLE = 'writable'; + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +objectDefineProperty.f = DESCRIPTORS$8 ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) { + anObject$a(O); + P = toPropertyKey$1(P); + anObject$a(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE$1 in Attributes ? Attributes[CONFIGURABLE$1] : current[CONFIGURABLE$1], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); +} : $defineProperty : function defineProperty(O, P, Attributes) { + anObject$a(O); + P = toPropertyKey$1(P); + anObject$a(Attributes); + if (IE8_DOM_DEFINE) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw $TypeError$8('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + +var DESCRIPTORS$7 = descriptors; +var definePropertyModule$4 = objectDefineProperty; +var createPropertyDescriptor$2 = createPropertyDescriptor$4; + +var createNonEnumerableProperty$4 = DESCRIPTORS$7 ? function (object, key, value) { + return definePropertyModule$4.f(object, key, createPropertyDescriptor$2(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + +var makeBuiltIn$3 = {exports: {}}; + +var DESCRIPTORS$6 = descriptors; +var hasOwn$9 = hasOwnProperty_1; + +var FunctionPrototype$2 = Function.prototype; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getDescriptor = DESCRIPTORS$6 && Object.getOwnPropertyDescriptor; + +var EXISTS = hasOwn$9(FunctionPrototype$2, 'name'); +// additional protection from minified / mangled / dropped function names +var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; +var CONFIGURABLE = EXISTS && (!DESCRIPTORS$6 || (DESCRIPTORS$6 && getDescriptor(FunctionPrototype$2, 'name').configurable)); + +var functionName = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE +}; + +var uncurryThis$f = functionUncurryThis; +var isCallable$g = isCallable$m; +var store$1 = sharedStore; + +var functionToString$1 = uncurryThis$f(Function.toString); + +// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper +if (!isCallable$g(store$1.inspectSource)) { + store$1.inspectSource = function (it) { + return functionToString$1(it); + }; +} + +var inspectSource$3 = store$1.inspectSource; + +var global$a = global$i; +var isCallable$f = isCallable$m; + +var WeakMap$1 = global$a.WeakMap; + +var weakMapBasicDetection = isCallable$f(WeakMap$1) && /native code/.test(String(WeakMap$1)); + +var shared$1 = sharedExports; +var uid$1 = uid$3; + +var keys = shared$1('keys'); + +var sharedKey$3 = function (key) { + return keys[key] || (keys[key] = uid$1(key)); +}; + +var hiddenKeys$5 = {}; + +var NATIVE_WEAK_MAP = weakMapBasicDetection; +var global$9 = global$i; +var isObject$a = isObject$f; +var createNonEnumerableProperty$3 = createNonEnumerableProperty$4; +var hasOwn$8 = hasOwnProperty_1; +var shared = sharedStore; +var sharedKey$2 = sharedKey$3; +var hiddenKeys$4 = hiddenKeys$5; + +var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; +var TypeError$2 = global$9.TypeError; +var WeakMap = global$9.WeakMap; +var set$1, get, has; + +var enforce = function (it) { + return has(it) ? get(it) : set$1(it, {}); +}; + +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject$a(it) || (state = get(it)).type !== TYPE) { + throw TypeError$2('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; +}; + +if (NATIVE_WEAK_MAP || shared.state) { + var store = shared.state || (shared.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set$1 = function (it, metadata) { + if (store.has(it)) throw TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; +} else { + var STATE = sharedKey$2('state'); + hiddenKeys$4[STATE] = true; + set$1 = function (it, metadata) { + if (hasOwn$8(it, STATE)) throw TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty$3(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn$8(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn$8(it, STATE); + }; +} + +var internalState = { + set: set$1, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor +}; + +var uncurryThis$e = functionUncurryThis; +var fails$c = fails$j; +var isCallable$e = isCallable$m; +var hasOwn$7 = hasOwnProperty_1; +var DESCRIPTORS$5 = descriptors; +var CONFIGURABLE_FUNCTION_NAME$1 = functionName.CONFIGURABLE; +var inspectSource$2 = inspectSource$3; +var InternalStateModule$4 = internalState; + +var enforceInternalState = InternalStateModule$4.enforce; +var getInternalState$2 = InternalStateModule$4.get; +var $String$2 = String; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty$6 = Object.defineProperty; +var stringSlice$1 = uncurryThis$e(''.slice); +var replace = uncurryThis$e(''.replace); +var join = uncurryThis$e([].join); + +var CONFIGURABLE_LENGTH = DESCRIPTORS$5 && !fails$c(function () { + return defineProperty$6(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; +}); + +var TEMPLATE = String(String).split('String'); + +var makeBuiltIn$2 = makeBuiltIn$3.exports = function (value, name, options) { + if (stringSlice$1($String$2(name), 0, 7) === 'Symbol(') { + name = '[' + replace($String$2(name), /^Symbol\(([^)]*)\)/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn$7(value, 'name') || (CONFIGURABLE_FUNCTION_NAME$1 && value.name !== name)) { + if (DESCRIPTORS$5) defineProperty$6(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn$7(options, 'arity') && value.length !== options.arity) { + defineProperty$6(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn$7(options, 'constructor') && options.constructor) { + if (DESCRIPTORS$5) defineProperty$6(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn$7(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; +}; + +// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative +// eslint-disable-next-line no-extend-native -- required +Function.prototype.toString = makeBuiltIn$2(function toString() { + return isCallable$e(this) && getInternalState$2(this).source || inspectSource$2(this); +}, 'toString'); + +var makeBuiltInExports = makeBuiltIn$3.exports; + +var isCallable$d = isCallable$m; +var definePropertyModule$3 = objectDefineProperty; +var makeBuiltIn$1 = makeBuiltInExports; +var defineGlobalProperty$1 = defineGlobalProperty$3; + +var defineBuiltIn$8 = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable$d(value)) makeBuiltIn$1(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty$1(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule$3.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; +}; + +var objectGetOwnPropertyNames = {}; + +var ceil = Math.ceil; +var floor = Math.floor; + +// `Math.trunc` method +// https://tc39.es/ecma262/#sec-math.trunc +// eslint-disable-next-line es/no-math-trunc -- safe +var mathTrunc = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor : ceil)(n); +}; + +var trunc = mathTrunc; + +// `ToIntegerOrInfinity` abstract operation +// https://tc39.es/ecma262/#sec-tointegerorinfinity +var toIntegerOrInfinity$3 = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); +}; + +var toIntegerOrInfinity$2 = toIntegerOrInfinity$3; + +var max$1 = Math.max; +var min$1 = Math.min; + +// Helper for a popular repeating case of the spec: +// Let integer be ? ToInteger(index). +// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). +var toAbsoluteIndex$2 = function (index, length) { + var integer = toIntegerOrInfinity$2(index); + return integer < 0 ? max$1(integer + length, 0) : min$1(integer, length); +}; + +var toIntegerOrInfinity$1 = toIntegerOrInfinity$3; + +var min = Math.min; + +// `ToLength` abstract operation +// https://tc39.es/ecma262/#sec-tolength +var toLength$1 = function (argument) { + return argument > 0 ? min(toIntegerOrInfinity$1(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 +}; + +var toLength = toLength$1; + +// `LengthOfArrayLike` abstract operation +// https://tc39.es/ecma262/#sec-lengthofarraylike +var lengthOfArrayLike$5 = function (obj) { + return toLength(obj.length); +}; + +var toIndexedObject$4 = toIndexedObject$6; +var toAbsoluteIndex$1 = toAbsoluteIndex$2; +var lengthOfArrayLike$4 = lengthOfArrayLike$5; + +// `Array.prototype.{ indexOf, includes }` methods implementation +var createMethod$2 = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject$4($this); + var length = lengthOfArrayLike$4(O); + var index = toAbsoluteIndex$1(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + +var arrayIncludes = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod$2(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod$2(false) +}; + +var uncurryThis$d = functionUncurryThis; +var hasOwn$6 = hasOwnProperty_1; +var toIndexedObject$3 = toIndexedObject$6; +var indexOf = arrayIncludes.indexOf; +var hiddenKeys$3 = hiddenKeys$5; + +var push$1 = uncurryThis$d([].push); + +var objectKeysInternal = function (object, names) { + var O = toIndexedObject$3(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn$6(hiddenKeys$3, key) && hasOwn$6(O, key) && push$1(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn$6(O, key = names[i++])) { + ~indexOf(result, key) || push$1(result, key); + } + return result; +}; + +// IE8- don't enum bug keys +var enumBugKeys$3 = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; + +var internalObjectKeys$1 = objectKeysInternal; +var enumBugKeys$2 = enumBugKeys$3; + +var hiddenKeys$2 = enumBugKeys$2.concat('length', 'prototype'); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +// eslint-disable-next-line es/no-object-getownpropertynames -- safe +objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys$1(O, hiddenKeys$2); +}; + +var objectGetOwnPropertySymbols = {}; + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe +objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; + +var getBuiltIn$5 = getBuiltIn$7; +var uncurryThis$c = functionUncurryThis; +var getOwnPropertyNamesModule$1 = objectGetOwnPropertyNames; +var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols; +var anObject$9 = anObject$b; + +var concat$1 = uncurryThis$c([].concat); + +// all object keys, includes non-enumerable and symbols +var ownKeys$1 = getBuiltIn$5('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule$1.f(anObject$9(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f; + return getOwnPropertySymbols ? concat$1(keys, getOwnPropertySymbols(it)) : keys; +}; + +var hasOwn$5 = hasOwnProperty_1; +var ownKeys = ownKeys$1; +var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor; +var definePropertyModule$2 = objectDefineProperty; + +var copyConstructorProperties$1 = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule$2.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn$5(target, key) && !(exceptions && hasOwn$5(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } +}; + +var fails$b = fails$j; +var isCallable$c = isCallable$m; + +var replacement = /#|\.prototype\./; + +var isForced$3 = function (feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true + : value == NATIVE ? false + : isCallable$c(detection) ? fails$b(detection) + : !!detection; +}; + +var normalize = isForced$3.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); +}; + +var data = isForced$3.data = {}; +var NATIVE = isForced$3.NATIVE = 'N'; +var POLYFILL = isForced$3.POLYFILL = 'P'; + +var isForced_1 = isForced$3; + +var global$8 = global$i; +var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f; +var createNonEnumerableProperty$2 = createNonEnumerableProperty$4; +var defineBuiltIn$7 = defineBuiltIn$8; +var defineGlobalProperty = defineGlobalProperty$3; +var copyConstructorProperties = copyConstructorProperties$1; +var isForced$2 = isForced_1; + +/* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key +*/ +var _export = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global$8; + } else if (STATIC) { + target = global$8[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = (global$8[TARGET] || {}).prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor$1(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced$2(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty$2(sourceProperty, 'sham', true); + } + defineBuiltIn$7(target, key, sourceProperty, options); + } +}; + +var classof$8 = classofRaw$2; + +// `IsArray` abstract operation +// https://tc39.es/ecma262/#sec-isarray +// eslint-disable-next-line es/no-array-isarray -- safe +var isArray$2 = Array.isArray || function isArray(argument) { + return classof$8(argument) == 'Array'; +}; + +var $TypeError$7 = TypeError; +var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 + +var doesNotExceedSafeInteger$1 = function (it) { + if (it > MAX_SAFE_INTEGER) throw $TypeError$7('Maximum allowed index exceeded'); + return it; +}; + +var toPropertyKey = toPropertyKey$3; +var definePropertyModule$1 = objectDefineProperty; +var createPropertyDescriptor$1 = createPropertyDescriptor$4; + +var createProperty$2 = function (object, key, value) { + var propertyKey = toPropertyKey(key); + if (propertyKey in object) definePropertyModule$1.f(object, propertyKey, createPropertyDescriptor$1(0, value)); + else object[propertyKey] = value; +}; + +var wellKnownSymbol$f = wellKnownSymbol$h; + +var TO_STRING_TAG$3 = wellKnownSymbol$f('toStringTag'); +var test = {}; + +test[TO_STRING_TAG$3] = 'z'; + +var toStringTagSupport = String(test) === '[object z]'; + +var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport; +var isCallable$b = isCallable$m; +var classofRaw$1 = classofRaw$2; +var wellKnownSymbol$e = wellKnownSymbol$h; + +var TO_STRING_TAG$2 = wellKnownSymbol$e('toStringTag'); +var $Object$1 = Object; + +// ES3 wrong here +var CORRECT_ARGUMENTS = classofRaw$1(function () { return arguments; }()) == 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } +}; + +// getting tag from ES6+ `Object.prototype.toString` +var classof$7 = TO_STRING_TAG_SUPPORT$2 ? classofRaw$1 : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object$1(it), TO_STRING_TAG$2)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw$1(O) + // ES3 arguments fallback + : (result = classofRaw$1(O)) == 'Object' && isCallable$b(O.callee) ? 'Arguments' : result; +}; + +var uncurryThis$b = functionUncurryThis; +var fails$a = fails$j; +var isCallable$a = isCallable$m; +var classof$6 = classof$7; +var getBuiltIn$4 = getBuiltIn$7; +var inspectSource$1 = inspectSource$3; + +var noop = function () { /* empty */ }; +var empty = []; +var construct = getBuiltIn$4('Reflect', 'construct'); +var constructorRegExp = /^\s*(?:class|function)\b/; +var exec = uncurryThis$b(constructorRegExp.exec); +var INCORRECT_TO_STRING = !constructorRegExp.exec(noop); + +var isConstructorModern = function isConstructor(argument) { + if (!isCallable$a(argument)) return false; + try { + construct(noop, empty, argument); + return true; + } catch (error) { + return false; + } +}; + +var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable$a(argument)) return false; + switch (classof$6(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource$1(argument)); + } catch (error) { + return true; + } +}; + +isConstructorLegacy.sham = true; + +// `IsConstructor` abstract operation +// https://tc39.es/ecma262/#sec-isconstructor +var isConstructor$2 = !construct || fails$a(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; +}) ? isConstructorLegacy : isConstructorModern; + +var isArray$1 = isArray$2; +var isConstructor$1 = isConstructor$2; +var isObject$9 = isObject$f; +var wellKnownSymbol$d = wellKnownSymbol$h; + +var SPECIES$4 = wellKnownSymbol$d('species'); +var $Array$1 = Array; + +// a part of `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +var arraySpeciesConstructor$1 = function (originalArray) { + var C; + if (isArray$1(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor$1(C) && (C === $Array$1 || isArray$1(C.prototype))) C = undefined; + else if (isObject$9(C)) { + C = C[SPECIES$4]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array$1 : C; +}; + +var arraySpeciesConstructor = arraySpeciesConstructor$1; + +// `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +var arraySpeciesCreate$2 = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); +}; + +var fails$9 = fails$j; +var wellKnownSymbol$c = wellKnownSymbol$h; +var V8_VERSION$2 = engineV8Version; + +var SPECIES$3 = wellKnownSymbol$c('species'); + +var arrayMethodHasSpeciesSupport$1 = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION$2 >= 51 || !fails$9(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES$3] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); +}; + +var $$a = _export; +var fails$8 = fails$j; +var isArray = isArray$2; +var isObject$8 = isObject$f; +var toObject$3 = toObject$5; +var lengthOfArrayLike$3 = lengthOfArrayLike$5; +var doesNotExceedSafeInteger = doesNotExceedSafeInteger$1; +var createProperty$1 = createProperty$2; +var arraySpeciesCreate$1 = arraySpeciesCreate$2; +var arrayMethodHasSpeciesSupport = arrayMethodHasSpeciesSupport$1; +var wellKnownSymbol$b = wellKnownSymbol$h; +var V8_VERSION$1 = engineV8Version; + +var IS_CONCAT_SPREADABLE = wellKnownSymbol$b('isConcatSpreadable'); + +// We can't use this feature detection in V8 since it causes +// deoptimization and serious performance degradation +// https://github.com/zloirock/core-js/issues/679 +var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION$1 >= 51 || !fails$8(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; +}); + +var isConcatSpreadable = function (O) { + if (!isObject$8(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray(O); +}; + +var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat'); + +// `Array.prototype.concat` method +// https://tc39.es/ecma262/#sec-array.prototype.concat +// with adding support of @@isConcatSpreadable and @@species +$$a({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + concat: function concat(arg) { + var O = toObject$3(this); + var A = arraySpeciesCreate$1(O, 0); + var n = 0; + var i, k, length, len, E; + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + if (isConcatSpreadable(E)) { + len = lengthOfArrayLike$3(E); + doesNotExceedSafeInteger(n + len); + for (k = 0; k < len; k++, n++) if (k in E) createProperty$1(A, n, E[k]); + } else { + doesNotExceedSafeInteger(n + 1); + createProperty$1(A, n++, E); + } + } + A.length = n; + return A; + } +}); + +var makeBuiltIn = makeBuiltInExports; +var defineProperty$5 = objectDefineProperty; + +var defineBuiltInAccessor$2 = function (target, name, descriptor) { + if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true }); + if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true }); + return defineProperty$5.f(target, name, descriptor); +}; + +var DESCRIPTORS$4 = descriptors; +var FUNCTION_NAME_EXISTS = functionName.EXISTS; +var uncurryThis$a = functionUncurryThis; +var defineBuiltInAccessor$1 = defineBuiltInAccessor$2; + +var FunctionPrototype$1 = Function.prototype; +var functionToString = uncurryThis$a(FunctionPrototype$1.toString); +var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/; +var regExpExec = uncurryThis$a(nameRE.exec); +var NAME = 'name'; + +// Function instances `.name` property +// https://tc39.es/ecma262/#sec-function-instances-name +if (DESCRIPTORS$4 && !FUNCTION_NAME_EXISTS) { + defineBuiltInAccessor$1(FunctionPrototype$1, NAME, { + configurable: true, + get: function () { + try { + return regExpExec(nameRE, functionToString(this))[1]; + } catch (error) { + return ''; + } + } + }); +} + +var internalObjectKeys = objectKeysInternal; +var enumBugKeys$1 = enumBugKeys$3; + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +// eslint-disable-next-line es/no-object-keys -- safe +var objectKeys$2 = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys$1); +}; + +var DESCRIPTORS$3 = descriptors; +var uncurryThis$9 = functionUncurryThis; +var call$9 = functionCall; +var fails$7 = fails$j; +var objectKeys$1 = objectKeys$2; +var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols; +var propertyIsEnumerableModule = objectPropertyIsEnumerable; +var toObject$2 = toObject$5; +var IndexedObject$1 = indexedObject; + +// eslint-disable-next-line es/no-object-assign -- safe +var $assign = Object.assign; +// eslint-disable-next-line es/no-object-defineproperty -- required for testing +var defineProperty$4 = Object.defineProperty; +var concat = uncurryThis$9([].concat); + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +var objectAssign = !$assign || fails$7(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS$3 && $assign({ b: 1 }, $assign(defineProperty$4({}, 'a', { + enumerable: true, + get: function () { + defineProperty$4(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol(); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] != 7 || objectKeys$1($assign({}, B)).join('') != alphabet; +}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject$2(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject$1(arguments[index++]); + var keys = getOwnPropertySymbols ? concat(objectKeys$1(S), getOwnPropertySymbols(S)) : objectKeys$1(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS$3 || call$9(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; +} : $assign; + +var $$9 = _export; +var assign = objectAssign; + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +// eslint-disable-next-line es/no-object-assign -- required for testing +$$9({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign +}); + +var TO_STRING_TAG_SUPPORT$1 = toStringTagSupport; +var classof$5 = classof$7; + +// `Object.prototype.toString` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.tostring +var objectToString = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() { + return '[object ' + classof$5(this) + ']'; +}; + +var TO_STRING_TAG_SUPPORT = toStringTagSupport; +var defineBuiltIn$6 = defineBuiltIn$8; +var toString$3 = objectToString; + +// `Object.prototype.toString` method +// https://tc39.es/ecma262/#sec-object.prototype.tostring +if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn$6(Object.prototype, 'toString', toString$3, { unsafe: true }); +} + +var classof$4 = classofRaw$2; + +var engineIsNode = typeof process != 'undefined' && classof$4(process) == 'process'; + +var uncurryThis$8 = functionUncurryThis; +var aCallable$6 = aCallable$8; + +var functionUncurryThisAccessor = function (object, key, method) { + try { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return uncurryThis$8(aCallable$6(Object.getOwnPropertyDescriptor(object, key)[method])); + } catch (error) { /* empty */ } +}; + +var isCallable$9 = isCallable$m; + +var $String$1 = String; +var $TypeError$6 = TypeError; + +var aPossiblePrototype$1 = function (argument) { + if (typeof argument == 'object' || isCallable$9(argument)) return argument; + throw $TypeError$6("Can't set " + $String$1(argument) + ' as a prototype'); +}; + +/* eslint-disable no-proto -- safe */ + +var uncurryThisAccessor = functionUncurryThisAccessor; +var anObject$8 = anObject$b; +var aPossiblePrototype = aPossiblePrototype$1; + +// `Object.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.setprototypeof +// Works with __proto__ only. Old v8 can't work with null proto objects. +// eslint-disable-next-line es/no-object-setprototypeof -- safe +var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set'); + setter(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + anObject$8(O); + aPossiblePrototype(proto); + if (CORRECT_SETTER) setter(O, proto); + else O.__proto__ = proto; + return O; + }; +}() : undefined); + +var defineProperty$3 = objectDefineProperty.f; +var hasOwn$4 = hasOwnProperty_1; +var wellKnownSymbol$a = wellKnownSymbol$h; + +var TO_STRING_TAG$1 = wellKnownSymbol$a('toStringTag'); + +var setToStringTag$4 = function (target, TAG, STATIC) { + if (target && !STATIC) target = target.prototype; + if (target && !hasOwn$4(target, TO_STRING_TAG$1)) { + defineProperty$3(target, TO_STRING_TAG$1, { configurable: true, value: TAG }); + } +}; + +var getBuiltIn$3 = getBuiltIn$7; +var defineBuiltInAccessor = defineBuiltInAccessor$2; +var wellKnownSymbol$9 = wellKnownSymbol$h; +var DESCRIPTORS$2 = descriptors; + +var SPECIES$2 = wellKnownSymbol$9('species'); + +var setSpecies$1 = function (CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn$3(CONSTRUCTOR_NAME); + + if (DESCRIPTORS$2 && Constructor && !Constructor[SPECIES$2]) { + defineBuiltInAccessor(Constructor, SPECIES$2, { + configurable: true, + get: function () { return this; } + }); + } +}; + +var isPrototypeOf$1 = objectIsPrototypeOf; + +var $TypeError$5 = TypeError; + +var anInstance$3 = function (it, Prototype) { + if (isPrototypeOf$1(Prototype, it)) return it; + throw $TypeError$5('Incorrect invocation'); +}; + +var isConstructor = isConstructor$2; +var tryToString$2 = tryToString$4; + +var $TypeError$4 = TypeError; + +// `Assert: IsConstructor(argument) is true` +var aConstructor$1 = function (argument) { + if (isConstructor(argument)) return argument; + throw $TypeError$4(tryToString$2(argument) + ' is not a constructor'); +}; + +var anObject$7 = anObject$b; +var aConstructor = aConstructor$1; +var isNullOrUndefined$3 = isNullOrUndefined$6; +var wellKnownSymbol$8 = wellKnownSymbol$h; + +var SPECIES$1 = wellKnownSymbol$8('species'); + +// `SpeciesConstructor` abstract operation +// https://tc39.es/ecma262/#sec-speciesconstructor +var speciesConstructor$1 = function (O, defaultConstructor) { + var C = anObject$7(O).constructor; + var S; + return C === undefined || isNullOrUndefined$3(S = anObject$7(C)[SPECIES$1]) ? defaultConstructor : aConstructor(S); +}; + +var NATIVE_BIND$1 = functionBindNative; + +var FunctionPrototype = Function.prototype; +var apply$1 = FunctionPrototype.apply; +var call$8 = FunctionPrototype.call; + +// eslint-disable-next-line es/no-reflect -- safe +var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND$1 ? call$8.bind(apply$1) : function () { + return call$8.apply(apply$1, arguments); +}); + +var classofRaw = classofRaw$2; +var uncurryThis$7 = functionUncurryThis; + +var functionUncurryThisClause = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis$7(fn); +}; + +var uncurryThis$6 = functionUncurryThisClause; +var aCallable$5 = aCallable$8; +var NATIVE_BIND = functionBindNative; + +var bind$5 = uncurryThis$6(uncurryThis$6.bind); + +// optional / simple context binding +var functionBindContext = function (fn, that) { + aCallable$5(fn); + return that === undefined ? fn : NATIVE_BIND ? bind$5(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; + +var getBuiltIn$2 = getBuiltIn$7; + +var html$2 = getBuiltIn$2('document', 'documentElement'); + +var uncurryThis$5 = functionUncurryThis; + +var arraySlice$2 = uncurryThis$5([].slice); + +var $TypeError$3 = TypeError; + +var validateArgumentsLength$1 = function (passed, required) { + if (passed < required) throw $TypeError$3('Not enough arguments'); + return passed; +}; + +var userAgent$2 = engineUserAgent; + +// eslint-disable-next-line redos/no-vulnerable -- safe +var engineIsIos = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent$2); + +var global$7 = global$i; +var apply = functionApply; +var bind$4 = functionBindContext; +var isCallable$8 = isCallable$m; +var hasOwn$3 = hasOwnProperty_1; +var fails$6 = fails$j; +var html$1 = html$2; +var arraySlice$1 = arraySlice$2; +var createElement = documentCreateElement$2; +var validateArgumentsLength = validateArgumentsLength$1; +var IS_IOS$1 = engineIsIos; +var IS_NODE$3 = engineIsNode; + +var set = global$7.setImmediate; +var clear = global$7.clearImmediate; +var process$3 = global$7.process; +var Dispatch = global$7.Dispatch; +var Function$1 = global$7.Function; +var MessageChannel = global$7.MessageChannel; +var String$1 = global$7.String; +var counter = 0; +var queue$2 = {}; +var ONREADYSTATECHANGE = 'onreadystatechange'; +var $location, defer, channel, port; + +fails$6(function () { + // Deno throws a ReferenceError on `location` access without `--location` flag + $location = global$7.location; +}); + +var run = function (id) { + if (hasOwn$3(queue$2, id)) { + var fn = queue$2[id]; + delete queue$2[id]; + fn(); + } +}; + +var runner = function (id) { + return function () { + run(id); + }; +}; + +var eventListener = function (event) { + run(event.data); +}; + +var globalPostMessageDefer = function (id) { + // old engines have not location.origin + global$7.postMessage(String$1(id), $location.protocol + '//' + $location.host); +}; + +// Node.js 0.9+ & IE10+ has setImmediate, otherwise: +if (!set || !clear) { + set = function setImmediate(handler) { + validateArgumentsLength(arguments.length, 1); + var fn = isCallable$8(handler) ? handler : Function$1(handler); + var args = arraySlice$1(arguments, 1); + queue$2[++counter] = function () { + apply(fn, undefined, args); + }; + defer(counter); + return counter; + }; + clear = function clearImmediate(id) { + delete queue$2[id]; + }; + // Node.js 0.8- + if (IS_NODE$3) { + defer = function (id) { + process$3.nextTick(runner(id)); + }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(runner(id)); + }; + // Browsers with MessageChannel, includes WebWorkers + // except iOS - https://github.com/zloirock/core-js/issues/624 + } else if (MessageChannel && !IS_IOS$1) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = eventListener; + defer = bind$4(port.postMessage, port); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if ( + global$7.addEventListener && + isCallable$8(global$7.postMessage) && + !global$7.importScripts && + $location && $location.protocol !== 'file:' && + !fails$6(globalPostMessageDefer) + ) { + defer = globalPostMessageDefer; + global$7.addEventListener('message', eventListener, false); + // IE8- + } else if (ONREADYSTATECHANGE in createElement('script')) { + defer = function (id) { + html$1.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { + html$1.removeChild(this); + run(id); + }; + }; + // Rest old browsers + } else { + defer = function (id) { + setTimeout(runner(id), 0); + }; + } +} + +var task$1 = { + set: set, + clear: clear +}; + +var Queue$2 = function () { + this.head = null; + this.tail = null; +}; + +Queue$2.prototype = { + add: function (item) { + var entry = { item: item, next: null }; + var tail = this.tail; + if (tail) tail.next = entry; + else this.head = entry; + this.tail = entry; + }, + get: function () { + var entry = this.head; + if (entry) { + var next = this.head = entry.next; + if (next === null) this.tail = null; + return entry.item; + } + } +}; + +var queue$1 = Queue$2; + +var userAgent$1 = engineUserAgent; + +var engineIsIosPebble = /ipad|iphone|ipod/i.test(userAgent$1) && typeof Pebble != 'undefined'; + +var userAgent = engineUserAgent; + +var engineIsWebosWebkit = /web0s(?!.*chrome)/i.test(userAgent); + +var global$6 = global$i; +var bind$3 = functionBindContext; +var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; +var macrotask = task$1.set; +var Queue$1 = queue$1; +var IS_IOS = engineIsIos; +var IS_IOS_PEBBLE = engineIsIosPebble; +var IS_WEBOS_WEBKIT = engineIsWebosWebkit; +var IS_NODE$2 = engineIsNode; + +var MutationObserver = global$6.MutationObserver || global$6.WebKitMutationObserver; +var document$2 = global$6.document; +var process$2 = global$6.process; +var Promise$1 = global$6.Promise; +// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` +var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global$6, 'queueMicrotask'); +var microtask$1 = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; +var notify$1, toggle, node, promise, then; + +// modern engines have queueMicrotask method +if (!microtask$1) { + var queue = new Queue$1(); + + var flush = function () { + var parent, fn; + if (IS_NODE$2 && (parent = process$2.domain)) parent.exit(); + while (fn = queue.get()) try { + fn(); + } catch (error) { + if (queue.head) notify$1(); + throw error; + } + if (parent) parent.enter(); + }; + + // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 + // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 + if (!IS_IOS && !IS_NODE$2 && !IS_WEBOS_WEBKIT && MutationObserver && document$2) { + toggle = true; + node = document$2.createTextNode(''); + new MutationObserver(flush).observe(node, { characterData: true }); + notify$1 = function () { + node.data = toggle = !toggle; + }; + // environments with maybe non-completely correct, but existent Promise + } else if (!IS_IOS_PEBBLE && Promise$1 && Promise$1.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + promise = Promise$1.resolve(undefined); + // workaround of WebKit ~ iOS Safari 10.1 bug + promise.constructor = Promise$1; + then = bind$3(promise.then, promise); + notify$1 = function () { + then(flush); + }; + // Node.js without promises + } else if (IS_NODE$2) { + notify$1 = function () { + process$2.nextTick(flush); + }; + // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessage + // - onreadystatechange + // - setTimeout + } else { + // `webpack` dev server bug on IE global methods - use bind(fn, global) + macrotask = bind$3(macrotask, global$6); + notify$1 = function () { + macrotask(flush); + }; + } + + microtask$1 = function (fn) { + if (!queue.head) notify$1(); + queue.add(fn); + }; +} + +var microtask_1 = microtask$1; + +var hostReportErrors$1 = function (a, b) { + try { + // eslint-disable-next-line no-console -- safe + arguments.length == 1 ? console.error(a) : console.error(a, b); + } catch (error) { /* empty */ } +}; + +var perform$3 = function (exec) { + try { + return { error: false, value: exec() }; + } catch (error) { + return { error: true, value: error }; + } +}; + +var global$5 = global$i; + +var promiseNativeConstructor = global$5.Promise; + +/* global Deno -- Deno case */ + +var engineIsDeno = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; + +var IS_DENO$1 = engineIsDeno; +var IS_NODE$1 = engineIsNode; + +var engineIsBrowser = !IS_DENO$1 && !IS_NODE$1 + && typeof window == 'object' + && typeof document == 'object'; + +var global$4 = global$i; +var NativePromiseConstructor$3 = promiseNativeConstructor; +var isCallable$7 = isCallable$m; +var isForced$1 = isForced_1; +var inspectSource = inspectSource$3; +var wellKnownSymbol$7 = wellKnownSymbol$h; +var IS_BROWSER = engineIsBrowser; +var IS_DENO = engineIsDeno; +var V8_VERSION = engineV8Version; + +NativePromiseConstructor$3 && NativePromiseConstructor$3.prototype; +var SPECIES = wellKnownSymbol$7('species'); +var SUBCLASSING = false; +var NATIVE_PROMISE_REJECTION_EVENT$1 = isCallable$7(global$4.PromiseRejectionEvent); + +var FORCED_PROMISE_CONSTRUCTOR$5 = isForced$1('Promise', function () { + var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor$3); + var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor$3); + // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // We can't detect it synchronously, so just check versions + if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true; + // We can't use @@species feature detection in V8 since it causes + // deoptimization and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) { + // Detect correctness of subclassing with @@species support + var promise = new NativePromiseConstructor$3(function (resolve) { resolve(1); }); + var FakePromise = function (exec) { + exec(function () { /* empty */ }, function () { /* empty */ }); + }; + var constructor = promise.constructor = {}; + constructor[SPECIES] = FakePromise; + SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise; + if (!SUBCLASSING) return true; + // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test + } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT$1; +}); + +var promiseConstructorDetection = { + CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR$5, + REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT$1, + SUBCLASSING: SUBCLASSING +}; + +var newPromiseCapability$2 = {}; + +var aCallable$4 = aCallable$8; + +var $TypeError$2 = TypeError; + +var PromiseCapability = function (C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw $TypeError$2('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aCallable$4(resolve); + this.reject = aCallable$4(reject); +}; + +// `NewPromiseCapability` abstract operation +// https://tc39.es/ecma262/#sec-newpromisecapability +newPromiseCapability$2.f = function (C) { + return new PromiseCapability(C); +}; + +var $$8 = _export; +var IS_NODE = engineIsNode; +var global$3 = global$i; +var call$7 = functionCall; +var defineBuiltIn$5 = defineBuiltIn$8; +var setPrototypeOf$2 = objectSetPrototypeOf; +var setToStringTag$3 = setToStringTag$4; +var setSpecies = setSpecies$1; +var aCallable$3 = aCallable$8; +var isCallable$6 = isCallable$m; +var isObject$7 = isObject$f; +var anInstance$2 = anInstance$3; +var speciesConstructor = speciesConstructor$1; +var task = task$1.set; +var microtask = microtask_1; +var hostReportErrors = hostReportErrors$1; +var perform$2 = perform$3; +var Queue = queue$1; +var InternalStateModule$3 = internalState; +var NativePromiseConstructor$2 = promiseNativeConstructor; +var PromiseConstructorDetection = promiseConstructorDetection; +var newPromiseCapabilityModule$3 = newPromiseCapability$2; + +var PROMISE = 'Promise'; +var FORCED_PROMISE_CONSTRUCTOR$4 = PromiseConstructorDetection.CONSTRUCTOR; +var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT; +var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING; +var getInternalPromiseState = InternalStateModule$3.getterFor(PROMISE); +var setInternalState$3 = InternalStateModule$3.set; +var NativePromisePrototype$1 = NativePromiseConstructor$2 && NativePromiseConstructor$2.prototype; +var PromiseConstructor = NativePromiseConstructor$2; +var PromisePrototype = NativePromisePrototype$1; +var TypeError$1 = global$3.TypeError; +var document$1 = global$3.document; +var process$1 = global$3.process; +var newPromiseCapability$1 = newPromiseCapabilityModule$3.f; +var newGenericPromiseCapability = newPromiseCapability$1; + +var DISPATCH_EVENT = !!(document$1 && document$1.createEvent && global$3.dispatchEvent); +var UNHANDLED_REJECTION = 'unhandledrejection'; +var REJECTION_HANDLED = 'rejectionhandled'; +var PENDING = 0; +var FULFILLED = 1; +var REJECTED = 2; +var HANDLED = 1; +var UNHANDLED = 2; + +var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; + +// helpers +var isThenable = function (it) { + var then; + return isObject$7(it) && isCallable$6(then = it.then) ? then : false; +}; + +var callReaction = function (reaction, state) { + var value = state.value; + var ok = state.state == FULFILLED; + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + try { + if (handler) { + if (!ok) { + if (state.rejection === UNHANDLED) onHandleUnhandled(state); + state.rejection = HANDLED; + } + if (handler === true) result = value; + else { + if (domain) domain.enter(); + result = handler(value); // can throw + if (domain) { + domain.exit(); + exited = true; + } + } + if (result === reaction.promise) { + reject(TypeError$1('Promise-chain cycle')); + } else if (then = isThenable(result)) { + call$7(then, result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (error) { + if (domain && !exited) domain.exit(); + reject(error); + } +}; + +var notify = function (state, isReject) { + if (state.notified) return; + state.notified = true; + microtask(function () { + var reactions = state.reactions; + var reaction; + while (reaction = reactions.get()) { + callReaction(reaction, state); + } + state.notified = false; + if (isReject && !state.rejection) onUnhandled(state); + }); +}; + +var dispatchEvent = function (name, promise, reason) { + var event, handler; + if (DISPATCH_EVENT) { + event = document$1.createEvent('Event'); + event.promise = promise; + event.reason = reason; + event.initEvent(name, false, true); + global$3.dispatchEvent(event); + } else event = { promise: promise, reason: reason }; + if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global$3['on' + name])) handler(event); + else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); +}; + +var onUnhandled = function (state) { + call$7(task, global$3, function () { + var promise = state.facade; + var value = state.value; + var IS_UNHANDLED = isUnhandled(state); + var result; + if (IS_UNHANDLED) { + result = perform$2(function () { + if (IS_NODE) { + process$1.emit('unhandledRejection', value, promise); + } else dispatchEvent(UNHANDLED_REJECTION, promise, value); + }); + // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; + if (result.error) throw result.value; + } + }); +}; + +var isUnhandled = function (state) { + return state.rejection !== HANDLED && !state.parent; +}; + +var onHandleUnhandled = function (state) { + call$7(task, global$3, function () { + var promise = state.facade; + if (IS_NODE) { + process$1.emit('rejectionHandled', promise); + } else dispatchEvent(REJECTION_HANDLED, promise, state.value); + }); +}; + +var bind$2 = function (fn, state, unwrap) { + return function (value) { + fn(state, value, unwrap); + }; +}; + +var internalReject = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + state.value = value; + state.state = REJECTED; + notify(state, true); +}; + +var internalResolve = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + try { + if (state.facade === value) throw TypeError$1("Promise can't be resolved itself"); + var then = isThenable(value); + if (then) { + microtask(function () { + var wrapper = { done: false }; + try { + call$7(then, value, + bind$2(internalResolve, wrapper, state), + bind$2(internalReject, wrapper, state) + ); + } catch (error) { + internalReject(wrapper, error, state); + } + }); + } else { + state.value = value; + state.state = FULFILLED; + notify(state, false); + } + } catch (error) { + internalReject({ done: false }, error, state); + } +}; + +// constructor polyfill +if (FORCED_PROMISE_CONSTRUCTOR$4) { + // 25.4.3.1 Promise(executor) + PromiseConstructor = function Promise(executor) { + anInstance$2(this, PromisePrototype); + aCallable$3(executor); + call$7(Internal, this); + var state = getInternalPromiseState(this); + try { + executor(bind$2(internalResolve, state), bind$2(internalReject, state)); + } catch (error) { + internalReject(state, error); + } + }; + + PromisePrototype = PromiseConstructor.prototype; + + // eslint-disable-next-line no-unused-vars -- required for `.length` + Internal = function Promise(executor) { + setInternalState$3(this, { + type: PROMISE, + done: false, + notified: false, + parent: false, + reactions: new Queue(), + rejection: false, + state: PENDING, + value: undefined + }); + }; + + // `Promise.prototype.then` method + // https://tc39.es/ecma262/#sec-promise.prototype.then + Internal.prototype = defineBuiltIn$5(PromisePrototype, 'then', function then(onFulfilled, onRejected) { + var state = getInternalPromiseState(this); + var reaction = newPromiseCapability$1(speciesConstructor(this, PromiseConstructor)); + state.parent = true; + reaction.ok = isCallable$6(onFulfilled) ? onFulfilled : true; + reaction.fail = isCallable$6(onRejected) && onRejected; + reaction.domain = IS_NODE ? process$1.domain : undefined; + if (state.state == PENDING) state.reactions.add(reaction); + else microtask(function () { + callReaction(reaction, state); + }); + return reaction.promise; + }); + + OwnPromiseCapability = function () { + var promise = new Internal(); + var state = getInternalPromiseState(promise); + this.promise = promise; + this.resolve = bind$2(internalResolve, state); + this.reject = bind$2(internalReject, state); + }; + + newPromiseCapabilityModule$3.f = newPromiseCapability$1 = function (C) { + return C === PromiseConstructor || C === PromiseWrapper + ? new OwnPromiseCapability(C) + : newGenericPromiseCapability(C); + }; + + if (isCallable$6(NativePromiseConstructor$2) && NativePromisePrototype$1 !== Object.prototype) { + nativeThen = NativePromisePrototype$1.then; + + if (!NATIVE_PROMISE_SUBCLASSING) { + // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs + defineBuiltIn$5(NativePromisePrototype$1, 'then', function then(onFulfilled, onRejected) { + var that = this; + return new PromiseConstructor(function (resolve, reject) { + call$7(nativeThen, that, resolve, reject); + }).then(onFulfilled, onRejected); + // https://github.com/zloirock/core-js/issues/640 + }, { unsafe: true }); + } + + // make `.constructor === Promise` work for native promise-based APIs + try { + delete NativePromisePrototype$1.constructor; + } catch (error) { /* empty */ } + + // make `instanceof Promise` work for native promise-based APIs + if (setPrototypeOf$2) { + setPrototypeOf$2(NativePromisePrototype$1, PromisePrototype); + } + } +} + +$$8({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR$4 }, { + Promise: PromiseConstructor +}); + +setToStringTag$3(PromiseConstructor, PROMISE, false); +setSpecies(PROMISE); + +var iterators = {}; + +var wellKnownSymbol$6 = wellKnownSymbol$h; +var Iterators$4 = iterators; + +var ITERATOR$5 = wellKnownSymbol$6('iterator'); +var ArrayPrototype$1 = Array.prototype; + +// check on default Array iterator +var isArrayIteratorMethod$1 = function (it) { + return it !== undefined && (Iterators$4.Array === it || ArrayPrototype$1[ITERATOR$5] === it); +}; + +var classof$3 = classof$7; +var getMethod$1 = getMethod$3; +var isNullOrUndefined$2 = isNullOrUndefined$6; +var Iterators$3 = iterators; +var wellKnownSymbol$5 = wellKnownSymbol$h; + +var ITERATOR$4 = wellKnownSymbol$5('iterator'); + +var getIteratorMethod$2 = function (it) { + if (!isNullOrUndefined$2(it)) return getMethod$1(it, ITERATOR$4) + || getMethod$1(it, '@@iterator') + || Iterators$3[classof$3(it)]; +}; + +var call$6 = functionCall; +var aCallable$2 = aCallable$8; +var anObject$6 = anObject$b; +var tryToString$1 = tryToString$4; +var getIteratorMethod$1 = getIteratorMethod$2; + +var $TypeError$1 = TypeError; + +var getIterator$1 = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod$1(argument) : usingIterator; + if (aCallable$2(iteratorMethod)) return anObject$6(call$6(iteratorMethod, argument)); + throw $TypeError$1(tryToString$1(argument) + ' is not iterable'); +}; + +var call$5 = functionCall; +var anObject$5 = anObject$b; +var getMethod = getMethod$3; + +var iteratorClose$1 = function (iterator, kind, value) { + var innerResult, innerError; + anObject$5(iterator); + try { + innerResult = getMethod(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') throw value; + return value; + } + innerResult = call$5(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === 'throw') throw value; + if (innerError) throw innerResult; + anObject$5(innerResult); + return value; +}; + +var bind$1 = functionBindContext; +var call$4 = functionCall; +var anObject$4 = anObject$b; +var tryToString = tryToString$4; +var isArrayIteratorMethod = isArrayIteratorMethod$1; +var lengthOfArrayLike$2 = lengthOfArrayLike$5; +var isPrototypeOf = objectIsPrototypeOf; +var getIterator = getIterator$1; +var getIteratorMethod = getIteratorMethod$2; +var iteratorClose = iteratorClose$1; + +var $TypeError = TypeError; + +var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; +}; + +var ResultPrototype = Result.prototype; + +var iterate$4 = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_RECORD = !!(options && options.IS_RECORD); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind$1(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose(iterator, 'normal', condition); + return new Result(true, condition); + }; + + var callFn = function (value) { + if (AS_ENTRIES) { + anObject$4(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; + + if (IS_RECORD) { + iterator = iterable.iterator; + } else if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod(iterable); + if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = lengthOfArrayLike$2(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + } + iterator = getIterator(iterable, iterFn); + } + + next = IS_RECORD ? iterable.next : iterator.next; + while (!(step = call$4(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } + if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); +}; + +var wellKnownSymbol$4 = wellKnownSymbol$h; + +var ITERATOR$3 = wellKnownSymbol$4('iterator'); +var SAFE_CLOSING = false; + +try { + var called = 0; + var iteratorWithReturn = { + next: function () { + return { done: !!called++ }; + }, + 'return': function () { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR$3] = function () { + return this; + }; + // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing + Array.from(iteratorWithReturn, function () { throw 2; }); +} catch (error) { /* empty */ } + +var checkCorrectnessOfIteration$2 = function (exec, SKIP_CLOSING) { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR$3] = function () { + return { + next: function () { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { /* empty */ } + return ITERATION_SUPPORT; +}; + +var NativePromiseConstructor$1 = promiseNativeConstructor; +var checkCorrectnessOfIteration$1 = checkCorrectnessOfIteration$2; +var FORCED_PROMISE_CONSTRUCTOR$3 = promiseConstructorDetection.CONSTRUCTOR; + +var promiseStaticsIncorrectIteration = FORCED_PROMISE_CONSTRUCTOR$3 || !checkCorrectnessOfIteration$1(function (iterable) { + NativePromiseConstructor$1.all(iterable).then(undefined, function () { /* empty */ }); +}); + +var $$7 = _export; +var call$3 = functionCall; +var aCallable$1 = aCallable$8; +var newPromiseCapabilityModule$2 = newPromiseCapability$2; +var perform$1 = perform$3; +var iterate$3 = iterate$4; +var PROMISE_STATICS_INCORRECT_ITERATION$1 = promiseStaticsIncorrectIteration; + +// `Promise.all` method +// https://tc39.es/ecma262/#sec-promise.all +$$7({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$1 }, { + all: function all(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$2.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform$1(function () { + var $promiseResolve = aCallable$1(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate$3(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call$3($promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + +var $$6 = _export; +var FORCED_PROMISE_CONSTRUCTOR$2 = promiseConstructorDetection.CONSTRUCTOR; +var NativePromiseConstructor = promiseNativeConstructor; +var getBuiltIn$1 = getBuiltIn$7; +var isCallable$5 = isCallable$m; +var defineBuiltIn$4 = defineBuiltIn$8; + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + +// `Promise.prototype.catch` method +// https://tc39.es/ecma262/#sec-promise.prototype.catch +$$6({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR$2, real: true }, { + 'catch': function (onRejected) { + return this.then(undefined, onRejected); + } +}); + +// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` +if (isCallable$5(NativePromiseConstructor)) { + var method = getBuiltIn$1('Promise').prototype['catch']; + if (NativePromisePrototype['catch'] !== method) { + defineBuiltIn$4(NativePromisePrototype, 'catch', method, { unsafe: true }); + } +} + +var $$5 = _export; +var call$2 = functionCall; +var aCallable = aCallable$8; +var newPromiseCapabilityModule$1 = newPromiseCapability$2; +var perform = perform$3; +var iterate$2 = iterate$4; +var PROMISE_STATICS_INCORRECT_ITERATION = promiseStaticsIncorrectIteration; + +// `Promise.race` method +// https://tc39.es/ecma262/#sec-promise.race +$$5({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + race: function race(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$1.f(C); + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aCallable(C.resolve); + iterate$2(iterable, function (promise) { + call$2($promiseResolve, C, promise).then(capability.resolve, reject); + }); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + +var $$4 = _export; +var call$1 = functionCall; +var newPromiseCapabilityModule = newPromiseCapability$2; +var FORCED_PROMISE_CONSTRUCTOR$1 = promiseConstructorDetection.CONSTRUCTOR; + +// `Promise.reject` method +// https://tc39.es/ecma262/#sec-promise.reject +$$4({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR$1 }, { + reject: function reject(r) { + var capability = newPromiseCapabilityModule.f(this); + call$1(capability.reject, undefined, r); + return capability.promise; + } +}); + +var anObject$3 = anObject$b; +var isObject$6 = isObject$f; +var newPromiseCapability = newPromiseCapability$2; + +var promiseResolve$1 = function (C, x) { + anObject$3(C); + if (isObject$6(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; +}; + +var $$3 = _export; +var getBuiltIn = getBuiltIn$7; +var FORCED_PROMISE_CONSTRUCTOR = promiseConstructorDetection.CONSTRUCTOR; +var promiseResolve = promiseResolve$1; + +getBuiltIn('Promise'); + +// `Promise.resolve` method +// https://tc39.es/ecma262/#sec-promise.resolve +$$3({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + resolve: function resolve(x) { + return promiseResolve(this, x); + } +}); + +var objectDefineProperties = {}; + +var DESCRIPTORS$1 = descriptors; +var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug; +var definePropertyModule = objectDefineProperty; +var anObject$2 = anObject$b; +var toIndexedObject$2 = toIndexedObject$6; +var objectKeys = objectKeys$2; + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +// eslint-disable-next-line es/no-object-defineproperties -- safe +objectDefineProperties.f = DESCRIPTORS$1 && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject$2(O); + var props = toIndexedObject$2(Properties); + var keys = objectKeys(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); + return O; +}; + +/* global ActiveXObject -- old IE, WSH */ + +var anObject$1 = anObject$b; +var definePropertiesModule = objectDefineProperties; +var enumBugKeys = enumBugKeys$3; +var hiddenKeys$1 = hiddenKeys$5; +var html = html$2; +var documentCreateElement$1 = documentCreateElement$2; +var sharedKey$1 = sharedKey$3; + +var GT = '>'; +var LT = '<'; +var PROTOTYPE = 'prototype'; +var SCRIPT = 'script'; +var IE_PROTO$1 = sharedKey$1('IE_PROTO'); + +var EmptyConstructor = function () { /* empty */ }; + +var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; +}; + +// Create object with fake `null` prototype: use ActiveX Object with cleared prototype +var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; +}; + +// Create object with fake `null` prototype: use iframe Object with cleared prototype +var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement$1('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; +}; + +// Check for document.domain and active x support +// No need to use active x approach when document.domain is not set +// see https://github.com/es-shims/es5-shim/issues/150 +// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 +// avoid IE GC bug +var activeXDocument; +var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); +}; + +hiddenKeys$1[IE_PROTO$1] = true; + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +// eslint-disable-next-line es/no-object-create -- safe +var objectCreate = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject$1(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO$1] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); +}; + +var wellKnownSymbol$3 = wellKnownSymbol$h; +var create$1 = objectCreate; +var defineProperty$2 = objectDefineProperty.f; + +var UNSCOPABLES = wellKnownSymbol$3('unscopables'); +var ArrayPrototype = Array.prototype; + +// Array.prototype[@@unscopables] +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +if (ArrayPrototype[UNSCOPABLES] == undefined) { + defineProperty$2(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create$1(null) + }); +} + +// add a key to Array.prototype[@@unscopables] +var addToUnscopables$1 = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; +}; + +var fails$5 = fails$j; + +var correctPrototypeGetter = !fails$5(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + // eslint-disable-next-line es/no-object-getprototypeof -- required for testing + return Object.getPrototypeOf(new F()) !== F.prototype; +}); + +var hasOwn$2 = hasOwnProperty_1; +var isCallable$4 = isCallable$m; +var toObject$1 = toObject$5; +var sharedKey = sharedKey$3; +var CORRECT_PROTOTYPE_GETTER = correctPrototypeGetter; + +var IE_PROTO = sharedKey('IE_PROTO'); +var $Object = Object; +var ObjectPrototype = $Object.prototype; + +// `Object.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.getprototypeof +// eslint-disable-next-line es/no-object-getprototypeof -- safe +var objectGetPrototypeOf = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { + var object = toObject$1(O); + if (hasOwn$2(object, IE_PROTO)) return object[IE_PROTO]; + var constructor = object.constructor; + if (isCallable$4(constructor) && object instanceof constructor) { + return constructor.prototype; + } return object instanceof $Object ? ObjectPrototype : null; +}; + +var fails$4 = fails$j; +var isCallable$3 = isCallable$m; +var isObject$5 = isObject$f; +var getPrototypeOf$1 = objectGetPrototypeOf; +var defineBuiltIn$3 = defineBuiltIn$8; +var wellKnownSymbol$2 = wellKnownSymbol$h; + +var ITERATOR$2 = wellKnownSymbol$2('iterator'); +var BUGGY_SAFARI_ITERATORS$1 = false; + +// `%IteratorPrototype%` object +// https://tc39.es/ecma262/#sec-%iteratorprototype%-object +var IteratorPrototype$2, PrototypeOfArrayIteratorPrototype, arrayIterator; + +/* eslint-disable es/no-array-prototype-keys -- safe */ +if ([].keys) { + arrayIterator = [].keys(); + // Safari 8 has buggy iterators w/o `next` + if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS$1 = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf$1(getPrototypeOf$1(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype$2 = PrototypeOfArrayIteratorPrototype; + } +} + +var NEW_ITERATOR_PROTOTYPE = !isObject$5(IteratorPrototype$2) || fails$4(function () { + var test = {}; + // FF44- legacy iterators case + return IteratorPrototype$2[ITERATOR$2].call(test) !== test; +}); + +if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype$2 = {}; + +// `%IteratorPrototype%[@@iterator]()` method +// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator +if (!isCallable$3(IteratorPrototype$2[ITERATOR$2])) { + defineBuiltIn$3(IteratorPrototype$2, ITERATOR$2, function () { + return this; + }); +} + +var iteratorsCore = { + IteratorPrototype: IteratorPrototype$2, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS$1 +}; + +var IteratorPrototype$1 = iteratorsCore.IteratorPrototype; +var create = objectCreate; +var createPropertyDescriptor = createPropertyDescriptor$4; +var setToStringTag$2 = setToStringTag$4; +var Iterators$2 = iterators; + +var returnThis$1 = function () { return this; }; + +var iteratorCreateConstructor = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = create(IteratorPrototype$1, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) }); + setToStringTag$2(IteratorConstructor, TO_STRING_TAG, false); + Iterators$2[TO_STRING_TAG] = returnThis$1; + return IteratorConstructor; +}; + +var $$2 = _export; +var call = functionCall; +var FunctionName = functionName; +var isCallable$2 = isCallable$m; +var createIteratorConstructor = iteratorCreateConstructor; +var getPrototypeOf = objectGetPrototypeOf; +var setPrototypeOf$1 = objectSetPrototypeOf; +var setToStringTag$1 = setToStringTag$4; +var createNonEnumerableProperty$1 = createNonEnumerableProperty$4; +var defineBuiltIn$2 = defineBuiltIn$8; +var wellKnownSymbol$1 = wellKnownSymbol$h; +var Iterators$1 = iterators; +var IteratorsCore = iteratorsCore; + +var PROPER_FUNCTION_NAME = FunctionName.PROPER; +var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; +var IteratorPrototype = IteratorsCore.IteratorPrototype; +var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; +var ITERATOR$1 = wellKnownSymbol$1('iterator'); +var KEYS = 'keys'; +var VALUES = 'values'; +var ENTRIES = 'entries'; + +var returnThis = function () { return this; }; + +var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + + var getIterationMethod = function (KIND) { + if (KIND === DEFAULT && defaultIterator) return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; + switch (KIND) { + case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; + case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; + case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; + } return function () { return new IteratorConstructor(this); }; + }; + + var TO_STRING_TAG = NAME + ' Iterator'; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR$1] + || IterablePrototype['@@iterator'] + || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + + // fix native + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf$1) { + setPrototypeOf$1(CurrentIteratorPrototype, IteratorPrototype); + } else if (!isCallable$2(CurrentIteratorPrototype[ITERATOR$1])) { + defineBuiltIn$2(CurrentIteratorPrototype, ITERATOR$1, returnThis); + } + } + // Set @@toStringTag to native iterators + setToStringTag$1(CurrentIteratorPrototype, TO_STRING_TAG, true); + } + } + + // fix Array.prototype.{ values, @@iterator }.name in V8 / FF + if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { + if (CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty$1(IterablePrototype, 'name', VALUES); + } else { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { return call(nativeIterator, this); }; + } + } + + // export additional methods + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + defineBuiltIn$2(IterablePrototype, KEY, methods[KEY]); + } + } else $$2({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + + // define iterator + if (IterablePrototype[ITERATOR$1] !== defaultIterator) { + defineBuiltIn$2(IterablePrototype, ITERATOR$1, defaultIterator, { name: DEFAULT }); + } + Iterators$1[NAME] = defaultIterator; + + return methods; +}; + +// `CreateIterResultObject` abstract operation +// https://tc39.es/ecma262/#sec-createiterresultobject +var createIterResultObject$2 = function (value, done) { + return { value: value, done: done }; +}; + +var toIndexedObject$1 = toIndexedObject$6; +var addToUnscopables = addToUnscopables$1; +var Iterators = iterators; +var InternalStateModule$2 = internalState; +var defineProperty$1 = objectDefineProperty.f; +var defineIterator$1 = iteratorDefine; +var createIterResultObject$1 = createIterResultObject$2; +var DESCRIPTORS = descriptors; + +var ARRAY_ITERATOR = 'Array Iterator'; +var setInternalState$2 = InternalStateModule$2.set; +var getInternalState$1 = InternalStateModule$2.getterFor(ARRAY_ITERATOR); + +// `Array.prototype.entries` method +// https://tc39.es/ecma262/#sec-array.prototype.entries +// `Array.prototype.keys` method +// https://tc39.es/ecma262/#sec-array.prototype.keys +// `Array.prototype.values` method +// https://tc39.es/ecma262/#sec-array.prototype.values +// `Array.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-array.prototype-@@iterator +// `CreateArrayIterator` internal method +// https://tc39.es/ecma262/#sec-createarrayiterator +var es_array_iterator = defineIterator$1(Array, 'Array', function (iterated, kind) { + setInternalState$2(this, { + type: ARRAY_ITERATOR, + target: toIndexedObject$1(iterated), // target + index: 0, // next index + kind: kind // kind + }); +// `%ArrayIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next +}, function () { + var state = getInternalState$1(this); + var target = state.target; + var kind = state.kind; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject$1(undefined, true); + } + if (kind == 'keys') return createIterResultObject$1(index, false); + if (kind == 'values') return createIterResultObject$1(target[index], false); + return createIterResultObject$1([index, target[index]], false); +}, 'values'); + +// argumentsList[@@iterator] is %ArrayProto_values% +// https://tc39.es/ecma262/#sec-createunmappedargumentsobject +// https://tc39.es/ecma262/#sec-createmappedargumentsobject +var values = Iterators.Arguments = Iterators.Array; + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('keys'); +addToUnscopables('values'); +addToUnscopables('entries'); + +// V8 ~ Chrome 45- bug +if (DESCRIPTORS && values.name !== 'values') try { + defineProperty$1(values, 'name', { value: 'values' }); +} catch (error) { /* empty */ } + +var classof$2 = classof$7; + +var $String = String; + +var toString$2 = function (argument) { + if (classof$2(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string'); + return $String(argument); +}; + +var uncurryThis$4 = functionUncurryThis; +var toIntegerOrInfinity = toIntegerOrInfinity$3; +var toString$1 = toString$2; +var requireObjectCoercible = requireObjectCoercible$3; + +var charAt$1 = uncurryThis$4(''.charAt); +var charCodeAt = uncurryThis$4(''.charCodeAt); +var stringSlice = uncurryThis$4(''.slice); + +var createMethod$1 = function (CONVERT_TO_STRING) { + return function ($this, pos) { + var S = toString$1(requireObjectCoercible($this)); + var position = toIntegerOrInfinity(pos); + var size = S.length; + var first, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; + first = charCodeAt(S, position); + return first < 0xD800 || first > 0xDBFF || position + 1 === size + || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF + ? CONVERT_TO_STRING + ? charAt$1(S, position) + : first + : CONVERT_TO_STRING + ? stringSlice(S, position, position + 2) + : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; + }; +}; + +var stringMultibyte = { + // `String.prototype.codePointAt` method + // https://tc39.es/ecma262/#sec-string.prototype.codepointat + codeAt: createMethod$1(false), + // `String.prototype.at` method + // https://github.com/mathiasbynens/String.prototype.at + charAt: createMethod$1(true) +}; + +var charAt = stringMultibyte.charAt; +var toString = toString$2; +var InternalStateModule$1 = internalState; +var defineIterator = iteratorDefine; +var createIterResultObject = createIterResultObject$2; + +var STRING_ITERATOR = 'String Iterator'; +var setInternalState$1 = InternalStateModule$1.set; +var getInternalState = InternalStateModule$1.getterFor(STRING_ITERATOR); + +// `String.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-string.prototype-@@iterator +defineIterator(String, 'String', function (iterated) { + setInternalState$1(this, { + type: STRING_ITERATOR, + string: toString(iterated), + index: 0 + }); +// `%StringIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next +}, function next() { + var state = getInternalState(this); + var string = state.string; + var index = state.index; + var point; + if (index >= string.length) return createIterResultObject(undefined, true); + point = charAt(string, index); + state.index += point.length; + return createIterResultObject(point, false); +}); + +var internalMetadata = {exports: {}}; + +var objectGetOwnPropertyNamesExternal = {}; + +var toAbsoluteIndex = toAbsoluteIndex$2; +var lengthOfArrayLike$1 = lengthOfArrayLike$5; +var createProperty = createProperty$2; + +var $Array = Array; +var max = Math.max; + +var arraySliceSimple = function (O, start, end) { + var length = lengthOfArrayLike$1(O); + var k = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + var result = $Array(max(fin - k, 0)); + for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]); + result.length = n; + return result; +}; + +/* eslint-disable es/no-object-getownpropertynames -- safe */ + +var classof$1 = classofRaw$2; +var toIndexedObject = toIndexedObject$6; +var $getOwnPropertyNames = objectGetOwnPropertyNames.f; +var arraySlice = arraySliceSimple; + +var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + +var getWindowNames = function (it) { + try { + return $getOwnPropertyNames(it); + } catch (error) { + return arraySlice(windowNames); + } +}; + +// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window +objectGetOwnPropertyNamesExternal.f = function getOwnPropertyNames(it) { + return windowNames && classof$1(it) == 'Window' + ? getWindowNames(it) + : $getOwnPropertyNames(toIndexedObject(it)); +}; + +// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it +var fails$3 = fails$j; + +var arrayBufferNonExtensible = fails$3(function () { + if (typeof ArrayBuffer == 'function') { + var buffer = new ArrayBuffer(8); + // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe + if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 }); + } +}); + +var fails$2 = fails$j; +var isObject$4 = isObject$f; +var classof = classofRaw$2; +var ARRAY_BUFFER_NON_EXTENSIBLE = arrayBufferNonExtensible; + +// eslint-disable-next-line es/no-object-isextensible -- safe +var $isExtensible = Object.isExtensible; +var FAILS_ON_PRIMITIVES = fails$2(function () { $isExtensible(1); }); + +// `Object.isExtensible` method +// https://tc39.es/ecma262/#sec-object.isextensible +var objectIsExtensible = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) { + if (!isObject$4(it)) return false; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false; + return $isExtensible ? $isExtensible(it) : true; +} : $isExtensible; + +var fails$1 = fails$j; + +var freezing = !fails$1(function () { + // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing + return Object.isExtensible(Object.preventExtensions({})); +}); + +var $$1 = _export; +var uncurryThis$3 = functionUncurryThis; +var hiddenKeys = hiddenKeys$5; +var isObject$3 = isObject$f; +var hasOwn$1 = hasOwnProperty_1; +var defineProperty = objectDefineProperty.f; +var getOwnPropertyNamesModule = objectGetOwnPropertyNames; +var getOwnPropertyNamesExternalModule = objectGetOwnPropertyNamesExternal; +var isExtensible = objectIsExtensible; +var uid = uid$3; +var FREEZING = freezing; + +var REQUIRED = false; +var METADATA = uid('meta'); +var id$1 = 0; + +var setMetadata = function (it) { + defineProperty(it, METADATA, { value: { + objectID: 'O' + id$1++, // object ID + weakData: {} // weak collections IDs + } }); +}; + +var fastKey = function (it, create) { + // return a primitive with prefix + if (!isObject$3(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!hasOwn$1(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; + // not necessary to add metadata + if (!create) return 'E'; + // add missing metadata + setMetadata(it); + // return object ID + } return it[METADATA].objectID; +}; + +var getWeakData$1 = function (it, create) { + if (!hasOwn$1(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; + // not necessary to add metadata + if (!create) return false; + // add missing metadata + setMetadata(it); + // return the store of weak collections IDs + } return it[METADATA].weakData; +}; + +// add metadata on freeze-family methods calling +var onFreeze = function (it) { + if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn$1(it, METADATA)) setMetadata(it); + return it; +}; + +var enable = function () { + meta.enable = function () { /* empty */ }; + REQUIRED = true; + var getOwnPropertyNames = getOwnPropertyNamesModule.f; + var splice = uncurryThis$3([].splice); + var test = {}; + test[METADATA] = 1; + + // prevent exposing of metadata key + if (getOwnPropertyNames(test).length) { + getOwnPropertyNamesModule.f = function (it) { + var result = getOwnPropertyNames(it); + for (var i = 0, length = result.length; i < length; i++) { + if (result[i] === METADATA) { + splice(result, i, 1); + break; + } + } return result; + }; + + $$1({ target: 'Object', stat: true, forced: true }, { + getOwnPropertyNames: getOwnPropertyNamesExternalModule.f + }); + } +}; + +var meta = internalMetadata.exports = { + enable: enable, + fastKey: fastKey, + getWeakData: getWeakData$1, + onFreeze: onFreeze +}; + +hiddenKeys[METADATA] = true; + +var internalMetadataExports = internalMetadata.exports; + +var isCallable$1 = isCallable$m; +var isObject$2 = isObject$f; +var setPrototypeOf = objectSetPrototypeOf; + +// makes subclassing work correct for wrapped built-ins +var inheritIfRequired$1 = function ($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if ( + // it can work only with native `setPrototypeOf` + setPrototypeOf && + // we haven't completely correct pre-ES6 way for getting `new.target`, so use this + isCallable$1(NewTarget = dummy.constructor) && + NewTarget !== Wrapper && + isObject$2(NewTargetPrototype = NewTarget.prototype) && + NewTargetPrototype !== Wrapper.prototype + ) setPrototypeOf($this, NewTargetPrototype); + return $this; +}; + +var $ = _export; +var global$2 = global$i; +var uncurryThis$2 = functionUncurryThis; +var isForced = isForced_1; +var defineBuiltIn$1 = defineBuiltIn$8; +var InternalMetadataModule = internalMetadataExports; +var iterate$1 = iterate$4; +var anInstance$1 = anInstance$3; +var isCallable = isCallable$m; +var isNullOrUndefined$1 = isNullOrUndefined$6; +var isObject$1 = isObject$f; +var fails = fails$j; +var checkCorrectnessOfIteration = checkCorrectnessOfIteration$2; +var setToStringTag = setToStringTag$4; +var inheritIfRequired = inheritIfRequired$1; + +var collection$1 = function (CONSTRUCTOR_NAME, wrapper, common) { + var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; + var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; + var ADDER = IS_MAP ? 'set' : 'add'; + var NativeConstructor = global$2[CONSTRUCTOR_NAME]; + var NativePrototype = NativeConstructor && NativeConstructor.prototype; + var Constructor = NativeConstructor; + var exported = {}; + + var fixMethod = function (KEY) { + var uncurriedNativeMethod = uncurryThis$2(NativePrototype[KEY]); + defineBuiltIn$1(NativePrototype, KEY, + KEY == 'add' ? function add(value) { + uncurriedNativeMethod(this, value === 0 ? 0 : value); + return this; + } : KEY == 'delete' ? function (key) { + return IS_WEAK && !isObject$1(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY == 'get' ? function get(key) { + return IS_WEAK && !isObject$1(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY == 'has' ? function has(key) { + return IS_WEAK && !isObject$1(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : function set(key, value) { + uncurriedNativeMethod(this, key === 0 ? 0 : key, value); + return this; + } + ); + }; + + var REPLACE = isForced( + CONSTRUCTOR_NAME, + !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () { + new NativeConstructor().entries().next(); + })) + ); + + if (REPLACE) { + // create collection constructor + Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); + InternalMetadataModule.enable(); + } else if (isForced(CONSTRUCTOR_NAME, true)) { + var instance = new Constructor(); + // early implementations not supports chaining + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; + // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false + var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); + // most early implementations doesn't supports iterables, most modern - not close it correctly + // eslint-disable-next-line no-new -- required for testing + var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); }); + // for early implementations -0 and +0 not the same + var BUGGY_ZERO = !IS_WEAK && fails(function () { + // V8 ~ Chromium 42- fails only with 5+ elements + var $instance = new NativeConstructor(); + var index = 5; + while (index--) $instance[ADDER](index, index); + return !$instance.has(-0); + }); + + if (!ACCEPT_ITERABLES) { + Constructor = wrapper(function (dummy, iterable) { + anInstance$1(dummy, NativePrototype); + var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); + if (!isNullOrUndefined$1(iterable)) iterate$1(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + return that; + }); + Constructor.prototype = NativePrototype; + NativePrototype.constructor = Constructor; + } + + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); + + // weak collections should not contains .clear method + if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear; + } + + exported[CONSTRUCTOR_NAME] = Constructor; + $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported); + + setToStringTag(Constructor, CONSTRUCTOR_NAME); + + if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); + + return Constructor; +}; + +var defineBuiltIn = defineBuiltIn$8; + +var defineBuiltIns$1 = function (target, src, options) { + for (var key in src) defineBuiltIn(target, key, src[key], options); + return target; +}; + +var bind = functionBindContext; +var uncurryThis$1 = functionUncurryThis; +var IndexedObject = indexedObject; +var toObject = toObject$5; +var lengthOfArrayLike = lengthOfArrayLike$5; +var arraySpeciesCreate = arraySpeciesCreate$2; + +var push = uncurryThis$1([].push); + +// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation +var createMethod = function (TYPE) { + var IS_MAP = TYPE == 1; + var IS_FILTER = TYPE == 2; + var IS_SOME = TYPE == 3; + var IS_EVERY = TYPE == 4; + var IS_FIND_INDEX = TYPE == 6; + var IS_FILTER_REJECT = TYPE == 7; + var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject($this); + var self = IndexedObject(O); + var boundFunction = bind(callbackfn, that); + var length = lengthOfArrayLike(self); + var index = 0; + var create = specificCreate || arraySpeciesCreate; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push(target, value); // filterReject + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; +}; + +var arrayIteration = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod(7) +}; + +var uncurryThis = functionUncurryThis; +var defineBuiltIns = defineBuiltIns$1; +var getWeakData = internalMetadataExports.getWeakData; +var anInstance = anInstance$3; +var anObject = anObject$b; +var isNullOrUndefined = isNullOrUndefined$6; +var isObject = isObject$f; +var iterate = iterate$4; +var ArrayIterationModule = arrayIteration; +var hasOwn = hasOwnProperty_1; +var InternalStateModule = internalState; + +var setInternalState = InternalStateModule.set; +var internalStateGetterFor = InternalStateModule.getterFor; +var find = ArrayIterationModule.find; +var findIndex = ArrayIterationModule.findIndex; +var splice = uncurryThis([].splice); +var id = 0; + +// fallback for uncaught frozen keys +var uncaughtFrozenStore = function (state) { + return state.frozen || (state.frozen = new UncaughtFrozenStore()); +}; + +var UncaughtFrozenStore = function () { + this.entries = []; +}; + +var findUncaughtFrozen = function (store, key) { + return find(store.entries, function (it) { + return it[0] === key; + }); +}; + +UncaughtFrozenStore.prototype = { + get: function (key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function (key) { + return !!findUncaughtFrozen(this, key); + }, + set: function (key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value; + else this.entries.push([key, value]); + }, + 'delete': function (key) { + var index = findIndex(this.entries, function (it) { + return it[0] === key; + }); + if (~index) splice(this.entries, index, 1); + return !!~index; + } +}; + +var collectionWeak$1 = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + id: id++, + frozen: undefined + }); + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var data = getWeakData(anObject(key), true); + if (data === true) uncaughtFrozenStore(state).set(key, value); + else data[state.id] = value; + return that; + }; + + defineBuiltIns(Prototype, { + // `{ WeakMap, WeakSet }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.delete + // https://tc39.es/ecma262/#sec-weakset.prototype.delete + 'delete': function (key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state)['delete'](key); + return data && hasOwn(data, state.id) && delete data[state.id]; + }, + // `{ WeakMap, WeakSet }.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.has + // https://tc39.es/ecma262/#sec-weakset.prototype.has + has: function has(key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).has(key); + return data && hasOwn(data, state.id); + } + }); + + defineBuiltIns(Prototype, IS_MAP ? { + // `WeakMap.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.get + get: function get(key) { + var state = getInternalState(this); + if (isObject(key)) { + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).get(key); + return data ? data[state.id] : undefined; + } + }, + // `WeakMap.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.set + set: function set(key, value) { + return define(this, key, value); + } + } : { + // `WeakSet.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-weakset.prototype.add + add: function add(value) { + return define(this, value, true); + } + }); + + return Constructor; + } +}; + +var collection = collection$1; +var collectionWeak = collectionWeak$1; + +// `WeakSet` constructor +// https://tc39.es/ecma262/#sec-weakset-constructor +collection('WeakSet', function (init) { + return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionWeak); + +// iterable DOM collections +// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods +var domIterables = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 +}; + +// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList` +var documentCreateElement = documentCreateElement$2; + +var classList = documentCreateElement('span').classList; +var DOMTokenListPrototype$1 = classList && classList.constructor && classList.constructor.prototype; + +var domTokenListPrototype = DOMTokenListPrototype$1 === Object.prototype ? undefined : DOMTokenListPrototype$1; + +var global$1 = global$i; +var DOMIterables = domIterables; +var DOMTokenListPrototype = domTokenListPrototype; +var ArrayIteratorMethods = es_array_iterator; +var createNonEnumerableProperty = createNonEnumerableProperty$4; +var wellKnownSymbol = wellKnownSymbol$h; + +var ITERATOR = wellKnownSymbol('iterator'); +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var ArrayValues = ArrayIteratorMethods.values; + +var handlePrototype = function (CollectionPrototype, COLLECTION_NAME) { + if (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[ITERATOR] !== ArrayValues) try { + createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues); + } catch (error) { + CollectionPrototype[ITERATOR] = ArrayValues; + } + if (!CollectionPrototype[TO_STRING_TAG]) { + createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); + } + if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { + createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); + } catch (error) { + CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; + } + } + } +}; + +for (var COLLECTION_NAME in DOMIterables) { + handlePrototype(global$1[COLLECTION_NAME] && global$1[COLLECTION_NAME].prototype, COLLECTION_NAME); +} + +handlePrototype(DOMTokenListPrototype, 'DOMTokenList'); + +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global Reflect, Promise */ + + +function __classPrivateFieldGet(receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +} + +var _Tooltip_instances, _Tooltip_show, _Tooltip_hide; +var DEFAULT_SELECTOR = '#ch-tooltip'; +var defaultOptions = { + enabled: true, + // Expecting a function, which will return the tooltip content + text: function text(_timestamp, value, dayjsDate) { + return (// eslint-disable-next-line implicit-arrow-linebreak + "".concat(value, " - ").concat(dayjsDate.format('LLLL')) + ); + } +}; +var DEFAULT_POPPER_OPTIONS = { + placement: 'top', + modifiers: [{ + name: 'offset', + options: { + offset: [0, 8] + } + }] +}; +var virtualElement = { + getBoundingClientRect: function getBoundingClientRect() { + var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + return { + width: 0, + height: 0, + top: y, + right: x, + bottom: y, + left: x, + x: x, + y: y, + toJSON: function toJSON() {} + }; + } +}; +var Tooltip = /*#__PURE__*/function () { + function Tooltip(calendar) { + _classCallCheck(this, Tooltip); + _Tooltip_instances.add(this); + this.name = 'Tooltip'; + this.calendar = calendar; + this.root = null; + this.popperInstance = null; + this.options = defaultOptions; + this.listenerAttached = false; + } + _createClass(Tooltip, [{ + key: "setup", + value: function setup(pluginOptions) { + this.options = Object.assign(Object.assign({}, defaultOptions), pluginOptions); + var event = this.calendar.eventEmitter; + if (!this.options.enabled) { + if (this.listenerAttached) { + event.off('mouseover', this.mouseOverCallback, this); + event.off('mouseout', this.mouseOutCallback, this); + this.listenerAttached = false; + } + this.destroy(); + return; + } + this.popperOptions = Object.assign(Object.assign({}, DEFAULT_POPPER_OPTIONS), this.options); + this.root = document.getElementById(DEFAULT_SELECTOR.slice(1)); + if (!this.root) { + var tooltipElem = document.createElement('div'); + tooltipElem.setAttribute('id', DEFAULT_SELECTOR.slice(1)); + tooltipElem.setAttribute('role', 'tooltip'); + tooltipElem.innerHTML = "<div id=\"".concat(DEFAULT_SELECTOR.slice(1), "-arrow\" data-popper-arrow=\"true\"></div>") + "<span id=\"".concat(DEFAULT_SELECTOR.slice(1), "-body\"></span>"); + this.root = document.body.appendChild(tooltipElem); + } + this.root.setAttribute('data-theme', this.calendar.options.options.theme); + this.popperInstance = createPopper(virtualElement, this.root, this.popperOptions); + if (!this.listenerAttached) { + event.on('mouseover', this.mouseOverCallback, this); + event.on('mouseout', this.mouseOutCallback, this); + this.listenerAttached = true; + } + } + }, { + key: "mouseOverCallback", + value: function mouseOverCallback(e, timestamp, value) { + __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_show).call(this, e.target, timestamp, value); + } + }, { + key: "mouseOutCallback", + value: function mouseOutCallback() { + __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_hide).call(this); + } + // eslint-disable-next-line class-methods-use-this + }, { + key: "paint", + value: function paint() { + return Promise.resolve(); + } + }, { + key: "destroy", + value: function destroy() { + if (this.root) { + this.root.remove(); + } + return Promise.resolve(); + } + }]); + return Tooltip; +}(); +_Tooltip_instances = new WeakSet(), _Tooltip_show = function _Tooltip_show(e, timestamp, value) { + var _this = this; + var formatter = this.options.text; + var title = formatter ? formatter(timestamp, value, this.calendar.dateHelper.date(timestamp)) : null; + if (!title) { + return; + } + virtualElement.getBoundingClientRect = function () { + return e.getBoundingClientRect(); + }; + document.getElementById("".concat(DEFAULT_SELECTOR.slice(1), "-body")).innerHTML = title; + this.popperInstance.setOptions(function () { + return Object.assign(Object.assign({}, _this.popperOptions), { + modifiers: [].concat(_toConsumableArray(_this.popperOptions.modifiers), [{ + name: 'eventListeners', + enabled: true + }]) + }); + }); + this.popperInstance.update(); + this.root.setAttribute('data-show', '1'); +}, _Tooltip_hide = function _Tooltip_hide() { + var _this2 = this; + this.root.removeAttribute('data-show'); + this.popperInstance.setOptions(function () { + return Object.assign(Object.assign({}, _this2.popperOptions), { + modifiers: [].concat(_toConsumableArray(_this2.popperOptions.modifiers), [{ + name: 'eventListeners', + enabled: false + }]) + }); + }); +}; + +export { Tooltip as default }; diff --git a/static/javascripts/cal-heatmap/plugins/Tooltip.js b/static/javascripts/cal-heatmap/plugins/Tooltip.js new file mode 100644 index 000000000..ddd149ef5 --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/Tooltip.js @@ -0,0 +1,3774 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core')) : + typeof define === 'function' && define.amd ? define(['@popperjs/core'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tooltip = factory(global.Popper)); +})(this, (function (core) { 'use strict'; + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _toPrimitive(input, hint) { + if (typeof input !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (typeof res !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); + } + function _toPropertyKey(arg) { + var key = _toPrimitive(arg, "string"); + return typeof key === "symbol" ? key : String(key); + } + + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + var check = function (it) { + return it && it.Math == Math && it; + }; + + // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 + var global$i = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || commonjsGlobal || Function('return this')(); + + var objectGetOwnPropertyDescriptor = {}; + + var fails$j = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } + }; + + var fails$i = fails$j; + + // Detect IE8's incomplete defineProperty implementation + var descriptors = !fails$i(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; + }); + + var fails$h = fails$j; + + var functionBindNative = !fails$h(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); + }); + + var NATIVE_BIND$3 = functionBindNative; + + var call$e = Function.prototype.call; + + var functionCall = NATIVE_BIND$3 ? call$e.bind(call$e) : function () { + return call$e.apply(call$e, arguments); + }; + + var objectPropertyIsEnumerable = {}; + + var $propertyIsEnumerable = {}.propertyIsEnumerable; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getOwnPropertyDescriptor$2 = Object.getOwnPropertyDescriptor; + + // Nashorn ~ JDK8 bug + var NASHORN_BUG = getOwnPropertyDescriptor$2 && !$propertyIsEnumerable.call({ 1: 2 }, 1); + + // `Object.prototype.propertyIsEnumerable` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable + objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor$2(this, V); + return !!descriptor && descriptor.enumerable; + } : $propertyIsEnumerable; + + var createPropertyDescriptor$4 = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; + }; + + var NATIVE_BIND$2 = functionBindNative; + + var FunctionPrototype$3 = Function.prototype; + var call$d = FunctionPrototype$3.call; + var uncurryThisWithBind = NATIVE_BIND$2 && FunctionPrototype$3.bind.bind(call$d, call$d); + + var functionUncurryThis = NATIVE_BIND$2 ? uncurryThisWithBind : function (fn) { + return function () { + return call$d.apply(fn, arguments); + }; + }; + + var uncurryThis$k = functionUncurryThis; + + var toString$5 = uncurryThis$k({}.toString); + var stringSlice$2 = uncurryThis$k(''.slice); + + var classofRaw$2 = function (it) { + return stringSlice$2(toString$5(it), 8, -1); + }; + + var uncurryThis$j = functionUncurryThis; + var fails$g = fails$j; + var classof$9 = classofRaw$2; + + var $Object$4 = Object; + var split = uncurryThis$j(''.split); + + // fallback for non-array-like ES3 and non-enumerable old V8 strings + var indexedObject = fails$g(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object$4('z').propertyIsEnumerable(0); + }) ? function (it) { + return classof$9(it) == 'String' ? split(it, '') : $Object$4(it); + } : $Object$4; + + // we can't use just `it == null` since of `document.all` special case + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec + var isNullOrUndefined$6 = function (it) { + return it === null || it === undefined; + }; + + var isNullOrUndefined$5 = isNullOrUndefined$6; + + var $TypeError$d = TypeError; + + // `RequireObjectCoercible` abstract operation + // https://tc39.es/ecma262/#sec-requireobjectcoercible + var requireObjectCoercible$3 = function (it) { + if (isNullOrUndefined$5(it)) throw $TypeError$d("Can't call method on " + it); + return it; + }; + + // toObject with fallback for non-array-like ES3 strings + var IndexedObject$2 = indexedObject; + var requireObjectCoercible$2 = requireObjectCoercible$3; + + var toIndexedObject$6 = function (it) { + return IndexedObject$2(requireObjectCoercible$2(it)); + }; + + var documentAll$2 = typeof document == 'object' && document.all; + + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + // eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing + var IS_HTMLDDA = typeof documentAll$2 == 'undefined' && documentAll$2 !== undefined; + + var documentAll_1 = { + all: documentAll$2, + IS_HTMLDDA: IS_HTMLDDA + }; + + var $documentAll$1 = documentAll_1; + + var documentAll$1 = $documentAll$1.all; + + // `IsCallable` abstract operation + // https://tc39.es/ecma262/#sec-iscallable + var isCallable$m = $documentAll$1.IS_HTMLDDA ? function (argument) { + return typeof argument == 'function' || argument === documentAll$1; + } : function (argument) { + return typeof argument == 'function'; + }; + + var isCallable$l = isCallable$m; + var $documentAll = documentAll_1; + + var documentAll = $documentAll.all; + + var isObject$f = $documentAll.IS_HTMLDDA ? function (it) { + return typeof it == 'object' ? it !== null : isCallable$l(it) || it === documentAll; + } : function (it) { + return typeof it == 'object' ? it !== null : isCallable$l(it); + }; + + var global$h = global$i; + var isCallable$k = isCallable$m; + + var aFunction = function (argument) { + return isCallable$k(argument) ? argument : undefined; + }; + + var getBuiltIn$7 = function (namespace, method) { + return arguments.length < 2 ? aFunction(global$h[namespace]) : global$h[namespace] && global$h[namespace][method]; + }; + + var uncurryThis$i = functionUncurryThis; + + var objectIsPrototypeOf = uncurryThis$i({}.isPrototypeOf); + + var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + + var global$g = global$i; + var userAgent$3 = engineUserAgent; + + var process$4 = global$g.process; + var Deno$1 = global$g.Deno; + var versions = process$4 && process$4.versions || Deno$1 && Deno$1.version; + var v8 = versions && versions.v8; + var match, version; + + if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); + } + + // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` + // so check `userAgent` even if `.v8` exists, but 0 + if (!version && userAgent$3) { + match = userAgent$3.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent$3.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } + } + + var engineV8Version = version; + + /* eslint-disable es/no-symbol -- required for testing */ + + var V8_VERSION$3 = engineV8Version; + var fails$f = fails$j; + var global$f = global$i; + + var $String$5 = global$f.String; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing + var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$f(function () { + var symbol = Symbol(); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String$5(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION$3 && V8_VERSION$3 < 41; + }); + + /* eslint-disable es/no-symbol -- required for testing */ + + var NATIVE_SYMBOL$1 = symbolConstructorDetection; + + var useSymbolAsUid = NATIVE_SYMBOL$1 + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + + var getBuiltIn$6 = getBuiltIn$7; + var isCallable$j = isCallable$m; + var isPrototypeOf$2 = objectIsPrototypeOf; + var USE_SYMBOL_AS_UID$1 = useSymbolAsUid; + + var $Object$3 = Object; + + var isSymbol$2 = USE_SYMBOL_AS_UID$1 ? function (it) { + return typeof it == 'symbol'; + } : function (it) { + var $Symbol = getBuiltIn$6('Symbol'); + return isCallable$j($Symbol) && isPrototypeOf$2($Symbol.prototype, $Object$3(it)); + }; + + var $String$4 = String; + + var tryToString$4 = function (argument) { + try { + return $String$4(argument); + } catch (error) { + return 'Object'; + } + }; + + var isCallable$i = isCallable$m; + var tryToString$3 = tryToString$4; + + var $TypeError$c = TypeError; + + // `Assert: IsCallable(argument) is true` + var aCallable$8 = function (argument) { + if (isCallable$i(argument)) return argument; + throw $TypeError$c(tryToString$3(argument) + ' is not a function'); + }; + + var aCallable$7 = aCallable$8; + var isNullOrUndefined$4 = isNullOrUndefined$6; + + // `GetMethod` abstract operation + // https://tc39.es/ecma262/#sec-getmethod + var getMethod$3 = function (V, P) { + var func = V[P]; + return isNullOrUndefined$4(func) ? undefined : aCallable$7(func); + }; + + var call$c = functionCall; + var isCallable$h = isCallable$m; + var isObject$e = isObject$f; + + var $TypeError$b = TypeError; + + // `OrdinaryToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-ordinarytoprimitive + var ordinaryToPrimitive$1 = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable$h(fn = input.toString) && !isObject$e(val = call$c(fn, input))) return val; + if (isCallable$h(fn = input.valueOf) && !isObject$e(val = call$c(fn, input))) return val; + if (pref !== 'string' && isCallable$h(fn = input.toString) && !isObject$e(val = call$c(fn, input))) return val; + throw $TypeError$b("Can't convert object to primitive value"); + }; + + var shared$3 = {exports: {}}; + + var global$e = global$i; + + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$7 = Object.defineProperty; + + var defineGlobalProperty$3 = function (key, value) { + try { + defineProperty$7(global$e, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global$e[key] = value; + } return value; + }; + + var global$d = global$i; + var defineGlobalProperty$2 = defineGlobalProperty$3; + + var SHARED = '__core-js_shared__'; + var store$3 = global$d[SHARED] || defineGlobalProperty$2(SHARED, {}); + + var sharedStore = store$3; + + var store$2 = sharedStore; + + (shared$3.exports = function (key, value) { + return store$2[key] || (store$2[key] = value !== undefined ? value : {}); + })('versions', []).push({ + version: '3.30.2', + mode: 'global', + copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE', + source: 'https://github.com/zloirock/core-js' + }); + + var sharedExports = shared$3.exports; + + var requireObjectCoercible$1 = requireObjectCoercible$3; + + var $Object$2 = Object; + + // `ToObject` abstract operation + // https://tc39.es/ecma262/#sec-toobject + var toObject$5 = function (argument) { + return $Object$2(requireObjectCoercible$1(argument)); + }; + + var uncurryThis$h = functionUncurryThis; + var toObject$4 = toObject$5; + + var hasOwnProperty = uncurryThis$h({}.hasOwnProperty); + + // `HasOwnProperty` abstract operation + // https://tc39.es/ecma262/#sec-hasownproperty + // eslint-disable-next-line es/no-object-hasown -- safe + var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject$4(it), key); + }; + + var uncurryThis$g = functionUncurryThis; + + var id$2 = 0; + var postfix = Math.random(); + var toString$4 = uncurryThis$g(1.0.toString); + + var uid$3 = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$4(++id$2 + postfix, 36); + }; + + var global$c = global$i; + var shared$2 = sharedExports; + var hasOwn$b = hasOwnProperty_1; + var uid$2 = uid$3; + var NATIVE_SYMBOL = symbolConstructorDetection; + var USE_SYMBOL_AS_UID = useSymbolAsUid; + + var Symbol$1 = global$c.Symbol; + var WellKnownSymbolsStore = shared$2('wks'); + var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1['for'] || Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$2; + + var wellKnownSymbol$h = function (name) { + if (!hasOwn$b(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn$b(Symbol$1, name) + ? Symbol$1[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; + }; + + var call$b = functionCall; + var isObject$d = isObject$f; + var isSymbol$1 = isSymbol$2; + var getMethod$2 = getMethod$3; + var ordinaryToPrimitive = ordinaryToPrimitive$1; + var wellKnownSymbol$g = wellKnownSymbol$h; + + var $TypeError$a = TypeError; + var TO_PRIMITIVE = wellKnownSymbol$g('toPrimitive'); + + // `ToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-toprimitive + var toPrimitive$1 = function (input, pref) { + if (!isObject$d(input) || isSymbol$1(input)) return input; + var exoticToPrim = getMethod$2(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call$b(exoticToPrim, input, pref); + if (!isObject$d(result) || isSymbol$1(result)) return result; + throw $TypeError$a("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); + }; + + var toPrimitive = toPrimitive$1; + var isSymbol = isSymbol$2; + + // `ToPropertyKey` abstract operation + // https://tc39.es/ecma262/#sec-topropertykey + var toPropertyKey$3 = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; + }; + + var global$b = global$i; + var isObject$c = isObject$f; + + var document$3 = global$b.document; + // typeof document.createElement is 'object' in old IE + var EXISTS$1 = isObject$c(document$3) && isObject$c(document$3.createElement); + + var documentCreateElement$2 = function (it) { + return EXISTS$1 ? document$3.createElement(it) : {}; + }; + + var DESCRIPTORS$b = descriptors; + var fails$e = fails$j; + var createElement$1 = documentCreateElement$2; + + // Thanks to IE8 for its funny defineProperty + var ie8DomDefine = !DESCRIPTORS$b && !fails$e(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement$1('div'), 'a', { + get: function () { return 7; } + }).a != 7; + }); + + var DESCRIPTORS$a = descriptors; + var call$a = functionCall; + var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable; + var createPropertyDescriptor$3 = createPropertyDescriptor$4; + var toIndexedObject$5 = toIndexedObject$6; + var toPropertyKey$2 = toPropertyKey$3; + var hasOwn$a = hasOwnProperty_1; + var IE8_DOM_DEFINE$1 = ie8DomDefine; + + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor + objectGetOwnPropertyDescriptor.f = DESCRIPTORS$a ? $getOwnPropertyDescriptor$1 : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject$5(O); + P = toPropertyKey$2(P); + if (IE8_DOM_DEFINE$1) try { + return $getOwnPropertyDescriptor$1(O, P); + } catch (error) { /* empty */ } + if (hasOwn$a(O, P)) return createPropertyDescriptor$3(!call$a(propertyIsEnumerableModule$1.f, O, P), O[P]); + }; + + var objectDefineProperty = {}; + + var DESCRIPTORS$9 = descriptors; + var fails$d = fails$j; + + // V8 ~ Chrome 36- + // https://bugs.chromium.org/p/v8/issues/detail?id=3334 + var v8PrototypeDefineBug = DESCRIPTORS$9 && fails$d(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype != 42; + }); + + var isObject$b = isObject$f; + + var $String$3 = String; + var $TypeError$9 = TypeError; + + // `Assert: Type(argument) is Object` + var anObject$b = function (argument) { + if (isObject$b(argument)) return argument; + throw $TypeError$9($String$3(argument) + ' is not an object'); + }; + + var DESCRIPTORS$8 = descriptors; + var IE8_DOM_DEFINE = ie8DomDefine; + var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug; + var anObject$a = anObject$b; + var toPropertyKey$1 = toPropertyKey$3; + + var $TypeError$8 = TypeError; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var $defineProperty = Object.defineProperty; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var ENUMERABLE = 'enumerable'; + var CONFIGURABLE$1 = 'configurable'; + var WRITABLE = 'writable'; + + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + objectDefineProperty.f = DESCRIPTORS$8 ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) { + anObject$a(O); + P = toPropertyKey$1(P); + anObject$a(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE$1 in Attributes ? Attributes[CONFIGURABLE$1] : current[CONFIGURABLE$1], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); + } : $defineProperty : function defineProperty(O, P, Attributes) { + anObject$a(O); + P = toPropertyKey$1(P); + anObject$a(Attributes); + if (IE8_DOM_DEFINE) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw $TypeError$8('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; + }; + + var DESCRIPTORS$7 = descriptors; + var definePropertyModule$4 = objectDefineProperty; + var createPropertyDescriptor$2 = createPropertyDescriptor$4; + + var createNonEnumerableProperty$4 = DESCRIPTORS$7 ? function (object, key, value) { + return definePropertyModule$4.f(object, key, createPropertyDescriptor$2(1, value)); + } : function (object, key, value) { + object[key] = value; + return object; + }; + + var makeBuiltIn$3 = {exports: {}}; + + var DESCRIPTORS$6 = descriptors; + var hasOwn$9 = hasOwnProperty_1; + + var FunctionPrototype$2 = Function.prototype; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getDescriptor = DESCRIPTORS$6 && Object.getOwnPropertyDescriptor; + + var EXISTS = hasOwn$9(FunctionPrototype$2, 'name'); + // additional protection from minified / mangled / dropped function names + var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; + var CONFIGURABLE = EXISTS && (!DESCRIPTORS$6 || (DESCRIPTORS$6 && getDescriptor(FunctionPrototype$2, 'name').configurable)); + + var functionName = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE + }; + + var uncurryThis$f = functionUncurryThis; + var isCallable$g = isCallable$m; + var store$1 = sharedStore; + + var functionToString$1 = uncurryThis$f(Function.toString); + + // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper + if (!isCallable$g(store$1.inspectSource)) { + store$1.inspectSource = function (it) { + return functionToString$1(it); + }; + } + + var inspectSource$3 = store$1.inspectSource; + + var global$a = global$i; + var isCallable$f = isCallable$m; + + var WeakMap$1 = global$a.WeakMap; + + var weakMapBasicDetection = isCallable$f(WeakMap$1) && /native code/.test(String(WeakMap$1)); + + var shared$1 = sharedExports; + var uid$1 = uid$3; + + var keys = shared$1('keys'); + + var sharedKey$3 = function (key) { + return keys[key] || (keys[key] = uid$1(key)); + }; + + var hiddenKeys$5 = {}; + + var NATIVE_WEAK_MAP = weakMapBasicDetection; + var global$9 = global$i; + var isObject$a = isObject$f; + var createNonEnumerableProperty$3 = createNonEnumerableProperty$4; + var hasOwn$8 = hasOwnProperty_1; + var shared = sharedStore; + var sharedKey$2 = sharedKey$3; + var hiddenKeys$4 = hiddenKeys$5; + + var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; + var TypeError$2 = global$9.TypeError; + var WeakMap = global$9.WeakMap; + var set$1, get, has; + + var enforce = function (it) { + return has(it) ? get(it) : set$1(it, {}); + }; + + var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject$a(it) || (state = get(it)).type !== TYPE) { + throw TypeError$2('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; + }; + + if (NATIVE_WEAK_MAP || shared.state) { + var store = shared.state || (shared.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set$1 = function (it, metadata) { + if (store.has(it)) throw TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; + } else { + var STATE = sharedKey$2('state'); + hiddenKeys$4[STATE] = true; + set$1 = function (it, metadata) { + if (hasOwn$8(it, STATE)) throw TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty$3(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn$8(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn$8(it, STATE); + }; + } + + var internalState = { + set: set$1, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor + }; + + var uncurryThis$e = functionUncurryThis; + var fails$c = fails$j; + var isCallable$e = isCallable$m; + var hasOwn$7 = hasOwnProperty_1; + var DESCRIPTORS$5 = descriptors; + var CONFIGURABLE_FUNCTION_NAME$1 = functionName.CONFIGURABLE; + var inspectSource$2 = inspectSource$3; + var InternalStateModule$4 = internalState; + + var enforceInternalState = InternalStateModule$4.enforce; + var getInternalState$2 = InternalStateModule$4.get; + var $String$2 = String; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$6 = Object.defineProperty; + var stringSlice$1 = uncurryThis$e(''.slice); + var replace = uncurryThis$e(''.replace); + var join = uncurryThis$e([].join); + + var CONFIGURABLE_LENGTH = DESCRIPTORS$5 && !fails$c(function () { + return defineProperty$6(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; + }); + + var TEMPLATE = String(String).split('String'); + + var makeBuiltIn$2 = makeBuiltIn$3.exports = function (value, name, options) { + if (stringSlice$1($String$2(name), 0, 7) === 'Symbol(') { + name = '[' + replace($String$2(name), /^Symbol\(([^)]*)\)/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn$7(value, 'name') || (CONFIGURABLE_FUNCTION_NAME$1 && value.name !== name)) { + if (DESCRIPTORS$5) defineProperty$6(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn$7(options, 'arity') && value.length !== options.arity) { + defineProperty$6(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn$7(options, 'constructor') && options.constructor) { + if (DESCRIPTORS$5) defineProperty$6(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn$7(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; + }; + + // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative + // eslint-disable-next-line no-extend-native -- required + Function.prototype.toString = makeBuiltIn$2(function toString() { + return isCallable$e(this) && getInternalState$2(this).source || inspectSource$2(this); + }, 'toString'); + + var makeBuiltInExports = makeBuiltIn$3.exports; + + var isCallable$d = isCallable$m; + var definePropertyModule$3 = objectDefineProperty; + var makeBuiltIn$1 = makeBuiltInExports; + var defineGlobalProperty$1 = defineGlobalProperty$3; + + var defineBuiltIn$8 = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable$d(value)) makeBuiltIn$1(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty$1(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule$3.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; + }; + + var objectGetOwnPropertyNames = {}; + + var ceil = Math.ceil; + var floor = Math.floor; + + // `Math.trunc` method + // https://tc39.es/ecma262/#sec-math.trunc + // eslint-disable-next-line es/no-math-trunc -- safe + var mathTrunc = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor : ceil)(n); + }; + + var trunc = mathTrunc; + + // `ToIntegerOrInfinity` abstract operation + // https://tc39.es/ecma262/#sec-tointegerorinfinity + var toIntegerOrInfinity$3 = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); + }; + + var toIntegerOrInfinity$2 = toIntegerOrInfinity$3; + + var max$1 = Math.max; + var min$1 = Math.min; + + // Helper for a popular repeating case of the spec: + // Let integer be ? ToInteger(index). + // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). + var toAbsoluteIndex$2 = function (index, length) { + var integer = toIntegerOrInfinity$2(index); + return integer < 0 ? max$1(integer + length, 0) : min$1(integer, length); + }; + + var toIntegerOrInfinity$1 = toIntegerOrInfinity$3; + + var min = Math.min; + + // `ToLength` abstract operation + // https://tc39.es/ecma262/#sec-tolength + var toLength$1 = function (argument) { + return argument > 0 ? min(toIntegerOrInfinity$1(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 + }; + + var toLength = toLength$1; + + // `LengthOfArrayLike` abstract operation + // https://tc39.es/ecma262/#sec-lengthofarraylike + var lengthOfArrayLike$5 = function (obj) { + return toLength(obj.length); + }; + + var toIndexedObject$4 = toIndexedObject$6; + var toAbsoluteIndex$1 = toAbsoluteIndex$2; + var lengthOfArrayLike$4 = lengthOfArrayLike$5; + + // `Array.prototype.{ indexOf, includes }` methods implementation + var createMethod$2 = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject$4($this); + var length = lengthOfArrayLike$4(O); + var index = toAbsoluteIndex$1(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; + }; + + var arrayIncludes = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod$2(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod$2(false) + }; + + var uncurryThis$d = functionUncurryThis; + var hasOwn$6 = hasOwnProperty_1; + var toIndexedObject$3 = toIndexedObject$6; + var indexOf = arrayIncludes.indexOf; + var hiddenKeys$3 = hiddenKeys$5; + + var push$1 = uncurryThis$d([].push); + + var objectKeysInternal = function (object, names) { + var O = toIndexedObject$3(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn$6(hiddenKeys$3, key) && hasOwn$6(O, key) && push$1(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn$6(O, key = names[i++])) { + ~indexOf(result, key) || push$1(result, key); + } + return result; + }; + + // IE8- don't enum bug keys + var enumBugKeys$3 = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' + ]; + + var internalObjectKeys$1 = objectKeysInternal; + var enumBugKeys$2 = enumBugKeys$3; + + var hiddenKeys$2 = enumBugKeys$2.concat('length', 'prototype'); + + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + // eslint-disable-next-line es/no-object-getownpropertynames -- safe + objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys$1(O, hiddenKeys$2); + }; + + var objectGetOwnPropertySymbols = {}; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe + objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; + + var getBuiltIn$5 = getBuiltIn$7; + var uncurryThis$c = functionUncurryThis; + var getOwnPropertyNamesModule$1 = objectGetOwnPropertyNames; + var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols; + var anObject$9 = anObject$b; + + var concat$1 = uncurryThis$c([].concat); + + // all object keys, includes non-enumerable and symbols + var ownKeys$1 = getBuiltIn$5('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule$1.f(anObject$9(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f; + return getOwnPropertySymbols ? concat$1(keys, getOwnPropertySymbols(it)) : keys; + }; + + var hasOwn$5 = hasOwnProperty_1; + var ownKeys = ownKeys$1; + var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor; + var definePropertyModule$2 = objectDefineProperty; + + var copyConstructorProperties$1 = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule$2.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn$5(target, key) && !(exceptions && hasOwn$5(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } + }; + + var fails$b = fails$j; + var isCallable$c = isCallable$m; + + var replacement = /#|\.prototype\./; + + var isForced$3 = function (feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true + : value == NATIVE ? false + : isCallable$c(detection) ? fails$b(detection) + : !!detection; + }; + + var normalize = isForced$3.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); + }; + + var data = isForced$3.data = {}; + var NATIVE = isForced$3.NATIVE = 'N'; + var POLYFILL = isForced$3.POLYFILL = 'P'; + + var isForced_1 = isForced$3; + + var global$8 = global$i; + var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f; + var createNonEnumerableProperty$2 = createNonEnumerableProperty$4; + var defineBuiltIn$7 = defineBuiltIn$8; + var defineGlobalProperty = defineGlobalProperty$3; + var copyConstructorProperties = copyConstructorProperties$1; + var isForced$2 = isForced_1; + + /* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key + */ + var _export = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global$8; + } else if (STATIC) { + target = global$8[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = (global$8[TARGET] || {}).prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor$1(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced$2(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty$2(sourceProperty, 'sham', true); + } + defineBuiltIn$7(target, key, sourceProperty, options); + } + }; + + var classof$8 = classofRaw$2; + + // `IsArray` abstract operation + // https://tc39.es/ecma262/#sec-isarray + // eslint-disable-next-line es/no-array-isarray -- safe + var isArray$2 = Array.isArray || function isArray(argument) { + return classof$8(argument) == 'Array'; + }; + + var $TypeError$7 = TypeError; + var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 + + var doesNotExceedSafeInteger$1 = function (it) { + if (it > MAX_SAFE_INTEGER) throw $TypeError$7('Maximum allowed index exceeded'); + return it; + }; + + var toPropertyKey = toPropertyKey$3; + var definePropertyModule$1 = objectDefineProperty; + var createPropertyDescriptor$1 = createPropertyDescriptor$4; + + var createProperty$2 = function (object, key, value) { + var propertyKey = toPropertyKey(key); + if (propertyKey in object) definePropertyModule$1.f(object, propertyKey, createPropertyDescriptor$1(0, value)); + else object[propertyKey] = value; + }; + + var wellKnownSymbol$f = wellKnownSymbol$h; + + var TO_STRING_TAG$3 = wellKnownSymbol$f('toStringTag'); + var test = {}; + + test[TO_STRING_TAG$3] = 'z'; + + var toStringTagSupport = String(test) === '[object z]'; + + var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport; + var isCallable$b = isCallable$m; + var classofRaw$1 = classofRaw$2; + var wellKnownSymbol$e = wellKnownSymbol$h; + + var TO_STRING_TAG$2 = wellKnownSymbol$e('toStringTag'); + var $Object$1 = Object; + + // ES3 wrong here + var CORRECT_ARGUMENTS = classofRaw$1(function () { return arguments; }()) == 'Arguments'; + + // fallback for IE11 Script Access Denied error + var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } + }; + + // getting tag from ES6+ `Object.prototype.toString` + var classof$7 = TO_STRING_TAG_SUPPORT$2 ? classofRaw$1 : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object$1(it), TO_STRING_TAG$2)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw$1(O) + // ES3 arguments fallback + : (result = classofRaw$1(O)) == 'Object' && isCallable$b(O.callee) ? 'Arguments' : result; + }; + + var uncurryThis$b = functionUncurryThis; + var fails$a = fails$j; + var isCallable$a = isCallable$m; + var classof$6 = classof$7; + var getBuiltIn$4 = getBuiltIn$7; + var inspectSource$1 = inspectSource$3; + + var noop = function () { /* empty */ }; + var empty = []; + var construct = getBuiltIn$4('Reflect', 'construct'); + var constructorRegExp = /^\s*(?:class|function)\b/; + var exec = uncurryThis$b(constructorRegExp.exec); + var INCORRECT_TO_STRING = !constructorRegExp.exec(noop); + + var isConstructorModern = function isConstructor(argument) { + if (!isCallable$a(argument)) return false; + try { + construct(noop, empty, argument); + return true; + } catch (error) { + return false; + } + }; + + var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable$a(argument)) return false; + switch (classof$6(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource$1(argument)); + } catch (error) { + return true; + } + }; + + isConstructorLegacy.sham = true; + + // `IsConstructor` abstract operation + // https://tc39.es/ecma262/#sec-isconstructor + var isConstructor$2 = !construct || fails$a(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; + }) ? isConstructorLegacy : isConstructorModern; + + var isArray$1 = isArray$2; + var isConstructor$1 = isConstructor$2; + var isObject$9 = isObject$f; + var wellKnownSymbol$d = wellKnownSymbol$h; + + var SPECIES$4 = wellKnownSymbol$d('species'); + var $Array$1 = Array; + + // a part of `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesConstructor$1 = function (originalArray) { + var C; + if (isArray$1(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor$1(C) && (C === $Array$1 || isArray$1(C.prototype))) C = undefined; + else if (isObject$9(C)) { + C = C[SPECIES$4]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array$1 : C; + }; + + var arraySpeciesConstructor = arraySpeciesConstructor$1; + + // `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesCreate$2 = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); + }; + + var fails$9 = fails$j; + var wellKnownSymbol$c = wellKnownSymbol$h; + var V8_VERSION$2 = engineV8Version; + + var SPECIES$3 = wellKnownSymbol$c('species'); + + var arrayMethodHasSpeciesSupport$1 = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION$2 >= 51 || !fails$9(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES$3] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); + }; + + var $$a = _export; + var fails$8 = fails$j; + var isArray = isArray$2; + var isObject$8 = isObject$f; + var toObject$3 = toObject$5; + var lengthOfArrayLike$3 = lengthOfArrayLike$5; + var doesNotExceedSafeInteger = doesNotExceedSafeInteger$1; + var createProperty$1 = createProperty$2; + var arraySpeciesCreate$1 = arraySpeciesCreate$2; + var arrayMethodHasSpeciesSupport = arrayMethodHasSpeciesSupport$1; + var wellKnownSymbol$b = wellKnownSymbol$h; + var V8_VERSION$1 = engineV8Version; + + var IS_CONCAT_SPREADABLE = wellKnownSymbol$b('isConcatSpreadable'); + + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/679 + var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION$1 >= 51 || !fails$8(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; + }); + + var isConcatSpreadable = function (O) { + if (!isObject$8(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray(O); + }; + + var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat'); + + // `Array.prototype.concat` method + // https://tc39.es/ecma262/#sec-array.prototype.concat + // with adding support of @@isConcatSpreadable and @@species + $$a({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + concat: function concat(arg) { + var O = toObject$3(this); + var A = arraySpeciesCreate$1(O, 0); + var n = 0; + var i, k, length, len, E; + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + if (isConcatSpreadable(E)) { + len = lengthOfArrayLike$3(E); + doesNotExceedSafeInteger(n + len); + for (k = 0; k < len; k++, n++) if (k in E) createProperty$1(A, n, E[k]); + } else { + doesNotExceedSafeInteger(n + 1); + createProperty$1(A, n++, E); + } + } + A.length = n; + return A; + } + }); + + var makeBuiltIn = makeBuiltInExports; + var defineProperty$5 = objectDefineProperty; + + var defineBuiltInAccessor$2 = function (target, name, descriptor) { + if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true }); + if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true }); + return defineProperty$5.f(target, name, descriptor); + }; + + var DESCRIPTORS$4 = descriptors; + var FUNCTION_NAME_EXISTS = functionName.EXISTS; + var uncurryThis$a = functionUncurryThis; + var defineBuiltInAccessor$1 = defineBuiltInAccessor$2; + + var FunctionPrototype$1 = Function.prototype; + var functionToString = uncurryThis$a(FunctionPrototype$1.toString); + var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/; + var regExpExec = uncurryThis$a(nameRE.exec); + var NAME = 'name'; + + // Function instances `.name` property + // https://tc39.es/ecma262/#sec-function-instances-name + if (DESCRIPTORS$4 && !FUNCTION_NAME_EXISTS) { + defineBuiltInAccessor$1(FunctionPrototype$1, NAME, { + configurable: true, + get: function () { + try { + return regExpExec(nameRE, functionToString(this))[1]; + } catch (error) { + return ''; + } + } + }); + } + + var internalObjectKeys = objectKeysInternal; + var enumBugKeys$1 = enumBugKeys$3; + + // `Object.keys` method + // https://tc39.es/ecma262/#sec-object.keys + // eslint-disable-next-line es/no-object-keys -- safe + var objectKeys$2 = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys$1); + }; + + var DESCRIPTORS$3 = descriptors; + var uncurryThis$9 = functionUncurryThis; + var call$9 = functionCall; + var fails$7 = fails$j; + var objectKeys$1 = objectKeys$2; + var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols; + var propertyIsEnumerableModule = objectPropertyIsEnumerable; + var toObject$2 = toObject$5; + var IndexedObject$1 = indexedObject; + + // eslint-disable-next-line es/no-object-assign -- safe + var $assign = Object.assign; + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + var defineProperty$4 = Object.defineProperty; + var concat = uncurryThis$9([].concat); + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + var objectAssign = !$assign || fails$7(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS$3 && $assign({ b: 1 }, $assign(defineProperty$4({}, 'a', { + enumerable: true, + get: function () { + defineProperty$4(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol(); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] != 7 || objectKeys$1($assign({}, B)).join('') != alphabet; + }) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject$2(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject$1(arguments[index++]); + var keys = getOwnPropertySymbols ? concat(objectKeys$1(S), getOwnPropertySymbols(S)) : objectKeys$1(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS$3 || call$9(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; + } : $assign; + + var $$9 = _export; + var assign = objectAssign; + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + // eslint-disable-next-line es/no-object-assign -- required for testing + $$9({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign + }); + + var TO_STRING_TAG_SUPPORT$1 = toStringTagSupport; + var classof$5 = classof$7; + + // `Object.prototype.toString` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.tostring + var objectToString = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() { + return '[object ' + classof$5(this) + ']'; + }; + + var TO_STRING_TAG_SUPPORT = toStringTagSupport; + var defineBuiltIn$6 = defineBuiltIn$8; + var toString$3 = objectToString; + + // `Object.prototype.toString` method + // https://tc39.es/ecma262/#sec-object.prototype.tostring + if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn$6(Object.prototype, 'toString', toString$3, { unsafe: true }); + } + + var classof$4 = classofRaw$2; + + var engineIsNode = typeof process != 'undefined' && classof$4(process) == 'process'; + + var uncurryThis$8 = functionUncurryThis; + var aCallable$6 = aCallable$8; + + var functionUncurryThisAccessor = function (object, key, method) { + try { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return uncurryThis$8(aCallable$6(Object.getOwnPropertyDescriptor(object, key)[method])); + } catch (error) { /* empty */ } + }; + + var isCallable$9 = isCallable$m; + + var $String$1 = String; + var $TypeError$6 = TypeError; + + var aPossiblePrototype$1 = function (argument) { + if (typeof argument == 'object' || isCallable$9(argument)) return argument; + throw $TypeError$6("Can't set " + $String$1(argument) + ' as a prototype'); + }; + + /* eslint-disable no-proto -- safe */ + + var uncurryThisAccessor = functionUncurryThisAccessor; + var anObject$8 = anObject$b; + var aPossiblePrototype = aPossiblePrototype$1; + + // `Object.setPrototypeOf` method + // https://tc39.es/ecma262/#sec-object.setprototypeof + // Works with __proto__ only. Old v8 can't work with null proto objects. + // eslint-disable-next-line es/no-object-setprototypeof -- safe + var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set'); + setter(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + anObject$8(O); + aPossiblePrototype(proto); + if (CORRECT_SETTER) setter(O, proto); + else O.__proto__ = proto; + return O; + }; + }() : undefined); + + var defineProperty$3 = objectDefineProperty.f; + var hasOwn$4 = hasOwnProperty_1; + var wellKnownSymbol$a = wellKnownSymbol$h; + + var TO_STRING_TAG$1 = wellKnownSymbol$a('toStringTag'); + + var setToStringTag$4 = function (target, TAG, STATIC) { + if (target && !STATIC) target = target.prototype; + if (target && !hasOwn$4(target, TO_STRING_TAG$1)) { + defineProperty$3(target, TO_STRING_TAG$1, { configurable: true, value: TAG }); + } + }; + + var getBuiltIn$3 = getBuiltIn$7; + var defineBuiltInAccessor = defineBuiltInAccessor$2; + var wellKnownSymbol$9 = wellKnownSymbol$h; + var DESCRIPTORS$2 = descriptors; + + var SPECIES$2 = wellKnownSymbol$9('species'); + + var setSpecies$1 = function (CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn$3(CONSTRUCTOR_NAME); + + if (DESCRIPTORS$2 && Constructor && !Constructor[SPECIES$2]) { + defineBuiltInAccessor(Constructor, SPECIES$2, { + configurable: true, + get: function () { return this; } + }); + } + }; + + var isPrototypeOf$1 = objectIsPrototypeOf; + + var $TypeError$5 = TypeError; + + var anInstance$3 = function (it, Prototype) { + if (isPrototypeOf$1(Prototype, it)) return it; + throw $TypeError$5('Incorrect invocation'); + }; + + var isConstructor = isConstructor$2; + var tryToString$2 = tryToString$4; + + var $TypeError$4 = TypeError; + + // `Assert: IsConstructor(argument) is true` + var aConstructor$1 = function (argument) { + if (isConstructor(argument)) return argument; + throw $TypeError$4(tryToString$2(argument) + ' is not a constructor'); + }; + + var anObject$7 = anObject$b; + var aConstructor = aConstructor$1; + var isNullOrUndefined$3 = isNullOrUndefined$6; + var wellKnownSymbol$8 = wellKnownSymbol$h; + + var SPECIES$1 = wellKnownSymbol$8('species'); + + // `SpeciesConstructor` abstract operation + // https://tc39.es/ecma262/#sec-speciesconstructor + var speciesConstructor$1 = function (O, defaultConstructor) { + var C = anObject$7(O).constructor; + var S; + return C === undefined || isNullOrUndefined$3(S = anObject$7(C)[SPECIES$1]) ? defaultConstructor : aConstructor(S); + }; + + var NATIVE_BIND$1 = functionBindNative; + + var FunctionPrototype = Function.prototype; + var apply$1 = FunctionPrototype.apply; + var call$8 = FunctionPrototype.call; + + // eslint-disable-next-line es/no-reflect -- safe + var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND$1 ? call$8.bind(apply$1) : function () { + return call$8.apply(apply$1, arguments); + }); + + var classofRaw = classofRaw$2; + var uncurryThis$7 = functionUncurryThis; + + var functionUncurryThisClause = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis$7(fn); + }; + + var uncurryThis$6 = functionUncurryThisClause; + var aCallable$5 = aCallable$8; + var NATIVE_BIND = functionBindNative; + + var bind$5 = uncurryThis$6(uncurryThis$6.bind); + + // optional / simple context binding + var functionBindContext = function (fn, that) { + aCallable$5(fn); + return that === undefined ? fn : NATIVE_BIND ? bind$5(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; + }; + + var getBuiltIn$2 = getBuiltIn$7; + + var html$2 = getBuiltIn$2('document', 'documentElement'); + + var uncurryThis$5 = functionUncurryThis; + + var arraySlice$2 = uncurryThis$5([].slice); + + var $TypeError$3 = TypeError; + + var validateArgumentsLength$1 = function (passed, required) { + if (passed < required) throw $TypeError$3('Not enough arguments'); + return passed; + }; + + var userAgent$2 = engineUserAgent; + + // eslint-disable-next-line redos/no-vulnerable -- safe + var engineIsIos = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent$2); + + var global$7 = global$i; + var apply = functionApply; + var bind$4 = functionBindContext; + var isCallable$8 = isCallable$m; + var hasOwn$3 = hasOwnProperty_1; + var fails$6 = fails$j; + var html$1 = html$2; + var arraySlice$1 = arraySlice$2; + var createElement = documentCreateElement$2; + var validateArgumentsLength = validateArgumentsLength$1; + var IS_IOS$1 = engineIsIos; + var IS_NODE$3 = engineIsNode; + + var set = global$7.setImmediate; + var clear = global$7.clearImmediate; + var process$3 = global$7.process; + var Dispatch = global$7.Dispatch; + var Function$1 = global$7.Function; + var MessageChannel = global$7.MessageChannel; + var String$1 = global$7.String; + var counter = 0; + var queue$2 = {}; + var ONREADYSTATECHANGE = 'onreadystatechange'; + var $location, defer, channel, port; + + fails$6(function () { + // Deno throws a ReferenceError on `location` access without `--location` flag + $location = global$7.location; + }); + + var run = function (id) { + if (hasOwn$3(queue$2, id)) { + var fn = queue$2[id]; + delete queue$2[id]; + fn(); + } + }; + + var runner = function (id) { + return function () { + run(id); + }; + }; + + var eventListener = function (event) { + run(event.data); + }; + + var globalPostMessageDefer = function (id) { + // old engines have not location.origin + global$7.postMessage(String$1(id), $location.protocol + '//' + $location.host); + }; + + // Node.js 0.9+ & IE10+ has setImmediate, otherwise: + if (!set || !clear) { + set = function setImmediate(handler) { + validateArgumentsLength(arguments.length, 1); + var fn = isCallable$8(handler) ? handler : Function$1(handler); + var args = arraySlice$1(arguments, 1); + queue$2[++counter] = function () { + apply(fn, undefined, args); + }; + defer(counter); + return counter; + }; + clear = function clearImmediate(id) { + delete queue$2[id]; + }; + // Node.js 0.8- + if (IS_NODE$3) { + defer = function (id) { + process$3.nextTick(runner(id)); + }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(runner(id)); + }; + // Browsers with MessageChannel, includes WebWorkers + // except iOS - https://github.com/zloirock/core-js/issues/624 + } else if (MessageChannel && !IS_IOS$1) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = eventListener; + defer = bind$4(port.postMessage, port); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if ( + global$7.addEventListener && + isCallable$8(global$7.postMessage) && + !global$7.importScripts && + $location && $location.protocol !== 'file:' && + !fails$6(globalPostMessageDefer) + ) { + defer = globalPostMessageDefer; + global$7.addEventListener('message', eventListener, false); + // IE8- + } else if (ONREADYSTATECHANGE in createElement('script')) { + defer = function (id) { + html$1.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { + html$1.removeChild(this); + run(id); + }; + }; + // Rest old browsers + } else { + defer = function (id) { + setTimeout(runner(id), 0); + }; + } + } + + var task$1 = { + set: set, + clear: clear + }; + + var Queue$2 = function () { + this.head = null; + this.tail = null; + }; + + Queue$2.prototype = { + add: function (item) { + var entry = { item: item, next: null }; + var tail = this.tail; + if (tail) tail.next = entry; + else this.head = entry; + this.tail = entry; + }, + get: function () { + var entry = this.head; + if (entry) { + var next = this.head = entry.next; + if (next === null) this.tail = null; + return entry.item; + } + } + }; + + var queue$1 = Queue$2; + + var userAgent$1 = engineUserAgent; + + var engineIsIosPebble = /ipad|iphone|ipod/i.test(userAgent$1) && typeof Pebble != 'undefined'; + + var userAgent = engineUserAgent; + + var engineIsWebosWebkit = /web0s(?!.*chrome)/i.test(userAgent); + + var global$6 = global$i; + var bind$3 = functionBindContext; + var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; + var macrotask = task$1.set; + var Queue$1 = queue$1; + var IS_IOS = engineIsIos; + var IS_IOS_PEBBLE = engineIsIosPebble; + var IS_WEBOS_WEBKIT = engineIsWebosWebkit; + var IS_NODE$2 = engineIsNode; + + var MutationObserver = global$6.MutationObserver || global$6.WebKitMutationObserver; + var document$2 = global$6.document; + var process$2 = global$6.process; + var Promise$1 = global$6.Promise; + // Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` + var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global$6, 'queueMicrotask'); + var microtask$1 = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; + var notify$1, toggle, node, promise, then; + + // modern engines have queueMicrotask method + if (!microtask$1) { + var queue = new Queue$1(); + + var flush = function () { + var parent, fn; + if (IS_NODE$2 && (parent = process$2.domain)) parent.exit(); + while (fn = queue.get()) try { + fn(); + } catch (error) { + if (queue.head) notify$1(); + throw error; + } + if (parent) parent.enter(); + }; + + // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 + // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 + if (!IS_IOS && !IS_NODE$2 && !IS_WEBOS_WEBKIT && MutationObserver && document$2) { + toggle = true; + node = document$2.createTextNode(''); + new MutationObserver(flush).observe(node, { characterData: true }); + notify$1 = function () { + node.data = toggle = !toggle; + }; + // environments with maybe non-completely correct, but existent Promise + } else if (!IS_IOS_PEBBLE && Promise$1 && Promise$1.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + promise = Promise$1.resolve(undefined); + // workaround of WebKit ~ iOS Safari 10.1 bug + promise.constructor = Promise$1; + then = bind$3(promise.then, promise); + notify$1 = function () { + then(flush); + }; + // Node.js without promises + } else if (IS_NODE$2) { + notify$1 = function () { + process$2.nextTick(flush); + }; + // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessage + // - onreadystatechange + // - setTimeout + } else { + // `webpack` dev server bug on IE global methods - use bind(fn, global) + macrotask = bind$3(macrotask, global$6); + notify$1 = function () { + macrotask(flush); + }; + } + + microtask$1 = function (fn) { + if (!queue.head) notify$1(); + queue.add(fn); + }; + } + + var microtask_1 = microtask$1; + + var hostReportErrors$1 = function (a, b) { + try { + // eslint-disable-next-line no-console -- safe + arguments.length == 1 ? console.error(a) : console.error(a, b); + } catch (error) { /* empty */ } + }; + + var perform$3 = function (exec) { + try { + return { error: false, value: exec() }; + } catch (error) { + return { error: true, value: error }; + } + }; + + var global$5 = global$i; + + var promiseNativeConstructor = global$5.Promise; + + /* global Deno -- Deno case */ + + var engineIsDeno = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; + + var IS_DENO$1 = engineIsDeno; + var IS_NODE$1 = engineIsNode; + + var engineIsBrowser = !IS_DENO$1 && !IS_NODE$1 + && typeof window == 'object' + && typeof document == 'object'; + + var global$4 = global$i; + var NativePromiseConstructor$3 = promiseNativeConstructor; + var isCallable$7 = isCallable$m; + var isForced$1 = isForced_1; + var inspectSource = inspectSource$3; + var wellKnownSymbol$7 = wellKnownSymbol$h; + var IS_BROWSER = engineIsBrowser; + var IS_DENO = engineIsDeno; + var V8_VERSION = engineV8Version; + + NativePromiseConstructor$3 && NativePromiseConstructor$3.prototype; + var SPECIES = wellKnownSymbol$7('species'); + var SUBCLASSING = false; + var NATIVE_PROMISE_REJECTION_EVENT$1 = isCallable$7(global$4.PromiseRejectionEvent); + + var FORCED_PROMISE_CONSTRUCTOR$5 = isForced$1('Promise', function () { + var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor$3); + var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor$3); + // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // We can't detect it synchronously, so just check versions + if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true; + // We can't use @@species feature detection in V8 since it causes + // deoptimization and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) { + // Detect correctness of subclassing with @@species support + var promise = new NativePromiseConstructor$3(function (resolve) { resolve(1); }); + var FakePromise = function (exec) { + exec(function () { /* empty */ }, function () { /* empty */ }); + }; + var constructor = promise.constructor = {}; + constructor[SPECIES] = FakePromise; + SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise; + if (!SUBCLASSING) return true; + // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test + } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT$1; + }); + + var promiseConstructorDetection = { + CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR$5, + REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT$1, + SUBCLASSING: SUBCLASSING + }; + + var newPromiseCapability$2 = {}; + + var aCallable$4 = aCallable$8; + + var $TypeError$2 = TypeError; + + var PromiseCapability = function (C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw $TypeError$2('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aCallable$4(resolve); + this.reject = aCallable$4(reject); + }; + + // `NewPromiseCapability` abstract operation + // https://tc39.es/ecma262/#sec-newpromisecapability + newPromiseCapability$2.f = function (C) { + return new PromiseCapability(C); + }; + + var $$8 = _export; + var IS_NODE = engineIsNode; + var global$3 = global$i; + var call$7 = functionCall; + var defineBuiltIn$5 = defineBuiltIn$8; + var setPrototypeOf$2 = objectSetPrototypeOf; + var setToStringTag$3 = setToStringTag$4; + var setSpecies = setSpecies$1; + var aCallable$3 = aCallable$8; + var isCallable$6 = isCallable$m; + var isObject$7 = isObject$f; + var anInstance$2 = anInstance$3; + var speciesConstructor = speciesConstructor$1; + var task = task$1.set; + var microtask = microtask_1; + var hostReportErrors = hostReportErrors$1; + var perform$2 = perform$3; + var Queue = queue$1; + var InternalStateModule$3 = internalState; + var NativePromiseConstructor$2 = promiseNativeConstructor; + var PromiseConstructorDetection = promiseConstructorDetection; + var newPromiseCapabilityModule$3 = newPromiseCapability$2; + + var PROMISE = 'Promise'; + var FORCED_PROMISE_CONSTRUCTOR$4 = PromiseConstructorDetection.CONSTRUCTOR; + var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT; + var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING; + var getInternalPromiseState = InternalStateModule$3.getterFor(PROMISE); + var setInternalState$3 = InternalStateModule$3.set; + var NativePromisePrototype$1 = NativePromiseConstructor$2 && NativePromiseConstructor$2.prototype; + var PromiseConstructor = NativePromiseConstructor$2; + var PromisePrototype = NativePromisePrototype$1; + var TypeError$1 = global$3.TypeError; + var document$1 = global$3.document; + var process$1 = global$3.process; + var newPromiseCapability$1 = newPromiseCapabilityModule$3.f; + var newGenericPromiseCapability = newPromiseCapability$1; + + var DISPATCH_EVENT = !!(document$1 && document$1.createEvent && global$3.dispatchEvent); + var UNHANDLED_REJECTION = 'unhandledrejection'; + var REJECTION_HANDLED = 'rejectionhandled'; + var PENDING = 0; + var FULFILLED = 1; + var REJECTED = 2; + var HANDLED = 1; + var UNHANDLED = 2; + + var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; + + // helpers + var isThenable = function (it) { + var then; + return isObject$7(it) && isCallable$6(then = it.then) ? then : false; + }; + + var callReaction = function (reaction, state) { + var value = state.value; + var ok = state.state == FULFILLED; + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + try { + if (handler) { + if (!ok) { + if (state.rejection === UNHANDLED) onHandleUnhandled(state); + state.rejection = HANDLED; + } + if (handler === true) result = value; + else { + if (domain) domain.enter(); + result = handler(value); // can throw + if (domain) { + domain.exit(); + exited = true; + } + } + if (result === reaction.promise) { + reject(TypeError$1('Promise-chain cycle')); + } else if (then = isThenable(result)) { + call$7(then, result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (error) { + if (domain && !exited) domain.exit(); + reject(error); + } + }; + + var notify = function (state, isReject) { + if (state.notified) return; + state.notified = true; + microtask(function () { + var reactions = state.reactions; + var reaction; + while (reaction = reactions.get()) { + callReaction(reaction, state); + } + state.notified = false; + if (isReject && !state.rejection) onUnhandled(state); + }); + }; + + var dispatchEvent = function (name, promise, reason) { + var event, handler; + if (DISPATCH_EVENT) { + event = document$1.createEvent('Event'); + event.promise = promise; + event.reason = reason; + event.initEvent(name, false, true); + global$3.dispatchEvent(event); + } else event = { promise: promise, reason: reason }; + if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global$3['on' + name])) handler(event); + else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); + }; + + var onUnhandled = function (state) { + call$7(task, global$3, function () { + var promise = state.facade; + var value = state.value; + var IS_UNHANDLED = isUnhandled(state); + var result; + if (IS_UNHANDLED) { + result = perform$2(function () { + if (IS_NODE) { + process$1.emit('unhandledRejection', value, promise); + } else dispatchEvent(UNHANDLED_REJECTION, promise, value); + }); + // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; + if (result.error) throw result.value; + } + }); + }; + + var isUnhandled = function (state) { + return state.rejection !== HANDLED && !state.parent; + }; + + var onHandleUnhandled = function (state) { + call$7(task, global$3, function () { + var promise = state.facade; + if (IS_NODE) { + process$1.emit('rejectionHandled', promise); + } else dispatchEvent(REJECTION_HANDLED, promise, state.value); + }); + }; + + var bind$2 = function (fn, state, unwrap) { + return function (value) { + fn(state, value, unwrap); + }; + }; + + var internalReject = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + state.value = value; + state.state = REJECTED; + notify(state, true); + }; + + var internalResolve = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + try { + if (state.facade === value) throw TypeError$1("Promise can't be resolved itself"); + var then = isThenable(value); + if (then) { + microtask(function () { + var wrapper = { done: false }; + try { + call$7(then, value, + bind$2(internalResolve, wrapper, state), + bind$2(internalReject, wrapper, state) + ); + } catch (error) { + internalReject(wrapper, error, state); + } + }); + } else { + state.value = value; + state.state = FULFILLED; + notify(state, false); + } + } catch (error) { + internalReject({ done: false }, error, state); + } + }; + + // constructor polyfill + if (FORCED_PROMISE_CONSTRUCTOR$4) { + // 25.4.3.1 Promise(executor) + PromiseConstructor = function Promise(executor) { + anInstance$2(this, PromisePrototype); + aCallable$3(executor); + call$7(Internal, this); + var state = getInternalPromiseState(this); + try { + executor(bind$2(internalResolve, state), bind$2(internalReject, state)); + } catch (error) { + internalReject(state, error); + } + }; + + PromisePrototype = PromiseConstructor.prototype; + + // eslint-disable-next-line no-unused-vars -- required for `.length` + Internal = function Promise(executor) { + setInternalState$3(this, { + type: PROMISE, + done: false, + notified: false, + parent: false, + reactions: new Queue(), + rejection: false, + state: PENDING, + value: undefined + }); + }; + + // `Promise.prototype.then` method + // https://tc39.es/ecma262/#sec-promise.prototype.then + Internal.prototype = defineBuiltIn$5(PromisePrototype, 'then', function then(onFulfilled, onRejected) { + var state = getInternalPromiseState(this); + var reaction = newPromiseCapability$1(speciesConstructor(this, PromiseConstructor)); + state.parent = true; + reaction.ok = isCallable$6(onFulfilled) ? onFulfilled : true; + reaction.fail = isCallable$6(onRejected) && onRejected; + reaction.domain = IS_NODE ? process$1.domain : undefined; + if (state.state == PENDING) state.reactions.add(reaction); + else microtask(function () { + callReaction(reaction, state); + }); + return reaction.promise; + }); + + OwnPromiseCapability = function () { + var promise = new Internal(); + var state = getInternalPromiseState(promise); + this.promise = promise; + this.resolve = bind$2(internalResolve, state); + this.reject = bind$2(internalReject, state); + }; + + newPromiseCapabilityModule$3.f = newPromiseCapability$1 = function (C) { + return C === PromiseConstructor || C === PromiseWrapper + ? new OwnPromiseCapability(C) + : newGenericPromiseCapability(C); + }; + + if (isCallable$6(NativePromiseConstructor$2) && NativePromisePrototype$1 !== Object.prototype) { + nativeThen = NativePromisePrototype$1.then; + + if (!NATIVE_PROMISE_SUBCLASSING) { + // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs + defineBuiltIn$5(NativePromisePrototype$1, 'then', function then(onFulfilled, onRejected) { + var that = this; + return new PromiseConstructor(function (resolve, reject) { + call$7(nativeThen, that, resolve, reject); + }).then(onFulfilled, onRejected); + // https://github.com/zloirock/core-js/issues/640 + }, { unsafe: true }); + } + + // make `.constructor === Promise` work for native promise-based APIs + try { + delete NativePromisePrototype$1.constructor; + } catch (error) { /* empty */ } + + // make `instanceof Promise` work for native promise-based APIs + if (setPrototypeOf$2) { + setPrototypeOf$2(NativePromisePrototype$1, PromisePrototype); + } + } + } + + $$8({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR$4 }, { + Promise: PromiseConstructor + }); + + setToStringTag$3(PromiseConstructor, PROMISE, false); + setSpecies(PROMISE); + + var iterators = {}; + + var wellKnownSymbol$6 = wellKnownSymbol$h; + var Iterators$4 = iterators; + + var ITERATOR$5 = wellKnownSymbol$6('iterator'); + var ArrayPrototype$1 = Array.prototype; + + // check on default Array iterator + var isArrayIteratorMethod$1 = function (it) { + return it !== undefined && (Iterators$4.Array === it || ArrayPrototype$1[ITERATOR$5] === it); + }; + + var classof$3 = classof$7; + var getMethod$1 = getMethod$3; + var isNullOrUndefined$2 = isNullOrUndefined$6; + var Iterators$3 = iterators; + var wellKnownSymbol$5 = wellKnownSymbol$h; + + var ITERATOR$4 = wellKnownSymbol$5('iterator'); + + var getIteratorMethod$2 = function (it) { + if (!isNullOrUndefined$2(it)) return getMethod$1(it, ITERATOR$4) + || getMethod$1(it, '@@iterator') + || Iterators$3[classof$3(it)]; + }; + + var call$6 = functionCall; + var aCallable$2 = aCallable$8; + var anObject$6 = anObject$b; + var tryToString$1 = tryToString$4; + var getIteratorMethod$1 = getIteratorMethod$2; + + var $TypeError$1 = TypeError; + + var getIterator$1 = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod$1(argument) : usingIterator; + if (aCallable$2(iteratorMethod)) return anObject$6(call$6(iteratorMethod, argument)); + throw $TypeError$1(tryToString$1(argument) + ' is not iterable'); + }; + + var call$5 = functionCall; + var anObject$5 = anObject$b; + var getMethod = getMethod$3; + + var iteratorClose$1 = function (iterator, kind, value) { + var innerResult, innerError; + anObject$5(iterator); + try { + innerResult = getMethod(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') throw value; + return value; + } + innerResult = call$5(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === 'throw') throw value; + if (innerError) throw innerResult; + anObject$5(innerResult); + return value; + }; + + var bind$1 = functionBindContext; + var call$4 = functionCall; + var anObject$4 = anObject$b; + var tryToString = tryToString$4; + var isArrayIteratorMethod = isArrayIteratorMethod$1; + var lengthOfArrayLike$2 = lengthOfArrayLike$5; + var isPrototypeOf = objectIsPrototypeOf; + var getIterator = getIterator$1; + var getIteratorMethod = getIteratorMethod$2; + var iteratorClose = iteratorClose$1; + + var $TypeError = TypeError; + + var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; + }; + + var ResultPrototype = Result.prototype; + + var iterate$4 = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_RECORD = !!(options && options.IS_RECORD); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind$1(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose(iterator, 'normal', condition); + return new Result(true, condition); + }; + + var callFn = function (value) { + if (AS_ENTRIES) { + anObject$4(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; + + if (IS_RECORD) { + iterator = iterable.iterator; + } else if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod(iterable); + if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = lengthOfArrayLike$2(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + } + iterator = getIterator(iterable, iterFn); + } + + next = IS_RECORD ? iterable.next : iterator.next; + while (!(step = call$4(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } + if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + }; + + var wellKnownSymbol$4 = wellKnownSymbol$h; + + var ITERATOR$3 = wellKnownSymbol$4('iterator'); + var SAFE_CLOSING = false; + + try { + var called = 0; + var iteratorWithReturn = { + next: function () { + return { done: !!called++ }; + }, + 'return': function () { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR$3] = function () { + return this; + }; + // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing + Array.from(iteratorWithReturn, function () { throw 2; }); + } catch (error) { /* empty */ } + + var checkCorrectnessOfIteration$2 = function (exec, SKIP_CLOSING) { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR$3] = function () { + return { + next: function () { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { /* empty */ } + return ITERATION_SUPPORT; + }; + + var NativePromiseConstructor$1 = promiseNativeConstructor; + var checkCorrectnessOfIteration$1 = checkCorrectnessOfIteration$2; + var FORCED_PROMISE_CONSTRUCTOR$3 = promiseConstructorDetection.CONSTRUCTOR; + + var promiseStaticsIncorrectIteration = FORCED_PROMISE_CONSTRUCTOR$3 || !checkCorrectnessOfIteration$1(function (iterable) { + NativePromiseConstructor$1.all(iterable).then(undefined, function () { /* empty */ }); + }); + + var $$7 = _export; + var call$3 = functionCall; + var aCallable$1 = aCallable$8; + var newPromiseCapabilityModule$2 = newPromiseCapability$2; + var perform$1 = perform$3; + var iterate$3 = iterate$4; + var PROMISE_STATICS_INCORRECT_ITERATION$1 = promiseStaticsIncorrectIteration; + + // `Promise.all` method + // https://tc39.es/ecma262/#sec-promise.all + $$7({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$1 }, { + all: function all(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$2.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform$1(function () { + var $promiseResolve = aCallable$1(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate$3(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call$3($promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } + }); + + var $$6 = _export; + var FORCED_PROMISE_CONSTRUCTOR$2 = promiseConstructorDetection.CONSTRUCTOR; + var NativePromiseConstructor = promiseNativeConstructor; + var getBuiltIn$1 = getBuiltIn$7; + var isCallable$5 = isCallable$m; + var defineBuiltIn$4 = defineBuiltIn$8; + + var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + + // `Promise.prototype.catch` method + // https://tc39.es/ecma262/#sec-promise.prototype.catch + $$6({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR$2, real: true }, { + 'catch': function (onRejected) { + return this.then(undefined, onRejected); + } + }); + + // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` + if (isCallable$5(NativePromiseConstructor)) { + var method = getBuiltIn$1('Promise').prototype['catch']; + if (NativePromisePrototype['catch'] !== method) { + defineBuiltIn$4(NativePromisePrototype, 'catch', method, { unsafe: true }); + } + } + + var $$5 = _export; + var call$2 = functionCall; + var aCallable = aCallable$8; + var newPromiseCapabilityModule$1 = newPromiseCapability$2; + var perform = perform$3; + var iterate$2 = iterate$4; + var PROMISE_STATICS_INCORRECT_ITERATION = promiseStaticsIncorrectIteration; + + // `Promise.race` method + // https://tc39.es/ecma262/#sec-promise.race + $$5({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + race: function race(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$1.f(C); + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aCallable(C.resolve); + iterate$2(iterable, function (promise) { + call$2($promiseResolve, C, promise).then(capability.resolve, reject); + }); + }); + if (result.error) reject(result.value); + return capability.promise; + } + }); + + var $$4 = _export; + var call$1 = functionCall; + var newPromiseCapabilityModule = newPromiseCapability$2; + var FORCED_PROMISE_CONSTRUCTOR$1 = promiseConstructorDetection.CONSTRUCTOR; + + // `Promise.reject` method + // https://tc39.es/ecma262/#sec-promise.reject + $$4({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR$1 }, { + reject: function reject(r) { + var capability = newPromiseCapabilityModule.f(this); + call$1(capability.reject, undefined, r); + return capability.promise; + } + }); + + var anObject$3 = anObject$b; + var isObject$6 = isObject$f; + var newPromiseCapability = newPromiseCapability$2; + + var promiseResolve$1 = function (C, x) { + anObject$3(C); + if (isObject$6(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; + }; + + var $$3 = _export; + var getBuiltIn = getBuiltIn$7; + var FORCED_PROMISE_CONSTRUCTOR = promiseConstructorDetection.CONSTRUCTOR; + var promiseResolve = promiseResolve$1; + + getBuiltIn('Promise'); + + // `Promise.resolve` method + // https://tc39.es/ecma262/#sec-promise.resolve + $$3({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + resolve: function resolve(x) { + return promiseResolve(this, x); + } + }); + + var objectDefineProperties = {}; + + var DESCRIPTORS$1 = descriptors; + var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug; + var definePropertyModule = objectDefineProperty; + var anObject$2 = anObject$b; + var toIndexedObject$2 = toIndexedObject$6; + var objectKeys = objectKeys$2; + + // `Object.defineProperties` method + // https://tc39.es/ecma262/#sec-object.defineproperties + // eslint-disable-next-line es/no-object-defineproperties -- safe + objectDefineProperties.f = DESCRIPTORS$1 && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject$2(O); + var props = toIndexedObject$2(Properties); + var keys = objectKeys(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); + return O; + }; + + /* global ActiveXObject -- old IE, WSH */ + + var anObject$1 = anObject$b; + var definePropertiesModule = objectDefineProperties; + var enumBugKeys = enumBugKeys$3; + var hiddenKeys$1 = hiddenKeys$5; + var html = html$2; + var documentCreateElement$1 = documentCreateElement$2; + var sharedKey$1 = sharedKey$3; + + var GT = '>'; + var LT = '<'; + var PROTOTYPE = 'prototype'; + var SCRIPT = 'script'; + var IE_PROTO$1 = sharedKey$1('IE_PROTO'); + + var EmptyConstructor = function () { /* empty */ }; + + var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; + }; + + // Create object with fake `null` prototype: use ActiveX Object with cleared prototype + var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; + }; + + // Create object with fake `null` prototype: use iframe Object with cleared prototype + var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement$1('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; + }; + + // Check for document.domain and active x support + // No need to use active x approach when document.domain is not set + // see https://github.com/es-shims/es5-shim/issues/150 + // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 + // avoid IE GC bug + var activeXDocument; + var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); + }; + + hiddenKeys$1[IE_PROTO$1] = true; + + // `Object.create` method + // https://tc39.es/ecma262/#sec-object.create + // eslint-disable-next-line es/no-object-create -- safe + var objectCreate = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject$1(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO$1] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); + }; + + var wellKnownSymbol$3 = wellKnownSymbol$h; + var create$1 = objectCreate; + var defineProperty$2 = objectDefineProperty.f; + + var UNSCOPABLES = wellKnownSymbol$3('unscopables'); + var ArrayPrototype = Array.prototype; + + // Array.prototype[@@unscopables] + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + if (ArrayPrototype[UNSCOPABLES] == undefined) { + defineProperty$2(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create$1(null) + }); + } + + // add a key to Array.prototype[@@unscopables] + var addToUnscopables$1 = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; + }; + + var fails$5 = fails$j; + + var correctPrototypeGetter = !fails$5(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + // eslint-disable-next-line es/no-object-getprototypeof -- required for testing + return Object.getPrototypeOf(new F()) !== F.prototype; + }); + + var hasOwn$2 = hasOwnProperty_1; + var isCallable$4 = isCallable$m; + var toObject$1 = toObject$5; + var sharedKey = sharedKey$3; + var CORRECT_PROTOTYPE_GETTER = correctPrototypeGetter; + + var IE_PROTO = sharedKey('IE_PROTO'); + var $Object = Object; + var ObjectPrototype = $Object.prototype; + + // `Object.getPrototypeOf` method + // https://tc39.es/ecma262/#sec-object.getprototypeof + // eslint-disable-next-line es/no-object-getprototypeof -- safe + var objectGetPrototypeOf = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { + var object = toObject$1(O); + if (hasOwn$2(object, IE_PROTO)) return object[IE_PROTO]; + var constructor = object.constructor; + if (isCallable$4(constructor) && object instanceof constructor) { + return constructor.prototype; + } return object instanceof $Object ? ObjectPrototype : null; + }; + + var fails$4 = fails$j; + var isCallable$3 = isCallable$m; + var isObject$5 = isObject$f; + var getPrototypeOf$1 = objectGetPrototypeOf; + var defineBuiltIn$3 = defineBuiltIn$8; + var wellKnownSymbol$2 = wellKnownSymbol$h; + + var ITERATOR$2 = wellKnownSymbol$2('iterator'); + var BUGGY_SAFARI_ITERATORS$1 = false; + + // `%IteratorPrototype%` object + // https://tc39.es/ecma262/#sec-%iteratorprototype%-object + var IteratorPrototype$2, PrototypeOfArrayIteratorPrototype, arrayIterator; + + /* eslint-disable es/no-array-prototype-keys -- safe */ + if ([].keys) { + arrayIterator = [].keys(); + // Safari 8 has buggy iterators w/o `next` + if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS$1 = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf$1(getPrototypeOf$1(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype$2 = PrototypeOfArrayIteratorPrototype; + } + } + + var NEW_ITERATOR_PROTOTYPE = !isObject$5(IteratorPrototype$2) || fails$4(function () { + var test = {}; + // FF44- legacy iterators case + return IteratorPrototype$2[ITERATOR$2].call(test) !== test; + }); + + if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype$2 = {}; + + // `%IteratorPrototype%[@@iterator]()` method + // https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator + if (!isCallable$3(IteratorPrototype$2[ITERATOR$2])) { + defineBuiltIn$3(IteratorPrototype$2, ITERATOR$2, function () { + return this; + }); + } + + var iteratorsCore = { + IteratorPrototype: IteratorPrototype$2, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS$1 + }; + + var IteratorPrototype$1 = iteratorsCore.IteratorPrototype; + var create = objectCreate; + var createPropertyDescriptor = createPropertyDescriptor$4; + var setToStringTag$2 = setToStringTag$4; + var Iterators$2 = iterators; + + var returnThis$1 = function () { return this; }; + + var iteratorCreateConstructor = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = create(IteratorPrototype$1, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) }); + setToStringTag$2(IteratorConstructor, TO_STRING_TAG, false); + Iterators$2[TO_STRING_TAG] = returnThis$1; + return IteratorConstructor; + }; + + var $$2 = _export; + var call = functionCall; + var FunctionName = functionName; + var isCallable$2 = isCallable$m; + var createIteratorConstructor = iteratorCreateConstructor; + var getPrototypeOf = objectGetPrototypeOf; + var setPrototypeOf$1 = objectSetPrototypeOf; + var setToStringTag$1 = setToStringTag$4; + var createNonEnumerableProperty$1 = createNonEnumerableProperty$4; + var defineBuiltIn$2 = defineBuiltIn$8; + var wellKnownSymbol$1 = wellKnownSymbol$h; + var Iterators$1 = iterators; + var IteratorsCore = iteratorsCore; + + var PROPER_FUNCTION_NAME = FunctionName.PROPER; + var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; + var IteratorPrototype = IteratorsCore.IteratorPrototype; + var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; + var ITERATOR$1 = wellKnownSymbol$1('iterator'); + var KEYS = 'keys'; + var VALUES = 'values'; + var ENTRIES = 'entries'; + + var returnThis = function () { return this; }; + + var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + + var getIterationMethod = function (KIND) { + if (KIND === DEFAULT && defaultIterator) return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; + switch (KIND) { + case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; + case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; + case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; + } return function () { return new IteratorConstructor(this); }; + }; + + var TO_STRING_TAG = NAME + ' Iterator'; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR$1] + || IterablePrototype['@@iterator'] + || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + + // fix native + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf$1) { + setPrototypeOf$1(CurrentIteratorPrototype, IteratorPrototype); + } else if (!isCallable$2(CurrentIteratorPrototype[ITERATOR$1])) { + defineBuiltIn$2(CurrentIteratorPrototype, ITERATOR$1, returnThis); + } + } + // Set @@toStringTag to native iterators + setToStringTag$1(CurrentIteratorPrototype, TO_STRING_TAG, true); + } + } + + // fix Array.prototype.{ values, @@iterator }.name in V8 / FF + if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { + if (CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty$1(IterablePrototype, 'name', VALUES); + } else { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { return call(nativeIterator, this); }; + } + } + + // export additional methods + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + defineBuiltIn$2(IterablePrototype, KEY, methods[KEY]); + } + } else $$2({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + + // define iterator + if (IterablePrototype[ITERATOR$1] !== defaultIterator) { + defineBuiltIn$2(IterablePrototype, ITERATOR$1, defaultIterator, { name: DEFAULT }); + } + Iterators$1[NAME] = defaultIterator; + + return methods; + }; + + // `CreateIterResultObject` abstract operation + // https://tc39.es/ecma262/#sec-createiterresultobject + var createIterResultObject$2 = function (value, done) { + return { value: value, done: done }; + }; + + var toIndexedObject$1 = toIndexedObject$6; + var addToUnscopables = addToUnscopables$1; + var Iterators = iterators; + var InternalStateModule$2 = internalState; + var defineProperty$1 = objectDefineProperty.f; + var defineIterator$1 = iteratorDefine; + var createIterResultObject$1 = createIterResultObject$2; + var DESCRIPTORS = descriptors; + + var ARRAY_ITERATOR = 'Array Iterator'; + var setInternalState$2 = InternalStateModule$2.set; + var getInternalState$1 = InternalStateModule$2.getterFor(ARRAY_ITERATOR); + + // `Array.prototype.entries` method + // https://tc39.es/ecma262/#sec-array.prototype.entries + // `Array.prototype.keys` method + // https://tc39.es/ecma262/#sec-array.prototype.keys + // `Array.prototype.values` method + // https://tc39.es/ecma262/#sec-array.prototype.values + // `Array.prototype[@@iterator]` method + // https://tc39.es/ecma262/#sec-array.prototype-@@iterator + // `CreateArrayIterator` internal method + // https://tc39.es/ecma262/#sec-createarrayiterator + var es_array_iterator = defineIterator$1(Array, 'Array', function (iterated, kind) { + setInternalState$2(this, { + type: ARRAY_ITERATOR, + target: toIndexedObject$1(iterated), // target + index: 0, // next index + kind: kind // kind + }); + // `%ArrayIteratorPrototype%.next` method + // https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next + }, function () { + var state = getInternalState$1(this); + var target = state.target; + var kind = state.kind; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject$1(undefined, true); + } + if (kind == 'keys') return createIterResultObject$1(index, false); + if (kind == 'values') return createIterResultObject$1(target[index], false); + return createIterResultObject$1([index, target[index]], false); + }, 'values'); + + // argumentsList[@@iterator] is %ArrayProto_values% + // https://tc39.es/ecma262/#sec-createunmappedargumentsobject + // https://tc39.es/ecma262/#sec-createmappedargumentsobject + var values = Iterators.Arguments = Iterators.Array; + + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + addToUnscopables('keys'); + addToUnscopables('values'); + addToUnscopables('entries'); + + // V8 ~ Chrome 45- bug + if (DESCRIPTORS && values.name !== 'values') try { + defineProperty$1(values, 'name', { value: 'values' }); + } catch (error) { /* empty */ } + + var classof$2 = classof$7; + + var $String = String; + + var toString$2 = function (argument) { + if (classof$2(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string'); + return $String(argument); + }; + + var uncurryThis$4 = functionUncurryThis; + var toIntegerOrInfinity = toIntegerOrInfinity$3; + var toString$1 = toString$2; + var requireObjectCoercible = requireObjectCoercible$3; + + var charAt$1 = uncurryThis$4(''.charAt); + var charCodeAt = uncurryThis$4(''.charCodeAt); + var stringSlice = uncurryThis$4(''.slice); + + var createMethod$1 = function (CONVERT_TO_STRING) { + return function ($this, pos) { + var S = toString$1(requireObjectCoercible($this)); + var position = toIntegerOrInfinity(pos); + var size = S.length; + var first, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; + first = charCodeAt(S, position); + return first < 0xD800 || first > 0xDBFF || position + 1 === size + || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF + ? CONVERT_TO_STRING + ? charAt$1(S, position) + : first + : CONVERT_TO_STRING + ? stringSlice(S, position, position + 2) + : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; + }; + }; + + var stringMultibyte = { + // `String.prototype.codePointAt` method + // https://tc39.es/ecma262/#sec-string.prototype.codepointat + codeAt: createMethod$1(false), + // `String.prototype.at` method + // https://github.com/mathiasbynens/String.prototype.at + charAt: createMethod$1(true) + }; + + var charAt = stringMultibyte.charAt; + var toString = toString$2; + var InternalStateModule$1 = internalState; + var defineIterator = iteratorDefine; + var createIterResultObject = createIterResultObject$2; + + var STRING_ITERATOR = 'String Iterator'; + var setInternalState$1 = InternalStateModule$1.set; + var getInternalState = InternalStateModule$1.getterFor(STRING_ITERATOR); + + // `String.prototype[@@iterator]` method + // https://tc39.es/ecma262/#sec-string.prototype-@@iterator + defineIterator(String, 'String', function (iterated) { + setInternalState$1(this, { + type: STRING_ITERATOR, + string: toString(iterated), + index: 0 + }); + // `%StringIteratorPrototype%.next` method + // https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next + }, function next() { + var state = getInternalState(this); + var string = state.string; + var index = state.index; + var point; + if (index >= string.length) return createIterResultObject(undefined, true); + point = charAt(string, index); + state.index += point.length; + return createIterResultObject(point, false); + }); + + var internalMetadata = {exports: {}}; + + var objectGetOwnPropertyNamesExternal = {}; + + var toAbsoluteIndex = toAbsoluteIndex$2; + var lengthOfArrayLike$1 = lengthOfArrayLike$5; + var createProperty = createProperty$2; + + var $Array = Array; + var max = Math.max; + + var arraySliceSimple = function (O, start, end) { + var length = lengthOfArrayLike$1(O); + var k = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + var result = $Array(max(fin - k, 0)); + for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]); + result.length = n; + return result; + }; + + /* eslint-disable es/no-object-getownpropertynames -- safe */ + + var classof$1 = classofRaw$2; + var toIndexedObject = toIndexedObject$6; + var $getOwnPropertyNames = objectGetOwnPropertyNames.f; + var arraySlice = arraySliceSimple; + + var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + + var getWindowNames = function (it) { + try { + return $getOwnPropertyNames(it); + } catch (error) { + return arraySlice(windowNames); + } + }; + + // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window + objectGetOwnPropertyNamesExternal.f = function getOwnPropertyNames(it) { + return windowNames && classof$1(it) == 'Window' + ? getWindowNames(it) + : $getOwnPropertyNames(toIndexedObject(it)); + }; + + // FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it + var fails$3 = fails$j; + + var arrayBufferNonExtensible = fails$3(function () { + if (typeof ArrayBuffer == 'function') { + var buffer = new ArrayBuffer(8); + // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe + if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 }); + } + }); + + var fails$2 = fails$j; + var isObject$4 = isObject$f; + var classof = classofRaw$2; + var ARRAY_BUFFER_NON_EXTENSIBLE = arrayBufferNonExtensible; + + // eslint-disable-next-line es/no-object-isextensible -- safe + var $isExtensible = Object.isExtensible; + var FAILS_ON_PRIMITIVES = fails$2(function () { $isExtensible(1); }); + + // `Object.isExtensible` method + // https://tc39.es/ecma262/#sec-object.isextensible + var objectIsExtensible = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) { + if (!isObject$4(it)) return false; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false; + return $isExtensible ? $isExtensible(it) : true; + } : $isExtensible; + + var fails$1 = fails$j; + + var freezing = !fails$1(function () { + // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing + return Object.isExtensible(Object.preventExtensions({})); + }); + + var $$1 = _export; + var uncurryThis$3 = functionUncurryThis; + var hiddenKeys = hiddenKeys$5; + var isObject$3 = isObject$f; + var hasOwn$1 = hasOwnProperty_1; + var defineProperty = objectDefineProperty.f; + var getOwnPropertyNamesModule = objectGetOwnPropertyNames; + var getOwnPropertyNamesExternalModule = objectGetOwnPropertyNamesExternal; + var isExtensible = objectIsExtensible; + var uid = uid$3; + var FREEZING = freezing; + + var REQUIRED = false; + var METADATA = uid('meta'); + var id$1 = 0; + + var setMetadata = function (it) { + defineProperty(it, METADATA, { value: { + objectID: 'O' + id$1++, // object ID + weakData: {} // weak collections IDs + } }); + }; + + var fastKey = function (it, create) { + // return a primitive with prefix + if (!isObject$3(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!hasOwn$1(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; + // not necessary to add metadata + if (!create) return 'E'; + // add missing metadata + setMetadata(it); + // return object ID + } return it[METADATA].objectID; + }; + + var getWeakData$1 = function (it, create) { + if (!hasOwn$1(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; + // not necessary to add metadata + if (!create) return false; + // add missing metadata + setMetadata(it); + // return the store of weak collections IDs + } return it[METADATA].weakData; + }; + + // add metadata on freeze-family methods calling + var onFreeze = function (it) { + if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn$1(it, METADATA)) setMetadata(it); + return it; + }; + + var enable = function () { + meta.enable = function () { /* empty */ }; + REQUIRED = true; + var getOwnPropertyNames = getOwnPropertyNamesModule.f; + var splice = uncurryThis$3([].splice); + var test = {}; + test[METADATA] = 1; + + // prevent exposing of metadata key + if (getOwnPropertyNames(test).length) { + getOwnPropertyNamesModule.f = function (it) { + var result = getOwnPropertyNames(it); + for (var i = 0, length = result.length; i < length; i++) { + if (result[i] === METADATA) { + splice(result, i, 1); + break; + } + } return result; + }; + + $$1({ target: 'Object', stat: true, forced: true }, { + getOwnPropertyNames: getOwnPropertyNamesExternalModule.f + }); + } + }; + + var meta = internalMetadata.exports = { + enable: enable, + fastKey: fastKey, + getWeakData: getWeakData$1, + onFreeze: onFreeze + }; + + hiddenKeys[METADATA] = true; + + var internalMetadataExports = internalMetadata.exports; + + var isCallable$1 = isCallable$m; + var isObject$2 = isObject$f; + var setPrototypeOf = objectSetPrototypeOf; + + // makes subclassing work correct for wrapped built-ins + var inheritIfRequired$1 = function ($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if ( + // it can work only with native `setPrototypeOf` + setPrototypeOf && + // we haven't completely correct pre-ES6 way for getting `new.target`, so use this + isCallable$1(NewTarget = dummy.constructor) && + NewTarget !== Wrapper && + isObject$2(NewTargetPrototype = NewTarget.prototype) && + NewTargetPrototype !== Wrapper.prototype + ) setPrototypeOf($this, NewTargetPrototype); + return $this; + }; + + var $ = _export; + var global$2 = global$i; + var uncurryThis$2 = functionUncurryThis; + var isForced = isForced_1; + var defineBuiltIn$1 = defineBuiltIn$8; + var InternalMetadataModule = internalMetadataExports; + var iterate$1 = iterate$4; + var anInstance$1 = anInstance$3; + var isCallable = isCallable$m; + var isNullOrUndefined$1 = isNullOrUndefined$6; + var isObject$1 = isObject$f; + var fails = fails$j; + var checkCorrectnessOfIteration = checkCorrectnessOfIteration$2; + var setToStringTag = setToStringTag$4; + var inheritIfRequired = inheritIfRequired$1; + + var collection$1 = function (CONSTRUCTOR_NAME, wrapper, common) { + var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; + var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; + var ADDER = IS_MAP ? 'set' : 'add'; + var NativeConstructor = global$2[CONSTRUCTOR_NAME]; + var NativePrototype = NativeConstructor && NativeConstructor.prototype; + var Constructor = NativeConstructor; + var exported = {}; + + var fixMethod = function (KEY) { + var uncurriedNativeMethod = uncurryThis$2(NativePrototype[KEY]); + defineBuiltIn$1(NativePrototype, KEY, + KEY == 'add' ? function add(value) { + uncurriedNativeMethod(this, value === 0 ? 0 : value); + return this; + } : KEY == 'delete' ? function (key) { + return IS_WEAK && !isObject$1(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY == 'get' ? function get(key) { + return IS_WEAK && !isObject$1(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY == 'has' ? function has(key) { + return IS_WEAK && !isObject$1(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : function set(key, value) { + uncurriedNativeMethod(this, key === 0 ? 0 : key, value); + return this; + } + ); + }; + + var REPLACE = isForced( + CONSTRUCTOR_NAME, + !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () { + new NativeConstructor().entries().next(); + })) + ); + + if (REPLACE) { + // create collection constructor + Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); + InternalMetadataModule.enable(); + } else if (isForced(CONSTRUCTOR_NAME, true)) { + var instance = new Constructor(); + // early implementations not supports chaining + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; + // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false + var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); + // most early implementations doesn't supports iterables, most modern - not close it correctly + // eslint-disable-next-line no-new -- required for testing + var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); }); + // for early implementations -0 and +0 not the same + var BUGGY_ZERO = !IS_WEAK && fails(function () { + // V8 ~ Chromium 42- fails only with 5+ elements + var $instance = new NativeConstructor(); + var index = 5; + while (index--) $instance[ADDER](index, index); + return !$instance.has(-0); + }); + + if (!ACCEPT_ITERABLES) { + Constructor = wrapper(function (dummy, iterable) { + anInstance$1(dummy, NativePrototype); + var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); + if (!isNullOrUndefined$1(iterable)) iterate$1(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + return that; + }); + Constructor.prototype = NativePrototype; + NativePrototype.constructor = Constructor; + } + + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); + + // weak collections should not contains .clear method + if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear; + } + + exported[CONSTRUCTOR_NAME] = Constructor; + $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported); + + setToStringTag(Constructor, CONSTRUCTOR_NAME); + + if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); + + return Constructor; + }; + + var defineBuiltIn = defineBuiltIn$8; + + var defineBuiltIns$1 = function (target, src, options) { + for (var key in src) defineBuiltIn(target, key, src[key], options); + return target; + }; + + var bind = functionBindContext; + var uncurryThis$1 = functionUncurryThis; + var IndexedObject = indexedObject; + var toObject = toObject$5; + var lengthOfArrayLike = lengthOfArrayLike$5; + var arraySpeciesCreate = arraySpeciesCreate$2; + + var push = uncurryThis$1([].push); + + // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation + var createMethod = function (TYPE) { + var IS_MAP = TYPE == 1; + var IS_FILTER = TYPE == 2; + var IS_SOME = TYPE == 3; + var IS_EVERY = TYPE == 4; + var IS_FIND_INDEX = TYPE == 6; + var IS_FILTER_REJECT = TYPE == 7; + var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject($this); + var self = IndexedObject(O); + var boundFunction = bind(callbackfn, that); + var length = lengthOfArrayLike(self); + var index = 0; + var create = specificCreate || arraySpeciesCreate; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push(target, value); // filterReject + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; + }; + + var arrayIteration = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod(7) + }; + + var uncurryThis = functionUncurryThis; + var defineBuiltIns = defineBuiltIns$1; + var getWeakData = internalMetadataExports.getWeakData; + var anInstance = anInstance$3; + var anObject = anObject$b; + var isNullOrUndefined = isNullOrUndefined$6; + var isObject = isObject$f; + var iterate = iterate$4; + var ArrayIterationModule = arrayIteration; + var hasOwn = hasOwnProperty_1; + var InternalStateModule = internalState; + + var setInternalState = InternalStateModule.set; + var internalStateGetterFor = InternalStateModule.getterFor; + var find = ArrayIterationModule.find; + var findIndex = ArrayIterationModule.findIndex; + var splice = uncurryThis([].splice); + var id = 0; + + // fallback for uncaught frozen keys + var uncaughtFrozenStore = function (state) { + return state.frozen || (state.frozen = new UncaughtFrozenStore()); + }; + + var UncaughtFrozenStore = function () { + this.entries = []; + }; + + var findUncaughtFrozen = function (store, key) { + return find(store.entries, function (it) { + return it[0] === key; + }); + }; + + UncaughtFrozenStore.prototype = { + get: function (key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function (key) { + return !!findUncaughtFrozen(this, key); + }, + set: function (key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value; + else this.entries.push([key, value]); + }, + 'delete': function (key) { + var index = findIndex(this.entries, function (it) { + return it[0] === key; + }); + if (~index) splice(this.entries, index, 1); + return !!~index; + } + }; + + var collectionWeak$1 = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + id: id++, + frozen: undefined + }); + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var data = getWeakData(anObject(key), true); + if (data === true) uncaughtFrozenStore(state).set(key, value); + else data[state.id] = value; + return that; + }; + + defineBuiltIns(Prototype, { + // `{ WeakMap, WeakSet }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.delete + // https://tc39.es/ecma262/#sec-weakset.prototype.delete + 'delete': function (key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state)['delete'](key); + return data && hasOwn(data, state.id) && delete data[state.id]; + }, + // `{ WeakMap, WeakSet }.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.has + // https://tc39.es/ecma262/#sec-weakset.prototype.has + has: function has(key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).has(key); + return data && hasOwn(data, state.id); + } + }); + + defineBuiltIns(Prototype, IS_MAP ? { + // `WeakMap.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.get + get: function get(key) { + var state = getInternalState(this); + if (isObject(key)) { + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).get(key); + return data ? data[state.id] : undefined; + } + }, + // `WeakMap.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.set + set: function set(key, value) { + return define(this, key, value); + } + } : { + // `WeakSet.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-weakset.prototype.add + add: function add(value) { + return define(this, value, true); + } + }); + + return Constructor; + } + }; + + var collection = collection$1; + var collectionWeak = collectionWeak$1; + + // `WeakSet` constructor + // https://tc39.es/ecma262/#sec-weakset-constructor + collection('WeakSet', function (init) { + return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); }; + }, collectionWeak); + + // iterable DOM collections + // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods + var domIterables = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 + }; + + // in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList` + var documentCreateElement = documentCreateElement$2; + + var classList = documentCreateElement('span').classList; + var DOMTokenListPrototype$1 = classList && classList.constructor && classList.constructor.prototype; + + var domTokenListPrototype = DOMTokenListPrototype$1 === Object.prototype ? undefined : DOMTokenListPrototype$1; + + var global$1 = global$i; + var DOMIterables = domIterables; + var DOMTokenListPrototype = domTokenListPrototype; + var ArrayIteratorMethods = es_array_iterator; + var createNonEnumerableProperty = createNonEnumerableProperty$4; + var wellKnownSymbol = wellKnownSymbol$h; + + var ITERATOR = wellKnownSymbol('iterator'); + var TO_STRING_TAG = wellKnownSymbol('toStringTag'); + var ArrayValues = ArrayIteratorMethods.values; + + var handlePrototype = function (CollectionPrototype, COLLECTION_NAME) { + if (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[ITERATOR] !== ArrayValues) try { + createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues); + } catch (error) { + CollectionPrototype[ITERATOR] = ArrayValues; + } + if (!CollectionPrototype[TO_STRING_TAG]) { + createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); + } + if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { + createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); + } catch (error) { + CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; + } + } + } + }; + + for (var COLLECTION_NAME in DOMIterables) { + handlePrototype(global$1[COLLECTION_NAME] && global$1[COLLECTION_NAME].prototype, COLLECTION_NAME); + } + + handlePrototype(DOMTokenListPrototype, 'DOMTokenList'); + + /****************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + /* global Reflect, Promise */ + + + function __classPrivateFieldGet(receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); + } + + var _Tooltip_instances, _Tooltip_show, _Tooltip_hide; + var DEFAULT_SELECTOR = '#ch-tooltip'; + var defaultOptions = { + enabled: true, + // Expecting a function, which will return the tooltip content + text: function text(_timestamp, value, dayjsDate) { + return (// eslint-disable-next-line implicit-arrow-linebreak + "".concat(value, " - ").concat(dayjsDate.format('LLLL')) + ); + } + }; + var DEFAULT_POPPER_OPTIONS = { + placement: 'top', + modifiers: [{ + name: 'offset', + options: { + offset: [0, 8] + } + }] + }; + var virtualElement = { + getBoundingClientRect: function getBoundingClientRect() { + var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + return { + width: 0, + height: 0, + top: y, + right: x, + bottom: y, + left: x, + x: x, + y: y, + toJSON: function toJSON() {} + }; + } + }; + var Tooltip = /*#__PURE__*/function () { + function Tooltip(calendar) { + _classCallCheck(this, Tooltip); + _Tooltip_instances.add(this); + this.name = 'Tooltip'; + this.calendar = calendar; + this.root = null; + this.popperInstance = null; + this.options = defaultOptions; + this.listenerAttached = false; + } + _createClass(Tooltip, [{ + key: "setup", + value: function setup(pluginOptions) { + this.options = Object.assign(Object.assign({}, defaultOptions), pluginOptions); + var event = this.calendar.eventEmitter; + if (!this.options.enabled) { + if (this.listenerAttached) { + event.off('mouseover', this.mouseOverCallback, this); + event.off('mouseout', this.mouseOutCallback, this); + this.listenerAttached = false; + } + this.destroy(); + return; + } + this.popperOptions = Object.assign(Object.assign({}, DEFAULT_POPPER_OPTIONS), this.options); + this.root = document.getElementById(DEFAULT_SELECTOR.slice(1)); + if (!this.root) { + var tooltipElem = document.createElement('div'); + tooltipElem.setAttribute('id', DEFAULT_SELECTOR.slice(1)); + tooltipElem.setAttribute('role', 'tooltip'); + tooltipElem.innerHTML = "<div id=\"".concat(DEFAULT_SELECTOR.slice(1), "-arrow\" data-popper-arrow=\"true\"></div>") + "<span id=\"".concat(DEFAULT_SELECTOR.slice(1), "-body\"></span>"); + this.root = document.body.appendChild(tooltipElem); + } + this.root.setAttribute('data-theme', this.calendar.options.options.theme); + this.popperInstance = core.createPopper(virtualElement, this.root, this.popperOptions); + if (!this.listenerAttached) { + event.on('mouseover', this.mouseOverCallback, this); + event.on('mouseout', this.mouseOutCallback, this); + this.listenerAttached = true; + } + } + }, { + key: "mouseOverCallback", + value: function mouseOverCallback(e, timestamp, value) { + __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_show).call(this, e.target, timestamp, value); + } + }, { + key: "mouseOutCallback", + value: function mouseOutCallback() { + __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_hide).call(this); + } + // eslint-disable-next-line class-methods-use-this + }, { + key: "paint", + value: function paint() { + return Promise.resolve(); + } + }, { + key: "destroy", + value: function destroy() { + if (this.root) { + this.root.remove(); + } + return Promise.resolve(); + } + }]); + return Tooltip; + }(); + _Tooltip_instances = new WeakSet(), _Tooltip_show = function _Tooltip_show(e, timestamp, value) { + var _this = this; + var formatter = this.options.text; + var title = formatter ? formatter(timestamp, value, this.calendar.dateHelper.date(timestamp)) : null; + if (!title) { + return; + } + virtualElement.getBoundingClientRect = function () { + return e.getBoundingClientRect(); + }; + document.getElementById("".concat(DEFAULT_SELECTOR.slice(1), "-body")).innerHTML = title; + this.popperInstance.setOptions(function () { + return Object.assign(Object.assign({}, _this.popperOptions), { + modifiers: [].concat(_toConsumableArray(_this.popperOptions.modifiers), [{ + name: 'eventListeners', + enabled: true + }]) + }); + }); + this.popperInstance.update(); + this.root.setAttribute('data-show', '1'); + }, _Tooltip_hide = function _Tooltip_hide() { + var _this2 = this; + this.root.removeAttribute('data-show'); + this.popperInstance.setOptions(function () { + return Object.assign(Object.assign({}, _this2.popperOptions), { + modifiers: [].concat(_toConsumableArray(_this2.popperOptions.modifiers), [{ + name: 'eventListeners', + enabled: false + }]) + }); + }); + }; + + return Tooltip; + +})); diff --git a/static/javascripts/cal-heatmap/plugins/Tooltip.min.esm.js b/static/javascripts/cal-heatmap/plugins/Tooltip.min.esm.js new file mode 100644 index 000000000..d0f4473ad --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/Tooltip.min.esm.js @@ -0,0 +1 @@ +import{createPopper as t}from"@popperjs/core";function e(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,(o=r.key,i=void 0,"symbol"==typeof(i=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(o,"string"))?i:String(i)),r)}var o,i}function n(t){return function(t){if(Array.isArray(t))return r(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return r(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var o="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},i=function(t){return t&&t.Math==Math&&t},c=i("object"==typeof globalThis&&globalThis)||i("object"==typeof window&&window)||i("object"==typeof self&&self)||i("object"==typeof o&&o)||function(){return this}()||o||Function("return this")(),u={},a=function(t){try{return!!t()}catch(t){return!0}},f=!a((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),s=!a((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})),l=s,p=Function.prototype.call,h=l?p.bind(p):function(){return p.apply(p,arguments)},v={},d={}.propertyIsEnumerable,y=Object.getOwnPropertyDescriptor,b=y&&!d.call({1:2},1);v.f=b?function(t){var e=y(this,t);return!!e&&e.enumerable}:d;var g,m,O=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},w=s,S=Function.prototype,j=S.call,T=w&&S.bind.bind(j,j),E=w?T:function(t){return function(){return j.apply(t,arguments)}},P=E,A=P({}.toString),C=P("".slice),I=function(t){return C(A(t),8,-1)},x=a,L=I,R=Object,k=E("".split),M=x((function(){return!R("z").propertyIsEnumerable(0)}))?function(t){return"String"==L(t)?k(t,""):R(t)}:R,N=function(t){return null==t},_=N,D=TypeError,F=function(t){if(_(t))throw D("Can't call method on "+t);return t},B=M,G=F,U=function(t){return B(G(t))},z="object"==typeof document&&document.all,W={all:z,IS_HTMLDDA:void 0===z&&void 0!==z},H=W.all,V=W.IS_HTMLDDA?function(t){return"function"==typeof t||t===H}:function(t){return"function"==typeof t},q=V,J=W.all,K=W.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:q(t)||t===J}:function(t){return"object"==typeof t?null!==t:q(t)},X=c,Y=V,$=function(t,e){return arguments.length<2?(n=X[t],Y(n)?n:void 0):X[t]&&X[t][e];var n},Q=E({}.isPrototypeOf),Z="undefined"!=typeof navigator&&String(navigator.userAgent)||"",tt=c,et=Z,nt=tt.process,rt=tt.Deno,ot=nt&&nt.versions||rt&&rt.version,it=ot&&ot.v8;it&&(m=(g=it.split("."))[0]>0&&g[0]<4?1:+(g[0]+g[1])),!m&&et&&(!(g=et.match(/Edge\/(\d+)/))||g[1]>=74)&&(g=et.match(/Chrome\/(\d+)/))&&(m=+g[1]);var ct=m,ut=ct,at=a,ft=c.String,st=!!Object.getOwnPropertySymbols&&!at((function(){var t=Symbol();return!ft(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&ut&&ut<41})),lt=st&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,pt=$,ht=V,vt=Q,dt=Object,yt=lt?function(t){return"symbol"==typeof t}:function(t){var e=pt("Symbol");return ht(e)&&vt(e.prototype,dt(t))},bt=String,gt=function(t){try{return bt(t)}catch(t){return"Object"}},mt=V,Ot=gt,wt=TypeError,St=function(t){if(mt(t))return t;throw wt(Ot(t)+" is not a function")},jt=St,Tt=N,Et=function(t,e){var n=t[e];return Tt(n)?void 0:jt(n)},Pt=h,At=V,Ct=K,It=TypeError,xt={exports:{}},Lt=c,Rt=Object.defineProperty,kt=function(t,e){try{Rt(Lt,t,{value:e,configurable:!0,writable:!0})}catch(n){Lt[t]=e}return e},Mt=kt,Nt="__core-js_shared__",_t=c[Nt]||Mt(Nt,{}),Dt=_t;(xt.exports=function(t,e){return Dt[t]||(Dt[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.30.2",mode:"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE",source:"https://github.com/zloirock/core-js"});var Ft=xt.exports,Bt=F,Gt=Object,Ut=function(t){return Gt(Bt(t))},zt=Ut,Wt=E({}.hasOwnProperty),Ht=Object.hasOwn||function(t,e){return Wt(zt(t),e)},Vt=E,qt=0,Jt=Math.random(),Kt=Vt(1..toString),Xt=function(t){return"Symbol("+(void 0===t?"":t)+")_"+Kt(++qt+Jt,36)},Yt=Ft,$t=Ht,Qt=Xt,Zt=st,te=lt,ee=c.Symbol,ne=Yt("wks"),re=te?ee.for||ee:ee&&ee.withoutSetter||Qt,oe=function(t){return $t(ne,t)||(ne[t]=Zt&&$t(ee,t)?ee[t]:re("Symbol."+t)),ne[t]},ie=h,ce=K,ue=yt,ae=Et,fe=function(t,e){var n,r;if("string"===e&&At(n=t.toString)&&!Ct(r=Pt(n,t)))return r;if(At(n=t.valueOf)&&!Ct(r=Pt(n,t)))return r;if("string"!==e&&At(n=t.toString)&&!Ct(r=Pt(n,t)))return r;throw It("Can't convert object to primitive value")},se=TypeError,le=oe("toPrimitive"),pe=function(t,e){if(!ce(t)||ue(t))return t;var n,r=ae(t,le);if(r){if(void 0===e&&(e="default"),n=ie(r,t,e),!ce(n)||ue(n))return n;throw se("Can't convert object to primitive value")}return void 0===e&&(e="number"),fe(t,e)},he=yt,ve=function(t){var e=pe(t,"string");return he(e)?e:e+""},de=K,ye=c.document,be=de(ye)&&de(ye.createElement),ge=function(t){return be?ye.createElement(t):{}},me=ge,Oe=!f&&!a((function(){return 7!=Object.defineProperty(me("div"),"a",{get:function(){return 7}}).a})),we=f,Se=h,je=v,Te=O,Ee=U,Pe=ve,Ae=Ht,Ce=Oe,Ie=Object.getOwnPropertyDescriptor;u.f=we?Ie:function(t,e){if(t=Ee(t),e=Pe(e),Ce)try{return Ie(t,e)}catch(t){}if(Ae(t,e))return Te(!Se(je.f,t,e),t[e])};var xe={},Le=f&&a((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),Re=K,ke=String,Me=TypeError,Ne=function(t){if(Re(t))return t;throw Me(ke(t)+" is not an object")},_e=f,De=Oe,Fe=Le,Be=Ne,Ge=ve,Ue=TypeError,ze=Object.defineProperty,We=Object.getOwnPropertyDescriptor,He="enumerable",Ve="configurable",qe="writable";xe.f=_e?Fe?function(t,e,n){if(Be(t),e=Ge(e),Be(n),"function"==typeof t&&"prototype"===e&&"value"in n&&qe in n&&!n[qe]){var r=We(t,e);r&&r[qe]&&(t[e]=n.value,n={configurable:Ve in n?n[Ve]:r[Ve],enumerable:He in n?n[He]:r[He],writable:!1})}return ze(t,e,n)}:ze:function(t,e,n){if(Be(t),e=Ge(e),Be(n),De)try{return ze(t,e,n)}catch(t){}if("get"in n||"set"in n)throw Ue("Accessors not supported");return"value"in n&&(t[e]=n.value),t};var Je=xe,Ke=O,Xe=f?function(t,e,n){return Je.f(t,e,Ke(1,n))}:function(t,e,n){return t[e]=n,t},Ye={exports:{}},$e=f,Qe=Ht,Ze=Function.prototype,tn=$e&&Object.getOwnPropertyDescriptor,en=Qe(Ze,"name"),nn={EXISTS:en,PROPER:en&&"something"===function(){}.name,CONFIGURABLE:en&&(!$e||$e&&tn(Ze,"name").configurable)},rn=V,on=_t,cn=E(Function.toString);rn(on.inspectSource)||(on.inspectSource=function(t){return cn(t)});var un,an,fn,sn=on.inspectSource,ln=V,pn=c.WeakMap,hn=ln(pn)&&/native code/.test(String(pn)),vn=Xt,dn=Ft("keys"),yn=function(t){return dn[t]||(dn[t]=vn(t))},bn={},gn=hn,mn=c,On=K,wn=Xe,Sn=Ht,jn=_t,Tn=yn,En=bn,Pn="Object already initialized",An=mn.TypeError,Cn=mn.WeakMap;if(gn||jn.state){var In=jn.state||(jn.state=new Cn);In.get=In.get,In.has=In.has,In.set=In.set,un=function(t,e){if(In.has(t))throw An(Pn);return e.facade=t,In.set(t,e),e},an=function(t){return In.get(t)||{}},fn=function(t){return In.has(t)}}else{var xn=Tn("state");En[xn]=!0,un=function(t,e){if(Sn(t,xn))throw An(Pn);return e.facade=t,wn(t,xn,e),e},an=function(t){return Sn(t,xn)?t[xn]:{}},fn=function(t){return Sn(t,xn)}}var Ln={set:un,get:an,has:fn,enforce:function(t){return fn(t)?an(t):un(t,{})},getterFor:function(t){return function(e){var n;if(!On(e)||(n=an(e)).type!==t)throw An("Incompatible receiver, "+t+" required");return n}}},Rn=E,kn=a,Mn=V,Nn=Ht,_n=f,Dn=nn.CONFIGURABLE,Fn=sn,Bn=Ln.enforce,Gn=Ln.get,Un=String,zn=Object.defineProperty,Wn=Rn("".slice),Hn=Rn("".replace),Vn=Rn([].join),qn=_n&&!kn((function(){return 8!==zn((function(){}),"length",{value:8}).length})),Jn=String(String).split("String"),Kn=Ye.exports=function(t,e,n){"Symbol("===Wn(Un(e),0,7)&&(e="["+Hn(Un(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!Nn(t,"name")||Dn&&t.name!==e)&&(_n?zn(t,"name",{value:e,configurable:!0}):t.name=e),qn&&n&&Nn(n,"arity")&&t.length!==n.arity&&zn(t,"length",{value:n.arity});try{n&&Nn(n,"constructor")&&n.constructor?_n&&zn(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=Bn(t);return Nn(r,"source")||(r.source=Vn(Jn,"string"==typeof e?e:"")),t};Function.prototype.toString=Kn((function(){return Mn(this)&&Gn(this).source||Fn(this)}),"toString");var Xn=Ye.exports,Yn=V,$n=xe,Qn=Xn,Zn=kt,tr=function(t,e,n,r){r||(r={});var o=r.enumerable,i=void 0!==r.name?r.name:e;if(Yn(n)&&Qn(n,i,r),r.global)o?t[e]=n:Zn(e,n);else{try{r.unsafe?t[e]&&(o=!0):delete t[e]}catch(t){}o?t[e]=n:$n.f(t,e,{value:n,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return t},er={},nr=Math.ceil,rr=Math.floor,or=Math.trunc||function(t){var e=+t;return(e>0?rr:nr)(e)},ir=function(t){var e=+t;return e!=e||0===e?0:or(e)},cr=ir,ur=Math.max,ar=Math.min,fr=function(t,e){var n=cr(t);return n<0?ur(n+e,0):ar(n,e)},sr=ir,lr=Math.min,pr=function(t){return t>0?lr(sr(t),9007199254740991):0},hr=function(t){return pr(t.length)},vr=U,dr=fr,yr=hr,br=function(t){return function(e,n,r){var o,i=vr(e),c=yr(i),u=dr(r,c);if(t&&n!=n){for(;c>u;)if((o=i[u++])!=o)return!0}else for(;c>u;u++)if((t||u in i)&&i[u]===n)return t||u||0;return!t&&-1}},gr={includes:br(!0),indexOf:br(!1)},mr=Ht,Or=U,wr=gr.indexOf,Sr=bn,jr=E([].push),Tr=function(t,e){var n,r=Or(t),o=0,i=[];for(n in r)!mr(Sr,n)&&mr(r,n)&&jr(i,n);for(;e.length>o;)mr(r,n=e[o++])&&(~wr(i,n)||jr(i,n));return i},Er=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Pr=Tr,Ar=Er.concat("length","prototype");er.f=Object.getOwnPropertyNames||function(t){return Pr(t,Ar)};var Cr={};Cr.f=Object.getOwnPropertySymbols;var Ir=$,xr=er,Lr=Cr,Rr=Ne,kr=E([].concat),Mr=Ir("Reflect","ownKeys")||function(t){var e=xr.f(Rr(t)),n=Lr.f;return n?kr(e,n(t)):e},Nr=Ht,_r=Mr,Dr=u,Fr=xe,Br=a,Gr=V,Ur=/#|\.prototype\./,zr=function(t,e){var n=Hr[Wr(t)];return n==qr||n!=Vr&&(Gr(e)?Br(e):!!e)},Wr=zr.normalize=function(t){return String(t).replace(Ur,".").toLowerCase()},Hr=zr.data={},Vr=zr.NATIVE="N",qr=zr.POLYFILL="P",Jr=zr,Kr=c,Xr=u.f,Yr=Xe,$r=tr,Qr=kt,Zr=function(t,e,n){for(var r=_r(e),o=Fr.f,i=Dr.f,c=0;c<r.length;c++){var u=r[c];Nr(t,u)||n&&Nr(n,u)||o(t,u,i(e,u))}},to=Jr,eo=function(t,e){var n,r,o,i,c,u=t.target,a=t.global,f=t.stat;if(n=a?Kr:f?Kr[u]||Qr(u,{}):(Kr[u]||{}).prototype)for(r in e){if(i=e[r],o=t.dontCallGetSet?(c=Xr(n,r))&&c.value:n[r],!to(a?r:u+(f?".":"#")+r,t.forced)&&void 0!==o){if(typeof i==typeof o)continue;Zr(i,o)}(t.sham||o&&o.sham)&&Yr(i,"sham",!0),$r(n,r,i,t)}},no=I,ro=Array.isArray||function(t){return"Array"==no(t)},oo=TypeError,io=ve,co=xe,uo=O,ao=function(t,e,n){var r=io(e);r in t?co.f(t,r,uo(0,n)):t[r]=n},fo={};fo[oe("toStringTag")]="z";var so="[object z]"===String(fo),lo=so,po=V,ho=I,vo=oe("toStringTag"),yo=Object,bo="Arguments"==ho(function(){return arguments}()),go=lo?ho:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=yo(t),vo))?n:bo?ho(e):"Object"==(r=ho(e))&&po(e.callee)?"Arguments":r},mo=E,Oo=a,wo=V,So=go,jo=sn,To=function(){},Eo=[],Po=$("Reflect","construct"),Ao=/^\s*(?:class|function)\b/,Co=mo(Ao.exec),Io=!Ao.exec(To),xo=function(t){if(!wo(t))return!1;try{return Po(To,Eo,t),!0}catch(t){return!1}},Lo=function(t){if(!wo(t))return!1;switch(So(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Io||!!Co(Ao,jo(t))}catch(t){return!0}};Lo.sham=!0;var Ro=!Po||Oo((function(){var t;return xo(xo.call)||!xo(Object)||!xo((function(){t=!0}))||t}))?Lo:xo,ko=ro,Mo=Ro,No=K,_o=oe("species"),Do=Array,Fo=function(t){var e;return ko(t)&&(e=t.constructor,(Mo(e)&&(e===Do||ko(e.prototype))||No(e)&&null===(e=e[_o]))&&(e=void 0)),void 0===e?Do:e},Bo=function(t,e){return new(Fo(t))(0===e?0:e)},Go=a,Uo=ct,zo=oe("species"),Wo=eo,Ho=a,Vo=ro,qo=K,Jo=Ut,Ko=hr,Xo=function(t){if(t>9007199254740991)throw oo("Maximum allowed index exceeded");return t},Yo=ao,$o=Bo,Qo=function(t){return Uo>=51||!Go((function(){var e=[];return(e.constructor={})[zo]=function(){return{foo:1}},1!==e[t](Boolean).foo}))},Zo=ct,ti=oe("isConcatSpreadable"),ei=Zo>=51||!Ho((function(){var t=[];return t[ti]=!1,t.concat()[0]!==t})),ni=function(t){if(!qo(t))return!1;var e=t[ti];return void 0!==e?!!e:Vo(t)};Wo({target:"Array",proto:!0,arity:1,forced:!ei||!Qo("concat")},{concat:function(t){var e,n,r,o,i,c=Jo(this),u=$o(c,0),a=0;for(e=-1,r=arguments.length;e<r;e++)if(ni(i=-1===e?c:arguments[e]))for(o=Ko(i),Xo(a+o),n=0;n<o;n++,a++)n in i&&Yo(u,a,i[n]);else Xo(a+1),Yo(u,a++,i);return u.length=a,u}});var ri=Xn,oi=xe,ii=function(t,e,n){return n.get&&ri(n.get,e,{getter:!0}),n.set&&ri(n.set,e,{setter:!0}),oi.f(t,e,n)},ci=f,ui=nn.EXISTS,ai=E,fi=ii,si=Function.prototype,li=ai(si.toString),pi=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,hi=ai(pi.exec);ci&&!ui&&fi(si,"name",{configurable:!0,get:function(){try{return hi(pi,li(this))[1]}catch(t){return""}}});var vi=Tr,di=Er,yi=Object.keys||function(t){return vi(t,di)},bi=f,gi=E,mi=h,Oi=a,wi=yi,Si=Cr,ji=v,Ti=Ut,Ei=M,Pi=Object.assign,Ai=Object.defineProperty,Ci=gi([].concat),Ii=!Pi||Oi((function(){if(bi&&1!==Pi({b:1},Pi(Ai({},"a",{enumerable:!0,get:function(){Ai(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach((function(t){e[t]=t})),7!=Pi({},t)[n]||wi(Pi({},e)).join("")!=r}))?function(t,e){for(var n=Ti(t),r=arguments.length,o=1,i=Si.f,c=ji.f;r>o;)for(var u,a=Ei(arguments[o++]),f=i?Ci(wi(a),i(a)):wi(a),s=f.length,l=0;s>l;)u=f[l++],bi&&!mi(c,a,u)||(n[u]=a[u]);return n}:Pi,xi=Ii;eo({target:"Object",stat:!0,arity:2,forced:Object.assign!==xi},{assign:xi});var Li=go,Ri=so?{}.toString:function(){return"[object "+Li(this)+"]"};so||tr(Object.prototype,"toString",Ri,{unsafe:!0});var ki,Mi,Ni,_i,Di="undefined"!=typeof process&&"process"==I(process),Fi=E,Bi=St,Gi=V,Ui=String,zi=TypeError,Wi=function(t,e,n){try{return Fi(Bi(Object.getOwnPropertyDescriptor(t,e)[n]))}catch(t){}},Hi=Ne,Vi=function(t){if("object"==typeof t||Gi(t))return t;throw zi("Can't set "+Ui(t)+" as a prototype")},qi=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=Wi(Object.prototype,"__proto__","set"))(n,[]),e=n instanceof Array}catch(t){}return function(n,r){return Hi(n),Vi(r),e?t(n,r):n.__proto__=r,n}}():void 0),Ji=xe.f,Ki=Ht,Xi=oe("toStringTag"),Yi=function(t,e,n){t&&!n&&(t=t.prototype),t&&!Ki(t,Xi)&&Ji(t,Xi,{configurable:!0,value:e})},$i=$,Qi=ii,Zi=f,tc=oe("species"),ec=Q,nc=TypeError,rc=function(t,e){if(ec(e,t))return t;throw nc("Incorrect invocation")},oc=Ro,ic=gt,cc=TypeError,uc=Ne,ac=function(t){if(oc(t))return t;throw cc(ic(t)+" is not a constructor")},fc=N,sc=oe("species"),lc=s,pc=Function.prototype,hc=pc.apply,vc=pc.call,dc="object"==typeof Reflect&&Reflect.apply||(lc?vc.bind(hc):function(){return vc.apply(hc,arguments)}),yc=I,bc=E,gc=function(t){if("Function"===yc(t))return bc(t)},mc=St,Oc=s,wc=gc(gc.bind),Sc=function(t,e){return mc(t),void 0===e?t:Oc?wc(t,e):function(){return t.apply(e,arguments)}},jc=$("document","documentElement"),Tc=E([].slice),Ec=TypeError,Pc=/(?:ipad|iphone|ipod).*applewebkit/i.test(Z),Ac=c,Cc=dc,Ic=Sc,xc=V,Lc=Ht,Rc=a,kc=jc,Mc=Tc,Nc=ge,_c=function(t,e){if(t<e)throw Ec("Not enough arguments");return t},Dc=Pc,Fc=Di,Bc=Ac.setImmediate,Gc=Ac.clearImmediate,Uc=Ac.process,zc=Ac.Dispatch,Wc=Ac.Function,Hc=Ac.MessageChannel,Vc=Ac.String,qc=0,Jc={},Kc="onreadystatechange";Rc((function(){ki=Ac.location}));var Xc=function(t){if(Lc(Jc,t)){var e=Jc[t];delete Jc[t],e()}},Yc=function(t){return function(){Xc(t)}},$c=function(t){Xc(t.data)},Qc=function(t){Ac.postMessage(Vc(t),ki.protocol+"//"+ki.host)};Bc&&Gc||(Bc=function(t){_c(arguments.length,1);var e=xc(t)?t:Wc(t),n=Mc(arguments,1);return Jc[++qc]=function(){Cc(e,void 0,n)},Mi(qc),qc},Gc=function(t){delete Jc[t]},Fc?Mi=function(t){Uc.nextTick(Yc(t))}:zc&&zc.now?Mi=function(t){zc.now(Yc(t))}:Hc&&!Dc?(_i=(Ni=new Hc).port2,Ni.port1.onmessage=$c,Mi=Ic(_i.postMessage,_i)):Ac.addEventListener&&xc(Ac.postMessage)&&!Ac.importScripts&&ki&&"file:"!==ki.protocol&&!Rc(Qc)?(Mi=Qc,Ac.addEventListener("message",$c,!1)):Mi=Kc in Nc("script")?function(t){kc.appendChild(Nc("script"))[Kc]=function(){kc.removeChild(this),Xc(t)}}:function(t){setTimeout(Yc(t),0)});var Zc={set:Bc,clear:Gc},tu=function(){this.head=null,this.tail=null};tu.prototype={add:function(t){var e={item:t,next:null},n=this.tail;n?n.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}};var eu,nu,ru,ou,iu,cu=tu,uu=/ipad|iphone|ipod/i.test(Z)&&"undefined"!=typeof Pebble,au=/web0s(?!.*chrome)/i.test(Z),fu=c,su=Sc,lu=u.f,pu=Zc.set,hu=cu,vu=Pc,du=uu,yu=au,bu=Di,gu=fu.MutationObserver||fu.WebKitMutationObserver,mu=fu.document,Ou=fu.process,wu=fu.Promise,Su=lu(fu,"queueMicrotask"),ju=Su&&Su.value;if(!ju){var Tu=new hu,Eu=function(){var t,e;for(bu&&(t=Ou.domain)&&t.exit();e=Tu.get();)try{e()}catch(t){throw Tu.head&&eu(),t}t&&t.enter()};vu||bu||yu||!gu||!mu?!du&&wu&&wu.resolve?((ou=wu.resolve(void 0)).constructor=wu,iu=su(ou.then,ou),eu=function(){iu(Eu)}):bu?eu=function(){Ou.nextTick(Eu)}:(pu=su(pu,fu),eu=function(){pu(Eu)}):(nu=!0,ru=mu.createTextNode(""),new gu(Eu).observe(ru,{characterData:!0}),eu=function(){ru.data=nu=!nu}),ju=function(t){Tu.head||eu(),Tu.add(t)}}var Pu=ju,Au=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},Cu=c.Promise,Iu="object"==typeof Deno&&Deno&&"object"==typeof Deno.version,xu=!Iu&&!Di&&"object"==typeof window&&"object"==typeof document,Lu=c,Ru=Cu,ku=V,Mu=Jr,Nu=sn,_u=oe,Du=xu,Fu=Iu,Bu=ct;Ru&&Ru.prototype;var Gu=_u("species"),Uu=!1,zu=ku(Lu.PromiseRejectionEvent),Wu=Mu("Promise",(function(){var t=Nu(Ru),e=t!==String(Ru);if(!e&&66===Bu)return!0;if(!Bu||Bu<51||!/native code/.test(t)){var n=new Ru((function(t){t(1)})),r=function(t){t((function(){}),(function(){}))};if((n.constructor={})[Gu]=r,!(Uu=n.then((function(){}))instanceof r))return!0}return!e&&(Du||Fu)&&!zu})),Hu={CONSTRUCTOR:Wu,REJECTION_EVENT:zu,SUBCLASSING:Uu},Vu={},qu=St,Ju=TypeError,Ku=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw Ju("Bad Promise constructor");e=t,n=r})),this.resolve=qu(e),this.reject=qu(n)};Vu.f=function(t){return new Ku(t)};var Xu,Yu,$u,Qu=eo,Zu=Di,ta=c,ea=h,na=tr,ra=qi,oa=Yi,ia=function(t){var e=$i(t);Zi&&e&&!e[tc]&&Qi(e,tc,{configurable:!0,get:function(){return this}})},ca=St,ua=V,aa=K,fa=rc,sa=function(t,e){var n,r=uc(t).constructor;return void 0===r||fc(n=uc(r)[sc])?e:ac(n)},la=Zc.set,pa=Pu,ha=function(t,e){try{1==arguments.length?console.error(t):console.error(t,e)}catch(t){}},va=Au,da=cu,ya=Ln,ba=Cu,ga=Vu,ma="Promise",Oa=Hu.CONSTRUCTOR,wa=Hu.REJECTION_EVENT,Sa=Hu.SUBCLASSING,ja=ya.getterFor(ma),Ta=ya.set,Ea=ba&&ba.prototype,Pa=ba,Aa=Ea,Ca=ta.TypeError,Ia=ta.document,xa=ta.process,La=ga.f,Ra=La,ka=!!(Ia&&Ia.createEvent&&ta.dispatchEvent),Ma="unhandledrejection",Na=function(t){var e;return!(!aa(t)||!ua(e=t.then))&&e},_a=function(t,e){var n,r,o,i=e.value,c=1==e.state,u=c?t.ok:t.fail,a=t.resolve,f=t.reject,s=t.domain;try{u?(c||(2===e.rejection&&Ua(e),e.rejection=1),!0===u?n=i:(s&&s.enter(),n=u(i),s&&(s.exit(),o=!0)),n===t.promise?f(Ca("Promise-chain cycle")):(r=Na(n))?ea(r,n,a,f):a(n)):f(i)}catch(t){s&&!o&&s.exit(),f(t)}},Da=function(t,e){t.notified||(t.notified=!0,pa((function(){for(var n,r=t.reactions;n=r.get();)_a(n,t);t.notified=!1,e&&!t.rejection&&Ba(t)})))},Fa=function(t,e,n){var r,o;ka?((r=Ia.createEvent("Event")).promise=e,r.reason=n,r.initEvent(t,!1,!0),ta.dispatchEvent(r)):r={promise:e,reason:n},!wa&&(o=ta["on"+t])?o(r):t===Ma&&ha("Unhandled promise rejection",n)},Ba=function(t){ea(la,ta,(function(){var e,n=t.facade,r=t.value;if(Ga(t)&&(e=va((function(){Zu?xa.emit("unhandledRejection",r,n):Fa(Ma,n,r)})),t.rejection=Zu||Ga(t)?2:1,e.error))throw e.value}))},Ga=function(t){return 1!==t.rejection&&!t.parent},Ua=function(t){ea(la,ta,(function(){var e=t.facade;Zu?xa.emit("rejectionHandled",e):Fa("rejectionhandled",e,t.value)}))},za=function(t,e,n){return function(r){t(e,r,n)}},Wa=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=2,Da(t,!0))},Ha=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw Ca("Promise can't be resolved itself");var r=Na(e);r?pa((function(){var n={done:!1};try{ea(r,e,za(Ha,n,t),za(Wa,n,t))}catch(e){Wa(n,e,t)}})):(t.value=e,t.state=1,Da(t,!1))}catch(e){Wa({done:!1},e,t)}}};if(Oa&&(Aa=(Pa=function(t){fa(this,Aa),ca(t),ea(Xu,this);var e=ja(this);try{t(za(Ha,e),za(Wa,e))}catch(t){Wa(e,t)}}).prototype,(Xu=function(t){Ta(this,{type:ma,done:!1,notified:!1,parent:!1,reactions:new da,rejection:!1,state:0,value:void 0})}).prototype=na(Aa,"then",(function(t,e){var n=ja(this),r=La(sa(this,Pa));return n.parent=!0,r.ok=!ua(t)||t,r.fail=ua(e)&&e,r.domain=Zu?xa.domain:void 0,0==n.state?n.reactions.add(r):pa((function(){_a(r,n)})),r.promise})),Yu=function(){var t=new Xu,e=ja(t);this.promise=t,this.resolve=za(Ha,e),this.reject=za(Wa,e)},ga.f=La=function(t){return t===Pa||undefined===t?new Yu(t):Ra(t)},ua(ba)&&Ea!==Object.prototype)){$u=Ea.then,Sa||na(Ea,"then",(function(t,e){var n=this;return new Pa((function(t,e){ea($u,n,t,e)})).then(t,e)}),{unsafe:!0});try{delete Ea.constructor}catch(t){}ra&&ra(Ea,Aa)}Qu({global:!0,constructor:!0,wrap:!0,forced:Oa},{Promise:Pa}),oa(Pa,ma,!1),ia(ma);var Va={},qa=Va,Ja=oe("iterator"),Ka=Array.prototype,Xa=go,Ya=Et,$a=N,Qa=Va,Za=oe("iterator"),tf=function(t){if(!$a(t))return Ya(t,Za)||Ya(t,"@@iterator")||Qa[Xa(t)]},ef=h,nf=St,rf=Ne,of=gt,cf=tf,uf=TypeError,af=h,ff=Ne,sf=Et,lf=Sc,pf=h,hf=Ne,vf=gt,df=function(t){return void 0!==t&&(qa.Array===t||Ka[Ja]===t)},yf=hr,bf=Q,gf=function(t,e){var n=arguments.length<2?cf(t):e;if(nf(n))return rf(ef(n,t));throw uf(of(t)+" is not iterable")},mf=tf,Of=function(t,e,n){var r,o;ff(t);try{if(!(r=sf(t,"return"))){if("throw"===e)throw n;return n}r=af(r,t)}catch(t){o=!0,r=t}if("throw"===e)throw n;if(o)throw r;return ff(r),n},wf=TypeError,Sf=function(t,e){this.stopped=t,this.result=e},jf=Sf.prototype,Tf=function(t,e,n){var r,o,i,c,u,a,f,s=n&&n.that,l=!(!n||!n.AS_ENTRIES),p=!(!n||!n.IS_RECORD),h=!(!n||!n.IS_ITERATOR),v=!(!n||!n.INTERRUPTED),d=lf(e,s),y=function(t){return r&&Of(r,"normal",t),new Sf(!0,t)},b=function(t){return l?(hf(t),v?d(t[0],t[1],y):d(t[0],t[1])):v?d(t,y):d(t)};if(p)r=t.iterator;else if(h)r=t;else{if(!(o=mf(t)))throw wf(vf(t)+" is not iterable");if(df(o)){for(i=0,c=yf(t);c>i;i++)if((u=b(t[i]))&&bf(jf,u))return u;return new Sf(!1)}r=gf(t,o)}for(a=p?t.next:r.next;!(f=pf(a,r)).done;){try{u=b(f.value)}catch(t){Of(r,"throw",t)}if("object"==typeof u&&u&&bf(jf,u))return u}return new Sf(!1)},Ef=oe("iterator"),Pf=!1;try{var Af=0,Cf={next:function(){return{done:!!Af++}},return:function(){Pf=!0}};Cf[Ef]=function(){return this},Array.from(Cf,(function(){throw 2}))}catch(t){}var If=function(t,e){if(!e&&!Pf)return!1;var n=!1;try{var r={};r[Ef]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(t){}return n},xf=Cu,Lf=Hu.CONSTRUCTOR||!If((function(t){xf.all(t).then(void 0,(function(){}))})),Rf=h,kf=St,Mf=Vu,Nf=Au,_f=Tf;eo({target:"Promise",stat:!0,forced:Lf},{all:function(t){var e=this,n=Mf.f(e),r=n.resolve,o=n.reject,i=Nf((function(){var n=kf(e.resolve),i=[],c=0,u=1;_f(t,(function(t){var a=c++,f=!1;u++,Rf(n,e,t).then((function(t){f||(f=!0,i[a]=t,--u||r(i))}),o)})),--u||r(i)}));return i.error&&o(i.value),n.promise}});var Df=eo,Ff=Hu.CONSTRUCTOR,Bf=Cu,Gf=$,Uf=V,zf=tr,Wf=Bf&&Bf.prototype;if(Df({target:"Promise",proto:!0,forced:Ff,real:!0},{catch:function(t){return this.then(void 0,t)}}),Uf(Bf)){var Hf=Gf("Promise").prototype.catch;Wf.catch!==Hf&&zf(Wf,"catch",Hf,{unsafe:!0})}var Vf=h,qf=St,Jf=Vu,Kf=Au,Xf=Tf;eo({target:"Promise",stat:!0,forced:Lf},{race:function(t){var e=this,n=Jf.f(e),r=n.reject,o=Kf((function(){var o=qf(e.resolve);Xf(t,(function(t){Vf(o,e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}});var Yf=h,$f=Vu;eo({target:"Promise",stat:!0,forced:Hu.CONSTRUCTOR},{reject:function(t){var e=$f.f(this);return Yf(e.reject,void 0,t),e.promise}});var Qf=Ne,Zf=K,ts=Vu,es=eo,ns=Hu.CONSTRUCTOR,rs=function(t,e){if(Qf(t),Zf(e)&&e.constructor===t)return e;var n=ts.f(t);return(0,n.resolve)(e),n.promise};$("Promise"),es({target:"Promise",stat:!0,forced:ns},{resolve:function(t){return rs(this,t)}});var os={},is=f,cs=Le,us=xe,as=Ne,fs=U,ss=yi;os.f=is&&!cs?Object.defineProperties:function(t,e){as(t);for(var n,r=fs(e),o=ss(e),i=o.length,c=0;i>c;)us.f(t,n=o[c++],r[n]);return t};var ls,ps=Ne,hs=os,vs=Er,ds=bn,ys=jc,bs=ge,gs="prototype",ms="script",Os=yn("IE_PROTO"),ws=function(){},Ss=function(t){return"<"+ms+">"+t+"</"+ms+">"},js=function(t){t.write(Ss("")),t.close();var e=t.parentWindow.Object;return t=null,e},Ts=function(){try{ls=new ActiveXObject("htmlfile")}catch(t){}var t,e,n;Ts="undefined"!=typeof document?document.domain&&ls?js(ls):(e=bs("iframe"),n="java"+ms+":",e.style.display="none",ys.appendChild(e),e.src=String(n),(t=e.contentWindow.document).open(),t.write(Ss("document.F=Object")),t.close(),t.F):js(ls);for(var r=vs.length;r--;)delete Ts[gs][vs[r]];return Ts()};ds[Os]=!0;var Es=Object.create||function(t,e){var n;return null!==t?(ws[gs]=ps(t),n=new ws,ws[gs]=null,n[Os]=t):n=Ts(),void 0===e?n:hs.f(n,e)},Ps=oe,As=Es,Cs=xe.f,Is=Ps("unscopables"),xs=Array.prototype;null==xs[Is]&&Cs(xs,Is,{configurable:!0,value:As(null)});var Ls,Rs,ks,Ms=!a((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})),Ns=Ht,_s=V,Ds=Ut,Fs=Ms,Bs=yn("IE_PROTO"),Gs=Object,Us=Gs.prototype,zs=Fs?Gs.getPrototypeOf:function(t){var e=Ds(t);if(Ns(e,Bs))return e[Bs];var n=e.constructor;return _s(n)&&e instanceof n?n.prototype:e instanceof Gs?Us:null},Ws=a,Hs=V,Vs=K,qs=zs,Js=tr,Ks=oe("iterator"),Xs=!1;[].keys&&("next"in(ks=[].keys())?(Rs=qs(qs(ks)))!==Object.prototype&&(Ls=Rs):Xs=!0);var Ys=!Vs(Ls)||Ws((function(){var t={};return Ls[Ks].call(t)!==t}));Ys&&(Ls={}),Hs(Ls[Ks])||Js(Ls,Ks,(function(){return this}));var $s={IteratorPrototype:Ls,BUGGY_SAFARI_ITERATORS:Xs},Qs=$s.IteratorPrototype,Zs=Es,tl=O,el=Yi,nl=Va,rl=function(){return this},ol=eo,il=h,cl=V,ul=function(t,e,n,r){var o=e+" Iterator";return t.prototype=Zs(Qs,{next:tl(+!r,n)}),el(t,o,!1),nl[o]=rl,t},al=zs,fl=qi,sl=Yi,ll=Xe,pl=tr,hl=Va,vl=nn.PROPER,dl=nn.CONFIGURABLE,yl=$s.IteratorPrototype,bl=$s.BUGGY_SAFARI_ITERATORS,gl=oe("iterator"),ml="keys",Ol="values",wl="entries",Sl=function(){return this},jl=function(t,e,n,r,o,i,c){ul(n,e,r);var u,a,f,s=function(t){if(t===o&&d)return d;if(!bl&&t in h)return h[t];switch(t){case ml:case Ol:case wl:return function(){return new n(this,t)}}return function(){return new n(this)}},l=e+" Iterator",p=!1,h=t.prototype,v=h[gl]||h["@@iterator"]||o&&h[o],d=!bl&&v||s(o),y="Array"==e&&h.entries||v;if(y&&(u=al(y.call(new t)))!==Object.prototype&&u.next&&(al(u)!==yl&&(fl?fl(u,yl):cl(u[gl])||pl(u,gl,Sl)),sl(u,l,!0)),vl&&o==Ol&&v&&v.name!==Ol&&(dl?ll(h,"name",Ol):(p=!0,d=function(){return il(v,this)})),o)if(a={values:s(Ol),keys:i?d:s(ml),entries:s(wl)},c)for(f in a)(bl||p||!(f in h))&&pl(h,f,a[f]);else ol({target:e,proto:!0,forced:bl||p},a);return h[gl]!==d&&pl(h,gl,d,{name:o}),hl[e]=d,a},Tl=function(t,e){return{value:t,done:e}},El=U,Pl=function(t){xs[Is][t]=!0},Al=Va,Cl=Ln,Il=xe.f,xl=jl,Ll=Tl,Rl=f,kl="Array Iterator",Ml=Cl.set,Nl=Cl.getterFor(kl),_l=xl(Array,"Array",(function(t,e){Ml(this,{type:kl,target:El(t),index:0,kind:e})}),(function(){var t=Nl(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,Ll(void 0,!0)):Ll("keys"==n?r:"values"==n?e[r]:[r,e[r]],!1)}),"values"),Dl=Al.Arguments=Al.Array;if(Pl("keys"),Pl("values"),Pl("entries"),Rl&&"values"!==Dl.name)try{Il(Dl,"name",{value:"values"})}catch(t){}var Fl=go,Bl=String,Gl=function(t){if("Symbol"===Fl(t))throw TypeError("Cannot convert a Symbol value to a string");return Bl(t)},Ul=E,zl=ir,Wl=Gl,Hl=F,Vl=Ul("".charAt),ql=Ul("".charCodeAt),Jl=Ul("".slice),Kl=function(t){return function(e,n){var r,o,i=Wl(Hl(e)),c=zl(n),u=i.length;return c<0||c>=u?t?"":void 0:(r=ql(i,c))<55296||r>56319||c+1===u||(o=ql(i,c+1))<56320||o>57343?t?Vl(i,c):r:t?Jl(i,c,c+2):o-56320+(r-55296<<10)+65536}},Xl={codeAt:Kl(!1),charAt:Kl(!0)}.charAt,Yl=Gl,$l=Ln,Ql=jl,Zl=Tl,tp="String Iterator",ep=$l.set,np=$l.getterFor(tp);Ql(String,"String",(function(t){ep(this,{type:tp,string:Yl(t),index:0})}),(function(){var t,e=np(this),n=e.string,r=e.index;return r>=n.length?Zl(void 0,!0):(t=Xl(n,r),e.index+=t.length,Zl(t,!1))}));var rp={exports:{}},op={},ip=fr,cp=hr,up=ao,ap=Array,fp=Math.max,sp=I,lp=U,pp=er.f,hp=function(t,e,n){for(var r=cp(t),o=ip(e,r),i=ip(void 0===n?r:n,r),c=ap(fp(i-o,0)),u=0;o<i;o++,u++)up(c,u,t[o]);return c.length=u,c},vp="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];op.f=function(t){return vp&&"Window"==sp(t)?function(t){try{return pp(t)}catch(t){return hp(vp)}}(t):pp(lp(t))};var dp=a((function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}})),yp=a,bp=K,gp=I,mp=dp,Op=Object.isExtensible,wp=yp((function(){Op(1)}))||mp?function(t){return!!bp(t)&&((!mp||"ArrayBuffer"!=gp(t))&&(!Op||Op(t)))}:Op,Sp=!a((function(){return Object.isExtensible(Object.preventExtensions({}))})),jp=eo,Tp=E,Ep=bn,Pp=K,Ap=Ht,Cp=xe.f,Ip=er,xp=op,Lp=wp,Rp=Sp,kp=!1,Mp=Xt("meta"),Np=0,_p=function(t){Cp(t,Mp,{value:{objectID:"O"+Np++,weakData:{}}})},Dp=rp.exports={enable:function(){Dp.enable=function(){},kp=!0;var t=Ip.f,e=Tp([].splice),n={};n[Mp]=1,t(n).length&&(Ip.f=function(n){for(var r=t(n),o=0,i=r.length;o<i;o++)if(r[o]===Mp){e(r,o,1);break}return r},jp({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:xp.f}))},fastKey:function(t,e){if(!Pp(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!Ap(t,Mp)){if(!Lp(t))return"F";if(!e)return"E";_p(t)}return t[Mp].objectID},getWeakData:function(t,e){if(!Ap(t,Mp)){if(!Lp(t))return!0;if(!e)return!1;_p(t)}return t[Mp].weakData},onFreeze:function(t){return Rp&&kp&&Lp(t)&&!Ap(t,Mp)&&_p(t),t}};Ep[Mp]=!0;var Fp=rp.exports,Bp=V,Gp=K,Up=qi,zp=eo,Wp=c,Hp=E,Vp=Jr,qp=tr,Jp=Fp,Kp=Tf,Xp=rc,Yp=V,$p=N,Qp=K,Zp=a,th=If,eh=Yi,nh=function(t,e,n){var r,o;return Up&&Bp(r=e.constructor)&&r!==n&&Gp(o=r.prototype)&&o!==n.prototype&&Up(t,o),t},rh=tr,oh=Sc,ih=M,ch=Ut,uh=hr,ah=Bo,fh=E([].push),sh=function(t){var e=1==t,n=2==t,r=3==t,o=4==t,i=6==t,c=7==t,u=5==t||i;return function(a,f,s,l){for(var p,h,v=ch(a),d=ih(v),y=oh(f,s),b=uh(d),g=0,m=l||ah,O=e?m(a,b):n||c?m(a,0):void 0;b>g;g++)if((u||g in d)&&(h=y(p=d[g],g,v),t))if(e)O[g]=h;else if(h)switch(t){case 3:return!0;case 5:return p;case 6:return g;case 2:fh(O,p)}else switch(t){case 4:return!1;case 7:fh(O,p)}return i?-1:r||o?o:O}},lh={forEach:sh(0),map:sh(1),filter:sh(2),some:sh(3),every:sh(4),find:sh(5),findIndex:sh(6),filterReject:sh(7)},ph=E,hh=function(t,e,n){for(var r in e)rh(t,r,e[r],n);return t},vh=Fp.getWeakData,dh=rc,yh=Ne,bh=N,gh=K,mh=Tf,Oh=Ht,wh=Ln.set,Sh=Ln.getterFor,jh=lh.find,Th=lh.findIndex,Eh=ph([].splice),Ph=0,Ah=function(t){return t.frozen||(t.frozen=new Ch)},Ch=function(){this.entries=[]},Ih=function(t,e){return jh(t.entries,(function(t){return t[0]===e}))};Ch.prototype={get:function(t){var e=Ih(this,t);if(e)return e[1]},has:function(t){return!!Ih(this,t)},set:function(t,e){var n=Ih(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=Th(this.entries,(function(e){return e[0]===t}));return~e&&Eh(this.entries,e,1),!!~e}};var xh={getConstructor:function(t,e,n,r){var o=t((function(t,o){dh(t,i),wh(t,{type:e,id:Ph++,frozen:void 0}),bh(o)||mh(o,t[r],{that:t,AS_ENTRIES:n})})),i=o.prototype,c=Sh(e),u=function(t,e,n){var r=c(t),o=vh(yh(e),!0);return!0===o?Ah(r).set(e,n):o[r.id]=n,t};return hh(i,{delete:function(t){var e=c(this);if(!gh(t))return!1;var n=vh(t);return!0===n?Ah(e).delete(t):n&&Oh(n,e.id)&&delete n[e.id]},has:function(t){var e=c(this);if(!gh(t))return!1;var n=vh(t);return!0===n?Ah(e).has(t):n&&Oh(n,e.id)}}),hh(i,n?{get:function(t){var e=c(this);if(gh(t)){var n=vh(t);return!0===n?Ah(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return u(this,t,e)}}:{add:function(t){return u(this,t,!0)}}),o}};(function(t,e,n){var r=-1!==t.indexOf("Map"),o=-1!==t.indexOf("Weak"),i=r?"set":"add",c=Wp[t],u=c&&c.prototype,a=c,f={},s=function(t){var e=Hp(u[t]);qp(u,t,"add"==t?function(t){return e(this,0===t?0:t),this}:"delete"==t?function(t){return!(o&&!Qp(t))&&e(this,0===t?0:t)}:"get"==t?function(t){return o&&!Qp(t)?void 0:e(this,0===t?0:t)}:"has"==t?function(t){return!(o&&!Qp(t))&&e(this,0===t?0:t)}:function(t,n){return e(this,0===t?0:t,n),this})};if(Vp(t,!Yp(c)||!(o||u.forEach&&!Zp((function(){(new c).entries().next()})))))a=n.getConstructor(e,t,r,i),Jp.enable();else if(Vp(t,!0)){var l=new a,p=l[i](o?{}:-0,1)!=l,h=Zp((function(){l.has(1)})),v=th((function(t){new c(t)})),d=!o&&Zp((function(){for(var t=new c,e=5;e--;)t[i](e,e);return!t.has(-0)}));v||((a=e((function(t,e){Xp(t,u);var n=nh(new c,t,a);return $p(e)||Kp(e,n[i],{that:n,AS_ENTRIES:r}),n}))).prototype=u,u.constructor=a),(h||d)&&(s("delete"),s("has"),r&&s("get")),(d||p)&&s(i),o&&u.clear&&delete u.clear}f[t]=a,zp({global:!0,constructor:!0,forced:a!=c},f),eh(a,t),o||n.setStrong(a,t,r)})("WeakSet",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),xh);var Lh,Rh,kh,Mh=ge("span").classList,Nh=Mh&&Mh.constructor&&Mh.constructor.prototype,_h=Nh===Object.prototype?void 0:Nh,Dh=c,Fh={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Bh=_h,Gh=_l,Uh=Xe,zh=oe,Wh=zh("iterator"),Hh=zh("toStringTag"),Vh=Gh.values,qh=function(t,e){if(t){if(t[Wh]!==Vh)try{Uh(t,Wh,Vh)}catch(e){t[Wh]=Vh}if(t[Hh]||Uh(t,Hh,e),Fh[e])for(var n in Gh)if(t[n]!==Gh[n])try{Uh(t,n,Gh[n])}catch(e){t[n]=Gh[n]}}};for(var Jh in Fh)qh(Dh[Jh]&&Dh[Jh].prototype,Jh);function Kh(t,e,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(t):r?r.value:e.get(t)}qh(Bh,"DOMTokenList");var Xh="#ch-tooltip",Yh={enabled:!0,text:function(t,e,n){return"".concat(e," - ").concat(n.format("LLLL"))}},$h={placement:"top",modifiers:[{name:"offset",options:{offset:[0,8]}}]},Qh={getBoundingClientRect:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return{width:0,height:0,top:e,right:t,bottom:e,left:t,x:t,y:e,toJSON:function(){}}}},Zh=function(){function n(t){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),Lh.add(this),this.name="Tooltip",this.calendar=t,this.root=null,this.popperInstance=null,this.options=Yh,this.listenerAttached=!1}var r,o,i;return r=n,(o=[{key:"setup",value:function(e){this.options=Object.assign(Object.assign({},Yh),e);var n=this.calendar.eventEmitter;if(!this.options.enabled)return this.listenerAttached&&(n.off("mouseover",this.mouseOverCallback,this),n.off("mouseout",this.mouseOutCallback,this),this.listenerAttached=!1),void this.destroy();if(this.popperOptions=Object.assign(Object.assign({},$h),this.options),this.root=document.getElementById(Xh.slice(1)),!this.root){var r=document.createElement("div");r.setAttribute("id",Xh.slice(1)),r.setAttribute("role","tooltip"),r.innerHTML='<div id="'.concat(Xh.slice(1),'-arrow" data-popper-arrow="true"></div>')+'<span id="'.concat(Xh.slice(1),'-body"></span>'),this.root=document.body.appendChild(r)}this.root.setAttribute("data-theme",this.calendar.options.options.theme),this.popperInstance=t(Qh,this.root,this.popperOptions),this.listenerAttached||(n.on("mouseover",this.mouseOverCallback,this),n.on("mouseout",this.mouseOutCallback,this),this.listenerAttached=!0)}},{key:"mouseOverCallback",value:function(t,e,n){Kh(this,Lh,"m",Rh).call(this,t.target,e,n)}},{key:"mouseOutCallback",value:function(){Kh(this,Lh,"m",kh).call(this)}},{key:"paint",value:function(){return Promise.resolve()}},{key:"destroy",value:function(){return this.root&&this.root.remove(),Promise.resolve()}}])&&e(r.prototype,o),i&&e(r,i),Object.defineProperty(r,"prototype",{writable:!1}),n}();Lh=new WeakSet,Rh=function(t,e,r){var o=this,i=this.options.text,c=i?i(e,r,this.calendar.dateHelper.date(e)):null;c&&(Qh.getBoundingClientRect=function(){return t.getBoundingClientRect()},document.getElementById("".concat(Xh.slice(1),"-body")).innerHTML=c,this.popperInstance.setOptions((function(){return Object.assign(Object.assign({},o.popperOptions),{modifiers:[].concat(n(o.popperOptions.modifiers),[{name:"eventListeners",enabled:!0}])})})),this.popperInstance.update(),this.root.setAttribute("data-show","1"))},kh=function(){var t=this;this.root.removeAttribute("data-show"),this.popperInstance.setOptions((function(){return Object.assign(Object.assign({},t.popperOptions),{modifiers:[].concat(n(t.popperOptions.modifiers),[{name:"eventListeners",enabled:!1}])})}))};export{Zh as default};//# sourceMappingURL=Tooltip.min.esm.js.map diff --git a/static/javascripts/cal-heatmap/plugins/Tooltip.min.esm.js.map b/static/javascripts/cal-heatmap/plugins/Tooltip.min.esm.js.map new file mode 100644 index 000000000..ca339d861 --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/Tooltip.min.esm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Tooltip.min.esm.js","sources":["../../node_modules/core-js/internals/global.js","../../node_modules/core-js/internals/fails.js","../../node_modules/core-js/internals/descriptors.js","../../node_modules/core-js/internals/function-bind-native.js","../../node_modules/core-js/internals/function-call.js","../../node_modules/core-js/internals/object-property-is-enumerable.js","../../node_modules/core-js/internals/create-property-descriptor.js","../../node_modules/core-js/internals/engine-v8-version.js","../../node_modules/core-js/internals/function-uncurry-this.js","../../node_modules/core-js/internals/classof-raw.js","../../node_modules/core-js/internals/indexed-object.js","../../node_modules/core-js/internals/is-null-or-undefined.js","../../node_modules/core-js/internals/require-object-coercible.js","../../node_modules/core-js/internals/to-indexed-object.js","../../node_modules/core-js/internals/document-all.js","../../node_modules/core-js/internals/is-callable.js","../../node_modules/core-js/internals/is-object.js","../../node_modules/core-js/internals/get-built-in.js","../../node_modules/core-js/internals/object-is-prototype-of.js","../../node_modules/core-js/internals/engine-user-agent.js","../../node_modules/core-js/internals/symbol-constructor-detection.js","../../node_modules/core-js/internals/use-symbol-as-uid.js","../../node_modules/core-js/internals/is-symbol.js","../../node_modules/core-js/internals/try-to-string.js","../../node_modules/core-js/internals/a-callable.js","../../node_modules/core-js/internals/get-method.js","../../node_modules/core-js/internals/ordinary-to-primitive.js","../../node_modules/core-js/internals/define-global-property.js","../../node_modules/core-js/internals/shared-store.js","../../node_modules/core-js/internals/shared.js","../../node_modules/core-js/internals/to-object.js","../../node_modules/core-js/internals/has-own-property.js","../../node_modules/core-js/internals/uid.js","../../node_modules/core-js/internals/well-known-symbol.js","../../node_modules/core-js/internals/to-primitive.js","../../node_modules/core-js/internals/to-property-key.js","../../node_modules/core-js/internals/document-create-element.js","../../node_modules/core-js/internals/ie8-dom-define.js","../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../node_modules/core-js/internals/v8-prototype-define-bug.js","../../node_modules/core-js/internals/an-object.js","../../node_modules/core-js/internals/object-define-property.js","../../node_modules/core-js/internals/create-non-enumerable-property.js","../../node_modules/core-js/internals/function-name.js","../../node_modules/core-js/internals/inspect-source.js","../../node_modules/core-js/internals/internal-state.js","../../node_modules/core-js/internals/weak-map-basic-detection.js","../../node_modules/core-js/internals/shared-key.js","../../node_modules/core-js/internals/hidden-keys.js","../../node_modules/core-js/internals/make-built-in.js","../../node_modules/core-js/internals/define-built-in.js","../../node_modules/core-js/internals/math-trunc.js","../../node_modules/core-js/internals/to-integer-or-infinity.js","../../node_modules/core-js/internals/to-absolute-index.js","../../node_modules/core-js/internals/to-length.js","../../node_modules/core-js/internals/length-of-array-like.js","../../node_modules/core-js/internals/array-includes.js","../../node_modules/core-js/internals/object-keys-internal.js","../../node_modules/core-js/internals/enum-bug-keys.js","../../node_modules/core-js/internals/object-get-own-property-names.js","../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../node_modules/core-js/internals/own-keys.js","../../node_modules/core-js/internals/copy-constructor-properties.js","../../node_modules/core-js/internals/is-forced.js","../../node_modules/core-js/internals/export.js","../../node_modules/core-js/internals/is-array.js","../../node_modules/core-js/internals/does-not-exceed-safe-integer.js","../../node_modules/core-js/internals/create-property.js","../../node_modules/core-js/internals/to-string-tag-support.js","../../node_modules/core-js/internals/classof.js","../../node_modules/core-js/internals/is-constructor.js","../../node_modules/core-js/internals/array-species-constructor.js","../../node_modules/core-js/internals/array-species-create.js","../../node_modules/core-js/internals/array-method-has-species-support.js","../../node_modules/core-js/modules/es.array.concat.js","../../node_modules/core-js/internals/define-built-in-accessor.js","../../node_modules/core-js/modules/es.function.name.js","../../node_modules/core-js/internals/object-keys.js","../../node_modules/core-js/internals/object-assign.js","../../node_modules/core-js/modules/es.object.assign.js","../../node_modules/core-js/internals/object-to-string.js","../../node_modules/core-js/modules/es.object.to-string.js","../../node_modules/core-js/internals/engine-is-node.js","../../node_modules/core-js/internals/task.js","../../node_modules/core-js/internals/function-uncurry-this-accessor.js","../../node_modules/core-js/internals/a-possible-prototype.js","../../node_modules/core-js/internals/object-set-prototype-of.js","../../node_modules/core-js/internals/set-to-string-tag.js","../../node_modules/core-js/internals/set-species.js","../../node_modules/core-js/internals/an-instance.js","../../node_modules/core-js/internals/a-constructor.js","../../node_modules/core-js/internals/species-constructor.js","../../node_modules/core-js/internals/function-apply.js","../../node_modules/core-js/internals/function-uncurry-this-clause.js","../../node_modules/core-js/internals/function-bind-context.js","../../node_modules/core-js/internals/html.js","../../node_modules/core-js/internals/array-slice.js","../../node_modules/core-js/internals/validate-arguments-length.js","../../node_modules/core-js/internals/engine-is-ios.js","../../node_modules/core-js/internals/queue.js","../../node_modules/core-js/internals/microtask.js","../../node_modules/core-js/internals/engine-is-ios-pebble.js","../../node_modules/core-js/internals/engine-is-webos-webkit.js","../../node_modules/core-js/internals/perform.js","../../node_modules/core-js/internals/promise-native-constructor.js","../../node_modules/core-js/internals/engine-is-deno.js","../../node_modules/core-js/internals/engine-is-browser.js","../../node_modules/core-js/internals/promise-constructor-detection.js","../../node_modules/core-js/internals/new-promise-capability.js","../../node_modules/core-js/modules/es.promise.constructor.js","../../node_modules/core-js/internals/host-report-errors.js","../../node_modules/core-js/internals/iterators.js","../../node_modules/core-js/internals/is-array-iterator-method.js","../../node_modules/core-js/internals/get-iterator-method.js","../../node_modules/core-js/internals/get-iterator.js","../../node_modules/core-js/internals/iterator-close.js","../../node_modules/core-js/internals/iterate.js","../../node_modules/core-js/internals/check-correctness-of-iteration.js","../../node_modules/core-js/internals/promise-statics-incorrect-iteration.js","../../node_modules/core-js/modules/es.promise.all.js","../../node_modules/core-js/modules/es.promise.catch.js","../../node_modules/core-js/modules/es.promise.race.js","../../node_modules/core-js/modules/es.promise.reject.js","../../node_modules/core-js/internals/promise-resolve.js","../../node_modules/core-js/modules/es.promise.resolve.js","../../node_modules/core-js/internals/object-define-properties.js","../../node_modules/core-js/internals/object-create.js","../../node_modules/core-js/internals/add-to-unscopables.js","../../node_modules/core-js/internals/iterators-core.js","../../node_modules/core-js/internals/correct-prototype-getter.js","../../node_modules/core-js/internals/object-get-prototype-of.js","../../node_modules/core-js/internals/iterator-create-constructor.js","../../node_modules/core-js/internals/iterator-define.js","../../node_modules/core-js/internals/create-iter-result-object.js","../../node_modules/core-js/modules/es.array.iterator.js","../../node_modules/core-js/internals/to-string.js","../../node_modules/core-js/internals/string-multibyte.js","../../node_modules/core-js/modules/es.string.iterator.js","../../node_modules/core-js/internals/array-slice-simple.js","../../node_modules/core-js/internals/object-get-own-property-names-external.js","../../node_modules/core-js/internals/array-buffer-non-extensible.js","../../node_modules/core-js/internals/object-is-extensible.js","../../node_modules/core-js/internals/freezing.js","../../node_modules/core-js/internals/internal-metadata.js","../../node_modules/core-js/internals/inherit-if-required.js","../../node_modules/core-js/internals/collection.js","../../node_modules/core-js/internals/define-built-ins.js","../../node_modules/core-js/internals/array-iteration.js","../../node_modules/core-js/internals/collection-weak.js","../../node_modules/core-js/modules/es.weak-set.constructor.js","../../node_modules/core-js/internals/dom-iterables.js","../../node_modules/core-js/internals/dom-token-list-prototype.js","../../node_modules/core-js/modules/web.dom-collections.iterator.js","../../node_modules/tslib/tslib.es6.js","../../../src/plugins/Tooltip.ts"],"sourcesContent":["var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.30.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineBuiltInAccessor(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var classof = require('../internals/classof-raw');\n\nmodule.exports = typeof process != 'undefined' && classof(process) == 'process';\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","module.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","module.exports = {};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (state) {\n return state.frozen || (state.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) splice(this.entries, index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n defineBuiltIns(Prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && hasOwn(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && hasOwn(data, state.id);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return Constructor;\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.es/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport default {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __createBinding,\r\n __exportStar,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n __classPrivateFieldIn,\r\n};\r\n","import { createPopper } from '@popperjs/core';\n\nimport type dayjs from 'dayjs';\nimport type { VirtualElement, StrictModifiers } from '@popperjs/core';\nimport type CalHeatmap from '../CalHeatmap';\nimport type { IPlugin, PluginOptions, Timestamp } from '../index';\n\nconst DEFAULT_SELECTOR = '#ch-tooltip';\n\ninterface PopperOptions {\n placement: any;\n modifiers: any[];\n strategy: any;\n onFirstUpdate?: any;\n}\n\ninterface TooltipOptions extends PluginOptions, PopperOptions {\n enabled: boolean;\n text: (timestamp: Timestamp, value: number, dayjsDate: dayjs.Dayjs) => string;\n}\n\nconst defaultOptions: Partial<TooltipOptions> = {\n enabled: true,\n\n // Expecting a function, which will return the tooltip content\n text: (_timestamp, value, dayjsDate): string =>\n // eslint-disable-next-line implicit-arrow-linebreak\n `${value} - ${dayjsDate.format('LLLL')}`,\n};\n\nconst DEFAULT_POPPER_OPTIONS = {\n placement: 'top',\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 8],\n },\n },\n ],\n};\n\nconst virtualElement: VirtualElement = {\n getBoundingClientRect(x = 0, y = 0): DOMRect {\n return {\n width: 0,\n height: 0,\n top: y,\n right: x,\n bottom: y,\n left: x,\n x,\n y,\n toJSON: () => {},\n };\n },\n};\n\nexport default class Tooltip implements IPlugin {\n name = 'Tooltip';\n\n calendar: CalHeatmap;\n\n root: HTMLElement | null;\n\n popperInstance: any;\n\n popperOptions: any;\n\n options: Partial<TooltipOptions>;\n\n listenerAttached: boolean;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n this.root = null;\n this.popperInstance = null;\n this.options = defaultOptions;\n this.listenerAttached = false;\n }\n\n setup(pluginOptions?: Partial<TooltipOptions>): void {\n this.options = { ...defaultOptions, ...pluginOptions };\n const event = this.calendar.eventEmitter;\n\n if (!this.options.enabled) {\n if (this.listenerAttached) {\n event.off('mouseover', this.mouseOverCallback, this);\n event.off('mouseout', this.mouseOutCallback, this);\n\n this.listenerAttached = false;\n }\n\n this.destroy();\n return;\n }\n\n this.popperOptions = { ...DEFAULT_POPPER_OPTIONS, ...this.options };\n\n this.root = document.getElementById(DEFAULT_SELECTOR.slice(1));\n\n if (!this.root) {\n const tooltipElem = document.createElement('div');\n tooltipElem.setAttribute('id', DEFAULT_SELECTOR.slice(1));\n tooltipElem.setAttribute('role', 'tooltip');\n tooltipElem.innerHTML =\n `<div id=\"${DEFAULT_SELECTOR.slice(\n 1,\n )}-arrow\" data-popper-arrow=\"true\"></div>` +\n `<span id=\"${DEFAULT_SELECTOR.slice(1)}-body\"></span>`;\n\n this.root = document.body.appendChild(tooltipElem);\n }\n\n this.root.setAttribute('data-theme', this.calendar.options.options.theme);\n\n this.popperInstance = createPopper<StrictModifiers>(\n virtualElement,\n this.root,\n this.popperOptions,\n );\n\n if (!this.listenerAttached) {\n event.on('mouseover', this.mouseOverCallback, this);\n event.on('mouseout', this.mouseOutCallback, this);\n this.listenerAttached = true;\n }\n }\n\n mouseOverCallback(e: PointerEvent, timestamp: Timestamp, value: number) {\n this.#show(e.target, timestamp, value);\n }\n\n mouseOutCallback() {\n this.#hide();\n }\n\n // eslint-disable-next-line class-methods-use-this\n paint(): Promise<unknown> {\n return Promise.resolve();\n }\n\n destroy(): Promise<unknown> {\n if (this.root) {\n this.root.remove();\n }\n\n return Promise.resolve();\n }\n\n #show(e: any, timestamp: Timestamp, value: number): void {\n const formatter = this.options.text;\n const title = formatter ?\n formatter(timestamp, value, this.calendar.dateHelper.date(timestamp)) :\n null;\n\n if (!title) {\n return;\n }\n\n virtualElement.getBoundingClientRect = () => e.getBoundingClientRect();\n document.getElementById(`${DEFAULT_SELECTOR.slice(1)}-body`)!.innerHTML =\n title;\n\n this.popperInstance.setOptions(() => ({\n ...this.popperOptions,\n modifiers: [\n ...this.popperOptions.modifiers,\n { name: 'eventListeners', enabled: true },\n ],\n }));\n\n this.popperInstance.update();\n\n this.root!.setAttribute('data-show', '1');\n }\n\n #hide(): void {\n this.root!.removeAttribute('data-show');\n\n this.popperInstance.setOptions(() => ({\n ...this.popperOptions,\n modifiers: [\n ...this.popperOptions.modifiers,\n { name: 'eventListeners', enabled: false },\n ],\n }));\n }\n}\n"],"names":["commonjsGlobal","globalThis","window","global","self","check","it","Math","this","Function","objectGetOwnPropertyDescriptor","fails","exec","error","descriptors","require$$0","Object","defineProperty","get","functionBindNative","test","bind","hasOwnProperty","NATIVE_BIND","call","prototype","functionCall","apply","arguments","$propertyIsEnumerable","propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","objectPropertyIsEnumerable","f","V","descriptor","enumerable","match","version","createPropertyDescriptor","bitmap","value","configurable","writable","FunctionPrototype","uncurryThisWithBind","functionUncurryThis","fn","uncurryThis","toString","stringSlice","slice","classofRaw","require$$1","classof","require$$2","$Object","split","indexedObject","isNullOrUndefined","$TypeError","TypeError","requireObjectCoercible","IndexedObject","toIndexedObject","documentAll","document","all","documentAll_1","IS_HTMLDDA","undefined","isCallable","argument","isObject","getBuiltIn","namespace","method","length","objectIsPrototypeOf","isPrototypeOf","engineUserAgent","navigator","String","userAgent","process","Deno","versions","v8","engineV8Version","V8_VERSION","$String","symbolConstructorDetection","getOwnPropertySymbols","symbol","Symbol","sham","useSymbolAsUid","iterator","isSymbol","require$$3","$Symbol","tryToString","aCallable","getMethod","P","func","shared$3","exports","defineGlobalProperty","key","SHARED","sharedStore","store","sharedModule","push","mode","copyright","license","source","toObject","hasOwnProperty_1","hasOwn","id","postfix","random","uid","shared","NATIVE_SYMBOL","require$$4","USE_SYMBOL_AS_UID","require$$5","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","wellKnownSymbol","name","ordinaryToPrimitive","input","pref","val","valueOf","TO_PRIMITIVE","toPrimitive","result","exoticToPrim","toPropertyKey","EXISTS","createElement","documentCreateElement","ie8DomDefine","a","DESCRIPTORS","propertyIsEnumerableModule","require$$6","IE8_DOM_DEFINE","require$$7","$getOwnPropertyDescriptor","O","objectDefineProperty","v8PrototypeDefineBug","anObject","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","ENUMERABLE","CONFIGURABLE","WRITABLE","Attributes","current","definePropertyModule","createNonEnumerableProperty","object","makeBuiltIn$3","getDescriptor","functionName","PROPER","functionToString","inspectSource","set","has","WeakMap","weakMapBasicDetection","keys","sharedKey","hiddenKeys","NATIVE_WEAK_MAP","OBJECT_ALREADY_INITIALIZED","state","metadata","facade","STATE","internalState","enforce","getterFor","TYPE","type","CONFIGURABLE_FUNCTION_NAME","enforceInternalState","getInternalState","replace","join","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","makeBuiltInModule","options","getter","setter","arity","constructor","defineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","ceil","floor","trunc","x","n","toIntegerOrInfinity","number","max","min","toAbsoluteIndex","index","integer","toLength","lengthOfArrayLike","obj","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","includes","indexOf","objectKeysInternal","names","i","enumBugKeys","internalObjectKeys","concat","objectGetOwnPropertyNames","getOwnPropertyNames","objectGetOwnPropertySymbols","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","isForced_1","copyConstructorProperties","target","exceptions","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","isArray","Array","createProperty","propertyKey","toStringTagSupport","TO_STRING_TAG_SUPPORT","TO_STRING_TAG","CORRECT_ARGUMENTS","tag","tryGet","callee","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","isConstructor","called","SPECIES","$Array","arraySpeciesConstructor","originalArray","C","arraySpeciesCreate","$","doesNotExceedSafeInteger","require$$8","arrayMethodHasSpeciesSupport","METHOD_NAME","array","foo","Boolean","require$$11","IS_CONCAT_SPREADABLE","require$$10","IS_CONCAT_SPREADABLE_SUPPORT","isConcatSpreadable","spreadable","proto","arg","k","len","E","A","defineBuiltInAccessor","FUNCTION_NAME_EXISTS","nameRE","regExpExec","objectKeys","$assign","assign","objectAssign","b","B","alphabet","forEach","chr","T","argumentsLength","S","j","$location","defer","channel","port","engineIsNode","uncurryThisAccessor","aPossiblePrototype","objectSetPrototypeOf","setPrototypeOf","CORRECT_SETTER","__proto__","setToStringTag","TAG","anInstance","Prototype","aConstructor","functionApply","Reflect","functionBindContext","that","html","arraySlice","engineIsIos","validateArgumentsLength","passed","required","IS_IOS","IS_NODE","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","location","run","runner","eventListener","event","globalPostMessageDefer","postMessage","protocol","host","handler","args","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","appendChild","removeChild","setTimeout","task","Queue","head","tail","add","item","entry","next","notify","toggle","node","promise","then","engineIsIosPebble","Pebble","engineIsWebosWebkit","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","Promise","queueMicrotaskDescriptor","microtask","flush","parent","domain","exit","enter","resolve","createTextNode","observe","characterData","microtask_1","perform","promiseNativeConstructor","engineIsDeno","engineIsBrowser","NativePromiseConstructor","IS_BROWSER","IS_DENO","require$$9","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","promiseConstructorDetection","CONSTRUCTOR","REJECTION_EVENT","newPromiseCapability$2","PromiseCapability","reject","$$resolve","$$reject","newPromiseCapability","Internal","OwnPromiseCapability","nativeThen","setSpecies","CONSTRUCTOR_NAME","Constructor","require$$12","speciesConstructor","defaultConstructor","require$$14","require$$15","hostReportErrors","console","require$$17","require$$18","InternalStateModule","require$$19","require$$20","newPromiseCapabilityModule","require$$22","PROMISE","require$$21","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","setInternalState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","ok","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","isUnhandled","emit","unwrap","internalReject","done","internalResolve","wrapper","executor","onFulfilled","onRejected","PromiseWrapper","wrap","iterators","Iterators","ITERATOR","ArrayPrototype","getIteratorMethod","isArrayIteratorMethod","getIterator","usingIterator","iteratorMethod","iteratorClose","kind","innerResult","innerError","Result","stopped","ResultPrototype","iterate","iterable","unboundFunction","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","SAFE_CLOSING","iteratorWithReturn","return","from","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","promiseStaticsIncorrectIteration","capability","$promiseResolve","values","remaining","alreadyCalled","real","catch","race","r","promiseResolve","promiseCapability","objectDefineProperties","defineProperties","Properties","props","activeXDocument","definePropertiesModule","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","style","display","src","contentWindow","open","F","objectCreate","create","UNSCOPABLES","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","correctPrototypeGetter","getPrototypeOf","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","objectGetPrototypeOf","BUGGY_SAFARI_ITERATORS","NEW_ITERATOR_PROTOTYPE","iteratorsCore","returnThis","createIteratorConstructor","IteratorConstructor","NAME","ENUMERABLE_NEXT","PROPER_FUNCTION_NAME","require$$13","KEYS","VALUES","ENTRIES","iteratorDefine","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","createIterResultObject","addToUnscopables","defineIterator","ARRAY_ITERATOR","es_array_iterator","iterated","Arguments","charAt","charCodeAt","CONVERT_TO_STRING","pos","first","second","position","size","codeAt","STRING_ITERATOR","point","internalMetadata","objectGetOwnPropertyNamesExternal","$getOwnPropertyNames","start","end","fin","windowNames","getWindowNames","arrayBufferNonExtensible","ArrayBuffer","buffer","isExtensible","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","objectIsExtensible","freezing","preventExtensions","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","meta","internalMetadataModule","enable","splice","fastKey","getWeakData","onFreeze","InternalMetadataModule","inheritIfRequired","dummy","Wrapper","NewTarget","NewTargetPrototype","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","boundFunction","arrayIteration","map","filter","some","every","find","findIndex","filterReject","defineBuiltIns","internalStateGetterFor","uncaughtFrozenStore","frozen","UncaughtFrozenStore","findUncaughtFrozen","delete","collectionWeak","getConstructor","ADDER","define","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setStrong","collection","init","classList","DOMTokenListPrototype","domTokenListPrototype","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","__classPrivateFieldGet","receiver","DEFAULT_SELECTOR","defaultOptions","enabled","text","_timestamp","dayjsDate","format","DEFAULT_POPPER_OPTIONS","placement","modifiers","offset","virtualElement","getBoundingClientRect","y","width","height","top","right","bottom","left","toJSON","Tooltip","calendar","_classCallCheck","root","popperInstance","listenerAttached","pluginOptions","eventEmitter","off","mouseOverCallback","mouseOutCallback","destroy","popperOptions","getElementById","tooltipElem","setAttribute","innerHTML","body","theme","createPopper","on","e","timestamp","_Tooltip_instances","_Tooltip_show","_Tooltip_hide","remove","_this","formatter","title","dateHelper","date","setOptions","_toConsumableArray","update","_this2","removeAttribute"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153]} \ No newline at end of file diff --git a/static/javascripts/cal-heatmap/plugins/Tooltip.min.js b/static/javascripts/cal-heatmap/plugins/Tooltip.min.js new file mode 100644 index 000000000..fd522a196 --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/Tooltip.min.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Tooltip=e(t.Popper)}(this,(function(t){"use strict";function e(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,(o=r.key,i=void 0,"symbol"==typeof(i=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(o,"string"))?i:String(i)),r)}var o,i}function n(t){return function(t){if(Array.isArray(t))return r(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return r(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var o="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},i=function(t){return t&&t.Math==Math&&t},c=i("object"==typeof globalThis&&globalThis)||i("object"==typeof window&&window)||i("object"==typeof self&&self)||i("object"==typeof o&&o)||function(){return this}()||o||Function("return this")(),u={},a=function(t){try{return!!t()}catch(t){return!0}},f=!a((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),s=!a((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})),l=s,p=Function.prototype.call,h=l?p.bind(p):function(){return p.apply(p,arguments)},v={},d={}.propertyIsEnumerable,y=Object.getOwnPropertyDescriptor,b=y&&!d.call({1:2},1);v.f=b?function(t){var e=y(this,t);return!!e&&e.enumerable}:d;var g,m,O=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},w=s,S=Function.prototype,j=S.call,T=w&&S.bind.bind(j,j),E=w?T:function(t){return function(){return j.apply(t,arguments)}},P=E,A=P({}.toString),C=P("".slice),I=function(t){return C(A(t),8,-1)},x=a,L=I,R=Object,k=E("".split),M=x((function(){return!R("z").propertyIsEnumerable(0)}))?function(t){return"String"==L(t)?k(t,""):R(t)}:R,N=function(t){return null==t},_=N,D=TypeError,F=function(t){if(_(t))throw D("Can't call method on "+t);return t},B=M,G=F,U=function(t){return B(G(t))},z="object"==typeof document&&document.all,W={all:z,IS_HTMLDDA:void 0===z&&void 0!==z},H=W.all,V=W.IS_HTMLDDA?function(t){return"function"==typeof t||t===H}:function(t){return"function"==typeof t},q=V,J=W.all,K=W.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:q(t)||t===J}:function(t){return"object"==typeof t?null!==t:q(t)},X=c,Y=V,$=function(t,e){return arguments.length<2?(n=X[t],Y(n)?n:void 0):X[t]&&X[t][e];var n},Q=E({}.isPrototypeOf),Z="undefined"!=typeof navigator&&String(navigator.userAgent)||"",tt=c,et=Z,nt=tt.process,rt=tt.Deno,ot=nt&&nt.versions||rt&&rt.version,it=ot&&ot.v8;it&&(m=(g=it.split("."))[0]>0&&g[0]<4?1:+(g[0]+g[1])),!m&&et&&(!(g=et.match(/Edge\/(\d+)/))||g[1]>=74)&&(g=et.match(/Chrome\/(\d+)/))&&(m=+g[1]);var ct=m,ut=ct,at=a,ft=c.String,st=!!Object.getOwnPropertySymbols&&!at((function(){var t=Symbol();return!ft(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&ut&&ut<41})),lt=st&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,pt=$,ht=V,vt=Q,dt=Object,yt=lt?function(t){return"symbol"==typeof t}:function(t){var e=pt("Symbol");return ht(e)&&vt(e.prototype,dt(t))},bt=String,gt=function(t){try{return bt(t)}catch(t){return"Object"}},mt=V,Ot=gt,wt=TypeError,St=function(t){if(mt(t))return t;throw wt(Ot(t)+" is not a function")},jt=St,Tt=N,Et=function(t,e){var n=t[e];return Tt(n)?void 0:jt(n)},Pt=h,At=V,Ct=K,It=TypeError,xt={exports:{}},Lt=c,Rt=Object.defineProperty,kt=function(t,e){try{Rt(Lt,t,{value:e,configurable:!0,writable:!0})}catch(n){Lt[t]=e}return e},Mt=kt,Nt="__core-js_shared__",_t=c[Nt]||Mt(Nt,{}),Dt=_t;(xt.exports=function(t,e){return Dt[t]||(Dt[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.30.2",mode:"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE",source:"https://github.com/zloirock/core-js"});var Ft=xt.exports,Bt=F,Gt=Object,Ut=function(t){return Gt(Bt(t))},zt=Ut,Wt=E({}.hasOwnProperty),Ht=Object.hasOwn||function(t,e){return Wt(zt(t),e)},Vt=E,qt=0,Jt=Math.random(),Kt=Vt(1..toString),Xt=function(t){return"Symbol("+(void 0===t?"":t)+")_"+Kt(++qt+Jt,36)},Yt=Ft,$t=Ht,Qt=Xt,Zt=st,te=lt,ee=c.Symbol,ne=Yt("wks"),re=te?ee.for||ee:ee&&ee.withoutSetter||Qt,oe=function(t){return $t(ne,t)||(ne[t]=Zt&&$t(ee,t)?ee[t]:re("Symbol."+t)),ne[t]},ie=h,ce=K,ue=yt,ae=Et,fe=function(t,e){var n,r;if("string"===e&&At(n=t.toString)&&!Ct(r=Pt(n,t)))return r;if(At(n=t.valueOf)&&!Ct(r=Pt(n,t)))return r;if("string"!==e&&At(n=t.toString)&&!Ct(r=Pt(n,t)))return r;throw It("Can't convert object to primitive value")},se=TypeError,le=oe("toPrimitive"),pe=function(t,e){if(!ce(t)||ue(t))return t;var n,r=ae(t,le);if(r){if(void 0===e&&(e="default"),n=ie(r,t,e),!ce(n)||ue(n))return n;throw se("Can't convert object to primitive value")}return void 0===e&&(e="number"),fe(t,e)},he=yt,ve=function(t){var e=pe(t,"string");return he(e)?e:e+""},de=K,ye=c.document,be=de(ye)&&de(ye.createElement),ge=function(t){return be?ye.createElement(t):{}},me=ge,Oe=!f&&!a((function(){return 7!=Object.defineProperty(me("div"),"a",{get:function(){return 7}}).a})),we=f,Se=h,je=v,Te=O,Ee=U,Pe=ve,Ae=Ht,Ce=Oe,Ie=Object.getOwnPropertyDescriptor;u.f=we?Ie:function(t,e){if(t=Ee(t),e=Pe(e),Ce)try{return Ie(t,e)}catch(t){}if(Ae(t,e))return Te(!Se(je.f,t,e),t[e])};var xe={},Le=f&&a((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),Re=K,ke=String,Me=TypeError,Ne=function(t){if(Re(t))return t;throw Me(ke(t)+" is not an object")},_e=f,De=Oe,Fe=Le,Be=Ne,Ge=ve,Ue=TypeError,ze=Object.defineProperty,We=Object.getOwnPropertyDescriptor,He="enumerable",Ve="configurable",qe="writable";xe.f=_e?Fe?function(t,e,n){if(Be(t),e=Ge(e),Be(n),"function"==typeof t&&"prototype"===e&&"value"in n&&qe in n&&!n[qe]){var r=We(t,e);r&&r[qe]&&(t[e]=n.value,n={configurable:Ve in n?n[Ve]:r[Ve],enumerable:He in n?n[He]:r[He],writable:!1})}return ze(t,e,n)}:ze:function(t,e,n){if(Be(t),e=Ge(e),Be(n),De)try{return ze(t,e,n)}catch(t){}if("get"in n||"set"in n)throw Ue("Accessors not supported");return"value"in n&&(t[e]=n.value),t};var Je=xe,Ke=O,Xe=f?function(t,e,n){return Je.f(t,e,Ke(1,n))}:function(t,e,n){return t[e]=n,t},Ye={exports:{}},$e=f,Qe=Ht,Ze=Function.prototype,tn=$e&&Object.getOwnPropertyDescriptor,en=Qe(Ze,"name"),nn={EXISTS:en,PROPER:en&&"something"===function(){}.name,CONFIGURABLE:en&&(!$e||$e&&tn(Ze,"name").configurable)},rn=V,on=_t,cn=E(Function.toString);rn(on.inspectSource)||(on.inspectSource=function(t){return cn(t)});var un,an,fn,sn=on.inspectSource,ln=V,pn=c.WeakMap,hn=ln(pn)&&/native code/.test(String(pn)),vn=Xt,dn=Ft("keys"),yn=function(t){return dn[t]||(dn[t]=vn(t))},bn={},gn=hn,mn=c,On=K,wn=Xe,Sn=Ht,jn=_t,Tn=yn,En=bn,Pn="Object already initialized",An=mn.TypeError,Cn=mn.WeakMap;if(gn||jn.state){var In=jn.state||(jn.state=new Cn);In.get=In.get,In.has=In.has,In.set=In.set,un=function(t,e){if(In.has(t))throw An(Pn);return e.facade=t,In.set(t,e),e},an=function(t){return In.get(t)||{}},fn=function(t){return In.has(t)}}else{var xn=Tn("state");En[xn]=!0,un=function(t,e){if(Sn(t,xn))throw An(Pn);return e.facade=t,wn(t,xn,e),e},an=function(t){return Sn(t,xn)?t[xn]:{}},fn=function(t){return Sn(t,xn)}}var Ln={set:un,get:an,has:fn,enforce:function(t){return fn(t)?an(t):un(t,{})},getterFor:function(t){return function(e){var n;if(!On(e)||(n=an(e)).type!==t)throw An("Incompatible receiver, "+t+" required");return n}}},Rn=E,kn=a,Mn=V,Nn=Ht,_n=f,Dn=nn.CONFIGURABLE,Fn=sn,Bn=Ln.enforce,Gn=Ln.get,Un=String,zn=Object.defineProperty,Wn=Rn("".slice),Hn=Rn("".replace),Vn=Rn([].join),qn=_n&&!kn((function(){return 8!==zn((function(){}),"length",{value:8}).length})),Jn=String(String).split("String"),Kn=Ye.exports=function(t,e,n){"Symbol("===Wn(Un(e),0,7)&&(e="["+Hn(Un(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!Nn(t,"name")||Dn&&t.name!==e)&&(_n?zn(t,"name",{value:e,configurable:!0}):t.name=e),qn&&n&&Nn(n,"arity")&&t.length!==n.arity&&zn(t,"length",{value:n.arity});try{n&&Nn(n,"constructor")&&n.constructor?_n&&zn(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=Bn(t);return Nn(r,"source")||(r.source=Vn(Jn,"string"==typeof e?e:"")),t};Function.prototype.toString=Kn((function(){return Mn(this)&&Gn(this).source||Fn(this)}),"toString");var Xn=Ye.exports,Yn=V,$n=xe,Qn=Xn,Zn=kt,tr=function(t,e,n,r){r||(r={});var o=r.enumerable,i=void 0!==r.name?r.name:e;if(Yn(n)&&Qn(n,i,r),r.global)o?t[e]=n:Zn(e,n);else{try{r.unsafe?t[e]&&(o=!0):delete t[e]}catch(t){}o?t[e]=n:$n.f(t,e,{value:n,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return t},er={},nr=Math.ceil,rr=Math.floor,or=Math.trunc||function(t){var e=+t;return(e>0?rr:nr)(e)},ir=function(t){var e=+t;return e!=e||0===e?0:or(e)},cr=ir,ur=Math.max,ar=Math.min,fr=function(t,e){var n=cr(t);return n<0?ur(n+e,0):ar(n,e)},sr=ir,lr=Math.min,pr=function(t){return t>0?lr(sr(t),9007199254740991):0},hr=function(t){return pr(t.length)},vr=U,dr=fr,yr=hr,br=function(t){return function(e,n,r){var o,i=vr(e),c=yr(i),u=dr(r,c);if(t&&n!=n){for(;c>u;)if((o=i[u++])!=o)return!0}else for(;c>u;u++)if((t||u in i)&&i[u]===n)return t||u||0;return!t&&-1}},gr={includes:br(!0),indexOf:br(!1)},mr=Ht,Or=U,wr=gr.indexOf,Sr=bn,jr=E([].push),Tr=function(t,e){var n,r=Or(t),o=0,i=[];for(n in r)!mr(Sr,n)&&mr(r,n)&&jr(i,n);for(;e.length>o;)mr(r,n=e[o++])&&(~wr(i,n)||jr(i,n));return i},Er=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Pr=Tr,Ar=Er.concat("length","prototype");er.f=Object.getOwnPropertyNames||function(t){return Pr(t,Ar)};var Cr={};Cr.f=Object.getOwnPropertySymbols;var Ir=$,xr=er,Lr=Cr,Rr=Ne,kr=E([].concat),Mr=Ir("Reflect","ownKeys")||function(t){var e=xr.f(Rr(t)),n=Lr.f;return n?kr(e,n(t)):e},Nr=Ht,_r=Mr,Dr=u,Fr=xe,Br=a,Gr=V,Ur=/#|\.prototype\./,zr=function(t,e){var n=Hr[Wr(t)];return n==qr||n!=Vr&&(Gr(e)?Br(e):!!e)},Wr=zr.normalize=function(t){return String(t).replace(Ur,".").toLowerCase()},Hr=zr.data={},Vr=zr.NATIVE="N",qr=zr.POLYFILL="P",Jr=zr,Kr=c,Xr=u.f,Yr=Xe,$r=tr,Qr=kt,Zr=function(t,e,n){for(var r=_r(e),o=Fr.f,i=Dr.f,c=0;c<r.length;c++){var u=r[c];Nr(t,u)||n&&Nr(n,u)||o(t,u,i(e,u))}},to=Jr,eo=function(t,e){var n,r,o,i,c,u=t.target,a=t.global,f=t.stat;if(n=a?Kr:f?Kr[u]||Qr(u,{}):(Kr[u]||{}).prototype)for(r in e){if(i=e[r],o=t.dontCallGetSet?(c=Xr(n,r))&&c.value:n[r],!to(a?r:u+(f?".":"#")+r,t.forced)&&void 0!==o){if(typeof i==typeof o)continue;Zr(i,o)}(t.sham||o&&o.sham)&&Yr(i,"sham",!0),$r(n,r,i,t)}},no=I,ro=Array.isArray||function(t){return"Array"==no(t)},oo=TypeError,io=ve,co=xe,uo=O,ao=function(t,e,n){var r=io(e);r in t?co.f(t,r,uo(0,n)):t[r]=n},fo={};fo[oe("toStringTag")]="z";var so="[object z]"===String(fo),lo=so,po=V,ho=I,vo=oe("toStringTag"),yo=Object,bo="Arguments"==ho(function(){return arguments}()),go=lo?ho:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=yo(t),vo))?n:bo?ho(e):"Object"==(r=ho(e))&&po(e.callee)?"Arguments":r},mo=E,Oo=a,wo=V,So=go,jo=sn,To=function(){},Eo=[],Po=$("Reflect","construct"),Ao=/^\s*(?:class|function)\b/,Co=mo(Ao.exec),Io=!Ao.exec(To),xo=function(t){if(!wo(t))return!1;try{return Po(To,Eo,t),!0}catch(t){return!1}},Lo=function(t){if(!wo(t))return!1;switch(So(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Io||!!Co(Ao,jo(t))}catch(t){return!0}};Lo.sham=!0;var Ro=!Po||Oo((function(){var t;return xo(xo.call)||!xo(Object)||!xo((function(){t=!0}))||t}))?Lo:xo,ko=ro,Mo=Ro,No=K,_o=oe("species"),Do=Array,Fo=function(t){var e;return ko(t)&&(e=t.constructor,(Mo(e)&&(e===Do||ko(e.prototype))||No(e)&&null===(e=e[_o]))&&(e=void 0)),void 0===e?Do:e},Bo=function(t,e){return new(Fo(t))(0===e?0:e)},Go=a,Uo=ct,zo=oe("species"),Wo=eo,Ho=a,Vo=ro,qo=K,Jo=Ut,Ko=hr,Xo=function(t){if(t>9007199254740991)throw oo("Maximum allowed index exceeded");return t},Yo=ao,$o=Bo,Qo=function(t){return Uo>=51||!Go((function(){var e=[];return(e.constructor={})[zo]=function(){return{foo:1}},1!==e[t](Boolean).foo}))},Zo=ct,ti=oe("isConcatSpreadable"),ei=Zo>=51||!Ho((function(){var t=[];return t[ti]=!1,t.concat()[0]!==t})),ni=function(t){if(!qo(t))return!1;var e=t[ti];return void 0!==e?!!e:Vo(t)};Wo({target:"Array",proto:!0,arity:1,forced:!ei||!Qo("concat")},{concat:function(t){var e,n,r,o,i,c=Jo(this),u=$o(c,0),a=0;for(e=-1,r=arguments.length;e<r;e++)if(ni(i=-1===e?c:arguments[e]))for(o=Ko(i),Xo(a+o),n=0;n<o;n++,a++)n in i&&Yo(u,a,i[n]);else Xo(a+1),Yo(u,a++,i);return u.length=a,u}});var ri=Xn,oi=xe,ii=function(t,e,n){return n.get&&ri(n.get,e,{getter:!0}),n.set&&ri(n.set,e,{setter:!0}),oi.f(t,e,n)},ci=f,ui=nn.EXISTS,ai=E,fi=ii,si=Function.prototype,li=ai(si.toString),pi=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,hi=ai(pi.exec);ci&&!ui&&fi(si,"name",{configurable:!0,get:function(){try{return hi(pi,li(this))[1]}catch(t){return""}}});var vi=Tr,di=Er,yi=Object.keys||function(t){return vi(t,di)},bi=f,gi=E,mi=h,Oi=a,wi=yi,Si=Cr,ji=v,Ti=Ut,Ei=M,Pi=Object.assign,Ai=Object.defineProperty,Ci=gi([].concat),Ii=!Pi||Oi((function(){if(bi&&1!==Pi({b:1},Pi(Ai({},"a",{enumerable:!0,get:function(){Ai(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach((function(t){e[t]=t})),7!=Pi({},t)[n]||wi(Pi({},e)).join("")!=r}))?function(t,e){for(var n=Ti(t),r=arguments.length,o=1,i=Si.f,c=ji.f;r>o;)for(var u,a=Ei(arguments[o++]),f=i?Ci(wi(a),i(a)):wi(a),s=f.length,l=0;s>l;)u=f[l++],bi&&!mi(c,a,u)||(n[u]=a[u]);return n}:Pi,xi=Ii;eo({target:"Object",stat:!0,arity:2,forced:Object.assign!==xi},{assign:xi});var Li=go,Ri=so?{}.toString:function(){return"[object "+Li(this)+"]"};so||tr(Object.prototype,"toString",Ri,{unsafe:!0});var ki,Mi,Ni,_i,Di="undefined"!=typeof process&&"process"==I(process),Fi=E,Bi=St,Gi=V,Ui=String,zi=TypeError,Wi=function(t,e,n){try{return Fi(Bi(Object.getOwnPropertyDescriptor(t,e)[n]))}catch(t){}},Hi=Ne,Vi=function(t){if("object"==typeof t||Gi(t))return t;throw zi("Can't set "+Ui(t)+" as a prototype")},qi=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=Wi(Object.prototype,"__proto__","set"))(n,[]),e=n instanceof Array}catch(t){}return function(n,r){return Hi(n),Vi(r),e?t(n,r):n.__proto__=r,n}}():void 0),Ji=xe.f,Ki=Ht,Xi=oe("toStringTag"),Yi=function(t,e,n){t&&!n&&(t=t.prototype),t&&!Ki(t,Xi)&&Ji(t,Xi,{configurable:!0,value:e})},$i=$,Qi=ii,Zi=f,tc=oe("species"),ec=Q,nc=TypeError,rc=function(t,e){if(ec(e,t))return t;throw nc("Incorrect invocation")},oc=Ro,ic=gt,cc=TypeError,uc=Ne,ac=function(t){if(oc(t))return t;throw cc(ic(t)+" is not a constructor")},fc=N,sc=oe("species"),lc=s,pc=Function.prototype,hc=pc.apply,vc=pc.call,dc="object"==typeof Reflect&&Reflect.apply||(lc?vc.bind(hc):function(){return vc.apply(hc,arguments)}),yc=I,bc=E,gc=function(t){if("Function"===yc(t))return bc(t)},mc=St,Oc=s,wc=gc(gc.bind),Sc=function(t,e){return mc(t),void 0===e?t:Oc?wc(t,e):function(){return t.apply(e,arguments)}},jc=$("document","documentElement"),Tc=E([].slice),Ec=TypeError,Pc=/(?:ipad|iphone|ipod).*applewebkit/i.test(Z),Ac=c,Cc=dc,Ic=Sc,xc=V,Lc=Ht,Rc=a,kc=jc,Mc=Tc,Nc=ge,_c=function(t,e){if(t<e)throw Ec("Not enough arguments");return t},Dc=Pc,Fc=Di,Bc=Ac.setImmediate,Gc=Ac.clearImmediate,Uc=Ac.process,zc=Ac.Dispatch,Wc=Ac.Function,Hc=Ac.MessageChannel,Vc=Ac.String,qc=0,Jc={},Kc="onreadystatechange";Rc((function(){ki=Ac.location}));var Xc=function(t){if(Lc(Jc,t)){var e=Jc[t];delete Jc[t],e()}},Yc=function(t){return function(){Xc(t)}},$c=function(t){Xc(t.data)},Qc=function(t){Ac.postMessage(Vc(t),ki.protocol+"//"+ki.host)};Bc&&Gc||(Bc=function(t){_c(arguments.length,1);var e=xc(t)?t:Wc(t),n=Mc(arguments,1);return Jc[++qc]=function(){Cc(e,void 0,n)},Mi(qc),qc},Gc=function(t){delete Jc[t]},Fc?Mi=function(t){Uc.nextTick(Yc(t))}:zc&&zc.now?Mi=function(t){zc.now(Yc(t))}:Hc&&!Dc?(_i=(Ni=new Hc).port2,Ni.port1.onmessage=$c,Mi=Ic(_i.postMessage,_i)):Ac.addEventListener&&xc(Ac.postMessage)&&!Ac.importScripts&&ki&&"file:"!==ki.protocol&&!Rc(Qc)?(Mi=Qc,Ac.addEventListener("message",$c,!1)):Mi=Kc in Nc("script")?function(t){kc.appendChild(Nc("script"))[Kc]=function(){kc.removeChild(this),Xc(t)}}:function(t){setTimeout(Yc(t),0)});var Zc={set:Bc,clear:Gc},tu=function(){this.head=null,this.tail=null};tu.prototype={add:function(t){var e={item:t,next:null},n=this.tail;n?n.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}};var eu,nu,ru,ou,iu,cu=tu,uu=/ipad|iphone|ipod/i.test(Z)&&"undefined"!=typeof Pebble,au=/web0s(?!.*chrome)/i.test(Z),fu=c,su=Sc,lu=u.f,pu=Zc.set,hu=cu,vu=Pc,du=uu,yu=au,bu=Di,gu=fu.MutationObserver||fu.WebKitMutationObserver,mu=fu.document,Ou=fu.process,wu=fu.Promise,Su=lu(fu,"queueMicrotask"),ju=Su&&Su.value;if(!ju){var Tu=new hu,Eu=function(){var t,e;for(bu&&(t=Ou.domain)&&t.exit();e=Tu.get();)try{e()}catch(t){throw Tu.head&&eu(),t}t&&t.enter()};vu||bu||yu||!gu||!mu?!du&&wu&&wu.resolve?((ou=wu.resolve(void 0)).constructor=wu,iu=su(ou.then,ou),eu=function(){iu(Eu)}):bu?eu=function(){Ou.nextTick(Eu)}:(pu=su(pu,fu),eu=function(){pu(Eu)}):(nu=!0,ru=mu.createTextNode(""),new gu(Eu).observe(ru,{characterData:!0}),eu=function(){ru.data=nu=!nu}),ju=function(t){Tu.head||eu(),Tu.add(t)}}var Pu=ju,Au=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},Cu=c.Promise,Iu="object"==typeof Deno&&Deno&&"object"==typeof Deno.version,xu=!Iu&&!Di&&"object"==typeof window&&"object"==typeof document,Lu=c,Ru=Cu,ku=V,Mu=Jr,Nu=sn,_u=oe,Du=xu,Fu=Iu,Bu=ct;Ru&&Ru.prototype;var Gu=_u("species"),Uu=!1,zu=ku(Lu.PromiseRejectionEvent),Wu=Mu("Promise",(function(){var t=Nu(Ru),e=t!==String(Ru);if(!e&&66===Bu)return!0;if(!Bu||Bu<51||!/native code/.test(t)){var n=new Ru((function(t){t(1)})),r=function(t){t((function(){}),(function(){}))};if((n.constructor={})[Gu]=r,!(Uu=n.then((function(){}))instanceof r))return!0}return!e&&(Du||Fu)&&!zu})),Hu={CONSTRUCTOR:Wu,REJECTION_EVENT:zu,SUBCLASSING:Uu},Vu={},qu=St,Ju=TypeError,Ku=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw Ju("Bad Promise constructor");e=t,n=r})),this.resolve=qu(e),this.reject=qu(n)};Vu.f=function(t){return new Ku(t)};var Xu,Yu,$u,Qu=eo,Zu=Di,ta=c,ea=h,na=tr,ra=qi,oa=Yi,ia=function(t){var e=$i(t);Zi&&e&&!e[tc]&&Qi(e,tc,{configurable:!0,get:function(){return this}})},ca=St,ua=V,aa=K,fa=rc,sa=function(t,e){var n,r=uc(t).constructor;return void 0===r||fc(n=uc(r)[sc])?e:ac(n)},la=Zc.set,pa=Pu,ha=function(t,e){try{1==arguments.length?console.error(t):console.error(t,e)}catch(t){}},va=Au,da=cu,ya=Ln,ba=Cu,ga=Vu,ma="Promise",Oa=Hu.CONSTRUCTOR,wa=Hu.REJECTION_EVENT,Sa=Hu.SUBCLASSING,ja=ya.getterFor(ma),Ta=ya.set,Ea=ba&&ba.prototype,Pa=ba,Aa=Ea,Ca=ta.TypeError,Ia=ta.document,xa=ta.process,La=ga.f,Ra=La,ka=!!(Ia&&Ia.createEvent&&ta.dispatchEvent),Ma="unhandledrejection",Na=function(t){var e;return!(!aa(t)||!ua(e=t.then))&&e},_a=function(t,e){var n,r,o,i=e.value,c=1==e.state,u=c?t.ok:t.fail,a=t.resolve,f=t.reject,s=t.domain;try{u?(c||(2===e.rejection&&Ua(e),e.rejection=1),!0===u?n=i:(s&&s.enter(),n=u(i),s&&(s.exit(),o=!0)),n===t.promise?f(Ca("Promise-chain cycle")):(r=Na(n))?ea(r,n,a,f):a(n)):f(i)}catch(t){s&&!o&&s.exit(),f(t)}},Da=function(t,e){t.notified||(t.notified=!0,pa((function(){for(var n,r=t.reactions;n=r.get();)_a(n,t);t.notified=!1,e&&!t.rejection&&Ba(t)})))},Fa=function(t,e,n){var r,o;ka?((r=Ia.createEvent("Event")).promise=e,r.reason=n,r.initEvent(t,!1,!0),ta.dispatchEvent(r)):r={promise:e,reason:n},!wa&&(o=ta["on"+t])?o(r):t===Ma&&ha("Unhandled promise rejection",n)},Ba=function(t){ea(la,ta,(function(){var e,n=t.facade,r=t.value;if(Ga(t)&&(e=va((function(){Zu?xa.emit("unhandledRejection",r,n):Fa(Ma,n,r)})),t.rejection=Zu||Ga(t)?2:1,e.error))throw e.value}))},Ga=function(t){return 1!==t.rejection&&!t.parent},Ua=function(t){ea(la,ta,(function(){var e=t.facade;Zu?xa.emit("rejectionHandled",e):Fa("rejectionhandled",e,t.value)}))},za=function(t,e,n){return function(r){t(e,r,n)}},Wa=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=2,Da(t,!0))},Ha=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw Ca("Promise can't be resolved itself");var r=Na(e);r?pa((function(){var n={done:!1};try{ea(r,e,za(Ha,n,t),za(Wa,n,t))}catch(e){Wa(n,e,t)}})):(t.value=e,t.state=1,Da(t,!1))}catch(e){Wa({done:!1},e,t)}}};if(Oa&&(Aa=(Pa=function(t){fa(this,Aa),ca(t),ea(Xu,this);var e=ja(this);try{t(za(Ha,e),za(Wa,e))}catch(t){Wa(e,t)}}).prototype,(Xu=function(t){Ta(this,{type:ma,done:!1,notified:!1,parent:!1,reactions:new da,rejection:!1,state:0,value:void 0})}).prototype=na(Aa,"then",(function(t,e){var n=ja(this),r=La(sa(this,Pa));return n.parent=!0,r.ok=!ua(t)||t,r.fail=ua(e)&&e,r.domain=Zu?xa.domain:void 0,0==n.state?n.reactions.add(r):pa((function(){_a(r,n)})),r.promise})),Yu=function(){var t=new Xu,e=ja(t);this.promise=t,this.resolve=za(Ha,e),this.reject=za(Wa,e)},ga.f=La=function(t){return t===Pa||undefined===t?new Yu(t):Ra(t)},ua(ba)&&Ea!==Object.prototype)){$u=Ea.then,Sa||na(Ea,"then",(function(t,e){var n=this;return new Pa((function(t,e){ea($u,n,t,e)})).then(t,e)}),{unsafe:!0});try{delete Ea.constructor}catch(t){}ra&&ra(Ea,Aa)}Qu({global:!0,constructor:!0,wrap:!0,forced:Oa},{Promise:Pa}),oa(Pa,ma,!1),ia(ma);var Va={},qa=Va,Ja=oe("iterator"),Ka=Array.prototype,Xa=go,Ya=Et,$a=N,Qa=Va,Za=oe("iterator"),tf=function(t){if(!$a(t))return Ya(t,Za)||Ya(t,"@@iterator")||Qa[Xa(t)]},ef=h,nf=St,rf=Ne,of=gt,cf=tf,uf=TypeError,af=h,ff=Ne,sf=Et,lf=Sc,pf=h,hf=Ne,vf=gt,df=function(t){return void 0!==t&&(qa.Array===t||Ka[Ja]===t)},yf=hr,bf=Q,gf=function(t,e){var n=arguments.length<2?cf(t):e;if(nf(n))return rf(ef(n,t));throw uf(of(t)+" is not iterable")},mf=tf,Of=function(t,e,n){var r,o;ff(t);try{if(!(r=sf(t,"return"))){if("throw"===e)throw n;return n}r=af(r,t)}catch(t){o=!0,r=t}if("throw"===e)throw n;if(o)throw r;return ff(r),n},wf=TypeError,Sf=function(t,e){this.stopped=t,this.result=e},jf=Sf.prototype,Tf=function(t,e,n){var r,o,i,c,u,a,f,s=n&&n.that,l=!(!n||!n.AS_ENTRIES),p=!(!n||!n.IS_RECORD),h=!(!n||!n.IS_ITERATOR),v=!(!n||!n.INTERRUPTED),d=lf(e,s),y=function(t){return r&&Of(r,"normal",t),new Sf(!0,t)},b=function(t){return l?(hf(t),v?d(t[0],t[1],y):d(t[0],t[1])):v?d(t,y):d(t)};if(p)r=t.iterator;else if(h)r=t;else{if(!(o=mf(t)))throw wf(vf(t)+" is not iterable");if(df(o)){for(i=0,c=yf(t);c>i;i++)if((u=b(t[i]))&&bf(jf,u))return u;return new Sf(!1)}r=gf(t,o)}for(a=p?t.next:r.next;!(f=pf(a,r)).done;){try{u=b(f.value)}catch(t){Of(r,"throw",t)}if("object"==typeof u&&u&&bf(jf,u))return u}return new Sf(!1)},Ef=oe("iterator"),Pf=!1;try{var Af=0,Cf={next:function(){return{done:!!Af++}},return:function(){Pf=!0}};Cf[Ef]=function(){return this},Array.from(Cf,(function(){throw 2}))}catch(t){}var If=function(t,e){if(!e&&!Pf)return!1;var n=!1;try{var r={};r[Ef]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(t){}return n},xf=Cu,Lf=Hu.CONSTRUCTOR||!If((function(t){xf.all(t).then(void 0,(function(){}))})),Rf=h,kf=St,Mf=Vu,Nf=Au,_f=Tf;eo({target:"Promise",stat:!0,forced:Lf},{all:function(t){var e=this,n=Mf.f(e),r=n.resolve,o=n.reject,i=Nf((function(){var n=kf(e.resolve),i=[],c=0,u=1;_f(t,(function(t){var a=c++,f=!1;u++,Rf(n,e,t).then((function(t){f||(f=!0,i[a]=t,--u||r(i))}),o)})),--u||r(i)}));return i.error&&o(i.value),n.promise}});var Df=eo,Ff=Hu.CONSTRUCTOR,Bf=Cu,Gf=$,Uf=V,zf=tr,Wf=Bf&&Bf.prototype;if(Df({target:"Promise",proto:!0,forced:Ff,real:!0},{catch:function(t){return this.then(void 0,t)}}),Uf(Bf)){var Hf=Gf("Promise").prototype.catch;Wf.catch!==Hf&&zf(Wf,"catch",Hf,{unsafe:!0})}var Vf=h,qf=St,Jf=Vu,Kf=Au,Xf=Tf;eo({target:"Promise",stat:!0,forced:Lf},{race:function(t){var e=this,n=Jf.f(e),r=n.reject,o=Kf((function(){var o=qf(e.resolve);Xf(t,(function(t){Vf(o,e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}});var Yf=h,$f=Vu;eo({target:"Promise",stat:!0,forced:Hu.CONSTRUCTOR},{reject:function(t){var e=$f.f(this);return Yf(e.reject,void 0,t),e.promise}});var Qf=Ne,Zf=K,ts=Vu,es=eo,ns=Hu.CONSTRUCTOR,rs=function(t,e){if(Qf(t),Zf(e)&&e.constructor===t)return e;var n=ts.f(t);return(0,n.resolve)(e),n.promise};$("Promise"),es({target:"Promise",stat:!0,forced:ns},{resolve:function(t){return rs(this,t)}});var os={},is=f,cs=Le,us=xe,as=Ne,fs=U,ss=yi;os.f=is&&!cs?Object.defineProperties:function(t,e){as(t);for(var n,r=fs(e),o=ss(e),i=o.length,c=0;i>c;)us.f(t,n=o[c++],r[n]);return t};var ls,ps=Ne,hs=os,vs=Er,ds=bn,ys=jc,bs=ge,gs="prototype",ms="script",Os=yn("IE_PROTO"),ws=function(){},Ss=function(t){return"<"+ms+">"+t+"</"+ms+">"},js=function(t){t.write(Ss("")),t.close();var e=t.parentWindow.Object;return t=null,e},Ts=function(){try{ls=new ActiveXObject("htmlfile")}catch(t){}var t,e,n;Ts="undefined"!=typeof document?document.domain&&ls?js(ls):(e=bs("iframe"),n="java"+ms+":",e.style.display="none",ys.appendChild(e),e.src=String(n),(t=e.contentWindow.document).open(),t.write(Ss("document.F=Object")),t.close(),t.F):js(ls);for(var r=vs.length;r--;)delete Ts[gs][vs[r]];return Ts()};ds[Os]=!0;var Es=Object.create||function(t,e){var n;return null!==t?(ws[gs]=ps(t),n=new ws,ws[gs]=null,n[Os]=t):n=Ts(),void 0===e?n:hs.f(n,e)},Ps=oe,As=Es,Cs=xe.f,Is=Ps("unscopables"),xs=Array.prototype;null==xs[Is]&&Cs(xs,Is,{configurable:!0,value:As(null)});var Ls,Rs,ks,Ms=!a((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})),Ns=Ht,_s=V,Ds=Ut,Fs=Ms,Bs=yn("IE_PROTO"),Gs=Object,Us=Gs.prototype,zs=Fs?Gs.getPrototypeOf:function(t){var e=Ds(t);if(Ns(e,Bs))return e[Bs];var n=e.constructor;return _s(n)&&e instanceof n?n.prototype:e instanceof Gs?Us:null},Ws=a,Hs=V,Vs=K,qs=zs,Js=tr,Ks=oe("iterator"),Xs=!1;[].keys&&("next"in(ks=[].keys())?(Rs=qs(qs(ks)))!==Object.prototype&&(Ls=Rs):Xs=!0);var Ys=!Vs(Ls)||Ws((function(){var t={};return Ls[Ks].call(t)!==t}));Ys&&(Ls={}),Hs(Ls[Ks])||Js(Ls,Ks,(function(){return this}));var $s={IteratorPrototype:Ls,BUGGY_SAFARI_ITERATORS:Xs},Qs=$s.IteratorPrototype,Zs=Es,tl=O,el=Yi,nl=Va,rl=function(){return this},ol=eo,il=h,cl=V,ul=function(t,e,n,r){var o=e+" Iterator";return t.prototype=Zs(Qs,{next:tl(+!r,n)}),el(t,o,!1),nl[o]=rl,t},al=zs,fl=qi,sl=Yi,ll=Xe,pl=tr,hl=Va,vl=nn.PROPER,dl=nn.CONFIGURABLE,yl=$s.IteratorPrototype,bl=$s.BUGGY_SAFARI_ITERATORS,gl=oe("iterator"),ml="keys",Ol="values",wl="entries",Sl=function(){return this},jl=function(t,e,n,r,o,i,c){ul(n,e,r);var u,a,f,s=function(t){if(t===o&&d)return d;if(!bl&&t in h)return h[t];switch(t){case ml:case Ol:case wl:return function(){return new n(this,t)}}return function(){return new n(this)}},l=e+" Iterator",p=!1,h=t.prototype,v=h[gl]||h["@@iterator"]||o&&h[o],d=!bl&&v||s(o),y="Array"==e&&h.entries||v;if(y&&(u=al(y.call(new t)))!==Object.prototype&&u.next&&(al(u)!==yl&&(fl?fl(u,yl):cl(u[gl])||pl(u,gl,Sl)),sl(u,l,!0)),vl&&o==Ol&&v&&v.name!==Ol&&(dl?ll(h,"name",Ol):(p=!0,d=function(){return il(v,this)})),o)if(a={values:s(Ol),keys:i?d:s(ml),entries:s(wl)},c)for(f in a)(bl||p||!(f in h))&&pl(h,f,a[f]);else ol({target:e,proto:!0,forced:bl||p},a);return h[gl]!==d&&pl(h,gl,d,{name:o}),hl[e]=d,a},Tl=function(t,e){return{value:t,done:e}},El=U,Pl=function(t){xs[Is][t]=!0},Al=Va,Cl=Ln,Il=xe.f,xl=jl,Ll=Tl,Rl=f,kl="Array Iterator",Ml=Cl.set,Nl=Cl.getterFor(kl),_l=xl(Array,"Array",(function(t,e){Ml(this,{type:kl,target:El(t),index:0,kind:e})}),(function(){var t=Nl(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,Ll(void 0,!0)):Ll("keys"==n?r:"values"==n?e[r]:[r,e[r]],!1)}),"values"),Dl=Al.Arguments=Al.Array;if(Pl("keys"),Pl("values"),Pl("entries"),Rl&&"values"!==Dl.name)try{Il(Dl,"name",{value:"values"})}catch(t){}var Fl=go,Bl=String,Gl=function(t){if("Symbol"===Fl(t))throw TypeError("Cannot convert a Symbol value to a string");return Bl(t)},Ul=E,zl=ir,Wl=Gl,Hl=F,Vl=Ul("".charAt),ql=Ul("".charCodeAt),Jl=Ul("".slice),Kl=function(t){return function(e,n){var r,o,i=Wl(Hl(e)),c=zl(n),u=i.length;return c<0||c>=u?t?"":void 0:(r=ql(i,c))<55296||r>56319||c+1===u||(o=ql(i,c+1))<56320||o>57343?t?Vl(i,c):r:t?Jl(i,c,c+2):o-56320+(r-55296<<10)+65536}},Xl={codeAt:Kl(!1),charAt:Kl(!0)}.charAt,Yl=Gl,$l=Ln,Ql=jl,Zl=Tl,tp="String Iterator",ep=$l.set,np=$l.getterFor(tp);Ql(String,"String",(function(t){ep(this,{type:tp,string:Yl(t),index:0})}),(function(){var t,e=np(this),n=e.string,r=e.index;return r>=n.length?Zl(void 0,!0):(t=Xl(n,r),e.index+=t.length,Zl(t,!1))}));var rp={exports:{}},op={},ip=fr,cp=hr,up=ao,ap=Array,fp=Math.max,sp=I,lp=U,pp=er.f,hp=function(t,e,n){for(var r=cp(t),o=ip(e,r),i=ip(void 0===n?r:n,r),c=ap(fp(i-o,0)),u=0;o<i;o++,u++)up(c,u,t[o]);return c.length=u,c},vp="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];op.f=function(t){return vp&&"Window"==sp(t)?function(t){try{return pp(t)}catch(t){return hp(vp)}}(t):pp(lp(t))};var dp=a((function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}})),yp=a,bp=K,gp=I,mp=dp,Op=Object.isExtensible,wp=yp((function(){Op(1)}))||mp?function(t){return!!bp(t)&&((!mp||"ArrayBuffer"!=gp(t))&&(!Op||Op(t)))}:Op,Sp=!a((function(){return Object.isExtensible(Object.preventExtensions({}))})),jp=eo,Tp=E,Ep=bn,Pp=K,Ap=Ht,Cp=xe.f,Ip=er,xp=op,Lp=wp,Rp=Sp,kp=!1,Mp=Xt("meta"),Np=0,_p=function(t){Cp(t,Mp,{value:{objectID:"O"+Np++,weakData:{}}})},Dp=rp.exports={enable:function(){Dp.enable=function(){},kp=!0;var t=Ip.f,e=Tp([].splice),n={};n[Mp]=1,t(n).length&&(Ip.f=function(n){for(var r=t(n),o=0,i=r.length;o<i;o++)if(r[o]===Mp){e(r,o,1);break}return r},jp({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:xp.f}))},fastKey:function(t,e){if(!Pp(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!Ap(t,Mp)){if(!Lp(t))return"F";if(!e)return"E";_p(t)}return t[Mp].objectID},getWeakData:function(t,e){if(!Ap(t,Mp)){if(!Lp(t))return!0;if(!e)return!1;_p(t)}return t[Mp].weakData},onFreeze:function(t){return Rp&&kp&&Lp(t)&&!Ap(t,Mp)&&_p(t),t}};Ep[Mp]=!0;var Fp=rp.exports,Bp=V,Gp=K,Up=qi,zp=eo,Wp=c,Hp=E,Vp=Jr,qp=tr,Jp=Fp,Kp=Tf,Xp=rc,Yp=V,$p=N,Qp=K,Zp=a,th=If,eh=Yi,nh=function(t,e,n){var r,o;return Up&&Bp(r=e.constructor)&&r!==n&&Gp(o=r.prototype)&&o!==n.prototype&&Up(t,o),t},rh=tr,oh=Sc,ih=M,ch=Ut,uh=hr,ah=Bo,fh=E([].push),sh=function(t){var e=1==t,n=2==t,r=3==t,o=4==t,i=6==t,c=7==t,u=5==t||i;return function(a,f,s,l){for(var p,h,v=ch(a),d=ih(v),y=oh(f,s),b=uh(d),g=0,m=l||ah,O=e?m(a,b):n||c?m(a,0):void 0;b>g;g++)if((u||g in d)&&(h=y(p=d[g],g,v),t))if(e)O[g]=h;else if(h)switch(t){case 3:return!0;case 5:return p;case 6:return g;case 2:fh(O,p)}else switch(t){case 4:return!1;case 7:fh(O,p)}return i?-1:r||o?o:O}},lh={forEach:sh(0),map:sh(1),filter:sh(2),some:sh(3),every:sh(4),find:sh(5),findIndex:sh(6),filterReject:sh(7)},ph=E,hh=function(t,e,n){for(var r in e)rh(t,r,e[r],n);return t},vh=Fp.getWeakData,dh=rc,yh=Ne,bh=N,gh=K,mh=Tf,Oh=Ht,wh=Ln.set,Sh=Ln.getterFor,jh=lh.find,Th=lh.findIndex,Eh=ph([].splice),Ph=0,Ah=function(t){return t.frozen||(t.frozen=new Ch)},Ch=function(){this.entries=[]},Ih=function(t,e){return jh(t.entries,(function(t){return t[0]===e}))};Ch.prototype={get:function(t){var e=Ih(this,t);if(e)return e[1]},has:function(t){return!!Ih(this,t)},set:function(t,e){var n=Ih(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=Th(this.entries,(function(e){return e[0]===t}));return~e&&Eh(this.entries,e,1),!!~e}};var xh={getConstructor:function(t,e,n,r){var o=t((function(t,o){dh(t,i),wh(t,{type:e,id:Ph++,frozen:void 0}),bh(o)||mh(o,t[r],{that:t,AS_ENTRIES:n})})),i=o.prototype,c=Sh(e),u=function(t,e,n){var r=c(t),o=vh(yh(e),!0);return!0===o?Ah(r).set(e,n):o[r.id]=n,t};return hh(i,{delete:function(t){var e=c(this);if(!gh(t))return!1;var n=vh(t);return!0===n?Ah(e).delete(t):n&&Oh(n,e.id)&&delete n[e.id]},has:function(t){var e=c(this);if(!gh(t))return!1;var n=vh(t);return!0===n?Ah(e).has(t):n&&Oh(n,e.id)}}),hh(i,n?{get:function(t){var e=c(this);if(gh(t)){var n=vh(t);return!0===n?Ah(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return u(this,t,e)}}:{add:function(t){return u(this,t,!0)}}),o}};(function(t,e,n){var r=-1!==t.indexOf("Map"),o=-1!==t.indexOf("Weak"),i=r?"set":"add",c=Wp[t],u=c&&c.prototype,a=c,f={},s=function(t){var e=Hp(u[t]);qp(u,t,"add"==t?function(t){return e(this,0===t?0:t),this}:"delete"==t?function(t){return!(o&&!Qp(t))&&e(this,0===t?0:t)}:"get"==t?function(t){return o&&!Qp(t)?void 0:e(this,0===t?0:t)}:"has"==t?function(t){return!(o&&!Qp(t))&&e(this,0===t?0:t)}:function(t,n){return e(this,0===t?0:t,n),this})};if(Vp(t,!Yp(c)||!(o||u.forEach&&!Zp((function(){(new c).entries().next()})))))a=n.getConstructor(e,t,r,i),Jp.enable();else if(Vp(t,!0)){var l=new a,p=l[i](o?{}:-0,1)!=l,h=Zp((function(){l.has(1)})),v=th((function(t){new c(t)})),d=!o&&Zp((function(){for(var t=new c,e=5;e--;)t[i](e,e);return!t.has(-0)}));v||((a=e((function(t,e){Xp(t,u);var n=nh(new c,t,a);return $p(e)||Kp(e,n[i],{that:n,AS_ENTRIES:r}),n}))).prototype=u,u.constructor=a),(h||d)&&(s("delete"),s("has"),r&&s("get")),(d||p)&&s(i),o&&u.clear&&delete u.clear}f[t]=a,zp({global:!0,constructor:!0,forced:a!=c},f),eh(a,t),o||n.setStrong(a,t,r)})("WeakSet",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),xh);var Lh,Rh,kh,Mh=ge("span").classList,Nh=Mh&&Mh.constructor&&Mh.constructor.prototype,_h=Nh===Object.prototype?void 0:Nh,Dh=c,Fh={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Bh=_h,Gh=_l,Uh=Xe,zh=oe,Wh=zh("iterator"),Hh=zh("toStringTag"),Vh=Gh.values,qh=function(t,e){if(t){if(t[Wh]!==Vh)try{Uh(t,Wh,Vh)}catch(e){t[Wh]=Vh}if(t[Hh]||Uh(t,Hh,e),Fh[e])for(var n in Gh)if(t[n]!==Gh[n])try{Uh(t,n,Gh[n])}catch(e){t[n]=Gh[n]}}};for(var Jh in Fh)qh(Dh[Jh]&&Dh[Jh].prototype,Jh);function Kh(t,e,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(t):r?r.value:e.get(t)}qh(Bh,"DOMTokenList");var Xh="#ch-tooltip",Yh={enabled:!0,text:function(t,e,n){return"".concat(e," - ").concat(n.format("LLLL"))}},$h={placement:"top",modifiers:[{name:"offset",options:{offset:[0,8]}}]},Qh={getBoundingClientRect:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return{width:0,height:0,top:e,right:t,bottom:e,left:t,x:t,y:e,toJSON:function(){}}}},Zh=function(){function n(t){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),Lh.add(this),this.name="Tooltip",this.calendar=t,this.root=null,this.popperInstance=null,this.options=Yh,this.listenerAttached=!1}var r,o,i;return r=n,(o=[{key:"setup",value:function(e){this.options=Object.assign(Object.assign({},Yh),e);var n=this.calendar.eventEmitter;if(!this.options.enabled)return this.listenerAttached&&(n.off("mouseover",this.mouseOverCallback,this),n.off("mouseout",this.mouseOutCallback,this),this.listenerAttached=!1),void this.destroy();if(this.popperOptions=Object.assign(Object.assign({},$h),this.options),this.root=document.getElementById(Xh.slice(1)),!this.root){var r=document.createElement("div");r.setAttribute("id",Xh.slice(1)),r.setAttribute("role","tooltip"),r.innerHTML='<div id="'.concat(Xh.slice(1),'-arrow" data-popper-arrow="true"></div>')+'<span id="'.concat(Xh.slice(1),'-body"></span>'),this.root=document.body.appendChild(r)}this.root.setAttribute("data-theme",this.calendar.options.options.theme),this.popperInstance=t.createPopper(Qh,this.root,this.popperOptions),this.listenerAttached||(n.on("mouseover",this.mouseOverCallback,this),n.on("mouseout",this.mouseOutCallback,this),this.listenerAttached=!0)}},{key:"mouseOverCallback",value:function(t,e,n){Kh(this,Lh,"m",Rh).call(this,t.target,e,n)}},{key:"mouseOutCallback",value:function(){Kh(this,Lh,"m",kh).call(this)}},{key:"paint",value:function(){return Promise.resolve()}},{key:"destroy",value:function(){return this.root&&this.root.remove(),Promise.resolve()}}])&&e(r.prototype,o),i&&e(r,i),Object.defineProperty(r,"prototype",{writable:!1}),n}();return Lh=new WeakSet,Rh=function(t,e,r){var o=this,i=this.options.text,c=i?i(e,r,this.calendar.dateHelper.date(e)):null;c&&(Qh.getBoundingClientRect=function(){return t.getBoundingClientRect()},document.getElementById("".concat(Xh.slice(1),"-body")).innerHTML=c,this.popperInstance.setOptions((function(){return Object.assign(Object.assign({},o.popperOptions),{modifiers:[].concat(n(o.popperOptions.modifiers),[{name:"eventListeners",enabled:!0}])})})),this.popperInstance.update(),this.root.setAttribute("data-show","1"))},kh=function(){var t=this;this.root.removeAttribute("data-show"),this.popperInstance.setOptions((function(){return Object.assign(Object.assign({},t.popperOptions),{modifiers:[].concat(n(t.popperOptions.modifiers),[{name:"eventListeners",enabled:!1}])})}))},Zh}));//# sourceMappingURL=Tooltip.min.js.map diff --git a/static/javascripts/cal-heatmap/plugins/Tooltip.min.js.map b/static/javascripts/cal-heatmap/plugins/Tooltip.min.js.map new file mode 100644 index 000000000..f0b496af5 --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/Tooltip.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Tooltip.min.js","sources":["../../node_modules/core-js/internals/global.js","../../node_modules/core-js/internals/fails.js","../../node_modules/core-js/internals/descriptors.js","../../node_modules/core-js/internals/function-bind-native.js","../../node_modules/core-js/internals/function-call.js","../../node_modules/core-js/internals/object-property-is-enumerable.js","../../node_modules/core-js/internals/create-property-descriptor.js","../../node_modules/core-js/internals/engine-v8-version.js","../../node_modules/core-js/internals/function-uncurry-this.js","../../node_modules/core-js/internals/classof-raw.js","../../node_modules/core-js/internals/indexed-object.js","../../node_modules/core-js/internals/is-null-or-undefined.js","../../node_modules/core-js/internals/require-object-coercible.js","../../node_modules/core-js/internals/to-indexed-object.js","../../node_modules/core-js/internals/document-all.js","../../node_modules/core-js/internals/is-callable.js","../../node_modules/core-js/internals/is-object.js","../../node_modules/core-js/internals/get-built-in.js","../../node_modules/core-js/internals/object-is-prototype-of.js","../../node_modules/core-js/internals/engine-user-agent.js","../../node_modules/core-js/internals/symbol-constructor-detection.js","../../node_modules/core-js/internals/use-symbol-as-uid.js","../../node_modules/core-js/internals/is-symbol.js","../../node_modules/core-js/internals/try-to-string.js","../../node_modules/core-js/internals/a-callable.js","../../node_modules/core-js/internals/get-method.js","../../node_modules/core-js/internals/ordinary-to-primitive.js","../../node_modules/core-js/internals/define-global-property.js","../../node_modules/core-js/internals/shared-store.js","../../node_modules/core-js/internals/shared.js","../../node_modules/core-js/internals/to-object.js","../../node_modules/core-js/internals/has-own-property.js","../../node_modules/core-js/internals/uid.js","../../node_modules/core-js/internals/well-known-symbol.js","../../node_modules/core-js/internals/to-primitive.js","../../node_modules/core-js/internals/to-property-key.js","../../node_modules/core-js/internals/document-create-element.js","../../node_modules/core-js/internals/ie8-dom-define.js","../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../node_modules/core-js/internals/v8-prototype-define-bug.js","../../node_modules/core-js/internals/an-object.js","../../node_modules/core-js/internals/object-define-property.js","../../node_modules/core-js/internals/create-non-enumerable-property.js","../../node_modules/core-js/internals/function-name.js","../../node_modules/core-js/internals/inspect-source.js","../../node_modules/core-js/internals/internal-state.js","../../node_modules/core-js/internals/weak-map-basic-detection.js","../../node_modules/core-js/internals/shared-key.js","../../node_modules/core-js/internals/hidden-keys.js","../../node_modules/core-js/internals/make-built-in.js","../../node_modules/core-js/internals/define-built-in.js","../../node_modules/core-js/internals/math-trunc.js","../../node_modules/core-js/internals/to-integer-or-infinity.js","../../node_modules/core-js/internals/to-absolute-index.js","../../node_modules/core-js/internals/to-length.js","../../node_modules/core-js/internals/length-of-array-like.js","../../node_modules/core-js/internals/array-includes.js","../../node_modules/core-js/internals/object-keys-internal.js","../../node_modules/core-js/internals/enum-bug-keys.js","../../node_modules/core-js/internals/object-get-own-property-names.js","../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../node_modules/core-js/internals/own-keys.js","../../node_modules/core-js/internals/copy-constructor-properties.js","../../node_modules/core-js/internals/is-forced.js","../../node_modules/core-js/internals/export.js","../../node_modules/core-js/internals/is-array.js","../../node_modules/core-js/internals/does-not-exceed-safe-integer.js","../../node_modules/core-js/internals/create-property.js","../../node_modules/core-js/internals/to-string-tag-support.js","../../node_modules/core-js/internals/classof.js","../../node_modules/core-js/internals/is-constructor.js","../../node_modules/core-js/internals/array-species-constructor.js","../../node_modules/core-js/internals/array-species-create.js","../../node_modules/core-js/internals/array-method-has-species-support.js","../../node_modules/core-js/modules/es.array.concat.js","../../node_modules/core-js/internals/define-built-in-accessor.js","../../node_modules/core-js/modules/es.function.name.js","../../node_modules/core-js/internals/object-keys.js","../../node_modules/core-js/internals/object-assign.js","../../node_modules/core-js/modules/es.object.assign.js","../../node_modules/core-js/internals/object-to-string.js","../../node_modules/core-js/modules/es.object.to-string.js","../../node_modules/core-js/internals/engine-is-node.js","../../node_modules/core-js/internals/task.js","../../node_modules/core-js/internals/function-uncurry-this-accessor.js","../../node_modules/core-js/internals/a-possible-prototype.js","../../node_modules/core-js/internals/object-set-prototype-of.js","../../node_modules/core-js/internals/set-to-string-tag.js","../../node_modules/core-js/internals/set-species.js","../../node_modules/core-js/internals/an-instance.js","../../node_modules/core-js/internals/a-constructor.js","../../node_modules/core-js/internals/species-constructor.js","../../node_modules/core-js/internals/function-apply.js","../../node_modules/core-js/internals/function-uncurry-this-clause.js","../../node_modules/core-js/internals/function-bind-context.js","../../node_modules/core-js/internals/html.js","../../node_modules/core-js/internals/array-slice.js","../../node_modules/core-js/internals/validate-arguments-length.js","../../node_modules/core-js/internals/engine-is-ios.js","../../node_modules/core-js/internals/queue.js","../../node_modules/core-js/internals/microtask.js","../../node_modules/core-js/internals/engine-is-ios-pebble.js","../../node_modules/core-js/internals/engine-is-webos-webkit.js","../../node_modules/core-js/internals/perform.js","../../node_modules/core-js/internals/promise-native-constructor.js","../../node_modules/core-js/internals/engine-is-deno.js","../../node_modules/core-js/internals/engine-is-browser.js","../../node_modules/core-js/internals/promise-constructor-detection.js","../../node_modules/core-js/internals/new-promise-capability.js","../../node_modules/core-js/modules/es.promise.constructor.js","../../node_modules/core-js/internals/host-report-errors.js","../../node_modules/core-js/internals/iterators.js","../../node_modules/core-js/internals/is-array-iterator-method.js","../../node_modules/core-js/internals/get-iterator-method.js","../../node_modules/core-js/internals/get-iterator.js","../../node_modules/core-js/internals/iterator-close.js","../../node_modules/core-js/internals/iterate.js","../../node_modules/core-js/internals/check-correctness-of-iteration.js","../../node_modules/core-js/internals/promise-statics-incorrect-iteration.js","../../node_modules/core-js/modules/es.promise.all.js","../../node_modules/core-js/modules/es.promise.catch.js","../../node_modules/core-js/modules/es.promise.race.js","../../node_modules/core-js/modules/es.promise.reject.js","../../node_modules/core-js/internals/promise-resolve.js","../../node_modules/core-js/modules/es.promise.resolve.js","../../node_modules/core-js/internals/object-define-properties.js","../../node_modules/core-js/internals/object-create.js","../../node_modules/core-js/internals/add-to-unscopables.js","../../node_modules/core-js/internals/iterators-core.js","../../node_modules/core-js/internals/correct-prototype-getter.js","../../node_modules/core-js/internals/object-get-prototype-of.js","../../node_modules/core-js/internals/iterator-create-constructor.js","../../node_modules/core-js/internals/iterator-define.js","../../node_modules/core-js/internals/create-iter-result-object.js","../../node_modules/core-js/modules/es.array.iterator.js","../../node_modules/core-js/internals/to-string.js","../../node_modules/core-js/internals/string-multibyte.js","../../node_modules/core-js/modules/es.string.iterator.js","../../node_modules/core-js/internals/array-slice-simple.js","../../node_modules/core-js/internals/object-get-own-property-names-external.js","../../node_modules/core-js/internals/array-buffer-non-extensible.js","../../node_modules/core-js/internals/object-is-extensible.js","../../node_modules/core-js/internals/freezing.js","../../node_modules/core-js/internals/internal-metadata.js","../../node_modules/core-js/internals/inherit-if-required.js","../../node_modules/core-js/internals/collection.js","../../node_modules/core-js/internals/define-built-ins.js","../../node_modules/core-js/internals/array-iteration.js","../../node_modules/core-js/internals/collection-weak.js","../../node_modules/core-js/modules/es.weak-set.constructor.js","../../node_modules/core-js/internals/dom-iterables.js","../../node_modules/core-js/internals/dom-token-list-prototype.js","../../node_modules/core-js/modules/web.dom-collections.iterator.js","../../node_modules/tslib/tslib.es6.js","../../../src/plugins/Tooltip.ts"],"sourcesContent":["var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.30.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineBuiltInAccessor(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var classof = require('../internals/classof-raw');\n\nmodule.exports = typeof process != 'undefined' && classof(process) == 'process';\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","module.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","module.exports = {};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (state) {\n return state.frozen || (state.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) splice(this.entries, index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n defineBuiltIns(Prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && hasOwn(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && hasOwn(data, state.id);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return Constructor;\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.es/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport default {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __createBinding,\r\n __exportStar,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n __classPrivateFieldIn,\r\n};\r\n","import { createPopper } from '@popperjs/core';\n\nimport type dayjs from 'dayjs';\nimport type { VirtualElement, StrictModifiers } from '@popperjs/core';\nimport type CalHeatmap from '../CalHeatmap';\nimport type { IPlugin, PluginOptions, Timestamp } from '../index';\n\nconst DEFAULT_SELECTOR = '#ch-tooltip';\n\ninterface PopperOptions {\n placement: any;\n modifiers: any[];\n strategy: any;\n onFirstUpdate?: any;\n}\n\ninterface TooltipOptions extends PluginOptions, PopperOptions {\n enabled: boolean;\n text: (timestamp: Timestamp, value: number, dayjsDate: dayjs.Dayjs) => string;\n}\n\nconst defaultOptions: Partial<TooltipOptions> = {\n enabled: true,\n\n // Expecting a function, which will return the tooltip content\n text: (_timestamp, value, dayjsDate): string =>\n // eslint-disable-next-line implicit-arrow-linebreak\n `${value} - ${dayjsDate.format('LLLL')}`,\n};\n\nconst DEFAULT_POPPER_OPTIONS = {\n placement: 'top',\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 8],\n },\n },\n ],\n};\n\nconst virtualElement: VirtualElement = {\n getBoundingClientRect(x = 0, y = 0): DOMRect {\n return {\n width: 0,\n height: 0,\n top: y,\n right: x,\n bottom: y,\n left: x,\n x,\n y,\n toJSON: () => {},\n };\n },\n};\n\nexport default class Tooltip implements IPlugin {\n name = 'Tooltip';\n\n calendar: CalHeatmap;\n\n root: HTMLElement | null;\n\n popperInstance: any;\n\n popperOptions: any;\n\n options: Partial<TooltipOptions>;\n\n listenerAttached: boolean;\n\n constructor(calendar: CalHeatmap) {\n this.calendar = calendar;\n this.root = null;\n this.popperInstance = null;\n this.options = defaultOptions;\n this.listenerAttached = false;\n }\n\n setup(pluginOptions?: Partial<TooltipOptions>): void {\n this.options = { ...defaultOptions, ...pluginOptions };\n const event = this.calendar.eventEmitter;\n\n if (!this.options.enabled) {\n if (this.listenerAttached) {\n event.off('mouseover', this.mouseOverCallback, this);\n event.off('mouseout', this.mouseOutCallback, this);\n\n this.listenerAttached = false;\n }\n\n this.destroy();\n return;\n }\n\n this.popperOptions = { ...DEFAULT_POPPER_OPTIONS, ...this.options };\n\n this.root = document.getElementById(DEFAULT_SELECTOR.slice(1));\n\n if (!this.root) {\n const tooltipElem = document.createElement('div');\n tooltipElem.setAttribute('id', DEFAULT_SELECTOR.slice(1));\n tooltipElem.setAttribute('role', 'tooltip');\n tooltipElem.innerHTML =\n `<div id=\"${DEFAULT_SELECTOR.slice(\n 1,\n )}-arrow\" data-popper-arrow=\"true\"></div>` +\n `<span id=\"${DEFAULT_SELECTOR.slice(1)}-body\"></span>`;\n\n this.root = document.body.appendChild(tooltipElem);\n }\n\n this.root.setAttribute('data-theme', this.calendar.options.options.theme);\n\n this.popperInstance = createPopper<StrictModifiers>(\n virtualElement,\n this.root,\n this.popperOptions,\n );\n\n if (!this.listenerAttached) {\n event.on('mouseover', this.mouseOverCallback, this);\n event.on('mouseout', this.mouseOutCallback, this);\n this.listenerAttached = true;\n }\n }\n\n mouseOverCallback(e: PointerEvent, timestamp: Timestamp, value: number) {\n this.#show(e.target, timestamp, value);\n }\n\n mouseOutCallback() {\n this.#hide();\n }\n\n // eslint-disable-next-line class-methods-use-this\n paint(): Promise<unknown> {\n return Promise.resolve();\n }\n\n destroy(): Promise<unknown> {\n if (this.root) {\n this.root.remove();\n }\n\n return Promise.resolve();\n }\n\n #show(e: any, timestamp: Timestamp, value: number): void {\n const formatter = this.options.text;\n const title = formatter ?\n formatter(timestamp, value, this.calendar.dateHelper.date(timestamp)) :\n null;\n\n if (!title) {\n return;\n }\n\n virtualElement.getBoundingClientRect = () => e.getBoundingClientRect();\n document.getElementById(`${DEFAULT_SELECTOR.slice(1)}-body`)!.innerHTML =\n title;\n\n this.popperInstance.setOptions(() => ({\n ...this.popperOptions,\n modifiers: [\n ...this.popperOptions.modifiers,\n { name: 'eventListeners', enabled: true },\n ],\n }));\n\n this.popperInstance.update();\n\n this.root!.setAttribute('data-show', '1');\n }\n\n #hide(): void {\n this.root!.removeAttribute('data-show');\n\n this.popperInstance.setOptions(() => ({\n ...this.popperOptions,\n modifiers: [\n ...this.popperOptions.modifiers,\n { name: 'eventListeners', enabled: false },\n ],\n }));\n }\n}\n"],"names":["commonjsGlobal","globalThis","window","global","self","check","it","Math","this","Function","objectGetOwnPropertyDescriptor","fails","exec","error","descriptors","require$$0","Object","defineProperty","get","functionBindNative","test","bind","hasOwnProperty","NATIVE_BIND","call","prototype","functionCall","apply","arguments","$propertyIsEnumerable","propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","objectPropertyIsEnumerable","f","V","descriptor","enumerable","match","version","createPropertyDescriptor","bitmap","value","configurable","writable","FunctionPrototype","uncurryThisWithBind","functionUncurryThis","fn","uncurryThis","toString","stringSlice","slice","classofRaw","require$$1","classof","require$$2","$Object","split","indexedObject","isNullOrUndefined","$TypeError","TypeError","requireObjectCoercible","IndexedObject","toIndexedObject","documentAll","document","all","documentAll_1","IS_HTMLDDA","undefined","isCallable","argument","isObject","getBuiltIn","namespace","method","length","objectIsPrototypeOf","isPrototypeOf","engineUserAgent","navigator","String","userAgent","process","Deno","versions","v8","engineV8Version","V8_VERSION","$String","symbolConstructorDetection","getOwnPropertySymbols","symbol","Symbol","sham","useSymbolAsUid","iterator","isSymbol","require$$3","$Symbol","tryToString","aCallable","getMethod","P","func","shared$3","exports","defineGlobalProperty","key","SHARED","sharedStore","store","sharedModule","push","mode","copyright","license","source","toObject","hasOwnProperty_1","hasOwn","id","postfix","random","uid","shared","NATIVE_SYMBOL","require$$4","USE_SYMBOL_AS_UID","require$$5","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","wellKnownSymbol","name","ordinaryToPrimitive","input","pref","val","valueOf","TO_PRIMITIVE","toPrimitive","result","exoticToPrim","toPropertyKey","EXISTS","createElement","documentCreateElement","ie8DomDefine","a","DESCRIPTORS","propertyIsEnumerableModule","require$$6","IE8_DOM_DEFINE","require$$7","$getOwnPropertyDescriptor","O","objectDefineProperty","v8PrototypeDefineBug","anObject","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","ENUMERABLE","CONFIGURABLE","WRITABLE","Attributes","current","definePropertyModule","createNonEnumerableProperty","object","makeBuiltIn$3","getDescriptor","functionName","PROPER","functionToString","inspectSource","set","has","WeakMap","weakMapBasicDetection","keys","sharedKey","hiddenKeys","NATIVE_WEAK_MAP","OBJECT_ALREADY_INITIALIZED","state","metadata","facade","STATE","internalState","enforce","getterFor","TYPE","type","CONFIGURABLE_FUNCTION_NAME","enforceInternalState","getInternalState","replace","join","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","makeBuiltInModule","options","getter","setter","arity","constructor","defineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","ceil","floor","trunc","x","n","toIntegerOrInfinity","number","max","min","toAbsoluteIndex","index","integer","toLength","lengthOfArrayLike","obj","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","includes","indexOf","objectKeysInternal","names","i","enumBugKeys","internalObjectKeys","concat","objectGetOwnPropertyNames","getOwnPropertyNames","objectGetOwnPropertySymbols","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","isForced_1","copyConstructorProperties","target","exceptions","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","isArray","Array","createProperty","propertyKey","toStringTagSupport","TO_STRING_TAG_SUPPORT","TO_STRING_TAG","CORRECT_ARGUMENTS","tag","tryGet","callee","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","isConstructor","called","SPECIES","$Array","arraySpeciesConstructor","originalArray","C","arraySpeciesCreate","$","doesNotExceedSafeInteger","require$$8","arrayMethodHasSpeciesSupport","METHOD_NAME","array","foo","Boolean","require$$11","IS_CONCAT_SPREADABLE","require$$10","IS_CONCAT_SPREADABLE_SUPPORT","isConcatSpreadable","spreadable","proto","arg","k","len","E","A","defineBuiltInAccessor","FUNCTION_NAME_EXISTS","nameRE","regExpExec","objectKeys","$assign","assign","objectAssign","b","B","alphabet","forEach","chr","T","argumentsLength","S","j","$location","defer","channel","port","engineIsNode","uncurryThisAccessor","aPossiblePrototype","objectSetPrototypeOf","setPrototypeOf","CORRECT_SETTER","__proto__","setToStringTag","TAG","anInstance","Prototype","aConstructor","functionApply","Reflect","functionBindContext","that","html","arraySlice","engineIsIos","validateArgumentsLength","passed","required","IS_IOS","IS_NODE","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","location","run","runner","eventListener","event","globalPostMessageDefer","postMessage","protocol","host","handler","args","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","appendChild","removeChild","setTimeout","task","Queue","head","tail","add","item","entry","next","notify","toggle","node","promise","then","engineIsIosPebble","Pebble","engineIsWebosWebkit","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","Promise","queueMicrotaskDescriptor","microtask","flush","parent","domain","exit","enter","resolve","createTextNode","observe","characterData","microtask_1","perform","promiseNativeConstructor","engineIsDeno","engineIsBrowser","NativePromiseConstructor","IS_BROWSER","IS_DENO","require$$9","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","promiseConstructorDetection","CONSTRUCTOR","REJECTION_EVENT","newPromiseCapability$2","PromiseCapability","reject","$$resolve","$$reject","newPromiseCapability","Internal","OwnPromiseCapability","nativeThen","setSpecies","CONSTRUCTOR_NAME","Constructor","require$$12","speciesConstructor","defaultConstructor","require$$14","require$$15","hostReportErrors","console","require$$17","require$$18","InternalStateModule","require$$19","require$$20","newPromiseCapabilityModule","require$$22","PROMISE","require$$21","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","setInternalState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","ok","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","isUnhandled","emit","unwrap","internalReject","done","internalResolve","wrapper","executor","onFulfilled","onRejected","PromiseWrapper","wrap","iterators","Iterators","ITERATOR","ArrayPrototype","getIteratorMethod","isArrayIteratorMethod","getIterator","usingIterator","iteratorMethod","iteratorClose","kind","innerResult","innerError","Result","stopped","ResultPrototype","iterate","iterable","unboundFunction","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","SAFE_CLOSING","iteratorWithReturn","return","from","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","promiseStaticsIncorrectIteration","capability","$promiseResolve","values","remaining","alreadyCalled","real","catch","race","r","promiseResolve","promiseCapability","objectDefineProperties","defineProperties","Properties","props","activeXDocument","definePropertiesModule","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","style","display","src","contentWindow","open","F","objectCreate","create","UNSCOPABLES","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","correctPrototypeGetter","getPrototypeOf","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","objectGetPrototypeOf","BUGGY_SAFARI_ITERATORS","NEW_ITERATOR_PROTOTYPE","iteratorsCore","returnThis","createIteratorConstructor","IteratorConstructor","NAME","ENUMERABLE_NEXT","PROPER_FUNCTION_NAME","require$$13","KEYS","VALUES","ENTRIES","iteratorDefine","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","createIterResultObject","addToUnscopables","defineIterator","ARRAY_ITERATOR","es_array_iterator","iterated","Arguments","charAt","charCodeAt","CONVERT_TO_STRING","pos","first","second","position","size","codeAt","STRING_ITERATOR","point","internalMetadata","objectGetOwnPropertyNamesExternal","$getOwnPropertyNames","start","end","fin","windowNames","getWindowNames","arrayBufferNonExtensible","ArrayBuffer","buffer","isExtensible","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","objectIsExtensible","freezing","preventExtensions","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","meta","internalMetadataModule","enable","splice","fastKey","getWeakData","onFreeze","InternalMetadataModule","inheritIfRequired","dummy","Wrapper","NewTarget","NewTargetPrototype","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","boundFunction","arrayIteration","map","filter","some","every","find","findIndex","filterReject","defineBuiltIns","internalStateGetterFor","uncaughtFrozenStore","frozen","UncaughtFrozenStore","findUncaughtFrozen","delete","collectionWeak","getConstructor","ADDER","define","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setStrong","collection","init","classList","DOMTokenListPrototype","domTokenListPrototype","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","__classPrivateFieldGet","receiver","DEFAULT_SELECTOR","defaultOptions","enabled","text","_timestamp","dayjsDate","format","DEFAULT_POPPER_OPTIONS","placement","modifiers","offset","virtualElement","getBoundingClientRect","y","width","height","top","right","bottom","left","toJSON","Tooltip","calendar","_classCallCheck","root","popperInstance","listenerAttached","pluginOptions","eventEmitter","off","mouseOverCallback","mouseOutCallback","destroy","popperOptions","getElementById","tooltipElem","setAttribute","innerHTML","body","theme","createPopper","on","e","timestamp","_Tooltip_instances","_Tooltip_show","_Tooltip_hide","remove","_this","formatter","title","dateHelper","date","setOptions","_toConsumableArray","update","_this2","removeAttribute"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153]} \ No newline at end of file diff --git a/static/javascripts/cal-heatmap/plugins/cal-heatmap.css b/static/javascripts/cal-heatmap/plugins/cal-heatmap.css new file mode 100644 index 000000000..e2187d6e1 --- /dev/null +++ b/static/javascripts/cal-heatmap/plugins/cal-heatmap.css @@ -0,0 +1 @@ +.ch-container{display:block}.ch-container,.ch-domain,.ch-domain-container,.ch-domain-container-animation-wrapper{overflow:visible}.ch-domain-container.in-transition .ch-domain-container-animation-wrapper{overflow:hidden}.ch-domain-bg{fill:transparent}.ch-domain-text{fill:currentColor;font-size:10px}.ch-subdomain{overflow:visible}.ch-subdomain-bg{fill:#ededed}.ch-subdomain-bg.highlight{stroke:#444;stroke-width:1px}.ch-subdomain-bg:hover{stroke:#000;stroke-width:1px}.ch-subdomain-text{font-size:8px;pointer-events:none}[data-theme=dark] .ch-subdomain-bg{fill:#2d333b}[data-theme=dark] .ch-subdomain-bg.highlight{stroke:#768390}[data-theme=dark] .ch-subdomain-bg:hover{stroke:#636e7b}#ch-plugin-legend>svg{background:transparent;color:currentColor}#ch-tooltip{background:#222;border-radius:2px;box-shadow:2px 2px 2px rgba(0,0,0,.2);box-sizing:border-box;color:#bbb;display:none;font-size:12px;line-height:1.4;padding:5px 10px;text-align:center}#ch-tooltip[data-show]{display:block}#ch-tooltip-arrow,#ch-tooltip-arrow:before{background:inherit;height:8px;position:absolute;width:8px}#ch-tooltip-arrow{visibility:hidden}#ch-tooltip-arrow:before{content:"";-webkit-transform:rotate(45deg);transform:rotate(45deg);visibility:visible}#ch-tooltip[data-popper-placement^=top]>#ch-tooltip-arrow{bottom:-4px;margin-left:-4px}#ch-tooltip[data-popper-placement^=bottom]>#ch-tooltip-arrow{margin-left:-4px;top:-4px}#ch-tooltip[data-popper-placement^=left]>#ch-tooltip-arrow{right:-4px}#ch-tooltip[data-popper-placement^=right]>#ch-tooltip-arrow{left:-4px}#ch-tooltip[data-theme=dark]{background:#636e7b;color:#cdd9e5} \ No newline at end of file diff --git a/static/javascripts/d3.js b/static/javascripts/d3.js new file mode 100644 index 000000000..ea8dc602a --- /dev/null +++ b/static/javascripts/d3.js @@ -0,0 +1,20624 @@ +// https://d3js.org v7.8.5 Copyright 2010-2023 Mike Bostock +(function (global, factory) { +typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : +typeof define === 'function' && define.amd ? define(['exports'], factory) : +(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {})); +})(this, (function (exports) { 'use strict'; + +var version = "7.8.5"; + +function ascending$3(a, b) { + return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +} + +function descending$2(a, b) { + return a == null || b == null ? NaN + : b < a ? -1 + : b > a ? 1 + : b >= a ? 0 + : NaN; +} + +function bisector(f) { + let compare1, compare2, delta; + + // If an accessor is specified, promote it to a comparator. In this case we + // can test whether the search value is (self-) comparable. We can’t do this + // for a comparator (except for specific, known comparators) because we can’t + // tell if the comparator is symmetric, and an asymmetric comparator can’t be + // used to test whether a single value is comparable. + if (f.length !== 2) { + compare1 = ascending$3; + compare2 = (d, x) => ascending$3(f(d), x); + delta = (d, x) => f(d) - x; + } else { + compare1 = f === ascending$3 || f === descending$2 ? f : zero$1; + compare2 = f; + delta = f; + } + + function left(a, x, lo = 0, hi = a.length) { + if (lo < hi) { + if (compare1(x, x) !== 0) return hi; + do { + const mid = (lo + hi) >>> 1; + if (compare2(a[mid], x) < 0) lo = mid + 1; + else hi = mid; + } while (lo < hi); + } + return lo; + } + + function right(a, x, lo = 0, hi = a.length) { + if (lo < hi) { + if (compare1(x, x) !== 0) return hi; + do { + const mid = (lo + hi) >>> 1; + if (compare2(a[mid], x) <= 0) lo = mid + 1; + else hi = mid; + } while (lo < hi); + } + return lo; + } + + function center(a, x, lo = 0, hi = a.length) { + const i = left(a, x, lo, hi - 1); + return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i; + } + + return {left, center, right}; +} + +function zero$1() { + return 0; +} + +function number$3(x) { + return x === null ? NaN : +x; +} + +function* numbers(values, valueof) { + if (valueof === undefined) { + for (let value of values) { + if (value != null && (value = +value) >= value) { + yield value; + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { + yield value; + } + } + } +} + +const ascendingBisect = bisector(ascending$3); +const bisectRight = ascendingBisect.right; +const bisectLeft = ascendingBisect.left; +const bisectCenter = bisector(number$3).center; +var bisect = bisectRight; + +function blur(values, r) { + if (!((r = +r) >= 0)) throw new RangeError("invalid r"); + let length = values.length; + if (!((length = Math.floor(length)) >= 0)) throw new RangeError("invalid length"); + if (!length || !r) return values; + const blur = blurf(r); + const temp = values.slice(); + blur(values, temp, 0, length, 1); + blur(temp, values, 0, length, 1); + blur(values, temp, 0, length, 1); + return values; +} + +const blur2 = Blur2(blurf); + +const blurImage = Blur2(blurfImage); + +function Blur2(blur) { + return function(data, rx, ry = rx) { + if (!((rx = +rx) >= 0)) throw new RangeError("invalid rx"); + if (!((ry = +ry) >= 0)) throw new RangeError("invalid ry"); + let {data: values, width, height} = data; + if (!((width = Math.floor(width)) >= 0)) throw new RangeError("invalid width"); + if (!((height = Math.floor(height !== undefined ? height : values.length / width)) >= 0)) throw new RangeError("invalid height"); + if (!width || !height || (!rx && !ry)) return data; + const blurx = rx && blur(rx); + const blury = ry && blur(ry); + const temp = values.slice(); + if (blurx && blury) { + blurh(blurx, temp, values, width, height); + blurh(blurx, values, temp, width, height); + blurh(blurx, temp, values, width, height); + blurv(blury, values, temp, width, height); + blurv(blury, temp, values, width, height); + blurv(blury, values, temp, width, height); + } else if (blurx) { + blurh(blurx, values, temp, width, height); + blurh(blurx, temp, values, width, height); + blurh(blurx, values, temp, width, height); + } else if (blury) { + blurv(blury, values, temp, width, height); + blurv(blury, temp, values, width, height); + blurv(blury, values, temp, width, height); + } + return data; + }; +} + +function blurh(blur, T, S, w, h) { + for (let y = 0, n = w * h; y < n;) { + blur(T, S, y, y += w, 1); + } +} + +function blurv(blur, T, S, w, h) { + for (let x = 0, n = w * h; x < w; ++x) { + blur(T, S, x, x + n, w); + } +} + +function blurfImage(radius) { + const blur = blurf(radius); + return (T, S, start, stop, step) => { + start <<= 2, stop <<= 2, step <<= 2; + blur(T, S, start + 0, stop + 0, step); + blur(T, S, start + 1, stop + 1, step); + blur(T, S, start + 2, stop + 2, step); + blur(T, S, start + 3, stop + 3, step); + }; +} + +// Given a target array T, a source array S, sets each value T[i] to the average +// of {S[i - r], …, S[i], …, S[i + r]}, where r = ⌊radius⌋, start <= i < stop, +// for each i, i + step, i + 2 * step, etc., and where S[j] is clamped between +// S[start] (inclusive) and S[stop] (exclusive). If the given radius is not an +// integer, S[i - r - 1] and S[i + r + 1] are added to the sum, each weighted +// according to r - ⌊radius⌋. +function blurf(radius) { + const radius0 = Math.floor(radius); + if (radius0 === radius) return bluri(radius); + const t = radius - radius0; + const w = 2 * radius + 1; + return (T, S, start, stop, step) => { // stop must be aligned! + if (!((stop -= step) >= start)) return; // inclusive stop + let sum = radius0 * S[start]; + const s0 = step * radius0; + const s1 = s0 + step; + for (let i = start, j = start + s0; i < j; i += step) { + sum += S[Math.min(stop, i)]; + } + for (let i = start, j = stop; i <= j; i += step) { + sum += S[Math.min(stop, i + s0)]; + T[i] = (sum + t * (S[Math.max(start, i - s1)] + S[Math.min(stop, i + s1)])) / w; + sum -= S[Math.max(start, i - s0)]; + } + }; +} + +// Like blurf, but optimized for integer radius. +function bluri(radius) { + const w = 2 * radius + 1; + return (T, S, start, stop, step) => { // stop must be aligned! + if (!((stop -= step) >= start)) return; // inclusive stop + let sum = radius * S[start]; + const s = step * radius; + for (let i = start, j = start + s; i < j; i += step) { + sum += S[Math.min(stop, i)]; + } + for (let i = start, j = stop; i <= j; i += step) { + sum += S[Math.min(stop, i + s)]; + T[i] = sum / w; + sum -= S[Math.max(start, i - s)]; + } + }; +} + +function count$1(values, valueof) { + let count = 0; + if (valueof === undefined) { + for (let value of values) { + if (value != null && (value = +value) >= value) { + ++count; + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { + ++count; + } + } + } + return count; +} + +function length$3(array) { + return array.length | 0; +} + +function empty$2(length) { + return !(length > 0); +} + +function arrayify(values) { + return typeof values !== "object" || "length" in values ? values : Array.from(values); +} + +function reducer(reduce) { + return values => reduce(...values); +} + +function cross$2(...values) { + const reduce = typeof values[values.length - 1] === "function" && reducer(values.pop()); + values = values.map(arrayify); + const lengths = values.map(length$3); + const j = values.length - 1; + const index = new Array(j + 1).fill(0); + const product = []; + if (j < 0 || lengths.some(empty$2)) return product; + while (true) { + product.push(index.map((j, i) => values[i][j])); + let i = j; + while (++index[i] === lengths[i]) { + if (i === 0) return reduce ? product.map(reduce) : product; + index[i--] = 0; + } + } +} + +function cumsum(values, valueof) { + var sum = 0, index = 0; + return Float64Array.from(values, valueof === undefined + ? v => (sum += +v || 0) + : v => (sum += +valueof(v, index++, values) || 0)); +} + +function variance(values, valueof) { + let count = 0; + let delta; + let mean = 0; + let sum = 0; + if (valueof === undefined) { + for (let value of values) { + if (value != null && (value = +value) >= value) { + delta = value - mean; + mean += delta / ++count; + sum += delta * (value - mean); + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { + delta = value - mean; + mean += delta / ++count; + sum += delta * (value - mean); + } + } + } + if (count > 1) return sum / (count - 1); +} + +function deviation(values, valueof) { + const v = variance(values, valueof); + return v ? Math.sqrt(v) : v; +} + +function extent$1(values, valueof) { + let min; + let max; + if (valueof === undefined) { + for (const value of values) { + if (value != null) { + if (min === undefined) { + if (value >= value) min = max = value; + } else { + if (min > value) min = value; + if (max < value) max = value; + } + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null) { + if (min === undefined) { + if (value >= value) min = max = value; + } else { + if (min > value) min = value; + if (max < value) max = value; + } + } + } + } + return [min, max]; +} + +// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423 +class Adder { + constructor() { + this._partials = new Float64Array(32); + this._n = 0; + } + add(x) { + const p = this._partials; + let i = 0; + for (let j = 0; j < this._n && j < 32; j++) { + const y = p[j], + hi = x + y, + lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x); + if (lo) p[i++] = lo; + x = hi; + } + p[i] = x; + this._n = i + 1; + return this; + } + valueOf() { + const p = this._partials; + let n = this._n, x, y, lo, hi = 0; + if (n > 0) { + hi = p[--n]; + while (n > 0) { + x = hi; + y = p[--n]; + hi = x + y; + lo = y - (hi - x); + if (lo) break; + } + if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) { + y = lo * 2; + x = hi + y; + if (y == x - hi) hi = x; + } + } + return hi; + } +} + +function fsum(values, valueof) { + const adder = new Adder(); + if (valueof === undefined) { + for (let value of values) { + if (value = +value) { + adder.add(value); + } + } + } else { + let index = -1; + for (let value of values) { + if (value = +valueof(value, ++index, values)) { + adder.add(value); + } + } + } + return +adder; +} + +function fcumsum(values, valueof) { + const adder = new Adder(); + let index = -1; + return Float64Array.from(values, valueof === undefined + ? v => adder.add(+v || 0) + : v => adder.add(+valueof(v, ++index, values) || 0) + ); +} + +class InternMap extends Map { + constructor(entries, key = keyof) { + super(); + Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}}); + if (entries != null) for (const [key, value] of entries) this.set(key, value); + } + get(key) { + return super.get(intern_get(this, key)); + } + has(key) { + return super.has(intern_get(this, key)); + } + set(key, value) { + return super.set(intern_set(this, key), value); + } + delete(key) { + return super.delete(intern_delete(this, key)); + } +} + +class InternSet extends Set { + constructor(values, key = keyof) { + super(); + Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}}); + if (values != null) for (const value of values) this.add(value); + } + has(value) { + return super.has(intern_get(this, value)); + } + add(value) { + return super.add(intern_set(this, value)); + } + delete(value) { + return super.delete(intern_delete(this, value)); + } +} + +function intern_get({_intern, _key}, value) { + const key = _key(value); + return _intern.has(key) ? _intern.get(key) : value; +} + +function intern_set({_intern, _key}, value) { + const key = _key(value); + if (_intern.has(key)) return _intern.get(key); + _intern.set(key, value); + return value; +} + +function intern_delete({_intern, _key}, value) { + const key = _key(value); + if (_intern.has(key)) { + value = _intern.get(key); + _intern.delete(key); + } + return value; +} + +function keyof(value) { + return value !== null && typeof value === "object" ? value.valueOf() : value; +} + +function identity$9(x) { + return x; +} + +function group(values, ...keys) { + return nest(values, identity$9, identity$9, keys); +} + +function groups(values, ...keys) { + return nest(values, Array.from, identity$9, keys); +} + +function flatten$1(groups, keys) { + for (let i = 1, n = keys.length; i < n; ++i) { + groups = groups.flatMap(g => g.pop().map(([key, value]) => [...g, key, value])); + } + return groups; +} + +function flatGroup(values, ...keys) { + return flatten$1(groups(values, ...keys), keys); +} + +function flatRollup(values, reduce, ...keys) { + return flatten$1(rollups(values, reduce, ...keys), keys); +} + +function rollup(values, reduce, ...keys) { + return nest(values, identity$9, reduce, keys); +} + +function rollups(values, reduce, ...keys) { + return nest(values, Array.from, reduce, keys); +} + +function index$4(values, ...keys) { + return nest(values, identity$9, unique, keys); +} + +function indexes(values, ...keys) { + return nest(values, Array.from, unique, keys); +} + +function unique(values) { + if (values.length !== 1) throw new Error("duplicate key"); + return values[0]; +} + +function nest(values, map, reduce, keys) { + return (function regroup(values, i) { + if (i >= keys.length) return reduce(values); + const groups = new InternMap(); + const keyof = keys[i++]; + let index = -1; + for (const value of values) { + const key = keyof(value, ++index, values); + const group = groups.get(key); + if (group) group.push(value); + else groups.set(key, [value]); + } + for (const [key, values] of groups) { + groups.set(key, regroup(values, i)); + } + return map(groups); + })(values, 0); +} + +function permute(source, keys) { + return Array.from(keys, key => source[key]); +} + +function sort(values, ...F) { + if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable"); + values = Array.from(values); + let [f] = F; + if ((f && f.length !== 2) || F.length > 1) { + const index = Uint32Array.from(values, (d, i) => i); + if (F.length > 1) { + F = F.map(f => values.map(f)); + index.sort((i, j) => { + for (const f of F) { + const c = ascendingDefined(f[i], f[j]); + if (c) return c; + } + }); + } else { + f = values.map(f); + index.sort((i, j) => ascendingDefined(f[i], f[j])); + } + return permute(values, index); + } + return values.sort(compareDefined(f)); +} + +function compareDefined(compare = ascending$3) { + if (compare === ascending$3) return ascendingDefined; + if (typeof compare !== "function") throw new TypeError("compare is not a function"); + return (a, b) => { + const x = compare(a, b); + if (x || x === 0) return x; + return (compare(b, b) === 0) - (compare(a, a) === 0); + }; +} + +function ascendingDefined(a, b) { + return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0); +} + +function groupSort(values, reduce, key) { + return (reduce.length !== 2 + ? sort(rollup(values, reduce, key), (([ak, av], [bk, bv]) => ascending$3(av, bv) || ascending$3(ak, bk))) + : sort(group(values, key), (([ak, av], [bk, bv]) => reduce(av, bv) || ascending$3(ak, bk)))) + .map(([key]) => key); +} + +var array$5 = Array.prototype; + +var slice$3 = array$5.slice; + +function constant$b(x) { + return () => x; +} + +const e10 = Math.sqrt(50), + e5 = Math.sqrt(10), + e2 = Math.sqrt(2); + +function tickSpec(start, stop, count) { + const step = (stop - start) / Math.max(0, count), + power = Math.floor(Math.log10(step)), + error = step / Math.pow(10, power), + factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1; + let i1, i2, inc; + if (power < 0) { + inc = Math.pow(10, -power) / factor; + i1 = Math.round(start * inc); + i2 = Math.round(stop * inc); + if (i1 / inc < start) ++i1; + if (i2 / inc > stop) --i2; + inc = -inc; + } else { + inc = Math.pow(10, power) * factor; + i1 = Math.round(start / inc); + i2 = Math.round(stop / inc); + if (i1 * inc < start) ++i1; + if (i2 * inc > stop) --i2; + } + if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2); + return [i1, i2, inc]; +} + +function ticks(start, stop, count) { + stop = +stop, start = +start, count = +count; + if (!(count > 0)) return []; + if (start === stop) return [start]; + const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count); + if (!(i2 >= i1)) return []; + const n = i2 - i1 + 1, ticks = new Array(n); + if (reverse) { + if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc; + else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc; + } else { + if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc; + else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc; + } + return ticks; +} + +function tickIncrement(start, stop, count) { + stop = +stop, start = +start, count = +count; + return tickSpec(start, stop, count)[2]; +} + +function tickStep(start, stop, count) { + stop = +stop, start = +start, count = +count; + const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count); + return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc); +} + +function nice$1(start, stop, count) { + let prestep; + while (true) { + const step = tickIncrement(start, stop, count); + if (step === prestep || step === 0 || !isFinite(step)) { + return [start, stop]; + } else if (step > 0) { + start = Math.floor(start / step) * step; + stop = Math.ceil(stop / step) * step; + } else if (step < 0) { + start = Math.ceil(start * step) / step; + stop = Math.floor(stop * step) / step; + } + prestep = step; + } +} + +function thresholdSturges(values) { + return Math.max(1, Math.ceil(Math.log(count$1(values)) / Math.LN2) + 1); +} + +function bin() { + var value = identity$9, + domain = extent$1, + threshold = thresholdSturges; + + function histogram(data) { + if (!Array.isArray(data)) data = Array.from(data); + + var i, + n = data.length, + x, + step, + values = new Array(n); + + for (i = 0; i < n; ++i) { + values[i] = value(data[i], i, data); + } + + var xz = domain(values), + x0 = xz[0], + x1 = xz[1], + tz = threshold(values, x0, x1); + + // Convert number of thresholds into uniform thresholds, and nice the + // default domain accordingly. + if (!Array.isArray(tz)) { + const max = x1, tn = +tz; + if (domain === extent$1) [x0, x1] = nice$1(x0, x1, tn); + tz = ticks(x0, x1, tn); + + // If the domain is aligned with the first tick (which it will by + // default), then we can use quantization rather than bisection to bin + // values, which is substantially faster. + if (tz[0] <= x0) step = tickIncrement(x0, x1, tn); + + // If the last threshold is coincident with the domain’s upper bound, the + // last bin will be zero-width. If the default domain is used, and this + // last threshold is coincident with the maximum input value, we can + // extend the niced upper bound by one tick to ensure uniform bin widths; + // otherwise, we simply remove the last threshold. Note that we don’t + // coerce values or the domain to numbers, and thus must be careful to + // compare order (>=) rather than strict equality (===)! + if (tz[tz.length - 1] >= x1) { + if (max >= x1 && domain === extent$1) { + const step = tickIncrement(x0, x1, tn); + if (isFinite(step)) { + if (step > 0) { + x1 = (Math.floor(x1 / step) + 1) * step; + } else if (step < 0) { + x1 = (Math.ceil(x1 * -step) + 1) / -step; + } + } + } else { + tz.pop(); + } + } + } + + // Remove any thresholds outside the domain. + // Be careful not to mutate an array owned by the user! + var m = tz.length, a = 0, b = m; + while (tz[a] <= x0) ++a; + while (tz[b - 1] > x1) --b; + if (a || b < m) tz = tz.slice(a, b), m = b - a; + + var bins = new Array(m + 1), + bin; + + // Initialize bins. + for (i = 0; i <= m; ++i) { + bin = bins[i] = []; + bin.x0 = i > 0 ? tz[i - 1] : x0; + bin.x1 = i < m ? tz[i] : x1; + } + + // Assign data to bins by value, ignoring any outside the domain. + if (isFinite(step)) { + if (step > 0) { + for (i = 0; i < n; ++i) { + if ((x = values[i]) != null && x0 <= x && x <= x1) { + bins[Math.min(m, Math.floor((x - x0) / step))].push(data[i]); + } + } + } else if (step < 0) { + for (i = 0; i < n; ++i) { + if ((x = values[i]) != null && x0 <= x && x <= x1) { + const j = Math.floor((x0 - x) * step); + bins[Math.min(m, j + (tz[j] <= x))].push(data[i]); // handle off-by-one due to rounding + } + } + } + } else { + for (i = 0; i < n; ++i) { + if ((x = values[i]) != null && x0 <= x && x <= x1) { + bins[bisect(tz, x, 0, m)].push(data[i]); + } + } + } + + return bins; + } + + histogram.value = function(_) { + return arguments.length ? (value = typeof _ === "function" ? _ : constant$b(_), histogram) : value; + }; + + histogram.domain = function(_) { + return arguments.length ? (domain = typeof _ === "function" ? _ : constant$b([_[0], _[1]]), histogram) : domain; + }; + + histogram.thresholds = function(_) { + return arguments.length ? (threshold = typeof _ === "function" ? _ : constant$b(Array.isArray(_) ? slice$3.call(_) : _), histogram) : threshold; + }; + + return histogram; +} + +function max$3(values, valueof) { + let max; + if (valueof === undefined) { + for (const value of values) { + if (value != null + && (max < value || (max === undefined && value >= value))) { + max = value; + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null + && (max < value || (max === undefined && value >= value))) { + max = value; + } + } + } + return max; +} + +function maxIndex(values, valueof) { + let max; + let maxIndex = -1; + let index = -1; + if (valueof === undefined) { + for (const value of values) { + ++index; + if (value != null + && (max < value || (max === undefined && value >= value))) { + max = value, maxIndex = index; + } + } + } else { + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null + && (max < value || (max === undefined && value >= value))) { + max = value, maxIndex = index; + } + } + } + return maxIndex; +} + +function min$2(values, valueof) { + let min; + if (valueof === undefined) { + for (const value of values) { + if (value != null + && (min > value || (min === undefined && value >= value))) { + min = value; + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null + && (min > value || (min === undefined && value >= value))) { + min = value; + } + } + } + return min; +} + +function minIndex(values, valueof) { + let min; + let minIndex = -1; + let index = -1; + if (valueof === undefined) { + for (const value of values) { + ++index; + if (value != null + && (min > value || (min === undefined && value >= value))) { + min = value, minIndex = index; + } + } + } else { + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null + && (min > value || (min === undefined && value >= value))) { + min = value, minIndex = index; + } + } + } + return minIndex; +} + +// Based on https://github.com/mourner/quickselect +// ISC license, Copyright 2018 Vladimir Agafonkin. +function quickselect(array, k, left = 0, right = Infinity, compare) { + k = Math.floor(k); + left = Math.floor(Math.max(0, left)); + right = Math.floor(Math.min(array.length - 1, right)); + + if (!(left <= k && k <= right)) return array; + + compare = compare === undefined ? ascendingDefined : compareDefined(compare); + + while (right > left) { + if (right - left > 600) { + const n = right - left + 1; + const m = k - left + 1; + const z = Math.log(n); + const s = 0.5 * Math.exp(2 * z / 3); + const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1); + const newLeft = Math.max(left, Math.floor(k - m * s / n + sd)); + const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd)); + quickselect(array, k, newLeft, newRight, compare); + } + + const t = array[k]; + let i = left; + let j = right; + + swap$1(array, left, k); + if (compare(array[right], t) > 0) swap$1(array, left, right); + + while (i < j) { + swap$1(array, i, j), ++i, --j; + while (compare(array[i], t) < 0) ++i; + while (compare(array[j], t) > 0) --j; + } + + if (compare(array[left], t) === 0) swap$1(array, left, j); + else ++j, swap$1(array, j, right); + + if (j <= k) left = j + 1; + if (k <= j) right = j - 1; + } + + return array; +} + +function swap$1(array, i, j) { + const t = array[i]; + array[i] = array[j]; + array[j] = t; +} + +function greatest(values, compare = ascending$3) { + let max; + let defined = false; + if (compare.length === 1) { + let maxValue; + for (const element of values) { + const value = compare(element); + if (defined + ? ascending$3(value, maxValue) > 0 + : ascending$3(value, value) === 0) { + max = element; + maxValue = value; + defined = true; + } + } + } else { + for (const value of values) { + if (defined + ? compare(value, max) > 0 + : compare(value, value) === 0) { + max = value; + defined = true; + } + } + } + return max; +} + +function quantile$1(values, p, valueof) { + values = Float64Array.from(numbers(values, valueof)); + if (!(n = values.length) || isNaN(p = +p)) return; + if (p <= 0 || n < 2) return min$2(values); + if (p >= 1) return max$3(values); + var n, + i = (n - 1) * p, + i0 = Math.floor(i), + value0 = max$3(quickselect(values, i0).subarray(0, i0 + 1)), + value1 = min$2(values.subarray(i0 + 1)); + return value0 + (value1 - value0) * (i - i0); +} + +function quantileSorted(values, p, valueof = number$3) { + if (!(n = values.length) || isNaN(p = +p)) return; + if (p <= 0 || n < 2) return +valueof(values[0], 0, values); + if (p >= 1) return +valueof(values[n - 1], n - 1, values); + var n, + i = (n - 1) * p, + i0 = Math.floor(i), + value0 = +valueof(values[i0], i0, values), + value1 = +valueof(values[i0 + 1], i0 + 1, values); + return value0 + (value1 - value0) * (i - i0); +} + +function quantileIndex(values, p, valueof = number$3) { + if (isNaN(p = +p)) return; + numbers = Float64Array.from(values, (_, i) => number$3(valueof(values[i], i, values))); + if (p <= 0) return minIndex(numbers); + if (p >= 1) return maxIndex(numbers); + var numbers, + index = Uint32Array.from(values, (_, i) => i), + j = numbers.length - 1, + i = Math.floor(j * p); + quickselect(index, i, 0, j, (i, j) => ascendingDefined(numbers[i], numbers[j])); + i = greatest(index.subarray(0, i + 1), (i) => numbers[i]); + return i >= 0 ? i : -1; +} + +function thresholdFreedmanDiaconis(values, min, max) { + const c = count$1(values), d = quantile$1(values, 0.75) - quantile$1(values, 0.25); + return c && d ? Math.ceil((max - min) / (2 * d * Math.pow(c, -1 / 3))) : 1; +} + +function thresholdScott(values, min, max) { + const c = count$1(values), d = deviation(values); + return c && d ? Math.ceil((max - min) * Math.cbrt(c) / (3.49 * d)) : 1; +} + +function mean(values, valueof) { + let count = 0; + let sum = 0; + if (valueof === undefined) { + for (let value of values) { + if (value != null && (value = +value) >= value) { + ++count, sum += value; + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { + ++count, sum += value; + } + } + } + if (count) return sum / count; +} + +function median(values, valueof) { + return quantile$1(values, 0.5, valueof); +} + +function medianIndex(values, valueof) { + return quantileIndex(values, 0.5, valueof); +} + +function* flatten(arrays) { + for (const array of arrays) { + yield* array; + } +} + +function merge(arrays) { + return Array.from(flatten(arrays)); +} + +function mode(values, valueof) { + const counts = new InternMap(); + if (valueof === undefined) { + for (let value of values) { + if (value != null && value >= value) { + counts.set(value, (counts.get(value) || 0) + 1); + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null && value >= value) { + counts.set(value, (counts.get(value) || 0) + 1); + } + } + } + let modeValue; + let modeCount = 0; + for (const [value, count] of counts) { + if (count > modeCount) { + modeCount = count; + modeValue = value; + } + } + return modeValue; +} + +function pairs(values, pairof = pair) { + const pairs = []; + let previous; + let first = false; + for (const value of values) { + if (first) pairs.push(pairof(previous, value)); + previous = value; + first = true; + } + return pairs; +} + +function pair(a, b) { + return [a, b]; +} + +function range$2(start, stop, step) { + start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step; + + var i = -1, + n = Math.max(0, Math.ceil((stop - start) / step)) | 0, + range = new Array(n); + + while (++i < n) { + range[i] = start + i * step; + } + + return range; +} + +function rank(values, valueof = ascending$3) { + if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable"); + let V = Array.from(values); + const R = new Float64Array(V.length); + if (valueof.length !== 2) V = V.map(valueof), valueof = ascending$3; + const compareIndex = (i, j) => valueof(V[i], V[j]); + let k, r; + values = Uint32Array.from(V, (_, i) => i); + // Risky chaining due to Safari 14 https://github.com/d3/d3-array/issues/123 + values.sort(valueof === ascending$3 ? (i, j) => ascendingDefined(V[i], V[j]) : compareDefined(compareIndex)); + values.forEach((j, i) => { + const c = compareIndex(j, k === undefined ? j : k); + if (c >= 0) { + if (k === undefined || c > 0) k = j, r = i; + R[j] = r; + } else { + R[j] = NaN; + } + }); + return R; +} + +function least(values, compare = ascending$3) { + let min; + let defined = false; + if (compare.length === 1) { + let minValue; + for (const element of values) { + const value = compare(element); + if (defined + ? ascending$3(value, minValue) < 0 + : ascending$3(value, value) === 0) { + min = element; + minValue = value; + defined = true; + } + } + } else { + for (const value of values) { + if (defined + ? compare(value, min) < 0 + : compare(value, value) === 0) { + min = value; + defined = true; + } + } + } + return min; +} + +function leastIndex(values, compare = ascending$3) { + if (compare.length === 1) return minIndex(values, compare); + let minValue; + let min = -1; + let index = -1; + for (const value of values) { + ++index; + if (min < 0 + ? compare(value, value) === 0 + : compare(value, minValue) < 0) { + minValue = value; + min = index; + } + } + return min; +} + +function greatestIndex(values, compare = ascending$3) { + if (compare.length === 1) return maxIndex(values, compare); + let maxValue; + let max = -1; + let index = -1; + for (const value of values) { + ++index; + if (max < 0 + ? compare(value, value) === 0 + : compare(value, maxValue) > 0) { + maxValue = value; + max = index; + } + } + return max; +} + +function scan(values, compare) { + const index = leastIndex(values, compare); + return index < 0 ? undefined : index; +} + +var shuffle$1 = shuffler(Math.random); + +function shuffler(random) { + return function shuffle(array, i0 = 0, i1 = array.length) { + let m = i1 - (i0 = +i0); + while (m) { + const i = random() * m-- | 0, t = array[m + i0]; + array[m + i0] = array[i + i0]; + array[i + i0] = t; + } + return array; + }; +} + +function sum$2(values, valueof) { + let sum = 0; + if (valueof === undefined) { + for (let value of values) { + if (value = +value) { + sum += value; + } + } + } else { + let index = -1; + for (let value of values) { + if (value = +valueof(value, ++index, values)) { + sum += value; + } + } + } + return sum; +} + +function transpose(matrix) { + if (!(n = matrix.length)) return []; + for (var i = -1, m = min$2(matrix, length$2), transpose = new Array(m); ++i < m;) { + for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) { + row[j] = matrix[j][i]; + } + } + return transpose; +} + +function length$2(d) { + return d.length; +} + +function zip() { + return transpose(arguments); +} + +function every(values, test) { + if (typeof test !== "function") throw new TypeError("test is not a function"); + let index = -1; + for (const value of values) { + if (!test(value, ++index, values)) { + return false; + } + } + return true; +} + +function some(values, test) { + if (typeof test !== "function") throw new TypeError("test is not a function"); + let index = -1; + for (const value of values) { + if (test(value, ++index, values)) { + return true; + } + } + return false; +} + +function filter$1(values, test) { + if (typeof test !== "function") throw new TypeError("test is not a function"); + const array = []; + let index = -1; + for (const value of values) { + if (test(value, ++index, values)) { + array.push(value); + } + } + return array; +} + +function map$1(values, mapper) { + if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable"); + if (typeof mapper !== "function") throw new TypeError("mapper is not a function"); + return Array.from(values, (value, index) => mapper(value, index, values)); +} + +function reduce(values, reducer, value) { + if (typeof reducer !== "function") throw new TypeError("reducer is not a function"); + const iterator = values[Symbol.iterator](); + let done, next, index = -1; + if (arguments.length < 3) { + ({done, value} = iterator.next()); + if (done) return; + ++index; + } + while (({done, value: next} = iterator.next()), !done) { + value = reducer(value, next, ++index, values); + } + return value; +} + +function reverse$1(values) { + if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable"); + return Array.from(values).reverse(); +} + +function difference(values, ...others) { + values = new InternSet(values); + for (const other of others) { + for (const value of other) { + values.delete(value); + } + } + return values; +} + +function disjoint(values, other) { + const iterator = other[Symbol.iterator](), set = new InternSet(); + for (const v of values) { + if (set.has(v)) return false; + let value, done; + while (({value, done} = iterator.next())) { + if (done) break; + if (Object.is(v, value)) return false; + set.add(value); + } + } + return true; +} + +function intersection(values, ...others) { + values = new InternSet(values); + others = others.map(set$2); + out: for (const value of values) { + for (const other of others) { + if (!other.has(value)) { + values.delete(value); + continue out; + } + } + } + return values; +} + +function set$2(values) { + return values instanceof InternSet ? values : new InternSet(values); +} + +function superset(values, other) { + const iterator = values[Symbol.iterator](), set = new Set(); + for (const o of other) { + const io = intern(o); + if (set.has(io)) continue; + let value, done; + while (({value, done} = iterator.next())) { + if (done) return false; + const ivalue = intern(value); + set.add(ivalue); + if (Object.is(io, ivalue)) break; + } + } + return true; +} + +function intern(value) { + return value !== null && typeof value === "object" ? value.valueOf() : value; +} + +function subset(values, other) { + return superset(other, values); +} + +function union(...others) { + const set = new InternSet(); + for (const other of others) { + for (const o of other) { + set.add(o); + } + } + return set; +} + +function identity$8(x) { + return x; +} + +var top = 1, + right = 2, + bottom = 3, + left = 4, + epsilon$6 = 1e-6; + +function translateX(x) { + return "translate(" + x + ",0)"; +} + +function translateY(y) { + return "translate(0," + y + ")"; +} + +function number$2(scale) { + return d => +scale(d); +} + +function center$1(scale, offset) { + offset = Math.max(0, scale.bandwidth() - offset * 2) / 2; + if (scale.round()) offset = Math.round(offset); + return d => +scale(d) + offset; +} + +function entering() { + return !this.__axis; +} + +function axis(orient, scale) { + var tickArguments = [], + tickValues = null, + tickFormat = null, + tickSizeInner = 6, + tickSizeOuter = 6, + tickPadding = 3, + offset = typeof window !== "undefined" && window.devicePixelRatio > 1 ? 0 : 0.5, + k = orient === top || orient === left ? -1 : 1, + x = orient === left || orient === right ? "x" : "y", + transform = orient === top || orient === bottom ? translateX : translateY; + + function axis(context) { + var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues, + format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity$8) : tickFormat, + spacing = Math.max(tickSizeInner, 0) + tickPadding, + range = scale.range(), + range0 = +range[0] + offset, + range1 = +range[range.length - 1] + offset, + position = (scale.bandwidth ? center$1 : number$2)(scale.copy(), offset), + selection = context.selection ? context.selection() : context, + path = selection.selectAll(".domain").data([null]), + tick = selection.selectAll(".tick").data(values, scale).order(), + tickExit = tick.exit(), + tickEnter = tick.enter().append("g").attr("class", "tick"), + line = tick.select("line"), + text = tick.select("text"); + + path = path.merge(path.enter().insert("path", ".tick") + .attr("class", "domain") + .attr("stroke", "currentColor")); + + tick = tick.merge(tickEnter); + + line = line.merge(tickEnter.append("line") + .attr("stroke", "currentColor") + .attr(x + "2", k * tickSizeInner)); + + text = text.merge(tickEnter.append("text") + .attr("fill", "currentColor") + .attr(x, k * spacing) + .attr("dy", orient === top ? "0em" : orient === bottom ? "0.71em" : "0.32em")); + + if (context !== selection) { + path = path.transition(context); + tick = tick.transition(context); + line = line.transition(context); + text = text.transition(context); + + tickExit = tickExit.transition(context) + .attr("opacity", epsilon$6) + .attr("transform", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute("transform"); }); + + tickEnter + .attr("opacity", epsilon$6) + .attr("transform", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); }); + } + + tickExit.remove(); + + path + .attr("d", orient === left || orient === right + ? (tickSizeOuter ? "M" + k * tickSizeOuter + "," + range0 + "H" + offset + "V" + range1 + "H" + k * tickSizeOuter : "M" + offset + "," + range0 + "V" + range1) + : (tickSizeOuter ? "M" + range0 + "," + k * tickSizeOuter + "V" + offset + "H" + range1 + "V" + k * tickSizeOuter : "M" + range0 + "," + offset + "H" + range1)); + + tick + .attr("opacity", 1) + .attr("transform", function(d) { return transform(position(d) + offset); }); + + line + .attr(x + "2", k * tickSizeInner); + + text + .attr(x, k * spacing) + .text(format); + + selection.filter(entering) + .attr("fill", "none") + .attr("font-size", 10) + .attr("font-family", "sans-serif") + .attr("text-anchor", orient === right ? "start" : orient === left ? "end" : "middle"); + + selection + .each(function() { this.__axis = position; }); + } + + axis.scale = function(_) { + return arguments.length ? (scale = _, axis) : scale; + }; + + axis.ticks = function() { + return tickArguments = Array.from(arguments), axis; + }; + + axis.tickArguments = function(_) { + return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis) : tickArguments.slice(); + }; + + axis.tickValues = function(_) { + return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis) : tickValues && tickValues.slice(); + }; + + axis.tickFormat = function(_) { + return arguments.length ? (tickFormat = _, axis) : tickFormat; + }; + + axis.tickSize = function(_) { + return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner; + }; + + axis.tickSizeInner = function(_) { + return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner; + }; + + axis.tickSizeOuter = function(_) { + return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter; + }; + + axis.tickPadding = function(_) { + return arguments.length ? (tickPadding = +_, axis) : tickPadding; + }; + + axis.offset = function(_) { + return arguments.length ? (offset = +_, axis) : offset; + }; + + return axis; +} + +function axisTop(scale) { + return axis(top, scale); +} + +function axisRight(scale) { + return axis(right, scale); +} + +function axisBottom(scale) { + return axis(bottom, scale); +} + +function axisLeft(scale) { + return axis(left, scale); +} + +var noop$3 = {value: () => {}}; + +function dispatch() { + for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) { + if (!(t = arguments[i] + "") || (t in _) || /[\s.]/.test(t)) throw new Error("illegal type: " + t); + _[t] = []; + } + return new Dispatch(_); +} + +function Dispatch(_) { + this._ = _; +} + +function parseTypenames$1(typenames, types) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i); + if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t); + return {type: t, name: name}; + }); +} + +Dispatch.prototype = dispatch.prototype = { + constructor: Dispatch, + on: function(typename, callback) { + var _ = this._, + T = parseTypenames$1(typename + "", _), + t, + i = -1, + n = T.length; + + // If no callback was specified, return the callback of the given type and name. + if (arguments.length < 2) { + while (++i < n) if ((t = (typename = T[i]).type) && (t = get$1(_[t], typename.name))) return t; + return; + } + + // If a type was specified, set the callback for the given type and name. + // Otherwise, if a null callback was specified, remove callbacks of the given name. + if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback); + while (++i < n) { + if (t = (typename = T[i]).type) _[t] = set$1(_[t], typename.name, callback); + else if (callback == null) for (t in _) _[t] = set$1(_[t], typename.name, null); + } + + return this; + }, + copy: function() { + var copy = {}, _ = this._; + for (var t in _) copy[t] = _[t].slice(); + return new Dispatch(copy); + }, + call: function(type, that) { + if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2]; + if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type); + for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args); + }, + apply: function(type, that, args) { + if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type); + for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args); + } +}; + +function get$1(type, name) { + for (var i = 0, n = type.length, c; i < n; ++i) { + if ((c = type[i]).name === name) { + return c.value; + } + } +} + +function set$1(type, name, callback) { + for (var i = 0, n = type.length; i < n; ++i) { + if (type[i].name === name) { + type[i] = noop$3, type = type.slice(0, i).concat(type.slice(i + 1)); + break; + } + } + if (callback != null) type.push({name: name, value: callback}); + return type; +} + +var xhtml = "http://www.w3.org/1999/xhtml"; + +var namespaces = { + svg: "http://www.w3.org/2000/svg", + xhtml: xhtml, + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" +}; + +function namespace(name) { + var prefix = name += "", i = prefix.indexOf(":"); + if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1); + return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins +} + +function creatorInherit(name) { + return function() { + var document = this.ownerDocument, + uri = this.namespaceURI; + return uri === xhtml && document.documentElement.namespaceURI === xhtml + ? document.createElement(name) + : document.createElementNS(uri, name); + }; +} + +function creatorFixed(fullname) { + return function() { + return this.ownerDocument.createElementNS(fullname.space, fullname.local); + }; +} + +function creator(name) { + var fullname = namespace(name); + return (fullname.local + ? creatorFixed + : creatorInherit)(fullname); +} + +function none$2() {} + +function selector(selector) { + return selector == null ? none$2 : function() { + return this.querySelector(selector); + }; +} + +function selection_select(select) { + if (typeof select !== "function") select = selector(select); + + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { + if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { + if ("__data__" in node) subnode.__data__ = node.__data__; + subgroup[i] = subnode; + } + } + } + + return new Selection$1(subgroups, this._parents); +} + +// Given something array like (or null), returns something that is strictly an +// array. This is used to ensure that array-like objects passed to d3.selectAll +// or selection.selectAll are converted into proper arrays when creating a +// selection; we don’t ever want to create a selection backed by a live +// HTMLCollection or NodeList. However, note that selection.selectAll will use a +// static NodeList as a group, since it safely derived from querySelectorAll. +function array$4(x) { + return x == null ? [] : Array.isArray(x) ? x : Array.from(x); +} + +function empty$1() { + return []; +} + +function selectorAll(selector) { + return selector == null ? empty$1 : function() { + return this.querySelectorAll(selector); + }; +} + +function arrayAll(select) { + return function() { + return array$4(select.apply(this, arguments)); + }; +} + +function selection_selectAll(select) { + if (typeof select === "function") select = arrayAll(select); + else select = selectorAll(select); + + for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + subgroups.push(select.call(node, node.__data__, i, group)); + parents.push(node); + } + } + } + + return new Selection$1(subgroups, parents); +} + +function matcher(selector) { + return function() { + return this.matches(selector); + }; +} + +function childMatcher(selector) { + return function(node) { + return node.matches(selector); + }; +} + +var find$1 = Array.prototype.find; + +function childFind(match) { + return function() { + return find$1.call(this.children, match); + }; +} + +function childFirst() { + return this.firstElementChild; +} + +function selection_selectChild(match) { + return this.select(match == null ? childFirst + : childFind(typeof match === "function" ? match : childMatcher(match))); +} + +var filter = Array.prototype.filter; + +function children() { + return Array.from(this.children); +} + +function childrenFilter(match) { + return function() { + return filter.call(this.children, match); + }; +} + +function selection_selectChildren(match) { + return this.selectAll(match == null ? children + : childrenFilter(typeof match === "function" ? match : childMatcher(match))); +} + +function selection_filter(match) { + if (typeof match !== "function") match = matcher(match); + + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { + if ((node = group[i]) && match.call(node, node.__data__, i, group)) { + subgroup.push(node); + } + } + } + + return new Selection$1(subgroups, this._parents); +} + +function sparse(update) { + return new Array(update.length); +} + +function selection_enter() { + return new Selection$1(this._enter || this._groups.map(sparse), this._parents); +} + +function EnterNode(parent, datum) { + this.ownerDocument = parent.ownerDocument; + this.namespaceURI = parent.namespaceURI; + this._next = null; + this._parent = parent; + this.__data__ = datum; +} + +EnterNode.prototype = { + constructor: EnterNode, + appendChild: function(child) { return this._parent.insertBefore(child, this._next); }, + insertBefore: function(child, next) { return this._parent.insertBefore(child, next); }, + querySelector: function(selector) { return this._parent.querySelector(selector); }, + querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); } +}; + +function constant$a(x) { + return function() { + return x; + }; +} + +function bindIndex(parent, group, enter, update, exit, data) { + var i = 0, + node, + groupLength = group.length, + dataLength = data.length; + + // Put any non-null nodes that fit into update. + // Put any null nodes into enter. + // Put any remaining data into enter. + for (; i < dataLength; ++i) { + if (node = group[i]) { + node.__data__ = data[i]; + update[i] = node; + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + + // Put any non-null nodes that don’t fit into exit. + for (; i < groupLength; ++i) { + if (node = group[i]) { + exit[i] = node; + } + } +} + +function bindKey(parent, group, enter, update, exit, data, key) { + var i, + node, + nodeByKeyValue = new Map, + groupLength = group.length, + dataLength = data.length, + keyValues = new Array(groupLength), + keyValue; + + // Compute the key for each node. + // If multiple nodes have the same key, the duplicates are added to exit. + for (i = 0; i < groupLength; ++i) { + if (node = group[i]) { + keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + ""; + if (nodeByKeyValue.has(keyValue)) { + exit[i] = node; + } else { + nodeByKeyValue.set(keyValue, node); + } + } + } + + // Compute the key for each datum. + // If there a node associated with this key, join and add it to update. + // If there is not (or the key is a duplicate), add it to enter. + for (i = 0; i < dataLength; ++i) { + keyValue = key.call(parent, data[i], i, data) + ""; + if (node = nodeByKeyValue.get(keyValue)) { + update[i] = node; + node.__data__ = data[i]; + nodeByKeyValue.delete(keyValue); + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + + // Add any remaining nodes that were not bound to data to exit. + for (i = 0; i < groupLength; ++i) { + if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) { + exit[i] = node; + } + } +} + +function datum(node) { + return node.__data__; +} + +function selection_data(value, key) { + if (!arguments.length) return Array.from(this, datum); + + var bind = key ? bindKey : bindIndex, + parents = this._parents, + groups = this._groups; + + if (typeof value !== "function") value = constant$a(value); + + for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) { + var parent = parents[j], + group = groups[j], + groupLength = group.length, + data = arraylike(value.call(parent, parent && parent.__data__, j, parents)), + dataLength = data.length, + enterGroup = enter[j] = new Array(dataLength), + updateGroup = update[j] = new Array(dataLength), + exitGroup = exit[j] = new Array(groupLength); + + bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); + + // Now connect the enter nodes to their following update node, such that + // appendChild can insert the materialized enter node before this node, + // rather than at the end of the parent node. + for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) { + if (previous = enterGroup[i0]) { + if (i0 >= i1) i1 = i0 + 1; + while (!(next = updateGroup[i1]) && ++i1 < dataLength); + previous._next = next || null; + } + } + } + + update = new Selection$1(update, parents); + update._enter = enter; + update._exit = exit; + return update; +} + +// Given some data, this returns an array-like view of it: an object that +// exposes a length property and allows numeric indexing. Note that unlike +// selectAll, this isn’t worried about “live†collections because the resulting +// array will only be used briefly while data is being bound. (It is possible to +// cause the data to change while iterating by using a key function, but please +// don’t; we’d rather avoid a gratuitous copy.) +function arraylike(data) { + return typeof data === "object" && "length" in data + ? data // Array, TypedArray, NodeList, array-like + : Array.from(data); // Map, Set, iterable, string, or anything else +} + +function selection_exit() { + return new Selection$1(this._exit || this._groups.map(sparse), this._parents); +} + +function selection_join(onenter, onupdate, onexit) { + var enter = this.enter(), update = this, exit = this.exit(); + if (typeof onenter === "function") { + enter = onenter(enter); + if (enter) enter = enter.selection(); + } else { + enter = enter.append(onenter + ""); + } + if (onupdate != null) { + update = onupdate(update); + if (update) update = update.selection(); + } + if (onexit == null) exit.remove(); else onexit(exit); + return enter && update ? enter.merge(update).order() : update; +} + +function selection_merge(context) { + var selection = context.selection ? context.selection() : context; + + for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { + for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group0[i] || group1[i]) { + merge[i] = node; + } + } + } + + for (; j < m0; ++j) { + merges[j] = groups0[j]; + } + + return new Selection$1(merges, this._parents); +} + +function selection_order() { + + for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) { + for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) { + if (node = group[i]) { + if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next); + next = node; + } + } + } + + return this; +} + +function selection_sort(compare) { + if (!compare) compare = ascending$2; + + function compareNode(a, b) { + return a && b ? compare(a.__data__, b.__data__) : !a - !b; + } + + for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group[i]) { + sortgroup[i] = node; + } + } + sortgroup.sort(compareNode); + } + + return new Selection$1(sortgroups, this._parents).order(); +} + +function ascending$2(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +} + +function selection_call() { + var callback = arguments[0]; + arguments[0] = this; + callback.apply(null, arguments); + return this; +} + +function selection_nodes() { + return Array.from(this); +} + +function selection_node() { + + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length; i < n; ++i) { + var node = group[i]; + if (node) return node; + } + } + + return null; +} + +function selection_size() { + let size = 0; + for (const node of this) ++size; // eslint-disable-line no-unused-vars + return size; +} + +function selection_empty() { + return !this.node(); +} + +function selection_each(callback) { + + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { + if (node = group[i]) callback.call(node, node.__data__, i, group); + } + } + + return this; +} + +function attrRemove$1(name) { + return function() { + this.removeAttribute(name); + }; +} + +function attrRemoveNS$1(fullname) { + return function() { + this.removeAttributeNS(fullname.space, fullname.local); + }; +} + +function attrConstant$1(name, value) { + return function() { + this.setAttribute(name, value); + }; +} + +function attrConstantNS$1(fullname, value) { + return function() { + this.setAttributeNS(fullname.space, fullname.local, value); + }; +} + +function attrFunction$1(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) this.removeAttribute(name); + else this.setAttribute(name, v); + }; +} + +function attrFunctionNS$1(fullname, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) this.removeAttributeNS(fullname.space, fullname.local); + else this.setAttributeNS(fullname.space, fullname.local, v); + }; +} + +function selection_attr(name, value) { + var fullname = namespace(name); + + if (arguments.length < 2) { + var node = this.node(); + return fullname.local + ? node.getAttributeNS(fullname.space, fullname.local) + : node.getAttribute(fullname); + } + + return this.each((value == null + ? (fullname.local ? attrRemoveNS$1 : attrRemove$1) : (typeof value === "function" + ? (fullname.local ? attrFunctionNS$1 : attrFunction$1) + : (fullname.local ? attrConstantNS$1 : attrConstant$1)))(fullname, value)); +} + +function defaultView(node) { + return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node + || (node.document && node) // node is a Window + || node.defaultView; // node is a Document +} + +function styleRemove$1(name) { + return function() { + this.style.removeProperty(name); + }; +} + +function styleConstant$1(name, value, priority) { + return function() { + this.style.setProperty(name, value, priority); + }; +} + +function styleFunction$1(name, value, priority) { + return function() { + var v = value.apply(this, arguments); + if (v == null) this.style.removeProperty(name); + else this.style.setProperty(name, v, priority); + }; +} + +function selection_style(name, value, priority) { + return arguments.length > 1 + ? this.each((value == null + ? styleRemove$1 : typeof value === "function" + ? styleFunction$1 + : styleConstant$1)(name, value, priority == null ? "" : priority)) + : styleValue(this.node(), name); +} + +function styleValue(node, name) { + return node.style.getPropertyValue(name) + || defaultView(node).getComputedStyle(node, null).getPropertyValue(name); +} + +function propertyRemove(name) { + return function() { + delete this[name]; + }; +} + +function propertyConstant(name, value) { + return function() { + this[name] = value; + }; +} + +function propertyFunction(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) delete this[name]; + else this[name] = v; + }; +} + +function selection_property(name, value) { + return arguments.length > 1 + ? this.each((value == null + ? propertyRemove : typeof value === "function" + ? propertyFunction + : propertyConstant)(name, value)) + : this.node()[name]; +} + +function classArray(string) { + return string.trim().split(/^|\s+/); +} + +function classList(node) { + return node.classList || new ClassList(node); +} + +function ClassList(node) { + this._node = node; + this._names = classArray(node.getAttribute("class") || ""); +} + +ClassList.prototype = { + add: function(name) { + var i = this._names.indexOf(name); + if (i < 0) { + this._names.push(name); + this._node.setAttribute("class", this._names.join(" ")); + } + }, + remove: function(name) { + var i = this._names.indexOf(name); + if (i >= 0) { + this._names.splice(i, 1); + this._node.setAttribute("class", this._names.join(" ")); + } + }, + contains: function(name) { + return this._names.indexOf(name) >= 0; + } +}; + +function classedAdd(node, names) { + var list = classList(node), i = -1, n = names.length; + while (++i < n) list.add(names[i]); +} + +function classedRemove(node, names) { + var list = classList(node), i = -1, n = names.length; + while (++i < n) list.remove(names[i]); +} + +function classedTrue(names) { + return function() { + classedAdd(this, names); + }; +} + +function classedFalse(names) { + return function() { + classedRemove(this, names); + }; +} + +function classedFunction(names, value) { + return function() { + (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names); + }; +} + +function selection_classed(name, value) { + var names = classArray(name + ""); + + if (arguments.length < 2) { + var list = classList(this.node()), i = -1, n = names.length; + while (++i < n) if (!list.contains(names[i])) return false; + return true; + } + + return this.each((typeof value === "function" + ? classedFunction : value + ? classedTrue + : classedFalse)(names, value)); +} + +function textRemove() { + this.textContent = ""; +} + +function textConstant$1(value) { + return function() { + this.textContent = value; + }; +} + +function textFunction$1(value) { + return function() { + var v = value.apply(this, arguments); + this.textContent = v == null ? "" : v; + }; +} + +function selection_text(value) { + return arguments.length + ? this.each(value == null + ? textRemove : (typeof value === "function" + ? textFunction$1 + : textConstant$1)(value)) + : this.node().textContent; +} + +function htmlRemove() { + this.innerHTML = ""; +} + +function htmlConstant(value) { + return function() { + this.innerHTML = value; + }; +} + +function htmlFunction(value) { + return function() { + var v = value.apply(this, arguments); + this.innerHTML = v == null ? "" : v; + }; +} + +function selection_html(value) { + return arguments.length + ? this.each(value == null + ? htmlRemove : (typeof value === "function" + ? htmlFunction + : htmlConstant)(value)) + : this.node().innerHTML; +} + +function raise() { + if (this.nextSibling) this.parentNode.appendChild(this); +} + +function selection_raise() { + return this.each(raise); +} + +function lower() { + if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild); +} + +function selection_lower() { + return this.each(lower); +} + +function selection_append(name) { + var create = typeof name === "function" ? name : creator(name); + return this.select(function() { + return this.appendChild(create.apply(this, arguments)); + }); +} + +function constantNull() { + return null; +} + +function selection_insert(name, before) { + var create = typeof name === "function" ? name : creator(name), + select = before == null ? constantNull : typeof before === "function" ? before : selector(before); + return this.select(function() { + return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null); + }); +} + +function remove() { + var parent = this.parentNode; + if (parent) parent.removeChild(this); +} + +function selection_remove() { + return this.each(remove); +} + +function selection_cloneShallow() { + var clone = this.cloneNode(false), parent = this.parentNode; + return parent ? parent.insertBefore(clone, this.nextSibling) : clone; +} + +function selection_cloneDeep() { + var clone = this.cloneNode(true), parent = this.parentNode; + return parent ? parent.insertBefore(clone, this.nextSibling) : clone; +} + +function selection_clone(deep) { + return this.select(deep ? selection_cloneDeep : selection_cloneShallow); +} + +function selection_datum(value) { + return arguments.length + ? this.property("__data__", value) + : this.node().__data__; +} + +function contextListener(listener) { + return function(event) { + listener.call(this, event, this.__data__); + }; +} + +function parseTypenames(typenames) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i); + return {type: t, name: name}; + }); +} + +function onRemove(typename) { + return function() { + var on = this.__on; + if (!on) return; + for (var j = 0, i = -1, m = on.length, o; j < m; ++j) { + if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + } else { + on[++i] = o; + } + } + if (++i) on.length = i; + else delete this.__on; + }; +} + +function onAdd(typename, value, options) { + return function() { + var on = this.__on, o, listener = contextListener(value); + if (on) for (var j = 0, m = on.length; j < m; ++j) { + if ((o = on[j]).type === typename.type && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + this.addEventListener(o.type, o.listener = listener, o.options = options); + o.value = value; + return; + } + } + this.addEventListener(typename.type, listener, options); + o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options}; + if (!on) this.__on = [o]; + else on.push(o); + }; +} + +function selection_on(typename, value, options) { + var typenames = parseTypenames(typename + ""), i, n = typenames.length, t; + + if (arguments.length < 2) { + var on = this.node().__on; + if (on) for (var j = 0, m = on.length, o; j < m; ++j) { + for (i = 0, o = on[j]; i < n; ++i) { + if ((t = typenames[i]).type === o.type && t.name === o.name) { + return o.value; + } + } + } + return; + } + + on = value ? onAdd : onRemove; + for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options)); + return this; +} + +function dispatchEvent(node, type, params) { + var window = defaultView(node), + event = window.CustomEvent; + + if (typeof event === "function") { + event = new event(type, params); + } else { + event = window.document.createEvent("Event"); + if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail; + else event.initEvent(type, false, false); + } + + node.dispatchEvent(event); +} + +function dispatchConstant(type, params) { + return function() { + return dispatchEvent(this, type, params); + }; +} + +function dispatchFunction(type, params) { + return function() { + return dispatchEvent(this, type, params.apply(this, arguments)); + }; +} + +function selection_dispatch(type, params) { + return this.each((typeof params === "function" + ? dispatchFunction + : dispatchConstant)(type, params)); +} + +function* selection_iterator() { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { + if (node = group[i]) yield node; + } + } +} + +var root$1 = [null]; + +function Selection$1(groups, parents) { + this._groups = groups; + this._parents = parents; +} + +function selection() { + return new Selection$1([[document.documentElement]], root$1); +} + +function selection_selection() { + return this; +} + +Selection$1.prototype = selection.prototype = { + constructor: Selection$1, + select: selection_select, + selectAll: selection_selectAll, + selectChild: selection_selectChild, + selectChildren: selection_selectChildren, + filter: selection_filter, + data: selection_data, + enter: selection_enter, + exit: selection_exit, + join: selection_join, + merge: selection_merge, + selection: selection_selection, + order: selection_order, + sort: selection_sort, + call: selection_call, + nodes: selection_nodes, + node: selection_node, + size: selection_size, + empty: selection_empty, + each: selection_each, + attr: selection_attr, + style: selection_style, + property: selection_property, + classed: selection_classed, + text: selection_text, + html: selection_html, + raise: selection_raise, + lower: selection_lower, + append: selection_append, + insert: selection_insert, + remove: selection_remove, + clone: selection_clone, + datum: selection_datum, + on: selection_on, + dispatch: selection_dispatch, + [Symbol.iterator]: selection_iterator +}; + +function select(selector) { + return typeof selector === "string" + ? new Selection$1([[document.querySelector(selector)]], [document.documentElement]) + : new Selection$1([[selector]], root$1); +} + +function create$1(name) { + return select(creator(name).call(document.documentElement)); +} + +var nextId = 0; + +function local$1() { + return new Local; +} + +function Local() { + this._ = "@" + (++nextId).toString(36); +} + +Local.prototype = local$1.prototype = { + constructor: Local, + get: function(node) { + var id = this._; + while (!(id in node)) if (!(node = node.parentNode)) return; + return node[id]; + }, + set: function(node, value) { + return node[this._] = value; + }, + remove: function(node) { + return this._ in node && delete node[this._]; + }, + toString: function() { + return this._; + } +}; + +function sourceEvent(event) { + let sourceEvent; + while (sourceEvent = event.sourceEvent) event = sourceEvent; + return event; +} + +function pointer(event, node) { + event = sourceEvent(event); + if (node === undefined) node = event.currentTarget; + if (node) { + var svg = node.ownerSVGElement || node; + if (svg.createSVGPoint) { + var point = svg.createSVGPoint(); + point.x = event.clientX, point.y = event.clientY; + point = point.matrixTransform(node.getScreenCTM().inverse()); + return [point.x, point.y]; + } + if (node.getBoundingClientRect) { + var rect = node.getBoundingClientRect(); + return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop]; + } + } + return [event.pageX, event.pageY]; +} + +function pointers(events, node) { + if (events.target) { // i.e., instanceof Event, not TouchList or iterable + events = sourceEvent(events); + if (node === undefined) node = events.currentTarget; + events = events.touches || [events]; + } + return Array.from(events, event => pointer(event, node)); +} + +function selectAll(selector) { + return typeof selector === "string" + ? new Selection$1([document.querySelectorAll(selector)], [document.documentElement]) + : new Selection$1([array$4(selector)], root$1); +} + +// These are typically used in conjunction with noevent to ensure that we can +// preventDefault on the event. +const nonpassive = {passive: false}; +const nonpassivecapture = {capture: true, passive: false}; + +function nopropagation$2(event) { + event.stopImmediatePropagation(); +} + +function noevent$2(event) { + event.preventDefault(); + event.stopImmediatePropagation(); +} + +function dragDisable(view) { + var root = view.document.documentElement, + selection = select(view).on("dragstart.drag", noevent$2, nonpassivecapture); + if ("onselectstart" in root) { + selection.on("selectstart.drag", noevent$2, nonpassivecapture); + } else { + root.__noselect = root.style.MozUserSelect; + root.style.MozUserSelect = "none"; + } +} + +function yesdrag(view, noclick) { + var root = view.document.documentElement, + selection = select(view).on("dragstart.drag", null); + if (noclick) { + selection.on("click.drag", noevent$2, nonpassivecapture); + setTimeout(function() { selection.on("click.drag", null); }, 0); + } + if ("onselectstart" in root) { + selection.on("selectstart.drag", null); + } else { + root.style.MozUserSelect = root.__noselect; + delete root.__noselect; + } +} + +var constant$9 = x => () => x; + +function DragEvent(type, { + sourceEvent, + subject, + target, + identifier, + active, + x, y, dx, dy, + dispatch +}) { + Object.defineProperties(this, { + type: {value: type, enumerable: true, configurable: true}, + sourceEvent: {value: sourceEvent, enumerable: true, configurable: true}, + subject: {value: subject, enumerable: true, configurable: true}, + target: {value: target, enumerable: true, configurable: true}, + identifier: {value: identifier, enumerable: true, configurable: true}, + active: {value: active, enumerable: true, configurable: true}, + x: {value: x, enumerable: true, configurable: true}, + y: {value: y, enumerable: true, configurable: true}, + dx: {value: dx, enumerable: true, configurable: true}, + dy: {value: dy, enumerable: true, configurable: true}, + _: {value: dispatch} + }); +} + +DragEvent.prototype.on = function() { + var value = this._.on.apply(this._, arguments); + return value === this._ ? this : value; +}; + +// Ignore right-click, since that should open the context menu. +function defaultFilter$2(event) { + return !event.ctrlKey && !event.button; +} + +function defaultContainer() { + return this.parentNode; +} + +function defaultSubject(event, d) { + return d == null ? {x: event.x, y: event.y} : d; +} + +function defaultTouchable$2() { + return navigator.maxTouchPoints || ("ontouchstart" in this); +} + +function drag() { + var filter = defaultFilter$2, + container = defaultContainer, + subject = defaultSubject, + touchable = defaultTouchable$2, + gestures = {}, + listeners = dispatch("start", "drag", "end"), + active = 0, + mousedownx, + mousedowny, + mousemoving, + touchending, + clickDistance2 = 0; + + function drag(selection) { + selection + .on("mousedown.drag", mousedowned) + .filter(touchable) + .on("touchstart.drag", touchstarted) + .on("touchmove.drag", touchmoved, nonpassive) + .on("touchend.drag touchcancel.drag", touchended) + .style("touch-action", "none") + .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); + } + + function mousedowned(event, d) { + if (touchending || !filter.call(this, event, d)) return; + var gesture = beforestart(this, container.call(this, event, d), event, d, "mouse"); + if (!gesture) return; + select(event.view) + .on("mousemove.drag", mousemoved, nonpassivecapture) + .on("mouseup.drag", mouseupped, nonpassivecapture); + dragDisable(event.view); + nopropagation$2(event); + mousemoving = false; + mousedownx = event.clientX; + mousedowny = event.clientY; + gesture("start", event); + } + + function mousemoved(event) { + noevent$2(event); + if (!mousemoving) { + var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny; + mousemoving = dx * dx + dy * dy > clickDistance2; + } + gestures.mouse("drag", event); + } + + function mouseupped(event) { + select(event.view).on("mousemove.drag mouseup.drag", null); + yesdrag(event.view, mousemoving); + noevent$2(event); + gestures.mouse("end", event); + } + + function touchstarted(event, d) { + if (!filter.call(this, event, d)) return; + var touches = event.changedTouches, + c = container.call(this, event, d), + n = touches.length, i, gesture; + + for (i = 0; i < n; ++i) { + if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) { + nopropagation$2(event); + gesture("start", event, touches[i]); + } + } + } + + function touchmoved(event) { + var touches = event.changedTouches, + n = touches.length, i, gesture; + + for (i = 0; i < n; ++i) { + if (gesture = gestures[touches[i].identifier]) { + noevent$2(event); + gesture("drag", event, touches[i]); + } + } + } + + function touchended(event) { + var touches = event.changedTouches, + n = touches.length, i, gesture; + + if (touchending) clearTimeout(touchending); + touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed! + for (i = 0; i < n; ++i) { + if (gesture = gestures[touches[i].identifier]) { + nopropagation$2(event); + gesture("end", event, touches[i]); + } + } + } + + function beforestart(that, container, event, d, identifier, touch) { + var dispatch = listeners.copy(), + p = pointer(touch || event, container), dx, dy, + s; + + if ((s = subject.call(that, new DragEvent("beforestart", { + sourceEvent: event, + target: drag, + identifier, + active, + x: p[0], + y: p[1], + dx: 0, + dy: 0, + dispatch + }), d)) == null) return; + + dx = s.x - p[0] || 0; + dy = s.y - p[1] || 0; + + return function gesture(type, event, touch) { + var p0 = p, n; + switch (type) { + case "start": gestures[identifier] = gesture, n = active++; break; + case "end": delete gestures[identifier], --active; // falls through + case "drag": p = pointer(touch || event, container), n = active; break; + } + dispatch.call( + type, + that, + new DragEvent(type, { + sourceEvent: event, + subject: s, + target: drag, + identifier, + active: n, + x: p[0] + dx, + y: p[1] + dy, + dx: p[0] - p0[0], + dy: p[1] - p0[1], + dispatch + }), + d + ); + }; + } + + drag.filter = function(_) { + return arguments.length ? (filter = typeof _ === "function" ? _ : constant$9(!!_), drag) : filter; + }; + + drag.container = function(_) { + return arguments.length ? (container = typeof _ === "function" ? _ : constant$9(_), drag) : container; + }; + + drag.subject = function(_) { + return arguments.length ? (subject = typeof _ === "function" ? _ : constant$9(_), drag) : subject; + }; + + drag.touchable = function(_) { + return arguments.length ? (touchable = typeof _ === "function" ? _ : constant$9(!!_), drag) : touchable; + }; + + drag.on = function() { + var value = listeners.on.apply(listeners, arguments); + return value === listeners ? drag : value; + }; + + drag.clickDistance = function(_) { + return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2); + }; + + return drag; +} + +function define(constructor, factory, prototype) { + constructor.prototype = factory.prototype = prototype; + prototype.constructor = constructor; +} + +function extend(parent, definition) { + var prototype = Object.create(parent.prototype); + for (var key in definition) prototype[key] = definition[key]; + return prototype; +} + +function Color() {} + +var darker = 0.7; +var brighter = 1 / darker; + +var reI = "\\s*([+-]?\\d+)\\s*", + reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", + reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", + reHex = /^#([0-9a-f]{3,8})$/, + reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`), + reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`), + reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`), + reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`), + reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`), + reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`); + +var named = { + aliceblue: 0xf0f8ff, + antiquewhite: 0xfaebd7, + aqua: 0x00ffff, + aquamarine: 0x7fffd4, + azure: 0xf0ffff, + beige: 0xf5f5dc, + bisque: 0xffe4c4, + black: 0x000000, + blanchedalmond: 0xffebcd, + blue: 0x0000ff, + blueviolet: 0x8a2be2, + brown: 0xa52a2a, + burlywood: 0xdeb887, + cadetblue: 0x5f9ea0, + chartreuse: 0x7fff00, + chocolate: 0xd2691e, + coral: 0xff7f50, + cornflowerblue: 0x6495ed, + cornsilk: 0xfff8dc, + crimson: 0xdc143c, + cyan: 0x00ffff, + darkblue: 0x00008b, + darkcyan: 0x008b8b, + darkgoldenrod: 0xb8860b, + darkgray: 0xa9a9a9, + darkgreen: 0x006400, + darkgrey: 0xa9a9a9, + darkkhaki: 0xbdb76b, + darkmagenta: 0x8b008b, + darkolivegreen: 0x556b2f, + darkorange: 0xff8c00, + darkorchid: 0x9932cc, + darkred: 0x8b0000, + darksalmon: 0xe9967a, + darkseagreen: 0x8fbc8f, + darkslateblue: 0x483d8b, + darkslategray: 0x2f4f4f, + darkslategrey: 0x2f4f4f, + darkturquoise: 0x00ced1, + darkviolet: 0x9400d3, + deeppink: 0xff1493, + deepskyblue: 0x00bfff, + dimgray: 0x696969, + dimgrey: 0x696969, + dodgerblue: 0x1e90ff, + firebrick: 0xb22222, + floralwhite: 0xfffaf0, + forestgreen: 0x228b22, + fuchsia: 0xff00ff, + gainsboro: 0xdcdcdc, + ghostwhite: 0xf8f8ff, + gold: 0xffd700, + goldenrod: 0xdaa520, + gray: 0x808080, + green: 0x008000, + greenyellow: 0xadff2f, + grey: 0x808080, + honeydew: 0xf0fff0, + hotpink: 0xff69b4, + indianred: 0xcd5c5c, + indigo: 0x4b0082, + ivory: 0xfffff0, + khaki: 0xf0e68c, + lavender: 0xe6e6fa, + lavenderblush: 0xfff0f5, + lawngreen: 0x7cfc00, + lemonchiffon: 0xfffacd, + lightblue: 0xadd8e6, + lightcoral: 0xf08080, + lightcyan: 0xe0ffff, + lightgoldenrodyellow: 0xfafad2, + lightgray: 0xd3d3d3, + lightgreen: 0x90ee90, + lightgrey: 0xd3d3d3, + lightpink: 0xffb6c1, + lightsalmon: 0xffa07a, + lightseagreen: 0x20b2aa, + lightskyblue: 0x87cefa, + lightslategray: 0x778899, + lightslategrey: 0x778899, + lightsteelblue: 0xb0c4de, + lightyellow: 0xffffe0, + lime: 0x00ff00, + limegreen: 0x32cd32, + linen: 0xfaf0e6, + magenta: 0xff00ff, + maroon: 0x800000, + mediumaquamarine: 0x66cdaa, + mediumblue: 0x0000cd, + mediumorchid: 0xba55d3, + mediumpurple: 0x9370db, + mediumseagreen: 0x3cb371, + mediumslateblue: 0x7b68ee, + mediumspringgreen: 0x00fa9a, + mediumturquoise: 0x48d1cc, + mediumvioletred: 0xc71585, + midnightblue: 0x191970, + mintcream: 0xf5fffa, + mistyrose: 0xffe4e1, + moccasin: 0xffe4b5, + navajowhite: 0xffdead, + navy: 0x000080, + oldlace: 0xfdf5e6, + olive: 0x808000, + olivedrab: 0x6b8e23, + orange: 0xffa500, + orangered: 0xff4500, + orchid: 0xda70d6, + palegoldenrod: 0xeee8aa, + palegreen: 0x98fb98, + paleturquoise: 0xafeeee, + palevioletred: 0xdb7093, + papayawhip: 0xffefd5, + peachpuff: 0xffdab9, + peru: 0xcd853f, + pink: 0xffc0cb, + plum: 0xdda0dd, + powderblue: 0xb0e0e6, + purple: 0x800080, + rebeccapurple: 0x663399, + red: 0xff0000, + rosybrown: 0xbc8f8f, + royalblue: 0x4169e1, + saddlebrown: 0x8b4513, + salmon: 0xfa8072, + sandybrown: 0xf4a460, + seagreen: 0x2e8b57, + seashell: 0xfff5ee, + sienna: 0xa0522d, + silver: 0xc0c0c0, + skyblue: 0x87ceeb, + slateblue: 0x6a5acd, + slategray: 0x708090, + slategrey: 0x708090, + snow: 0xfffafa, + springgreen: 0x00ff7f, + steelblue: 0x4682b4, + tan: 0xd2b48c, + teal: 0x008080, + thistle: 0xd8bfd8, + tomato: 0xff6347, + turquoise: 0x40e0d0, + violet: 0xee82ee, + wheat: 0xf5deb3, + white: 0xffffff, + whitesmoke: 0xf5f5f5, + yellow: 0xffff00, + yellowgreen: 0x9acd32 +}; + +define(Color, color, { + copy(channels) { + return Object.assign(new this.constructor, this, channels); + }, + displayable() { + return this.rgb().displayable(); + }, + hex: color_formatHex, // Deprecated! Use color.formatHex. + formatHex: color_formatHex, + formatHex8: color_formatHex8, + formatHsl: color_formatHsl, + formatRgb: color_formatRgb, + toString: color_formatRgb +}); + +function color_formatHex() { + return this.rgb().formatHex(); +} + +function color_formatHex8() { + return this.rgb().formatHex8(); +} + +function color_formatHsl() { + return hslConvert(this).formatHsl(); +} + +function color_formatRgb() { + return this.rgb().formatRgb(); +} + +function color(format) { + var m, l; + format = (format + "").trim().toLowerCase(); + return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000 + : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00 + : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000 + : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000 + : null) // invalid hex + : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0) + : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%) + : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1) + : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1) + : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%) + : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1) + : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins + : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0) + : null; +} + +function rgbn(n) { + return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1); +} + +function rgba(r, g, b, a) { + if (a <= 0) r = g = b = NaN; + return new Rgb(r, g, b, a); +} + +function rgbConvert(o) { + if (!(o instanceof Color)) o = color(o); + if (!o) return new Rgb; + o = o.rgb(); + return new Rgb(o.r, o.g, o.b, o.opacity); +} + +function rgb(r, g, b, opacity) { + return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity); +} + +function Rgb(r, g, b, opacity) { + this.r = +r; + this.g = +g; + this.b = +b; + this.opacity = +opacity; +} + +define(Rgb, rgb, extend(Color, { + brighter(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + darker(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + rgb() { + return this; + }, + clamp() { + return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity)); + }, + displayable() { + return (-0.5 <= this.r && this.r < 255.5) + && (-0.5 <= this.g && this.g < 255.5) + && (-0.5 <= this.b && this.b < 255.5) + && (0 <= this.opacity && this.opacity <= 1); + }, + hex: rgb_formatHex, // Deprecated! Use color.formatHex. + formatHex: rgb_formatHex, + formatHex8: rgb_formatHex8, + formatRgb: rgb_formatRgb, + toString: rgb_formatRgb +})); + +function rgb_formatHex() { + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`; +} + +function rgb_formatHex8() { + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`; +} + +function rgb_formatRgb() { + const a = clampa(this.opacity); + return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`; +} + +function clampa(opacity) { + return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity)); +} + +function clampi(value) { + return Math.max(0, Math.min(255, Math.round(value) || 0)); +} + +function hex(value) { + value = clampi(value); + return (value < 16 ? "0" : "") + value.toString(16); +} + +function hsla(h, s, l, a) { + if (a <= 0) h = s = l = NaN; + else if (l <= 0 || l >= 1) h = s = NaN; + else if (s <= 0) h = NaN; + return new Hsl(h, s, l, a); +} + +function hslConvert(o) { + if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity); + if (!(o instanceof Color)) o = color(o); + if (!o) return new Hsl; + if (o instanceof Hsl) return o; + o = o.rgb(); + var r = o.r / 255, + g = o.g / 255, + b = o.b / 255, + min = Math.min(r, g, b), + max = Math.max(r, g, b), + h = NaN, + s = max - min, + l = (max + min) / 2; + if (s) { + if (r === max) h = (g - b) / s + (g < b) * 6; + else if (g === max) h = (b - r) / s + 2; + else h = (r - g) / s + 4; + s /= l < 0.5 ? max + min : 2 - max - min; + h *= 60; + } else { + s = l > 0 && l < 1 ? 0 : h; + } + return new Hsl(h, s, l, o.opacity); +} + +function hsl$2(h, s, l, opacity) { + return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity); +} + +function Hsl(h, s, l, opacity) { + this.h = +h; + this.s = +s; + this.l = +l; + this.opacity = +opacity; +} + +define(Hsl, hsl$2, extend(Color, { + brighter(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + darker(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + rgb() { + var h = this.h % 360 + (this.h < 0) * 360, + s = isNaN(h) || isNaN(this.s) ? 0 : this.s, + l = this.l, + m2 = l + (l < 0.5 ? l : 1 - l) * s, + m1 = 2 * l - m2; + return new Rgb( + hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), + hsl2rgb(h, m1, m2), + hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), + this.opacity + ); + }, + clamp() { + return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity)); + }, + displayable() { + return (0 <= this.s && this.s <= 1 || isNaN(this.s)) + && (0 <= this.l && this.l <= 1) + && (0 <= this.opacity && this.opacity <= 1); + }, + formatHsl() { + const a = clampa(this.opacity); + return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`; + } +})); + +function clamph(value) { + value = (value || 0) % 360; + return value < 0 ? value + 360 : value; +} + +function clampt(value) { + return Math.max(0, Math.min(1, value || 0)); +} + +/* From FvD 13.37, CSS Color Module Level 3 */ +function hsl2rgb(h, m1, m2) { + return (h < 60 ? m1 + (m2 - m1) * h / 60 + : h < 180 ? m2 + : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 + : m1) * 255; +} + +const radians$1 = Math.PI / 180; +const degrees$2 = 180 / Math.PI; + +// https://observablehq.com/@mbostock/lab-and-rgb +const K = 18, + Xn = 0.96422, + Yn = 1, + Zn = 0.82521, + t0$1 = 4 / 29, + t1$1 = 6 / 29, + t2 = 3 * t1$1 * t1$1, + t3 = t1$1 * t1$1 * t1$1; + +function labConvert(o) { + if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity); + if (o instanceof Hcl) return hcl2lab(o); + if (!(o instanceof Rgb)) o = rgbConvert(o); + var r = rgb2lrgb(o.r), + g = rgb2lrgb(o.g), + b = rgb2lrgb(o.b), + y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z; + if (r === g && g === b) x = z = y; else { + x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn); + z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn); + } + return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity); +} + +function gray(l, opacity) { + return new Lab(l, 0, 0, opacity == null ? 1 : opacity); +} + +function lab$1(l, a, b, opacity) { + return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity); +} + +function Lab(l, a, b, opacity) { + this.l = +l; + this.a = +a; + this.b = +b; + this.opacity = +opacity; +} + +define(Lab, lab$1, extend(Color, { + brighter(k) { + return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity); + }, + darker(k) { + return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity); + }, + rgb() { + var y = (this.l + 16) / 116, + x = isNaN(this.a) ? y : y + this.a / 500, + z = isNaN(this.b) ? y : y - this.b / 200; + x = Xn * lab2xyz(x); + y = Yn * lab2xyz(y); + z = Zn * lab2xyz(z); + return new Rgb( + lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z), + lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z), + lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z), + this.opacity + ); + } +})); + +function xyz2lab(t) { + return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0$1; +} + +function lab2xyz(t) { + return t > t1$1 ? t * t * t : t2 * (t - t0$1); +} + +function lrgb2rgb(x) { + return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055); +} + +function rgb2lrgb(x) { + return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4); +} + +function hclConvert(o) { + if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity); + if (!(o instanceof Lab)) o = labConvert(o); + if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity); + var h = Math.atan2(o.b, o.a) * degrees$2; + return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity); +} + +function lch(l, c, h, opacity) { + return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity); +} + +function hcl$2(h, c, l, opacity) { + return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity); +} + +function Hcl(h, c, l, opacity) { + this.h = +h; + this.c = +c; + this.l = +l; + this.opacity = +opacity; +} + +function hcl2lab(o) { + if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity); + var h = o.h * radians$1; + return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity); +} + +define(Hcl, hcl$2, extend(Color, { + brighter(k) { + return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity); + }, + darker(k) { + return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity); + }, + rgb() { + return hcl2lab(this).rgb(); + } +})); + +var A = -0.14861, + B$1 = +1.78277, + C = -0.29227, + D$1 = -0.90649, + E = +1.97294, + ED = E * D$1, + EB = E * B$1, + BC_DA = B$1 * C - D$1 * A; + +function cubehelixConvert(o) { + if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity); + if (!(o instanceof Rgb)) o = rgbConvert(o); + var r = o.r / 255, + g = o.g / 255, + b = o.b / 255, + l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB), + bl = b - l, + k = (E * (g - l) - C * bl) / D$1, + s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1 + h = s ? Math.atan2(k, bl) * degrees$2 - 120 : NaN; + return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity); +} + +function cubehelix$3(h, s, l, opacity) { + return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity); +} + +function Cubehelix(h, s, l, opacity) { + this.h = +h; + this.s = +s; + this.l = +l; + this.opacity = +opacity; +} + +define(Cubehelix, cubehelix$3, extend(Color, { + brighter(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Cubehelix(this.h, this.s, this.l * k, this.opacity); + }, + darker(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Cubehelix(this.h, this.s, this.l * k, this.opacity); + }, + rgb() { + var h = isNaN(this.h) ? 0 : (this.h + 120) * radians$1, + l = +this.l, + a = isNaN(this.s) ? 0 : this.s * l * (1 - l), + cosh = Math.cos(h), + sinh = Math.sin(h); + return new Rgb( + 255 * (l + a * (A * cosh + B$1 * sinh)), + 255 * (l + a * (C * cosh + D$1 * sinh)), + 255 * (l + a * (E * cosh)), + this.opacity + ); + } +})); + +function basis$1(t1, v0, v1, v2, v3) { + var t2 = t1 * t1, t3 = t2 * t1; + return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + + (4 - 6 * t2 + 3 * t3) * v1 + + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + + t3 * v3) / 6; +} + +function basis$2(values) { + var n = values.length - 1; + return function(t) { + var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n), + v1 = values[i], + v2 = values[i + 1], + v0 = i > 0 ? values[i - 1] : 2 * v1 - v2, + v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1; + return basis$1((t - i / n) * n, v0, v1, v2, v3); + }; +} + +function basisClosed$1(values) { + var n = values.length; + return function(t) { + var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n), + v0 = values[(i + n - 1) % n], + v1 = values[i % n], + v2 = values[(i + 1) % n], + v3 = values[(i + 2) % n]; + return basis$1((t - i / n) * n, v0, v1, v2, v3); + }; +} + +var constant$8 = x => () => x; + +function linear$2(a, d) { + return function(t) { + return a + t * d; + }; +} + +function exponential$1(a, b, y) { + return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) { + return Math.pow(a + t * b, y); + }; +} + +function hue$1(a, b) { + var d = b - a; + return d ? linear$2(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant$8(isNaN(a) ? b : a); +} + +function gamma$1(y) { + return (y = +y) === 1 ? nogamma : function(a, b) { + return b - a ? exponential$1(a, b, y) : constant$8(isNaN(a) ? b : a); + }; +} + +function nogamma(a, b) { + var d = b - a; + return d ? linear$2(a, d) : constant$8(isNaN(a) ? b : a); +} + +var interpolateRgb = (function rgbGamma(y) { + var color = gamma$1(y); + + function rgb$1(start, end) { + var r = color((start = rgb(start)).r, (end = rgb(end)).r), + g = color(start.g, end.g), + b = color(start.b, end.b), + opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.r = r(t); + start.g = g(t); + start.b = b(t); + start.opacity = opacity(t); + return start + ""; + }; + } + + rgb$1.gamma = rgbGamma; + + return rgb$1; +})(1); + +function rgbSpline(spline) { + return function(colors) { + var n = colors.length, + r = new Array(n), + g = new Array(n), + b = new Array(n), + i, color; + for (i = 0; i < n; ++i) { + color = rgb(colors[i]); + r[i] = color.r || 0; + g[i] = color.g || 0; + b[i] = color.b || 0; + } + r = spline(r); + g = spline(g); + b = spline(b); + color.opacity = 1; + return function(t) { + color.r = r(t); + color.g = g(t); + color.b = b(t); + return color + ""; + }; + }; +} + +var rgbBasis = rgbSpline(basis$2); +var rgbBasisClosed = rgbSpline(basisClosed$1); + +function numberArray(a, b) { + if (!b) b = []; + var n = a ? Math.min(b.length, a.length) : 0, + c = b.slice(), + i; + return function(t) { + for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t; + return c; + }; +} + +function isNumberArray(x) { + return ArrayBuffer.isView(x) && !(x instanceof DataView); +} + +function array$3(a, b) { + return (isNumberArray(b) ? numberArray : genericArray)(a, b); +} + +function genericArray(a, b) { + var nb = b ? b.length : 0, + na = a ? Math.min(nb, a.length) : 0, + x = new Array(na), + c = new Array(nb), + i; + + for (i = 0; i < na; ++i) x[i] = interpolate$2(a[i], b[i]); + for (; i < nb; ++i) c[i] = b[i]; + + return function(t) { + for (i = 0; i < na; ++i) c[i] = x[i](t); + return c; + }; +} + +function date$1(a, b) { + var d = new Date; + return a = +a, b = +b, function(t) { + return d.setTime(a * (1 - t) + b * t), d; + }; +} + +function interpolateNumber(a, b) { + return a = +a, b = +b, function(t) { + return a * (1 - t) + b * t; + }; +} + +function object$1(a, b) { + var i = {}, + c = {}, + k; + + if (a === null || typeof a !== "object") a = {}; + if (b === null || typeof b !== "object") b = {}; + + for (k in b) { + if (k in a) { + i[k] = interpolate$2(a[k], b[k]); + } else { + c[k] = b[k]; + } + } + + return function(t) { + for (k in i) c[k] = i[k](t); + return c; + }; +} + +var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, + reB = new RegExp(reA.source, "g"); + +function zero(b) { + return function() { + return b; + }; +} + +function one(b) { + return function(t) { + return b(t) + ""; + }; +} + +function interpolateString(a, b) { + var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b + am, // current match in a + bm, // current match in b + bs, // string preceding current number in b, if any + i = -1, // index in s + s = [], // string constants and placeholders + q = []; // number interpolators + + // Coerce inputs to strings. + a = a + "", b = b + ""; + + // Interpolate pairs of numbers in a & b. + while ((am = reA.exec(a)) + && (bm = reB.exec(b))) { + if ((bs = bm.index) > bi) { // a string precedes the next number in b + bs = b.slice(bi, bs); + if (s[i]) s[i] += bs; // coalesce with previous string + else s[++i] = bs; + } + if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match + if (s[i]) s[i] += bm; // coalesce with previous string + else s[++i] = bm; + } else { // interpolate non-matching numbers + s[++i] = null; + q.push({i: i, x: interpolateNumber(am, bm)}); + } + bi = reB.lastIndex; + } + + // Add remains of b. + if (bi < b.length) { + bs = b.slice(bi); + if (s[i]) s[i] += bs; // coalesce with previous string + else s[++i] = bs; + } + + // Special optimization for only a single match. + // Otherwise, interpolate each of the numbers and rejoin the string. + return s.length < 2 ? (q[0] + ? one(q[0].x) + : zero(b)) + : (b = q.length, function(t) { + for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }); +} + +function interpolate$2(a, b) { + var t = typeof b, c; + return b == null || t === "boolean" ? constant$8(b) + : (t === "number" ? interpolateNumber + : t === "string" ? ((c = color(b)) ? (b = c, interpolateRgb) : interpolateString) + : b instanceof color ? interpolateRgb + : b instanceof Date ? date$1 + : isNumberArray(b) ? numberArray + : Array.isArray(b) ? genericArray + : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object$1 + : interpolateNumber)(a, b); +} + +function discrete(range) { + var n = range.length; + return function(t) { + return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))]; + }; +} + +function hue(a, b) { + var i = hue$1(+a, +b); + return function(t) { + var x = i(t); + return x - 360 * Math.floor(x / 360); + }; +} + +function interpolateRound(a, b) { + return a = +a, b = +b, function(t) { + return Math.round(a * (1 - t) + b * t); + }; +} + +var degrees$1 = 180 / Math.PI; + +var identity$7 = { + translateX: 0, + translateY: 0, + rotate: 0, + skewX: 0, + scaleX: 1, + scaleY: 1 +}; + +function decompose(a, b, c, d, e, f) { + var scaleX, scaleY, skewX; + if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX; + if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX; + if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY; + if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX; + return { + translateX: e, + translateY: f, + rotate: Math.atan2(b, a) * degrees$1, + skewX: Math.atan(skewX) * degrees$1, + scaleX: scaleX, + scaleY: scaleY + }; +} + +var svgNode; + +/* eslint-disable no-undef */ +function parseCss(value) { + const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + ""); + return m.isIdentity ? identity$7 : decompose(m.a, m.b, m.c, m.d, m.e, m.f); +} + +function parseSvg(value) { + if (value == null) return identity$7; + if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g"); + svgNode.setAttribute("transform", value); + if (!(value = svgNode.transform.baseVal.consolidate())) return identity$7; + value = value.matrix; + return decompose(value.a, value.b, value.c, value.d, value.e, value.f); +} + +function interpolateTransform(parse, pxComma, pxParen, degParen) { + + function pop(s) { + return s.length ? s.pop() + " " : ""; + } + + function translate(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push("translate(", null, pxComma, null, pxParen); + q.push({i: i - 4, x: interpolateNumber(xa, xb)}, {i: i - 2, x: interpolateNumber(ya, yb)}); + } else if (xb || yb) { + s.push("translate(" + xb + pxComma + yb + pxParen); + } + } + + function rotate(a, b, s, q) { + if (a !== b) { + if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path + q.push({i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: interpolateNumber(a, b)}); + } else if (b) { + s.push(pop(s) + "rotate(" + b + degParen); + } + } + + function skewX(a, b, s, q) { + if (a !== b) { + q.push({i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: interpolateNumber(a, b)}); + } else if (b) { + s.push(pop(s) + "skewX(" + b + degParen); + } + } + + function scale(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push(pop(s) + "scale(", null, ",", null, ")"); + q.push({i: i - 4, x: interpolateNumber(xa, xb)}, {i: i - 2, x: interpolateNumber(ya, yb)}); + } else if (xb !== 1 || yb !== 1) { + s.push(pop(s) + "scale(" + xb + "," + yb + ")"); + } + } + + return function(a, b) { + var s = [], // string constants and placeholders + q = []; // number interpolators + a = parse(a), b = parse(b); + translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q); + rotate(a.rotate, b.rotate, s, q); + skewX(a.skewX, b.skewX, s, q); + scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q); + a = b = null; // gc + return function(t) { + var i = -1, n = q.length, o; + while (++i < n) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }; + }; +} + +var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)"); +var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")"); + +var epsilon2$1 = 1e-12; + +function cosh(x) { + return ((x = Math.exp(x)) + 1 / x) / 2; +} + +function sinh(x) { + return ((x = Math.exp(x)) - 1 / x) / 2; +} + +function tanh(x) { + return ((x = Math.exp(2 * x)) - 1) / (x + 1); +} + +var interpolateZoom = (function zoomRho(rho, rho2, rho4) { + + // p0 = [ux0, uy0, w0] + // p1 = [ux1, uy1, w1] + function zoom(p0, p1) { + var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], + ux1 = p1[0], uy1 = p1[1], w1 = p1[2], + dx = ux1 - ux0, + dy = uy1 - uy0, + d2 = dx * dx + dy * dy, + i, + S; + + // Special case for u0 ≅ u1. + if (d2 < epsilon2$1) { + S = Math.log(w1 / w0) / rho; + i = function(t) { + return [ + ux0 + t * dx, + uy0 + t * dy, + w0 * Math.exp(rho * t * S) + ]; + }; + } + + // General case. + else { + var d1 = Math.sqrt(d2), + b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1), + b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1), + r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), + r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1); + S = (r1 - r0) / rho; + i = function(t) { + var s = t * S, + coshr0 = cosh(r0), + u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0)); + return [ + ux0 + u * dx, + uy0 + u * dy, + w0 * coshr0 / cosh(rho * s + r0) + ]; + }; + } + + i.duration = S * 1000 * rho / Math.SQRT2; + + return i; + } + + zoom.rho = function(_) { + var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2; + return zoomRho(_1, _2, _4); + }; + + return zoom; +})(Math.SQRT2, 2, 4); + +function hsl(hue) { + return function(start, end) { + var h = hue((start = hsl$2(start)).h, (end = hsl$2(end)).h), + s = nogamma(start.s, end.s), + l = nogamma(start.l, end.l), + opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.h = h(t); + start.s = s(t); + start.l = l(t); + start.opacity = opacity(t); + return start + ""; + }; + } +} + +var hsl$1 = hsl(hue$1); +var hslLong = hsl(nogamma); + +function lab(start, end) { + var l = nogamma((start = lab$1(start)).l, (end = lab$1(end)).l), + a = nogamma(start.a, end.a), + b = nogamma(start.b, end.b), + opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.l = l(t); + start.a = a(t); + start.b = b(t); + start.opacity = opacity(t); + return start + ""; + }; +} + +function hcl(hue) { + return function(start, end) { + var h = hue((start = hcl$2(start)).h, (end = hcl$2(end)).h), + c = nogamma(start.c, end.c), + l = nogamma(start.l, end.l), + opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.h = h(t); + start.c = c(t); + start.l = l(t); + start.opacity = opacity(t); + return start + ""; + }; + } +} + +var hcl$1 = hcl(hue$1); +var hclLong = hcl(nogamma); + +function cubehelix$1(hue) { + return (function cubehelixGamma(y) { + y = +y; + + function cubehelix(start, end) { + var h = hue((start = cubehelix$3(start)).h, (end = cubehelix$3(end)).h), + s = nogamma(start.s, end.s), + l = nogamma(start.l, end.l), + opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.h = h(t); + start.s = s(t); + start.l = l(Math.pow(t, y)); + start.opacity = opacity(t); + return start + ""; + }; + } + + cubehelix.gamma = cubehelixGamma; + + return cubehelix; + })(1); +} + +var cubehelix$2 = cubehelix$1(hue$1); +var cubehelixLong = cubehelix$1(nogamma); + +function piecewise(interpolate, values) { + if (values === undefined) values = interpolate, interpolate = interpolate$2; + var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n); + while (i < n) I[i] = interpolate(v, v = values[++i]); + return function(t) { + var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n))); + return I[i](t - i); + }; +} + +function quantize$1(interpolator, n) { + var samples = new Array(n); + for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1)); + return samples; +} + +var frame = 0, // is an animation frame pending? + timeout$1 = 0, // is a timeout pending? + interval$1 = 0, // are any timers active? + pokeDelay = 1000, // how frequently we check for clock skew + taskHead, + taskTail, + clockLast = 0, + clockNow = 0, + clockSkew = 0, + clock = typeof performance === "object" && performance.now ? performance : Date, + setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); }; + +function now() { + return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew); +} + +function clearNow() { + clockNow = 0; +} + +function Timer() { + this._call = + this._time = + this._next = null; +} + +Timer.prototype = timer.prototype = { + constructor: Timer, + restart: function(callback, delay, time) { + if (typeof callback !== "function") throw new TypeError("callback is not a function"); + time = (time == null ? now() : +time) + (delay == null ? 0 : +delay); + if (!this._next && taskTail !== this) { + if (taskTail) taskTail._next = this; + else taskHead = this; + taskTail = this; + } + this._call = callback; + this._time = time; + sleep(); + }, + stop: function() { + if (this._call) { + this._call = null; + this._time = Infinity; + sleep(); + } + } +}; + +function timer(callback, delay, time) { + var t = new Timer; + t.restart(callback, delay, time); + return t; +} + +function timerFlush() { + now(); // Get the current time, if not already set. + ++frame; // Pretend we’ve set an alarm, if we haven’t already. + var t = taskHead, e; + while (t) { + if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e); + t = t._next; + } + --frame; +} + +function wake() { + clockNow = (clockLast = clock.now()) + clockSkew; + frame = timeout$1 = 0; + try { + timerFlush(); + } finally { + frame = 0; + nap(); + clockNow = 0; + } +} + +function poke() { + var now = clock.now(), delay = now - clockLast; + if (delay > pokeDelay) clockSkew -= delay, clockLast = now; +} + +function nap() { + var t0, t1 = taskHead, t2, time = Infinity; + while (t1) { + if (t1._call) { + if (time > t1._time) time = t1._time; + t0 = t1, t1 = t1._next; + } else { + t2 = t1._next, t1._next = null; + t1 = t0 ? t0._next = t2 : taskHead = t2; + } + } + taskTail = t0; + sleep(time); +} + +function sleep(time) { + if (frame) return; // Soonest alarm already set, or will be. + if (timeout$1) timeout$1 = clearTimeout(timeout$1); + var delay = time - clockNow; // Strictly less than if we recomputed clockNow. + if (delay > 24) { + if (time < Infinity) timeout$1 = setTimeout(wake, time - clock.now() - clockSkew); + if (interval$1) interval$1 = clearInterval(interval$1); + } else { + if (!interval$1) clockLast = clock.now(), interval$1 = setInterval(poke, pokeDelay); + frame = 1, setFrame(wake); + } +} + +function timeout(callback, delay, time) { + var t = new Timer; + delay = delay == null ? 0 : +delay; + t.restart(elapsed => { + t.stop(); + callback(elapsed + delay); + }, delay, time); + return t; +} + +function interval(callback, delay, time) { + var t = new Timer, total = delay; + if (delay == null) return t.restart(callback, delay, time), t; + t._restart = t.restart; + t.restart = function(callback, delay, time) { + delay = +delay, time = time == null ? now() : +time; + t._restart(function tick(elapsed) { + elapsed += total; + t._restart(tick, total += delay, time); + callback(elapsed); + }, delay, time); + }; + t.restart(callback, delay, time); + return t; +} + +var emptyOn = dispatch("start", "end", "cancel", "interrupt"); +var emptyTween = []; + +var CREATED = 0; +var SCHEDULED = 1; +var STARTING = 2; +var STARTED = 3; +var RUNNING = 4; +var ENDING = 5; +var ENDED = 6; + +function schedule(node, name, id, index, group, timing) { + var schedules = node.__transition; + if (!schedules) node.__transition = {}; + else if (id in schedules) return; + create(node, id, { + name: name, + index: index, // For context during callback. + group: group, // For context during callback. + on: emptyOn, + tween: emptyTween, + time: timing.time, + delay: timing.delay, + duration: timing.duration, + ease: timing.ease, + timer: null, + state: CREATED + }); +} + +function init(node, id) { + var schedule = get(node, id); + if (schedule.state > CREATED) throw new Error("too late; already scheduled"); + return schedule; +} + +function set(node, id) { + var schedule = get(node, id); + if (schedule.state > STARTED) throw new Error("too late; already running"); + return schedule; +} + +function get(node, id) { + var schedule = node.__transition; + if (!schedule || !(schedule = schedule[id])) throw new Error("transition not found"); + return schedule; +} + +function create(node, id, self) { + var schedules = node.__transition, + tween; + + // Initialize the self timer when the transition is created. + // Note the actual delay is not known until the first callback! + schedules[id] = self; + self.timer = timer(schedule, 0, self.time); + + function schedule(elapsed) { + self.state = SCHEDULED; + self.timer.restart(start, self.delay, self.time); + + // If the elapsed delay is less than our first sleep, start immediately. + if (self.delay <= elapsed) start(elapsed - self.delay); + } + + function start(elapsed) { + var i, j, n, o; + + // If the state is not SCHEDULED, then we previously errored on start. + if (self.state !== SCHEDULED) return stop(); + + for (i in schedules) { + o = schedules[i]; + if (o.name !== self.name) continue; + + // While this element already has a starting transition during this frame, + // defer starting an interrupting transition until that transition has a + // chance to tick (and possibly end); see d3/d3-transition#54! + if (o.state === STARTED) return timeout(start); + + // Interrupt the active transition, if any. + if (o.state === RUNNING) { + o.state = ENDED; + o.timer.stop(); + o.on.call("interrupt", node, node.__data__, o.index, o.group); + delete schedules[i]; + } + + // Cancel any pre-empted transitions. + else if (+i < id) { + o.state = ENDED; + o.timer.stop(); + o.on.call("cancel", node, node.__data__, o.index, o.group); + delete schedules[i]; + } + } + + // Defer the first tick to end of the current frame; see d3/d3#1576. + // Note the transition may be canceled after start and before the first tick! + // Note this must be scheduled before the start event; see d3/d3-transition#16! + // Assuming this is successful, subsequent callbacks go straight to tick. + timeout(function() { + if (self.state === STARTED) { + self.state = RUNNING; + self.timer.restart(tick, self.delay, self.time); + tick(elapsed); + } + }); + + // Dispatch the start event. + // Note this must be done before the tween are initialized. + self.state = STARTING; + self.on.call("start", node, node.__data__, self.index, self.group); + if (self.state !== STARTING) return; // interrupted + self.state = STARTED; + + // Initialize the tween, deleting null tween. + tween = new Array(n = self.tween.length); + for (i = 0, j = -1; i < n; ++i) { + if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) { + tween[++j] = o; + } + } + tween.length = j + 1; + } + + function tick(elapsed) { + var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1), + i = -1, + n = tween.length; + + while (++i < n) { + tween[i].call(node, t); + } + + // Dispatch the end event. + if (self.state === ENDING) { + self.on.call("end", node, node.__data__, self.index, self.group); + stop(); + } + } + + function stop() { + self.state = ENDED; + self.timer.stop(); + delete schedules[id]; + for (var i in schedules) return; // eslint-disable-line no-unused-vars + delete node.__transition; + } +} + +function interrupt(node, name) { + var schedules = node.__transition, + schedule, + active, + empty = true, + i; + + if (!schedules) return; + + name = name == null ? null : name + ""; + + for (i in schedules) { + if ((schedule = schedules[i]).name !== name) { empty = false; continue; } + active = schedule.state > STARTING && schedule.state < ENDING; + schedule.state = ENDED; + schedule.timer.stop(); + schedule.on.call(active ? "interrupt" : "cancel", node, node.__data__, schedule.index, schedule.group); + delete schedules[i]; + } + + if (empty) delete node.__transition; +} + +function selection_interrupt(name) { + return this.each(function() { + interrupt(this, name); + }); +} + +function tweenRemove(id, name) { + var tween0, tween1; + return function() { + var schedule = set(this, id), + tween = schedule.tween; + + // If this node shared tween with the previous node, + // just assign the updated shared tween and we’re done! + // Otherwise, copy-on-write. + if (tween !== tween0) { + tween1 = tween0 = tween; + for (var i = 0, n = tween1.length; i < n; ++i) { + if (tween1[i].name === name) { + tween1 = tween1.slice(); + tween1.splice(i, 1); + break; + } + } + } + + schedule.tween = tween1; + }; +} + +function tweenFunction(id, name, value) { + var tween0, tween1; + if (typeof value !== "function") throw new Error; + return function() { + var schedule = set(this, id), + tween = schedule.tween; + + // If this node shared tween with the previous node, + // just assign the updated shared tween and we’re done! + // Otherwise, copy-on-write. + if (tween !== tween0) { + tween1 = (tween0 = tween).slice(); + for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) { + if (tween1[i].name === name) { + tween1[i] = t; + break; + } + } + if (i === n) tween1.push(t); + } + + schedule.tween = tween1; + }; +} + +function transition_tween(name, value) { + var id = this._id; + + name += ""; + + if (arguments.length < 2) { + var tween = get(this.node(), id).tween; + for (var i = 0, n = tween.length, t; i < n; ++i) { + if ((t = tween[i]).name === name) { + return t.value; + } + } + return null; + } + + return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value)); +} + +function tweenValue(transition, name, value) { + var id = transition._id; + + transition.each(function() { + var schedule = set(this, id); + (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments); + }); + + return function(node) { + return get(node, id).value[name]; + }; +} + +function interpolate$1(a, b) { + var c; + return (typeof b === "number" ? interpolateNumber + : b instanceof color ? interpolateRgb + : (c = color(b)) ? (b = c, interpolateRgb) + : interpolateString)(a, b); +} + +function attrRemove(name) { + return function() { + this.removeAttribute(name); + }; +} + +function attrRemoveNS(fullname) { + return function() { + this.removeAttributeNS(fullname.space, fullname.local); + }; +} + +function attrConstant(name, interpolate, value1) { + var string00, + string1 = value1 + "", + interpolate0; + return function() { + var string0 = this.getAttribute(name); + return string0 === string1 ? null + : string0 === string00 ? interpolate0 + : interpolate0 = interpolate(string00 = string0, value1); + }; +} + +function attrConstantNS(fullname, interpolate, value1) { + var string00, + string1 = value1 + "", + interpolate0; + return function() { + var string0 = this.getAttributeNS(fullname.space, fullname.local); + return string0 === string1 ? null + : string0 === string00 ? interpolate0 + : interpolate0 = interpolate(string00 = string0, value1); + }; +} + +function attrFunction(name, interpolate, value) { + var string00, + string10, + interpolate0; + return function() { + var string0, value1 = value(this), string1; + if (value1 == null) return void this.removeAttribute(name); + string0 = this.getAttribute(name); + string1 = value1 + ""; + return string0 === string1 ? null + : string0 === string00 && string1 === string10 ? interpolate0 + : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1)); + }; +} + +function attrFunctionNS(fullname, interpolate, value) { + var string00, + string10, + interpolate0; + return function() { + var string0, value1 = value(this), string1; + if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local); + string0 = this.getAttributeNS(fullname.space, fullname.local); + string1 = value1 + ""; + return string0 === string1 ? null + : string0 === string00 && string1 === string10 ? interpolate0 + : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1)); + }; +} + +function transition_attr(name, value) { + var fullname = namespace(name), i = fullname === "transform" ? interpolateTransformSvg : interpolate$1; + return this.attrTween(name, typeof value === "function" + ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, "attr." + name, value)) + : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname) + : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value)); +} + +function attrInterpolate(name, i) { + return function(t) { + this.setAttribute(name, i.call(this, t)); + }; +} + +function attrInterpolateNS(fullname, i) { + return function(t) { + this.setAttributeNS(fullname.space, fullname.local, i.call(this, t)); + }; +} + +function attrTweenNS(fullname, value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i); + return t0; + } + tween._value = value; + return tween; +} + +function attrTween(name, value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i); + return t0; + } + tween._value = value; + return tween; +} + +function transition_attrTween(name, value) { + var key = "attr." + name; + if (arguments.length < 2) return (key = this.tween(key)) && key._value; + if (value == null) return this.tween(key, null); + if (typeof value !== "function") throw new Error; + var fullname = namespace(name); + return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value)); +} + +function delayFunction(id, value) { + return function() { + init(this, id).delay = +value.apply(this, arguments); + }; +} + +function delayConstant(id, value) { + return value = +value, function() { + init(this, id).delay = value; + }; +} + +function transition_delay(value) { + var id = this._id; + + return arguments.length + ? this.each((typeof value === "function" + ? delayFunction + : delayConstant)(id, value)) + : get(this.node(), id).delay; +} + +function durationFunction(id, value) { + return function() { + set(this, id).duration = +value.apply(this, arguments); + }; +} + +function durationConstant(id, value) { + return value = +value, function() { + set(this, id).duration = value; + }; +} + +function transition_duration(value) { + var id = this._id; + + return arguments.length + ? this.each((typeof value === "function" + ? durationFunction + : durationConstant)(id, value)) + : get(this.node(), id).duration; +} + +function easeConstant(id, value) { + if (typeof value !== "function") throw new Error; + return function() { + set(this, id).ease = value; + }; +} + +function transition_ease(value) { + var id = this._id; + + return arguments.length + ? this.each(easeConstant(id, value)) + : get(this.node(), id).ease; +} + +function easeVarying(id, value) { + return function() { + var v = value.apply(this, arguments); + if (typeof v !== "function") throw new Error; + set(this, id).ease = v; + }; +} + +function transition_easeVarying(value) { + if (typeof value !== "function") throw new Error; + return this.each(easeVarying(this._id, value)); +} + +function transition_filter(match) { + if (typeof match !== "function") match = matcher(match); + + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { + if ((node = group[i]) && match.call(node, node.__data__, i, group)) { + subgroup.push(node); + } + } + } + + return new Transition(subgroups, this._parents, this._name, this._id); +} + +function transition_merge(transition) { + if (transition._id !== this._id) throw new Error; + + for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { + for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group0[i] || group1[i]) { + merge[i] = node; + } + } + } + + for (; j < m0; ++j) { + merges[j] = groups0[j]; + } + + return new Transition(merges, this._parents, this._name, this._id); +} + +function start(name) { + return (name + "").trim().split(/^|\s+/).every(function(t) { + var i = t.indexOf("."); + if (i >= 0) t = t.slice(0, i); + return !t || t === "start"; + }); +} + +function onFunction(id, name, listener) { + var on0, on1, sit = start(name) ? init : set; + return function() { + var schedule = sit(this, id), + on = schedule.on; + + // If this node shared a dispatch with the previous node, + // just assign the updated shared dispatch and we’re done! + // Otherwise, copy-on-write. + if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener); + + schedule.on = on1; + }; +} + +function transition_on(name, listener) { + var id = this._id; + + return arguments.length < 2 + ? get(this.node(), id).on.on(name) + : this.each(onFunction(id, name, listener)); +} + +function removeFunction(id) { + return function() { + var parent = this.parentNode; + for (var i in this.__transition) if (+i !== id) return; + if (parent) parent.removeChild(this); + }; +} + +function transition_remove() { + return this.on("end.remove", removeFunction(this._id)); +} + +function transition_select(select) { + var name = this._name, + id = this._id; + + if (typeof select !== "function") select = selector(select); + + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { + if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { + if ("__data__" in node) subnode.__data__ = node.__data__; + subgroup[i] = subnode; + schedule(subgroup[i], name, id, i, subgroup, get(node, id)); + } + } + } + + return new Transition(subgroups, this._parents, name, id); +} + +function transition_selectAll(select) { + var name = this._name, + id = this._id; + + if (typeof select !== "function") select = selectorAll(select); + + for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) { + if (child = children[k]) { + schedule(child, name, id, k, children, inherit); + } + } + subgroups.push(children); + parents.push(node); + } + } + } + + return new Transition(subgroups, parents, name, id); +} + +var Selection = selection.prototype.constructor; + +function transition_selection() { + return new Selection(this._groups, this._parents); +} + +function styleNull(name, interpolate) { + var string00, + string10, + interpolate0; + return function() { + var string0 = styleValue(this, name), + string1 = (this.style.removeProperty(name), styleValue(this, name)); + return string0 === string1 ? null + : string0 === string00 && string1 === string10 ? interpolate0 + : interpolate0 = interpolate(string00 = string0, string10 = string1); + }; +} + +function styleRemove(name) { + return function() { + this.style.removeProperty(name); + }; +} + +function styleConstant(name, interpolate, value1) { + var string00, + string1 = value1 + "", + interpolate0; + return function() { + var string0 = styleValue(this, name); + return string0 === string1 ? null + : string0 === string00 ? interpolate0 + : interpolate0 = interpolate(string00 = string0, value1); + }; +} + +function styleFunction(name, interpolate, value) { + var string00, + string10, + interpolate0; + return function() { + var string0 = styleValue(this, name), + value1 = value(this), + string1 = value1 + ""; + if (value1 == null) string1 = value1 = (this.style.removeProperty(name), styleValue(this, name)); + return string0 === string1 ? null + : string0 === string00 && string1 === string10 ? interpolate0 + : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1)); + }; +} + +function styleMaybeRemove(id, name) { + var on0, on1, listener0, key = "style." + name, event = "end." + key, remove; + return function() { + var schedule = set(this, id), + on = schedule.on, + listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined; + + // If this node shared a dispatch with the previous node, + // just assign the updated shared dispatch and we’re done! + // Otherwise, copy-on-write. + if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener); + + schedule.on = on1; + }; +} + +function transition_style(name, value, priority) { + var i = (name += "") === "transform" ? interpolateTransformCss : interpolate$1; + return value == null ? this + .styleTween(name, styleNull(name, i)) + .on("end.style." + name, styleRemove(name)) + : typeof value === "function" ? this + .styleTween(name, styleFunction(name, i, tweenValue(this, "style." + name, value))) + .each(styleMaybeRemove(this._id, name)) + : this + .styleTween(name, styleConstant(name, i, value), priority) + .on("end.style." + name, null); +} + +function styleInterpolate(name, i, priority) { + return function(t) { + this.style.setProperty(name, i.call(this, t), priority); + }; +} + +function styleTween(name, value, priority) { + var t, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority); + return t; + } + tween._value = value; + return tween; +} + +function transition_styleTween(name, value, priority) { + var key = "style." + (name += ""); + if (arguments.length < 2) return (key = this.tween(key)) && key._value; + if (value == null) return this.tween(key, null); + if (typeof value !== "function") throw new Error; + return this.tween(key, styleTween(name, value, priority == null ? "" : priority)); +} + +function textConstant(value) { + return function() { + this.textContent = value; + }; +} + +function textFunction(value) { + return function() { + var value1 = value(this); + this.textContent = value1 == null ? "" : value1; + }; +} + +function transition_text(value) { + return this.tween("text", typeof value === "function" + ? textFunction(tweenValue(this, "text", value)) + : textConstant(value == null ? "" : value + "")); +} + +function textInterpolate(i) { + return function(t) { + this.textContent = i.call(this, t); + }; +} + +function textTween(value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) t0 = (i0 = i) && textInterpolate(i); + return t0; + } + tween._value = value; + return tween; +} + +function transition_textTween(value) { + var key = "text"; + if (arguments.length < 1) return (key = this.tween(key)) && key._value; + if (value == null) return this.tween(key, null); + if (typeof value !== "function") throw new Error; + return this.tween(key, textTween(value)); +} + +function transition_transition() { + var name = this._name, + id0 = this._id, + id1 = newId(); + + for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + var inherit = get(node, id0); + schedule(node, name, id1, i, group, { + time: inherit.time + inherit.delay + inherit.duration, + delay: 0, + duration: inherit.duration, + ease: inherit.ease + }); + } + } + } + + return new Transition(groups, this._parents, name, id1); +} + +function transition_end() { + var on0, on1, that = this, id = that._id, size = that.size(); + return new Promise(function(resolve, reject) { + var cancel = {value: reject}, + end = {value: function() { if (--size === 0) resolve(); }}; + + that.each(function() { + var schedule = set(this, id), + on = schedule.on; + + // If this node shared a dispatch with the previous node, + // just assign the updated shared dispatch and we’re done! + // Otherwise, copy-on-write. + if (on !== on0) { + on1 = (on0 = on).copy(); + on1._.cancel.push(cancel); + on1._.interrupt.push(cancel); + on1._.end.push(end); + } + + schedule.on = on1; + }); + + // The selection was empty, resolve end immediately + if (size === 0) resolve(); + }); +} + +var id = 0; + +function Transition(groups, parents, name, id) { + this._groups = groups; + this._parents = parents; + this._name = name; + this._id = id; +} + +function transition(name) { + return selection().transition(name); +} + +function newId() { + return ++id; +} + +var selection_prototype = selection.prototype; + +Transition.prototype = transition.prototype = { + constructor: Transition, + select: transition_select, + selectAll: transition_selectAll, + selectChild: selection_prototype.selectChild, + selectChildren: selection_prototype.selectChildren, + filter: transition_filter, + merge: transition_merge, + selection: transition_selection, + transition: transition_transition, + call: selection_prototype.call, + nodes: selection_prototype.nodes, + node: selection_prototype.node, + size: selection_prototype.size, + empty: selection_prototype.empty, + each: selection_prototype.each, + on: transition_on, + attr: transition_attr, + attrTween: transition_attrTween, + style: transition_style, + styleTween: transition_styleTween, + text: transition_text, + textTween: transition_textTween, + remove: transition_remove, + tween: transition_tween, + delay: transition_delay, + duration: transition_duration, + ease: transition_ease, + easeVarying: transition_easeVarying, + end: transition_end, + [Symbol.iterator]: selection_prototype[Symbol.iterator] +}; + +const linear$1 = t => +t; + +function quadIn(t) { + return t * t; +} + +function quadOut(t) { + return t * (2 - t); +} + +function quadInOut(t) { + return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2; +} + +function cubicIn(t) { + return t * t * t; +} + +function cubicOut(t) { + return --t * t * t + 1; +} + +function cubicInOut(t) { + return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2; +} + +var exponent$1 = 3; + +var polyIn = (function custom(e) { + e = +e; + + function polyIn(t) { + return Math.pow(t, e); + } + + polyIn.exponent = custom; + + return polyIn; +})(exponent$1); + +var polyOut = (function custom(e) { + e = +e; + + function polyOut(t) { + return 1 - Math.pow(1 - t, e); + } + + polyOut.exponent = custom; + + return polyOut; +})(exponent$1); + +var polyInOut = (function custom(e) { + e = +e; + + function polyInOut(t) { + return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2; + } + + polyInOut.exponent = custom; + + return polyInOut; +})(exponent$1); + +var pi$4 = Math.PI, + halfPi$3 = pi$4 / 2; + +function sinIn(t) { + return (+t === 1) ? 1 : 1 - Math.cos(t * halfPi$3); +} + +function sinOut(t) { + return Math.sin(t * halfPi$3); +} + +function sinInOut(t) { + return (1 - Math.cos(pi$4 * t)) / 2; +} + +// tpmt is two power minus ten times t scaled to [0,1] +function tpmt(x) { + return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494; +} + +function expIn(t) { + return tpmt(1 - +t); +} + +function expOut(t) { + return 1 - tpmt(t); +} + +function expInOut(t) { + return ((t *= 2) <= 1 ? tpmt(1 - t) : 2 - tpmt(t - 1)) / 2; +} + +function circleIn(t) { + return 1 - Math.sqrt(1 - t * t); +} + +function circleOut(t) { + return Math.sqrt(1 - --t * t); +} + +function circleInOut(t) { + return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2; +} + +var b1 = 4 / 11, + b2 = 6 / 11, + b3 = 8 / 11, + b4 = 3 / 4, + b5 = 9 / 11, + b6 = 10 / 11, + b7 = 15 / 16, + b8 = 21 / 22, + b9 = 63 / 64, + b0 = 1 / b1 / b1; + +function bounceIn(t) { + return 1 - bounceOut(1 - t); +} + +function bounceOut(t) { + return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9; +} + +function bounceInOut(t) { + return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2; +} + +var overshoot = 1.70158; + +var backIn = (function custom(s) { + s = +s; + + function backIn(t) { + return (t = +t) * t * (s * (t - 1) + t); + } + + backIn.overshoot = custom; + + return backIn; +})(overshoot); + +var backOut = (function custom(s) { + s = +s; + + function backOut(t) { + return --t * t * ((t + 1) * s + t) + 1; + } + + backOut.overshoot = custom; + + return backOut; +})(overshoot); + +var backInOut = (function custom(s) { + s = +s; + + function backInOut(t) { + return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2; + } + + backInOut.overshoot = custom; + + return backInOut; +})(overshoot); + +var tau$5 = 2 * Math.PI, + amplitude = 1, + period = 0.3; + +var elasticIn = (function custom(a, p) { + var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau$5); + + function elasticIn(t) { + return a * tpmt(-(--t)) * Math.sin((s - t) / p); + } + + elasticIn.amplitude = function(a) { return custom(a, p * tau$5); }; + elasticIn.period = function(p) { return custom(a, p); }; + + return elasticIn; +})(amplitude, period); + +var elasticOut = (function custom(a, p) { + var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau$5); + + function elasticOut(t) { + return 1 - a * tpmt(t = +t) * Math.sin((t + s) / p); + } + + elasticOut.amplitude = function(a) { return custom(a, p * tau$5); }; + elasticOut.period = function(p) { return custom(a, p); }; + + return elasticOut; +})(amplitude, period); + +var elasticInOut = (function custom(a, p) { + var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau$5); + + function elasticInOut(t) { + return ((t = t * 2 - 1) < 0 + ? a * tpmt(-t) * Math.sin((s - t) / p) + : 2 - a * tpmt(t) * Math.sin((s + t) / p)) / 2; + } + + elasticInOut.amplitude = function(a) { return custom(a, p * tau$5); }; + elasticInOut.period = function(p) { return custom(a, p); }; + + return elasticInOut; +})(amplitude, period); + +var defaultTiming = { + time: null, // Set on use. + delay: 0, + duration: 250, + ease: cubicInOut +}; + +function inherit(node, id) { + var timing; + while (!(timing = node.__transition) || !(timing = timing[id])) { + if (!(node = node.parentNode)) { + throw new Error(`transition ${id} not found`); + } + } + return timing; +} + +function selection_transition(name) { + var id, + timing; + + if (name instanceof Transition) { + id = name._id, name = name._name; + } else { + id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + ""; + } + + for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + schedule(node, name, id, i, group, timing || inherit(node, id)); + } + } + } + + return new Transition(groups, this._parents, name, id); +} + +selection.prototype.interrupt = selection_interrupt; +selection.prototype.transition = selection_transition; + +var root = [null]; + +function active(node, name) { + var schedules = node.__transition, + schedule, + i; + + if (schedules) { + name = name == null ? null : name + ""; + for (i in schedules) { + if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) { + return new Transition([[node]], root, name, +i); + } + } + } + + return null; +} + +var constant$7 = x => () => x; + +function BrushEvent(type, { + sourceEvent, + target, + selection, + mode, + dispatch +}) { + Object.defineProperties(this, { + type: {value: type, enumerable: true, configurable: true}, + sourceEvent: {value: sourceEvent, enumerable: true, configurable: true}, + target: {value: target, enumerable: true, configurable: true}, + selection: {value: selection, enumerable: true, configurable: true}, + mode: {value: mode, enumerable: true, configurable: true}, + _: {value: dispatch} + }); +} + +function nopropagation$1(event) { + event.stopImmediatePropagation(); +} + +function noevent$1(event) { + event.preventDefault(); + event.stopImmediatePropagation(); +} + +var MODE_DRAG = {name: "drag"}, + MODE_SPACE = {name: "space"}, + MODE_HANDLE = {name: "handle"}, + MODE_CENTER = {name: "center"}; + +const {abs: abs$3, max: max$2, min: min$1} = Math; + +function number1(e) { + return [+e[0], +e[1]]; +} + +function number2(e) { + return [number1(e[0]), number1(e[1])]; +} + +var X = { + name: "x", + handles: ["w", "e"].map(type), + input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; }, + output: function(xy) { return xy && [xy[0][0], xy[1][0]]; } +}; + +var Y = { + name: "y", + handles: ["n", "s"].map(type), + input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; }, + output: function(xy) { return xy && [xy[0][1], xy[1][1]]; } +}; + +var XY = { + name: "xy", + handles: ["n", "w", "e", "s", "nw", "ne", "sw", "se"].map(type), + input: function(xy) { return xy == null ? null : number2(xy); }, + output: function(xy) { return xy; } +}; + +var cursors = { + overlay: "crosshair", + selection: "move", + n: "ns-resize", + e: "ew-resize", + s: "ns-resize", + w: "ew-resize", + nw: "nwse-resize", + ne: "nesw-resize", + se: "nwse-resize", + sw: "nesw-resize" +}; + +var flipX = { + e: "w", + w: "e", + nw: "ne", + ne: "nw", + se: "sw", + sw: "se" +}; + +var flipY = { + n: "s", + s: "n", + nw: "sw", + ne: "se", + se: "ne", + sw: "nw" +}; + +var signsX = { + overlay: +1, + selection: +1, + n: null, + e: +1, + s: null, + w: -1, + nw: -1, + ne: +1, + se: +1, + sw: -1 +}; + +var signsY = { + overlay: +1, + selection: +1, + n: -1, + e: null, + s: +1, + w: null, + nw: -1, + ne: -1, + se: +1, + sw: +1 +}; + +function type(t) { + return {type: t}; +} + +// Ignore right-click, since that should open the context menu. +function defaultFilter$1(event) { + return !event.ctrlKey && !event.button; +} + +function defaultExtent$1() { + var svg = this.ownerSVGElement || this; + if (svg.hasAttribute("viewBox")) { + svg = svg.viewBox.baseVal; + return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]]; + } + return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]]; +} + +function defaultTouchable$1() { + return navigator.maxTouchPoints || ("ontouchstart" in this); +} + +// Like d3.local, but with the name “__brush†rather than auto-generated. +function local(node) { + while (!node.__brush) if (!(node = node.parentNode)) return; + return node.__brush; +} + +function empty(extent) { + return extent[0][0] === extent[1][0] + || extent[0][1] === extent[1][1]; +} + +function brushSelection(node) { + var state = node.__brush; + return state ? state.dim.output(state.selection) : null; +} + +function brushX() { + return brush$1(X); +} + +function brushY() { + return brush$1(Y); +} + +function brush() { + return brush$1(XY); +} + +function brush$1(dim) { + var extent = defaultExtent$1, + filter = defaultFilter$1, + touchable = defaultTouchable$1, + keys = true, + listeners = dispatch("start", "brush", "end"), + handleSize = 6, + touchending; + + function brush(group) { + var overlay = group + .property("__brush", initialize) + .selectAll(".overlay") + .data([type("overlay")]); + + overlay.enter().append("rect") + .attr("class", "overlay") + .attr("pointer-events", "all") + .attr("cursor", cursors.overlay) + .merge(overlay) + .each(function() { + var extent = local(this).extent; + select(this) + .attr("x", extent[0][0]) + .attr("y", extent[0][1]) + .attr("width", extent[1][0] - extent[0][0]) + .attr("height", extent[1][1] - extent[0][1]); + }); + + group.selectAll(".selection") + .data([type("selection")]) + .enter().append("rect") + .attr("class", "selection") + .attr("cursor", cursors.selection) + .attr("fill", "#777") + .attr("fill-opacity", 0.3) + .attr("stroke", "#fff") + .attr("shape-rendering", "crispEdges"); + + var handle = group.selectAll(".handle") + .data(dim.handles, function(d) { return d.type; }); + + handle.exit().remove(); + + handle.enter().append("rect") + .attr("class", function(d) { return "handle handle--" + d.type; }) + .attr("cursor", function(d) { return cursors[d.type]; }); + + group + .each(redraw) + .attr("fill", "none") + .attr("pointer-events", "all") + .on("mousedown.brush", started) + .filter(touchable) + .on("touchstart.brush", started) + .on("touchmove.brush", touchmoved) + .on("touchend.brush touchcancel.brush", touchended) + .style("touch-action", "none") + .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); + } + + brush.move = function(group, selection, event) { + if (group.tween) { + group + .on("start.brush", function(event) { emitter(this, arguments).beforestart().start(event); }) + .on("interrupt.brush end.brush", function(event) { emitter(this, arguments).end(event); }) + .tween("brush", function() { + var that = this, + state = that.__brush, + emit = emitter(that, arguments), + selection0 = state.selection, + selection1 = dim.input(typeof selection === "function" ? selection.apply(this, arguments) : selection, state.extent), + i = interpolate$2(selection0, selection1); + + function tween(t) { + state.selection = t === 1 && selection1 === null ? null : i(t); + redraw.call(that); + emit.brush(); + } + + return selection0 !== null && selection1 !== null ? tween : tween(1); + }); + } else { + group + .each(function() { + var that = this, + args = arguments, + state = that.__brush, + selection1 = dim.input(typeof selection === "function" ? selection.apply(that, args) : selection, state.extent), + emit = emitter(that, args).beforestart(); + + interrupt(that); + state.selection = selection1 === null ? null : selection1; + redraw.call(that); + emit.start(event).brush(event).end(event); + }); + } + }; + + brush.clear = function(group, event) { + brush.move(group, null, event); + }; + + function redraw() { + var group = select(this), + selection = local(this).selection; + + if (selection) { + group.selectAll(".selection") + .style("display", null) + .attr("x", selection[0][0]) + .attr("y", selection[0][1]) + .attr("width", selection[1][0] - selection[0][0]) + .attr("height", selection[1][1] - selection[0][1]); + + group.selectAll(".handle") + .style("display", null) + .attr("x", function(d) { return d.type[d.type.length - 1] === "e" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; }) + .attr("y", function(d) { return d.type[0] === "s" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; }) + .attr("width", function(d) { return d.type === "n" || d.type === "s" ? selection[1][0] - selection[0][0] + handleSize : handleSize; }) + .attr("height", function(d) { return d.type === "e" || d.type === "w" ? selection[1][1] - selection[0][1] + handleSize : handleSize; }); + } + + else { + group.selectAll(".selection,.handle") + .style("display", "none") + .attr("x", null) + .attr("y", null) + .attr("width", null) + .attr("height", null); + } + } + + function emitter(that, args, clean) { + var emit = that.__brush.emitter; + return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean); + } + + function Emitter(that, args, clean) { + this.that = that; + this.args = args; + this.state = that.__brush; + this.active = 0; + this.clean = clean; + } + + Emitter.prototype = { + beforestart: function() { + if (++this.active === 1) this.state.emitter = this, this.starting = true; + return this; + }, + start: function(event, mode) { + if (this.starting) this.starting = false, this.emit("start", event, mode); + else this.emit("brush", event); + return this; + }, + brush: function(event, mode) { + this.emit("brush", event, mode); + return this; + }, + end: function(event, mode) { + if (--this.active === 0) delete this.state.emitter, this.emit("end", event, mode); + return this; + }, + emit: function(type, event, mode) { + var d = select(this.that).datum(); + listeners.call( + type, + this.that, + new BrushEvent(type, { + sourceEvent: event, + target: brush, + selection: dim.output(this.state.selection), + mode, + dispatch: listeners + }), + d + ); + } + }; + + function started(event) { + if (touchending && !event.touches) return; + if (!filter.apply(this, arguments)) return; + + var that = this, + type = event.target.__data__.type, + mode = (keys && event.metaKey ? type = "overlay" : type) === "selection" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE), + signX = dim === Y ? null : signsX[type], + signY = dim === X ? null : signsY[type], + state = local(that), + extent = state.extent, + selection = state.selection, + W = extent[0][0], w0, w1, + N = extent[0][1], n0, n1, + E = extent[1][0], e0, e1, + S = extent[1][1], s0, s1, + dx = 0, + dy = 0, + moving, + shifting = signX && signY && keys && event.shiftKey, + lockX, + lockY, + points = Array.from(event.touches || [event], t => { + const i = t.identifier; + t = pointer(t, that); + t.point0 = t.slice(); + t.identifier = i; + return t; + }); + + interrupt(that); + var emit = emitter(that, arguments, true).beforestart(); + + if (type === "overlay") { + if (selection) moving = true; + const pts = [points[0], points[1] || points[0]]; + state.selection = selection = [[ + w0 = dim === Y ? W : min$1(pts[0][0], pts[1][0]), + n0 = dim === X ? N : min$1(pts[0][1], pts[1][1]) + ], [ + e0 = dim === Y ? E : max$2(pts[0][0], pts[1][0]), + s0 = dim === X ? S : max$2(pts[0][1], pts[1][1]) + ]]; + if (points.length > 1) move(event); + } else { + w0 = selection[0][0]; + n0 = selection[0][1]; + e0 = selection[1][0]; + s0 = selection[1][1]; + } + + w1 = w0; + n1 = n0; + e1 = e0; + s1 = s0; + + var group = select(that) + .attr("pointer-events", "none"); + + var overlay = group.selectAll(".overlay") + .attr("cursor", cursors[type]); + + if (event.touches) { + emit.moved = moved; + emit.ended = ended; + } else { + var view = select(event.view) + .on("mousemove.brush", moved, true) + .on("mouseup.brush", ended, true); + if (keys) view + .on("keydown.brush", keydowned, true) + .on("keyup.brush", keyupped, true); + + dragDisable(event.view); + } + + redraw.call(that); + emit.start(event, mode.name); + + function moved(event) { + for (const p of event.changedTouches || [event]) { + for (const d of points) + if (d.identifier === p.identifier) d.cur = pointer(p, that); + } + if (shifting && !lockX && !lockY && points.length === 1) { + const point = points[0]; + if (abs$3(point.cur[0] - point[0]) > abs$3(point.cur[1] - point[1])) + lockY = true; + else + lockX = true; + } + for (const point of points) + if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1]; + moving = true; + noevent$1(event); + move(event); + } + + function move(event) { + const point = points[0], point0 = point.point0; + var t; + + dx = point[0] - point0[0]; + dy = point[1] - point0[1]; + + switch (mode) { + case MODE_SPACE: + case MODE_DRAG: { + if (signX) dx = max$2(W - w0, min$1(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx; + if (signY) dy = max$2(N - n0, min$1(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy; + break; + } + case MODE_HANDLE: { + if (points[1]) { + if (signX) w1 = max$2(W, min$1(E, points[0][0])), e1 = max$2(W, min$1(E, points[1][0])), signX = 1; + if (signY) n1 = max$2(N, min$1(S, points[0][1])), s1 = max$2(N, min$1(S, points[1][1])), signY = 1; + } else { + if (signX < 0) dx = max$2(W - w0, min$1(E - w0, dx)), w1 = w0 + dx, e1 = e0; + else if (signX > 0) dx = max$2(W - e0, min$1(E - e0, dx)), w1 = w0, e1 = e0 + dx; + if (signY < 0) dy = max$2(N - n0, min$1(S - n0, dy)), n1 = n0 + dy, s1 = s0; + else if (signY > 0) dy = max$2(N - s0, min$1(S - s0, dy)), n1 = n0, s1 = s0 + dy; + } + break; + } + case MODE_CENTER: { + if (signX) w1 = max$2(W, min$1(E, w0 - dx * signX)), e1 = max$2(W, min$1(E, e0 + dx * signX)); + if (signY) n1 = max$2(N, min$1(S, n0 - dy * signY)), s1 = max$2(N, min$1(S, s0 + dy * signY)); + break; + } + } + + if (e1 < w1) { + signX *= -1; + t = w0, w0 = e0, e0 = t; + t = w1, w1 = e1, e1 = t; + if (type in flipX) overlay.attr("cursor", cursors[type = flipX[type]]); + } + + if (s1 < n1) { + signY *= -1; + t = n0, n0 = s0, s0 = t; + t = n1, n1 = s1, s1 = t; + if (type in flipY) overlay.attr("cursor", cursors[type = flipY[type]]); + } + + if (state.selection) selection = state.selection; // May be set by brush.move! + if (lockX) w1 = selection[0][0], e1 = selection[1][0]; + if (lockY) n1 = selection[0][1], s1 = selection[1][1]; + + if (selection[0][0] !== w1 + || selection[0][1] !== n1 + || selection[1][0] !== e1 + || selection[1][1] !== s1) { + state.selection = [[w1, n1], [e1, s1]]; + redraw.call(that); + emit.brush(event, mode.name); + } + } + + function ended(event) { + nopropagation$1(event); + if (event.touches) { + if (event.touches.length) return; + if (touchending) clearTimeout(touchending); + touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed! + } else { + yesdrag(event.view, moving); + view.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null); + } + group.attr("pointer-events", "all"); + overlay.attr("cursor", cursors.overlay); + if (state.selection) selection = state.selection; // May be set by brush.move (on start)! + if (empty(selection)) state.selection = null, redraw.call(that); + emit.end(event, mode.name); + } + + function keydowned(event) { + switch (event.keyCode) { + case 16: { // SHIFT + shifting = signX && signY; + break; + } + case 18: { // ALT + if (mode === MODE_HANDLE) { + if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX; + if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY; + mode = MODE_CENTER; + move(event); + } + break; + } + case 32: { // SPACE; takes priority over ALT + if (mode === MODE_HANDLE || mode === MODE_CENTER) { + if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx; + if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy; + mode = MODE_SPACE; + overlay.attr("cursor", cursors.selection); + move(event); + } + break; + } + default: return; + } + noevent$1(event); + } + + function keyupped(event) { + switch (event.keyCode) { + case 16: { // SHIFT + if (shifting) { + lockX = lockY = shifting = false; + move(event); + } + break; + } + case 18: { // ALT + if (mode === MODE_CENTER) { + if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1; + if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1; + mode = MODE_HANDLE; + move(event); + } + break; + } + case 32: { // SPACE + if (mode === MODE_SPACE) { + if (event.altKey) { + if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX; + if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY; + mode = MODE_CENTER; + } else { + if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1; + if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1; + mode = MODE_HANDLE; + } + overlay.attr("cursor", cursors[type]); + move(event); + } + break; + } + default: return; + } + noevent$1(event); + } + } + + function touchmoved(event) { + emitter(this, arguments).moved(event); + } + + function touchended(event) { + emitter(this, arguments).ended(event); + } + + function initialize() { + var state = this.__brush || {selection: null}; + state.extent = number2(extent.apply(this, arguments)); + state.dim = dim; + return state; + } + + brush.extent = function(_) { + return arguments.length ? (extent = typeof _ === "function" ? _ : constant$7(number2(_)), brush) : extent; + }; + + brush.filter = function(_) { + return arguments.length ? (filter = typeof _ === "function" ? _ : constant$7(!!_), brush) : filter; + }; + + brush.touchable = function(_) { + return arguments.length ? (touchable = typeof _ === "function" ? _ : constant$7(!!_), brush) : touchable; + }; + + brush.handleSize = function(_) { + return arguments.length ? (handleSize = +_, brush) : handleSize; + }; + + brush.keyModifiers = function(_) { + return arguments.length ? (keys = !!_, brush) : keys; + }; + + brush.on = function() { + var value = listeners.on.apply(listeners, arguments); + return value === listeners ? brush : value; + }; + + return brush; +} + +var abs$2 = Math.abs; +var cos$2 = Math.cos; +var sin$2 = Math.sin; +var pi$3 = Math.PI; +var halfPi$2 = pi$3 / 2; +var tau$4 = pi$3 * 2; +var max$1 = Math.max; +var epsilon$5 = 1e-12; + +function range$1(i, j) { + return Array.from({length: j - i}, (_, k) => i + k); +} + +function compareValue(compare) { + return function(a, b) { + return compare( + a.source.value + a.target.value, + b.source.value + b.target.value + ); + }; +} + +function chord() { + return chord$1(false, false); +} + +function chordTranspose() { + return chord$1(false, true); +} + +function chordDirected() { + return chord$1(true, false); +} + +function chord$1(directed, transpose) { + var padAngle = 0, + sortGroups = null, + sortSubgroups = null, + sortChords = null; + + function chord(matrix) { + var n = matrix.length, + groupSums = new Array(n), + groupIndex = range$1(0, n), + chords = new Array(n * n), + groups = new Array(n), + k = 0, dx; + + matrix = Float64Array.from({length: n * n}, transpose + ? (_, i) => matrix[i % n][i / n | 0] + : (_, i) => matrix[i / n | 0][i % n]); + + // Compute the scaling factor from value to angle in [0, 2pi]. + for (let i = 0; i < n; ++i) { + let x = 0; + for (let j = 0; j < n; ++j) x += matrix[i * n + j] + directed * matrix[j * n + i]; + k += groupSums[i] = x; + } + k = max$1(0, tau$4 - padAngle * n) / k; + dx = k ? padAngle : tau$4 / n; + + // Compute the angles for each group and constituent chord. + { + let x = 0; + if (sortGroups) groupIndex.sort((a, b) => sortGroups(groupSums[a], groupSums[b])); + for (const i of groupIndex) { + const x0 = x; + if (directed) { + const subgroupIndex = range$1(~n + 1, n).filter(j => j < 0 ? matrix[~j * n + i] : matrix[i * n + j]); + if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(a < 0 ? -matrix[~a * n + i] : matrix[i * n + a], b < 0 ? -matrix[~b * n + i] : matrix[i * n + b])); + for (const j of subgroupIndex) { + if (j < 0) { + const chord = chords[~j * n + i] || (chords[~j * n + i] = {source: null, target: null}); + chord.target = {index: i, startAngle: x, endAngle: x += matrix[~j * n + i] * k, value: matrix[~j * n + i]}; + } else { + const chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null}); + chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]}; + } + } + groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]}; + } else { + const subgroupIndex = range$1(0, n).filter(j => matrix[i * n + j] || matrix[j * n + i]); + if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(matrix[i * n + a], matrix[i * n + b])); + for (const j of subgroupIndex) { + let chord; + if (i < j) { + chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null}); + chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]}; + } else { + chord = chords[j * n + i] || (chords[j * n + i] = {source: null, target: null}); + chord.target = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]}; + if (i === j) chord.source = chord.target; + } + if (chord.source && chord.target && chord.source.value < chord.target.value) { + const source = chord.source; + chord.source = chord.target; + chord.target = source; + } + } + groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]}; + } + x += dx; + } + } + + // Remove empty chords. + chords = Object.values(chords); + chords.groups = groups; + return sortChords ? chords.sort(sortChords) : chords; + } + + chord.padAngle = function(_) { + return arguments.length ? (padAngle = max$1(0, _), chord) : padAngle; + }; + + chord.sortGroups = function(_) { + return arguments.length ? (sortGroups = _, chord) : sortGroups; + }; + + chord.sortSubgroups = function(_) { + return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups; + }; + + chord.sortChords = function(_) { + return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._; + }; + + return chord; +} + +const pi$2 = Math.PI, + tau$3 = 2 * pi$2, + epsilon$4 = 1e-6, + tauEpsilon = tau$3 - epsilon$4; + +function append$1(strings) { + this._ += strings[0]; + for (let i = 1, n = strings.length; i < n; ++i) { + this._ += arguments[i] + strings[i]; + } +} + +function appendRound$1(digits) { + let d = Math.floor(digits); + if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`); + if (d > 15) return append$1; + const k = 10 ** d; + return function(strings) { + this._ += strings[0]; + for (let i = 1, n = strings.length; i < n; ++i) { + this._ += Math.round(arguments[i] * k) / k + strings[i]; + } + }; +} + +let Path$1 = class Path { + constructor(digits) { + this._x0 = this._y0 = // start of current subpath + this._x1 = this._y1 = null; // end of current subpath + this._ = ""; + this._append = digits == null ? append$1 : appendRound$1(digits); + } + moveTo(x, y) { + this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`; + } + closePath() { + if (this._x1 !== null) { + this._x1 = this._x0, this._y1 = this._y0; + this._append`Z`; + } + } + lineTo(x, y) { + this._append`L${this._x1 = +x},${this._y1 = +y}`; + } + quadraticCurveTo(x1, y1, x, y) { + this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`; + } + bezierCurveTo(x1, y1, x2, y2, x, y) { + this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`; + } + arcTo(x1, y1, x2, y2, r) { + x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r; + + // Is the radius negative? Error. + if (r < 0) throw new Error(`negative radius: ${r}`); + + let x0 = this._x1, + y0 = this._y1, + x21 = x2 - x1, + y21 = y2 - y1, + x01 = x0 - x1, + y01 = y0 - y1, + l01_2 = x01 * x01 + y01 * y01; + + // Is this path empty? Move to (x1,y1). + if (this._x1 === null) { + this._append`M${this._x1 = x1},${this._y1 = y1}`; + } + + // Or, is (x1,y1) coincident with (x0,y0)? Do nothing. + else if (!(l01_2 > epsilon$4)); + + // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear? + // Equivalently, is (x1,y1) coincident with (x2,y2)? + // Or, is the radius zero? Line to (x1,y1). + else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon$4) || !r) { + this._append`L${this._x1 = x1},${this._y1 = y1}`; + } + + // Otherwise, draw an arc! + else { + let x20 = x2 - x0, + y20 = y2 - y0, + l21_2 = x21 * x21 + y21 * y21, + l20_2 = x20 * x20 + y20 * y20, + l21 = Math.sqrt(l21_2), + l01 = Math.sqrt(l01_2), + l = r * Math.tan((pi$2 - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2), + t01 = l / l01, + t21 = l / l21; + + // If the start tangent is not coincident with (x0,y0), line to. + if (Math.abs(t01 - 1) > epsilon$4) { + this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`; + } + + this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`; + } + } + arc(x, y, r, a0, a1, ccw) { + x = +x, y = +y, r = +r, ccw = !!ccw; + + // Is the radius negative? Error. + if (r < 0) throw new Error(`negative radius: ${r}`); + + let dx = r * Math.cos(a0), + dy = r * Math.sin(a0), + x0 = x + dx, + y0 = y + dy, + cw = 1 ^ ccw, + da = ccw ? a0 - a1 : a1 - a0; + + // Is this path empty? Move to (x0,y0). + if (this._x1 === null) { + this._append`M${x0},${y0}`; + } + + // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0). + else if (Math.abs(this._x1 - x0) > epsilon$4 || Math.abs(this._y1 - y0) > epsilon$4) { + this._append`L${x0},${y0}`; + } + + // Is this arc empty? We’re done. + if (!r) return; + + // Does the angle go the wrong way? Flip the direction. + if (da < 0) da = da % tau$3 + tau$3; + + // Is this a complete circle? Draw two arcs to complete the circle. + if (da > tauEpsilon) { + this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`; + } + + // Is this arc non-empty? Draw an arc! + else if (da > epsilon$4) { + this._append`A${r},${r},0,${+(da >= pi$2)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`; + } + } + rect(x, y, w, h) { + this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`; + } + toString() { + return this._; + } +}; + +function path() { + return new Path$1; +} + +// Allow instanceof d3.path +path.prototype = Path$1.prototype; + +function pathRound(digits = 3) { + return new Path$1(+digits); +} + +var slice$2 = Array.prototype.slice; + +function constant$6(x) { + return function() { + return x; + }; +} + +function defaultSource$1(d) { + return d.source; +} + +function defaultTarget(d) { + return d.target; +} + +function defaultRadius$1(d) { + return d.radius; +} + +function defaultStartAngle(d) { + return d.startAngle; +} + +function defaultEndAngle(d) { + return d.endAngle; +} + +function defaultPadAngle() { + return 0; +} + +function defaultArrowheadRadius() { + return 10; +} + +function ribbon(headRadius) { + var source = defaultSource$1, + target = defaultTarget, + sourceRadius = defaultRadius$1, + targetRadius = defaultRadius$1, + startAngle = defaultStartAngle, + endAngle = defaultEndAngle, + padAngle = defaultPadAngle, + context = null; + + function ribbon() { + var buffer, + s = source.apply(this, arguments), + t = target.apply(this, arguments), + ap = padAngle.apply(this, arguments) / 2, + argv = slice$2.call(arguments), + sr = +sourceRadius.apply(this, (argv[0] = s, argv)), + sa0 = startAngle.apply(this, argv) - halfPi$2, + sa1 = endAngle.apply(this, argv) - halfPi$2, + tr = +targetRadius.apply(this, (argv[0] = t, argv)), + ta0 = startAngle.apply(this, argv) - halfPi$2, + ta1 = endAngle.apply(this, argv) - halfPi$2; + + if (!context) context = buffer = path(); + + if (ap > epsilon$5) { + if (abs$2(sa1 - sa0) > ap * 2 + epsilon$5) sa1 > sa0 ? (sa0 += ap, sa1 -= ap) : (sa0 -= ap, sa1 += ap); + else sa0 = sa1 = (sa0 + sa1) / 2; + if (abs$2(ta1 - ta0) > ap * 2 + epsilon$5) ta1 > ta0 ? (ta0 += ap, ta1 -= ap) : (ta0 -= ap, ta1 += ap); + else ta0 = ta1 = (ta0 + ta1) / 2; + } + + context.moveTo(sr * cos$2(sa0), sr * sin$2(sa0)); + context.arc(0, 0, sr, sa0, sa1); + if (sa0 !== ta0 || sa1 !== ta1) { + if (headRadius) { + var hr = +headRadius.apply(this, arguments), tr2 = tr - hr, ta2 = (ta0 + ta1) / 2; + context.quadraticCurveTo(0, 0, tr2 * cos$2(ta0), tr2 * sin$2(ta0)); + context.lineTo(tr * cos$2(ta2), tr * sin$2(ta2)); + context.lineTo(tr2 * cos$2(ta1), tr2 * sin$2(ta1)); + } else { + context.quadraticCurveTo(0, 0, tr * cos$2(ta0), tr * sin$2(ta0)); + context.arc(0, 0, tr, ta0, ta1); + } + } + context.quadraticCurveTo(0, 0, sr * cos$2(sa0), sr * sin$2(sa0)); + context.closePath(); + + if (buffer) return context = null, buffer + "" || null; + } + + if (headRadius) ribbon.headRadius = function(_) { + return arguments.length ? (headRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : headRadius; + }; + + ribbon.radius = function(_) { + return arguments.length ? (sourceRadius = targetRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : sourceRadius; + }; + + ribbon.sourceRadius = function(_) { + return arguments.length ? (sourceRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : sourceRadius; + }; + + ribbon.targetRadius = function(_) { + return arguments.length ? (targetRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : targetRadius; + }; + + ribbon.startAngle = function(_) { + return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant$6(+_), ribbon) : startAngle; + }; + + ribbon.endAngle = function(_) { + return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant$6(+_), ribbon) : endAngle; + }; + + ribbon.padAngle = function(_) { + return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant$6(+_), ribbon) : padAngle; + }; + + ribbon.source = function(_) { + return arguments.length ? (source = _, ribbon) : source; + }; + + ribbon.target = function(_) { + return arguments.length ? (target = _, ribbon) : target; + }; + + ribbon.context = function(_) { + return arguments.length ? ((context = _ == null ? null : _), ribbon) : context; + }; + + return ribbon; +} + +function ribbon$1() { + return ribbon(); +} + +function ribbonArrow() { + return ribbon(defaultArrowheadRadius); +} + +var array$2 = Array.prototype; + +var slice$1 = array$2.slice; + +function ascending$1(a, b) { + return a - b; +} + +function area$3(ring) { + var i = 0, n = ring.length, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1]; + while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1]; + return area; +} + +var constant$5 = x => () => x; + +function contains$2(ring, hole) { + var i = -1, n = hole.length, c; + while (++i < n) if (c = ringContains(ring, hole[i])) return c; + return 0; +} + +function ringContains(ring, point) { + var x = point[0], y = point[1], contains = -1; + for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) { + var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1]; + if (segmentContains(pi, pj, point)) return 0; + if (((yi > y) !== (yj > y)) && ((x < (xj - xi) * (y - yi) / (yj - yi) + xi))) contains = -contains; + } + return contains; +} + +function segmentContains(a, b, c) { + var i; return collinear$1(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]); +} + +function collinear$1(a, b, c) { + return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]); +} + +function within(p, q, r) { + return p <= q && q <= r || r <= q && q <= p; +} + +function noop$2() {} + +var cases = [ + [], + [[[1.0, 1.5], [0.5, 1.0]]], + [[[1.5, 1.0], [1.0, 1.5]]], + [[[1.5, 1.0], [0.5, 1.0]]], + [[[1.0, 0.5], [1.5, 1.0]]], + [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]], + [[[1.0, 0.5], [1.0, 1.5]]], + [[[1.0, 0.5], [0.5, 1.0]]], + [[[0.5, 1.0], [1.0, 0.5]]], + [[[1.0, 1.5], [1.0, 0.5]]], + [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]], + [[[1.5, 1.0], [1.0, 0.5]]], + [[[0.5, 1.0], [1.5, 1.0]]], + [[[1.0, 1.5], [1.5, 1.0]]], + [[[0.5, 1.0], [1.0, 1.5]]], + [] +]; + +function Contours() { + var dx = 1, + dy = 1, + threshold = thresholdSturges, + smooth = smoothLinear; + + function contours(values) { + var tz = threshold(values); + + // Convert number of thresholds into uniform thresholds. + if (!Array.isArray(tz)) { + const e = extent$1(values, finite); + tz = ticks(...nice$1(e[0], e[1], tz), tz); + while (tz[tz.length - 1] >= e[1]) tz.pop(); + while (tz[1] < e[0]) tz.shift(); + } else { + tz = tz.slice().sort(ascending$1); + } + + return tz.map(value => contour(values, value)); + } + + // Accumulate, smooth contour rings, assign holes to exterior rings. + // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js + function contour(values, value) { + const v = value == null ? NaN : +value; + if (isNaN(v)) throw new Error(`invalid value: ${value}`); + + var polygons = [], + holes = []; + + isorings(values, v, function(ring) { + smooth(ring, values, v); + if (area$3(ring) > 0) polygons.push([ring]); + else holes.push(ring); + }); + + holes.forEach(function(hole) { + for (var i = 0, n = polygons.length, polygon; i < n; ++i) { + if (contains$2((polygon = polygons[i])[0], hole) !== -1) { + polygon.push(hole); + return; + } + } + }); + + return { + type: "MultiPolygon", + value: value, + coordinates: polygons + }; + } + + // Marching squares with isolines stitched into rings. + // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js + function isorings(values, value, callback) { + var fragmentByStart = new Array, + fragmentByEnd = new Array, + x, y, t0, t1, t2, t3; + + // Special case for the first row (y = -1, t2 = t3 = 0). + x = y = -1; + t1 = above(values[0], value); + cases[t1 << 1].forEach(stitch); + while (++x < dx - 1) { + t0 = t1, t1 = above(values[x + 1], value); + cases[t0 | t1 << 1].forEach(stitch); + } + cases[t1 << 0].forEach(stitch); + + // General case for the intermediate rows. + while (++y < dy - 1) { + x = -1; + t1 = above(values[y * dx + dx], value); + t2 = above(values[y * dx], value); + cases[t1 << 1 | t2 << 2].forEach(stitch); + while (++x < dx - 1) { + t0 = t1, t1 = above(values[y * dx + dx + x + 1], value); + t3 = t2, t2 = above(values[y * dx + x + 1], value); + cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch); + } + cases[t1 | t2 << 3].forEach(stitch); + } + + // Special case for the last row (y = dy - 1, t0 = t1 = 0). + x = -1; + t2 = values[y * dx] >= value; + cases[t2 << 2].forEach(stitch); + while (++x < dx - 1) { + t3 = t2, t2 = above(values[y * dx + x + 1], value); + cases[t2 << 2 | t3 << 3].forEach(stitch); + } + cases[t2 << 3].forEach(stitch); + + function stitch(line) { + var start = [line[0][0] + x, line[0][1] + y], + end = [line[1][0] + x, line[1][1] + y], + startIndex = index(start), + endIndex = index(end), + f, g; + if (f = fragmentByEnd[startIndex]) { + if (g = fragmentByStart[endIndex]) { + delete fragmentByEnd[f.end]; + delete fragmentByStart[g.start]; + if (f === g) { + f.ring.push(end); + callback(f.ring); + } else { + fragmentByStart[f.start] = fragmentByEnd[g.end] = {start: f.start, end: g.end, ring: f.ring.concat(g.ring)}; + } + } else { + delete fragmentByEnd[f.end]; + f.ring.push(end); + fragmentByEnd[f.end = endIndex] = f; + } + } else if (f = fragmentByStart[endIndex]) { + if (g = fragmentByEnd[startIndex]) { + delete fragmentByStart[f.start]; + delete fragmentByEnd[g.end]; + if (f === g) { + f.ring.push(end); + callback(f.ring); + } else { + fragmentByStart[g.start] = fragmentByEnd[f.end] = {start: g.start, end: f.end, ring: g.ring.concat(f.ring)}; + } + } else { + delete fragmentByStart[f.start]; + f.ring.unshift(start); + fragmentByStart[f.start = startIndex] = f; + } + } else { + fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {start: startIndex, end: endIndex, ring: [start, end]}; + } + } + } + + function index(point) { + return point[0] * 2 + point[1] * (dx + 1) * 4; + } + + function smoothLinear(ring, values, value) { + ring.forEach(function(point) { + var x = point[0], + y = point[1], + xt = x | 0, + yt = y | 0, + v1 = valid(values[yt * dx + xt]); + if (x > 0 && x < dx && xt === x) { + point[0] = smooth1(x, valid(values[yt * dx + xt - 1]), v1, value); + } + if (y > 0 && y < dy && yt === y) { + point[1] = smooth1(y, valid(values[(yt - 1) * dx + xt]), v1, value); + } + }); + } + + contours.contour = contour; + + contours.size = function(_) { + if (!arguments.length) return [dx, dy]; + var _0 = Math.floor(_[0]), _1 = Math.floor(_[1]); + if (!(_0 >= 0 && _1 >= 0)) throw new Error("invalid size"); + return dx = _0, dy = _1, contours; + }; + + contours.thresholds = function(_) { + return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant$5(slice$1.call(_)) : constant$5(_), contours) : threshold; + }; + + contours.smooth = function(_) { + return arguments.length ? (smooth = _ ? smoothLinear : noop$2, contours) : smooth === smoothLinear; + }; + + return contours; +} + +// When computing the extent, ignore infinite values (as well as invalid ones). +function finite(x) { + return isFinite(x) ? x : NaN; +} + +// Is the (possibly invalid) x greater than or equal to the (known valid) value? +// Treat any invalid value as below negative infinity. +function above(x, value) { + return x == null ? false : +x >= value; +} + +// During smoothing, treat any invalid value as negative infinity. +function valid(v) { + return v == null || isNaN(v = +v) ? -Infinity : v; +} + +function smooth1(x, v0, v1, value) { + const a = value - v0; + const b = v1 - v0; + const d = isFinite(a) || isFinite(b) ? a / b : Math.sign(a) / Math.sign(b); + return isNaN(d) ? x : x + d - 0.5; +} + +function defaultX$1(d) { + return d[0]; +} + +function defaultY$1(d) { + return d[1]; +} + +function defaultWeight() { + return 1; +} + +function density() { + var x = defaultX$1, + y = defaultY$1, + weight = defaultWeight, + dx = 960, + dy = 500, + r = 20, // blur radius + k = 2, // log2(grid cell size) + o = r * 3, // grid offset, to pad for blur + n = (dx + o * 2) >> k, // grid width + m = (dy + o * 2) >> k, // grid height + threshold = constant$5(20); + + function grid(data) { + var values = new Float32Array(n * m), + pow2k = Math.pow(2, -k), + i = -1; + + for (const d of data) { + var xi = (x(d, ++i, data) + o) * pow2k, + yi = (y(d, i, data) + o) * pow2k, + wi = +weight(d, i, data); + if (wi && xi >= 0 && xi < n && yi >= 0 && yi < m) { + var x0 = Math.floor(xi), + y0 = Math.floor(yi), + xt = xi - x0 - 0.5, + yt = yi - y0 - 0.5; + values[x0 + y0 * n] += (1 - xt) * (1 - yt) * wi; + values[x0 + 1 + y0 * n] += xt * (1 - yt) * wi; + values[x0 + 1 + (y0 + 1) * n] += xt * yt * wi; + values[x0 + (y0 + 1) * n] += (1 - xt) * yt * wi; + } + } + + blur2({data: values, width: n, height: m}, r * pow2k); + return values; + } + + function density(data) { + var values = grid(data), + tz = threshold(values), + pow4k = Math.pow(2, 2 * k); + + // Convert number of thresholds into uniform thresholds. + if (!Array.isArray(tz)) { + tz = ticks(Number.MIN_VALUE, max$3(values) / pow4k, tz); + } + + return Contours() + .size([n, m]) + .thresholds(tz.map(d => d * pow4k)) + (values) + .map((c, i) => (c.value = +tz[i], transform(c))); + } + + density.contours = function(data) { + var values = grid(data), + contours = Contours().size([n, m]), + pow4k = Math.pow(2, 2 * k), + contour = value => { + value = +value; + var c = transform(contours.contour(values, value * pow4k)); + c.value = value; // preserve exact threshold value + return c; + }; + Object.defineProperty(contour, "max", {get: () => max$3(values) / pow4k}); + return contour; + }; + + function transform(geometry) { + geometry.coordinates.forEach(transformPolygon); + return geometry; + } + + function transformPolygon(coordinates) { + coordinates.forEach(transformRing); + } + + function transformRing(coordinates) { + coordinates.forEach(transformPoint); + } + + // TODO Optimize. + function transformPoint(coordinates) { + coordinates[0] = coordinates[0] * Math.pow(2, k) - o; + coordinates[1] = coordinates[1] * Math.pow(2, k) - o; + } + + function resize() { + o = r * 3; + n = (dx + o * 2) >> k; + m = (dy + o * 2) >> k; + return density; + } + + density.x = function(_) { + return arguments.length ? (x = typeof _ === "function" ? _ : constant$5(+_), density) : x; + }; + + density.y = function(_) { + return arguments.length ? (y = typeof _ === "function" ? _ : constant$5(+_), density) : y; + }; + + density.weight = function(_) { + return arguments.length ? (weight = typeof _ === "function" ? _ : constant$5(+_), density) : weight; + }; + + density.size = function(_) { + if (!arguments.length) return [dx, dy]; + var _0 = +_[0], _1 = +_[1]; + if (!(_0 >= 0 && _1 >= 0)) throw new Error("invalid size"); + return dx = _0, dy = _1, resize(); + }; + + density.cellSize = function(_) { + if (!arguments.length) return 1 << k; + if (!((_ = +_) >= 1)) throw new Error("invalid cell size"); + return k = Math.floor(Math.log(_) / Math.LN2), resize(); + }; + + density.thresholds = function(_) { + return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant$5(slice$1.call(_)) : constant$5(_), density) : threshold; + }; + + density.bandwidth = function(_) { + if (!arguments.length) return Math.sqrt(r * (r + 1)); + if (!((_ = +_) >= 0)) throw new Error("invalid bandwidth"); + return r = (Math.sqrt(4 * _ * _ + 1) - 1) / 2, resize(); + }; + + return density; +} + +const epsilon$3 = 1.1102230246251565e-16; +const splitter = 134217729; +const resulterrbound = (3 + 8 * epsilon$3) * epsilon$3; + +// fast_expansion_sum_zeroelim routine from oritinal code +function sum$1(elen, e, flen, f, h) { + let Q, Qnew, hh, bvirt; + let enow = e[0]; + let fnow = f[0]; + let eindex = 0; + let findex = 0; + if ((fnow > enow) === (fnow > -enow)) { + Q = enow; + enow = e[++eindex]; + } else { + Q = fnow; + fnow = f[++findex]; + } + let hindex = 0; + if (eindex < elen && findex < flen) { + if ((fnow > enow) === (fnow > -enow)) { + Qnew = enow + Q; + hh = Q - (Qnew - enow); + enow = e[++eindex]; + } else { + Qnew = fnow + Q; + hh = Q - (Qnew - fnow); + fnow = f[++findex]; + } + Q = Qnew; + if (hh !== 0) { + h[hindex++] = hh; + } + while (eindex < elen && findex < flen) { + if ((fnow > enow) === (fnow > -enow)) { + Qnew = Q + enow; + bvirt = Qnew - Q; + hh = Q - (Qnew - bvirt) + (enow - bvirt); + enow = e[++eindex]; + } else { + Qnew = Q + fnow; + bvirt = Qnew - Q; + hh = Q - (Qnew - bvirt) + (fnow - bvirt); + fnow = f[++findex]; + } + Q = Qnew; + if (hh !== 0) { + h[hindex++] = hh; + } + } + } + while (eindex < elen) { + Qnew = Q + enow; + bvirt = Qnew - Q; + hh = Q - (Qnew - bvirt) + (enow - bvirt); + enow = e[++eindex]; + Q = Qnew; + if (hh !== 0) { + h[hindex++] = hh; + } + } + while (findex < flen) { + Qnew = Q + fnow; + bvirt = Qnew - Q; + hh = Q - (Qnew - bvirt) + (fnow - bvirt); + fnow = f[++findex]; + Q = Qnew; + if (hh !== 0) { + h[hindex++] = hh; + } + } + if (Q !== 0 || hindex === 0) { + h[hindex++] = Q; + } + return hindex; +} + +function estimate(elen, e) { + let Q = e[0]; + for (let i = 1; i < elen; i++) Q += e[i]; + return Q; +} + +function vec(n) { + return new Float64Array(n); +} + +const ccwerrboundA = (3 + 16 * epsilon$3) * epsilon$3; +const ccwerrboundB = (2 + 12 * epsilon$3) * epsilon$3; +const ccwerrboundC = (9 + 64 * epsilon$3) * epsilon$3 * epsilon$3; + +const B = vec(4); +const C1 = vec(8); +const C2 = vec(12); +const D = vec(16); +const u = vec(4); + +function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) { + let acxtail, acytail, bcxtail, bcytail; + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3; + + const acx = ax - cx; + const bcx = bx - cx; + const acy = ay - cy; + const bcy = by - cy; + + s1 = acx * bcy; + c = splitter * acx; + ahi = c - (c - acx); + alo = acx - ahi; + c = splitter * bcy; + bhi = c - (c - bcy); + blo = bcy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = acy * bcx; + c = splitter * acy; + ahi = c - (c - acy); + alo = acy - ahi; + c = splitter * bcx; + bhi = c - (c - bcx); + blo = bcx - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + B[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + B[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + B[2] = _j - (u3 - bvirt) + (_i - bvirt); + B[3] = u3; + + let det = estimate(4, B); + let errbound = ccwerrboundB * detsum; + if (det >= errbound || -det >= errbound) { + return det; + } + + bvirt = ax - acx; + acxtail = ax - (acx + bvirt) + (bvirt - cx); + bvirt = bx - bcx; + bcxtail = bx - (bcx + bvirt) + (bvirt - cx); + bvirt = ay - acy; + acytail = ay - (acy + bvirt) + (bvirt - cy); + bvirt = by - bcy; + bcytail = by - (bcy + bvirt) + (bvirt - cy); + + if (acxtail === 0 && acytail === 0 && bcxtail === 0 && bcytail === 0) { + return det; + } + + errbound = ccwerrboundC * detsum + resulterrbound * Math.abs(det); + det += (acx * bcytail + bcy * acxtail) - (acy * bcxtail + bcx * acytail); + if (det >= errbound || -det >= errbound) return det; + + s1 = acxtail * bcy; + c = splitter * acxtail; + ahi = c - (c - acxtail); + alo = acxtail - ahi; + c = splitter * bcy; + bhi = c - (c - bcy); + blo = bcy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = acytail * bcx; + c = splitter * acytail; + ahi = c - (c - acytail); + alo = acytail - ahi; + c = splitter * bcx; + bhi = c - (c - bcx); + blo = bcx - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + u[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + u[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + const C1len = sum$1(4, B, 4, u, C1); + + s1 = acx * bcytail; + c = splitter * acx; + ahi = c - (c - acx); + alo = acx - ahi; + c = splitter * bcytail; + bhi = c - (c - bcytail); + blo = bcytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = acy * bcxtail; + c = splitter * acy; + ahi = c - (c - acy); + alo = acy - ahi; + c = splitter * bcxtail; + bhi = c - (c - bcxtail); + blo = bcxtail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + u[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + u[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + const C2len = sum$1(C1len, C1, 4, u, C2); + + s1 = acxtail * bcytail; + c = splitter * acxtail; + ahi = c - (c - acxtail); + alo = acxtail - ahi; + c = splitter * bcytail; + bhi = c - (c - bcytail); + blo = bcytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = acytail * bcxtail; + c = splitter * acytail; + ahi = c - (c - acytail); + alo = acytail - ahi; + c = splitter * bcxtail; + bhi = c - (c - bcxtail); + blo = bcxtail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + u[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + u[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + const Dlen = sum$1(C2len, C2, 4, u, D); + + return D[Dlen - 1]; +} + +function orient2d(ax, ay, bx, by, cx, cy) { + const detleft = (ay - cy) * (bx - cx); + const detright = (ax - cx) * (by - cy); + const det = detleft - detright; + + const detsum = Math.abs(detleft + detright); + if (Math.abs(det) >= ccwerrboundA * detsum) return det; + + return -orient2dadapt(ax, ay, bx, by, cx, cy, detsum); +} + +const EPSILON = Math.pow(2, -52); +const EDGE_STACK = new Uint32Array(512); + +class Delaunator { + + static from(points, getX = defaultGetX, getY = defaultGetY) { + const n = points.length; + const coords = new Float64Array(n * 2); + + for (let i = 0; i < n; i++) { + const p = points[i]; + coords[2 * i] = getX(p); + coords[2 * i + 1] = getY(p); + } + + return new Delaunator(coords); + } + + constructor(coords) { + const n = coords.length >> 1; + if (n > 0 && typeof coords[0] !== 'number') throw new Error('Expected coords to contain numbers.'); + + this.coords = coords; + + // arrays that will store the triangulation graph + const maxTriangles = Math.max(2 * n - 5, 0); + this._triangles = new Uint32Array(maxTriangles * 3); + this._halfedges = new Int32Array(maxTriangles * 3); + + // temporary arrays for tracking the edges of the advancing convex hull + this._hashSize = Math.ceil(Math.sqrt(n)); + this._hullPrev = new Uint32Array(n); // edge to prev edge + this._hullNext = new Uint32Array(n); // edge to next edge + this._hullTri = new Uint32Array(n); // edge to adjacent triangle + this._hullHash = new Int32Array(this._hashSize).fill(-1); // angular edge hash + + // temporary arrays for sorting points + this._ids = new Uint32Array(n); + this._dists = new Float64Array(n); + + this.update(); + } + + update() { + const {coords, _hullPrev: hullPrev, _hullNext: hullNext, _hullTri: hullTri, _hullHash: hullHash} = this; + const n = coords.length >> 1; + + // populate an array of point indices; calculate input data bbox + let minX = Infinity; + let minY = Infinity; + let maxX = -Infinity; + let maxY = -Infinity; + + for (let i = 0; i < n; i++) { + const x = coords[2 * i]; + const y = coords[2 * i + 1]; + if (x < minX) minX = x; + if (y < minY) minY = y; + if (x > maxX) maxX = x; + if (y > maxY) maxY = y; + this._ids[i] = i; + } + const cx = (minX + maxX) / 2; + const cy = (minY + maxY) / 2; + + let minDist = Infinity; + let i0, i1, i2; + + // pick a seed point close to the center + for (let i = 0; i < n; i++) { + const d = dist(cx, cy, coords[2 * i], coords[2 * i + 1]); + if (d < minDist) { + i0 = i; + minDist = d; + } + } + const i0x = coords[2 * i0]; + const i0y = coords[2 * i0 + 1]; + + minDist = Infinity; + + // find the point closest to the seed + for (let i = 0; i < n; i++) { + if (i === i0) continue; + const d = dist(i0x, i0y, coords[2 * i], coords[2 * i + 1]); + if (d < minDist && d > 0) { + i1 = i; + minDist = d; + } + } + let i1x = coords[2 * i1]; + let i1y = coords[2 * i1 + 1]; + + let minRadius = Infinity; + + // find the third point which forms the smallest circumcircle with the first two + for (let i = 0; i < n; i++) { + if (i === i0 || i === i1) continue; + const r = circumradius(i0x, i0y, i1x, i1y, coords[2 * i], coords[2 * i + 1]); + if (r < minRadius) { + i2 = i; + minRadius = r; + } + } + let i2x = coords[2 * i2]; + let i2y = coords[2 * i2 + 1]; + + if (minRadius === Infinity) { + // order collinear points by dx (or dy if all x are identical) + // and return the list as a hull + for (let i = 0; i < n; i++) { + this._dists[i] = (coords[2 * i] - coords[0]) || (coords[2 * i + 1] - coords[1]); + } + quicksort(this._ids, this._dists, 0, n - 1); + const hull = new Uint32Array(n); + let j = 0; + for (let i = 0, d0 = -Infinity; i < n; i++) { + const id = this._ids[i]; + if (this._dists[id] > d0) { + hull[j++] = id; + d0 = this._dists[id]; + } + } + this.hull = hull.subarray(0, j); + this.triangles = new Uint32Array(0); + this.halfedges = new Uint32Array(0); + return; + } + + // swap the order of the seed points for counter-clockwise orientation + if (orient2d(i0x, i0y, i1x, i1y, i2x, i2y) < 0) { + const i = i1; + const x = i1x; + const y = i1y; + i1 = i2; + i1x = i2x; + i1y = i2y; + i2 = i; + i2x = x; + i2y = y; + } + + const center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y); + this._cx = center.x; + this._cy = center.y; + + for (let i = 0; i < n; i++) { + this._dists[i] = dist(coords[2 * i], coords[2 * i + 1], center.x, center.y); + } + + // sort the points by distance from the seed triangle circumcenter + quicksort(this._ids, this._dists, 0, n - 1); + + // set up the seed triangle as the starting hull + this._hullStart = i0; + let hullSize = 3; + + hullNext[i0] = hullPrev[i2] = i1; + hullNext[i1] = hullPrev[i0] = i2; + hullNext[i2] = hullPrev[i1] = i0; + + hullTri[i0] = 0; + hullTri[i1] = 1; + hullTri[i2] = 2; + + hullHash.fill(-1); + hullHash[this._hashKey(i0x, i0y)] = i0; + hullHash[this._hashKey(i1x, i1y)] = i1; + hullHash[this._hashKey(i2x, i2y)] = i2; + + this.trianglesLen = 0; + this._addTriangle(i0, i1, i2, -1, -1, -1); + + for (let k = 0, xp, yp; k < this._ids.length; k++) { + const i = this._ids[k]; + const x = coords[2 * i]; + const y = coords[2 * i + 1]; + + // skip near-duplicate points + if (k > 0 && Math.abs(x - xp) <= EPSILON && Math.abs(y - yp) <= EPSILON) continue; + xp = x; + yp = y; + + // skip seed triangle points + if (i === i0 || i === i1 || i === i2) continue; + + // find a visible edge on the convex hull using edge hash + let start = 0; + for (let j = 0, key = this._hashKey(x, y); j < this._hashSize; j++) { + start = hullHash[(key + j) % this._hashSize]; + if (start !== -1 && start !== hullNext[start]) break; + } + + start = hullPrev[start]; + let e = start, q; + while (q = hullNext[e], orient2d(x, y, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1]) >= 0) { + e = q; + if (e === start) { + e = -1; + break; + } + } + if (e === -1) continue; // likely a near-duplicate point; skip it + + // add the first triangle from the point + let t = this._addTriangle(e, i, hullNext[e], -1, -1, hullTri[e]); + + // recursively flip triangles from the point until they satisfy the Delaunay condition + hullTri[i] = this._legalize(t + 2); + hullTri[e] = t; // keep track of boundary triangles on the hull + hullSize++; + + // walk forward through the hull, adding more triangles and flipping recursively + let n = hullNext[e]; + while (q = hullNext[n], orient2d(x, y, coords[2 * n], coords[2 * n + 1], coords[2 * q], coords[2 * q + 1]) < 0) { + t = this._addTriangle(n, i, q, hullTri[i], -1, hullTri[n]); + hullTri[i] = this._legalize(t + 2); + hullNext[n] = n; // mark as removed + hullSize--; + n = q; + } + + // walk backward from the other side, adding more triangles and flipping + if (e === start) { + while (q = hullPrev[e], orient2d(x, y, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1]) < 0) { + t = this._addTriangle(q, i, e, -1, hullTri[e], hullTri[q]); + this._legalize(t + 2); + hullTri[q] = t; + hullNext[e] = e; // mark as removed + hullSize--; + e = q; + } + } + + // update the hull indices + this._hullStart = hullPrev[i] = e; + hullNext[e] = hullPrev[n] = i; + hullNext[i] = n; + + // save the two new edges in the hash table + hullHash[this._hashKey(x, y)] = i; + hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e; + } + + this.hull = new Uint32Array(hullSize); + for (let i = 0, e = this._hullStart; i < hullSize; i++) { + this.hull[i] = e; + e = hullNext[e]; + } + + // trim typed triangle mesh arrays + this.triangles = this._triangles.subarray(0, this.trianglesLen); + this.halfedges = this._halfedges.subarray(0, this.trianglesLen); + } + + _hashKey(x, y) { + return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize; + } + + _legalize(a) { + const {_triangles: triangles, _halfedges: halfedges, coords} = this; + + let i = 0; + let ar = 0; + + // recursion eliminated with a fixed-size stack + while (true) { + const b = halfedges[a]; + + /* if the pair of triangles doesn't satisfy the Delaunay condition + * (p1 is inside the circumcircle of [p0, pl, pr]), flip them, + * then do the same check/flip recursively for the new pair of triangles + * + * pl pl + * /||\ / \ + * al/ || \bl al/ \a + * / || \ / \ + * / a||b \ flip /___ar___\ + * p0\ || /p1 => p0\---bl---/p1 + * \ || / \ / + * ar\ || /br b\ /br + * \||/ \ / + * pr pr + */ + const a0 = a - a % 3; + ar = a0 + (a + 2) % 3; + + if (b === -1) { // convex hull edge + if (i === 0) break; + a = EDGE_STACK[--i]; + continue; + } + + const b0 = b - b % 3; + const al = a0 + (a + 1) % 3; + const bl = b0 + (b + 2) % 3; + + const p0 = triangles[ar]; + const pr = triangles[a]; + const pl = triangles[al]; + const p1 = triangles[bl]; + + const illegal = inCircle( + coords[2 * p0], coords[2 * p0 + 1], + coords[2 * pr], coords[2 * pr + 1], + coords[2 * pl], coords[2 * pl + 1], + coords[2 * p1], coords[2 * p1 + 1]); + + if (illegal) { + triangles[a] = p1; + triangles[b] = p0; + + const hbl = halfedges[bl]; + + // edge swapped on the other side of the hull (rare); fix the halfedge reference + if (hbl === -1) { + let e = this._hullStart; + do { + if (this._hullTri[e] === bl) { + this._hullTri[e] = a; + break; + } + e = this._hullPrev[e]; + } while (e !== this._hullStart); + } + this._link(a, hbl); + this._link(b, halfedges[ar]); + this._link(ar, bl); + + const br = b0 + (b + 1) % 3; + + // don't worry about hitting the cap: it can only happen on extremely degenerate input + if (i < EDGE_STACK.length) { + EDGE_STACK[i++] = br; + } + } else { + if (i === 0) break; + a = EDGE_STACK[--i]; + } + } + + return ar; + } + + _link(a, b) { + this._halfedges[a] = b; + if (b !== -1) this._halfedges[b] = a; + } + + // add a new triangle given vertex indices and adjacent half-edge ids + _addTriangle(i0, i1, i2, a, b, c) { + const t = this.trianglesLen; + + this._triangles[t] = i0; + this._triangles[t + 1] = i1; + this._triangles[t + 2] = i2; + + this._link(t, a); + this._link(t + 1, b); + this._link(t + 2, c); + + this.trianglesLen += 3; + + return t; + } +} + +// monotonically increases with real angle, but doesn't need expensive trigonometry +function pseudoAngle(dx, dy) { + const p = dx / (Math.abs(dx) + Math.abs(dy)); + return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1] +} + +function dist(ax, ay, bx, by) { + const dx = ax - bx; + const dy = ay - by; + return dx * dx + dy * dy; +} + +function inCircle(ax, ay, bx, by, cx, cy, px, py) { + const dx = ax - px; + const dy = ay - py; + const ex = bx - px; + const ey = by - py; + const fx = cx - px; + const fy = cy - py; + + const ap = dx * dx + dy * dy; + const bp = ex * ex + ey * ey; + const cp = fx * fx + fy * fy; + + return dx * (ey * cp - bp * fy) - + dy * (ex * cp - bp * fx) + + ap * (ex * fy - ey * fx) < 0; +} + +function circumradius(ax, ay, bx, by, cx, cy) { + const dx = bx - ax; + const dy = by - ay; + const ex = cx - ax; + const ey = cy - ay; + + const bl = dx * dx + dy * dy; + const cl = ex * ex + ey * ey; + const d = 0.5 / (dx * ey - dy * ex); + + const x = (ey * bl - dy * cl) * d; + const y = (dx * cl - ex * bl) * d; + + return x * x + y * y; +} + +function circumcenter(ax, ay, bx, by, cx, cy) { + const dx = bx - ax; + const dy = by - ay; + const ex = cx - ax; + const ey = cy - ay; + + const bl = dx * dx + dy * dy; + const cl = ex * ex + ey * ey; + const d = 0.5 / (dx * ey - dy * ex); + + const x = ax + (ey * bl - dy * cl) * d; + const y = ay + (dx * cl - ex * bl) * d; + + return {x, y}; +} + +function quicksort(ids, dists, left, right) { + if (right - left <= 20) { + for (let i = left + 1; i <= right; i++) { + const temp = ids[i]; + const tempDist = dists[temp]; + let j = i - 1; + while (j >= left && dists[ids[j]] > tempDist) ids[j + 1] = ids[j--]; + ids[j + 1] = temp; + } + } else { + const median = (left + right) >> 1; + let i = left + 1; + let j = right; + swap(ids, median, i); + if (dists[ids[left]] > dists[ids[right]]) swap(ids, left, right); + if (dists[ids[i]] > dists[ids[right]]) swap(ids, i, right); + if (dists[ids[left]] > dists[ids[i]]) swap(ids, left, i); + + const temp = ids[i]; + const tempDist = dists[temp]; + while (true) { + do i++; while (dists[ids[i]] < tempDist); + do j--; while (dists[ids[j]] > tempDist); + if (j < i) break; + swap(ids, i, j); + } + ids[left + 1] = ids[j]; + ids[j] = temp; + + if (right - i + 1 >= j - left) { + quicksort(ids, dists, i, right); + quicksort(ids, dists, left, j - 1); + } else { + quicksort(ids, dists, left, j - 1); + quicksort(ids, dists, i, right); + } + } +} + +function swap(arr, i, j) { + const tmp = arr[i]; + arr[i] = arr[j]; + arr[j] = tmp; +} + +function defaultGetX(p) { + return p[0]; +} +function defaultGetY(p) { + return p[1]; +} + +const epsilon$2 = 1e-6; + +class Path { + constructor() { + this._x0 = this._y0 = // start of current subpath + this._x1 = this._y1 = null; // end of current subpath + this._ = ""; + } + moveTo(x, y) { + this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`; + } + closePath() { + if (this._x1 !== null) { + this._x1 = this._x0, this._y1 = this._y0; + this._ += "Z"; + } + } + lineTo(x, y) { + this._ += `L${this._x1 = +x},${this._y1 = +y}`; + } + arc(x, y, r) { + x = +x, y = +y, r = +r; + const x0 = x + r; + const y0 = y; + if (r < 0) throw new Error("negative radius"); + if (this._x1 === null) this._ += `M${x0},${y0}`; + else if (Math.abs(this._x1 - x0) > epsilon$2 || Math.abs(this._y1 - y0) > epsilon$2) this._ += "L" + x0 + "," + y0; + if (!r) return; + this._ += `A${r},${r},0,1,1,${x - r},${y}A${r},${r},0,1,1,${this._x1 = x0},${this._y1 = y0}`; + } + rect(x, y, w, h) { + this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${+w}v${+h}h${-w}Z`; + } + value() { + return this._ || null; + } +} + +class Polygon { + constructor() { + this._ = []; + } + moveTo(x, y) { + this._.push([x, y]); + } + closePath() { + this._.push(this._[0].slice()); + } + lineTo(x, y) { + this._.push([x, y]); + } + value() { + return this._.length ? this._ : null; + } +} + +class Voronoi { + constructor(delaunay, [xmin, ymin, xmax, ymax] = [0, 0, 960, 500]) { + if (!((xmax = +xmax) >= (xmin = +xmin)) || !((ymax = +ymax) >= (ymin = +ymin))) throw new Error("invalid bounds"); + this.delaunay = delaunay; + this._circumcenters = new Float64Array(delaunay.points.length * 2); + this.vectors = new Float64Array(delaunay.points.length * 2); + this.xmax = xmax, this.xmin = xmin; + this.ymax = ymax, this.ymin = ymin; + this._init(); + } + update() { + this.delaunay.update(); + this._init(); + return this; + } + _init() { + const {delaunay: {points, hull, triangles}, vectors} = this; + let bx, by; // lazily computed barycenter of the hull + + // Compute circumcenters. + const circumcenters = this.circumcenters = this._circumcenters.subarray(0, triangles.length / 3 * 2); + for (let i = 0, j = 0, n = triangles.length, x, y; i < n; i += 3, j += 2) { + const t1 = triangles[i] * 2; + const t2 = triangles[i + 1] * 2; + const t3 = triangles[i + 2] * 2; + const x1 = points[t1]; + const y1 = points[t1 + 1]; + const x2 = points[t2]; + const y2 = points[t2 + 1]; + const x3 = points[t3]; + const y3 = points[t3 + 1]; + + const dx = x2 - x1; + const dy = y2 - y1; + const ex = x3 - x1; + const ey = y3 - y1; + const ab = (dx * ey - dy * ex) * 2; + + if (Math.abs(ab) < 1e-9) { + // For a degenerate triangle, the circumcenter is at the infinity, in a + // direction orthogonal to the halfedge and away from the “center†of + // the diagram <bx, by>, defined as the hull’s barycenter. + if (bx === undefined) { + bx = by = 0; + for (const i of hull) bx += points[i * 2], by += points[i * 2 + 1]; + bx /= hull.length, by /= hull.length; + } + const a = 1e9 * Math.sign((bx - x1) * ey - (by - y1) * ex); + x = (x1 + x3) / 2 - a * ey; + y = (y1 + y3) / 2 + a * ex; + } else { + const d = 1 / ab; + const bl = dx * dx + dy * dy; + const cl = ex * ex + ey * ey; + x = x1 + (ey * bl - dy * cl) * d; + y = y1 + (dx * cl - ex * bl) * d; + } + circumcenters[j] = x; + circumcenters[j + 1] = y; + } + + // Compute exterior cell rays. + let h = hull[hull.length - 1]; + let p0, p1 = h * 4; + let x0, x1 = points[2 * h]; + let y0, y1 = points[2 * h + 1]; + vectors.fill(0); + for (let i = 0; i < hull.length; ++i) { + h = hull[i]; + p0 = p1, x0 = x1, y0 = y1; + p1 = h * 4, x1 = points[2 * h], y1 = points[2 * h + 1]; + vectors[p0 + 2] = vectors[p1] = y0 - y1; + vectors[p0 + 3] = vectors[p1 + 1] = x1 - x0; + } + } + render(context) { + const buffer = context == null ? context = new Path : undefined; + const {delaunay: {halfedges, inedges, hull}, circumcenters, vectors} = this; + if (hull.length <= 1) return null; + for (let i = 0, n = halfedges.length; i < n; ++i) { + const j = halfedges[i]; + if (j < i) continue; + const ti = Math.floor(i / 3) * 2; + const tj = Math.floor(j / 3) * 2; + const xi = circumcenters[ti]; + const yi = circumcenters[ti + 1]; + const xj = circumcenters[tj]; + const yj = circumcenters[tj + 1]; + this._renderSegment(xi, yi, xj, yj, context); + } + let h0, h1 = hull[hull.length - 1]; + for (let i = 0; i < hull.length; ++i) { + h0 = h1, h1 = hull[i]; + const t = Math.floor(inedges[h1] / 3) * 2; + const x = circumcenters[t]; + const y = circumcenters[t + 1]; + const v = h0 * 4; + const p = this._project(x, y, vectors[v + 2], vectors[v + 3]); + if (p) this._renderSegment(x, y, p[0], p[1], context); + } + return buffer && buffer.value(); + } + renderBounds(context) { + const buffer = context == null ? context = new Path : undefined; + context.rect(this.xmin, this.ymin, this.xmax - this.xmin, this.ymax - this.ymin); + return buffer && buffer.value(); + } + renderCell(i, context) { + const buffer = context == null ? context = new Path : undefined; + const points = this._clip(i); + if (points === null || !points.length) return; + context.moveTo(points[0], points[1]); + let n = points.length; + while (points[0] === points[n-2] && points[1] === points[n-1] && n > 1) n -= 2; + for (let i = 2; i < n; i += 2) { + if (points[i] !== points[i-2] || points[i+1] !== points[i-1]) + context.lineTo(points[i], points[i + 1]); + } + context.closePath(); + return buffer && buffer.value(); + } + *cellPolygons() { + const {delaunay: {points}} = this; + for (let i = 0, n = points.length / 2; i < n; ++i) { + const cell = this.cellPolygon(i); + if (cell) cell.index = i, yield cell; + } + } + cellPolygon(i) { + const polygon = new Polygon; + this.renderCell(i, polygon); + return polygon.value(); + } + _renderSegment(x0, y0, x1, y1, context) { + let S; + const c0 = this._regioncode(x0, y0); + const c1 = this._regioncode(x1, y1); + if (c0 === 0 && c1 === 0) { + context.moveTo(x0, y0); + context.lineTo(x1, y1); + } else if (S = this._clipSegment(x0, y0, x1, y1, c0, c1)) { + context.moveTo(S[0], S[1]); + context.lineTo(S[2], S[3]); + } + } + contains(i, x, y) { + if ((x = +x, x !== x) || (y = +y, y !== y)) return false; + return this.delaunay._step(i, x, y) === i; + } + *neighbors(i) { + const ci = this._clip(i); + if (ci) for (const j of this.delaunay.neighbors(i)) { + const cj = this._clip(j); + // find the common edge + if (cj) loop: for (let ai = 0, li = ci.length; ai < li; ai += 2) { + for (let aj = 0, lj = cj.length; aj < lj; aj += 2) { + if (ci[ai] === cj[aj] + && ci[ai + 1] === cj[aj + 1] + && ci[(ai + 2) % li] === cj[(aj + lj - 2) % lj] + && ci[(ai + 3) % li] === cj[(aj + lj - 1) % lj]) { + yield j; + break loop; + } + } + } + } + } + _cell(i) { + const {circumcenters, delaunay: {inedges, halfedges, triangles}} = this; + const e0 = inedges[i]; + if (e0 === -1) return null; // coincident point + const points = []; + let e = e0; + do { + const t = Math.floor(e / 3); + points.push(circumcenters[t * 2], circumcenters[t * 2 + 1]); + e = e % 3 === 2 ? e - 2 : e + 1; + if (triangles[e] !== i) break; // bad triangulation + e = halfedges[e]; + } while (e !== e0 && e !== -1); + return points; + } + _clip(i) { + // degenerate case (1 valid point: return the box) + if (i === 0 && this.delaunay.hull.length === 1) { + return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin]; + } + const points = this._cell(i); + if (points === null) return null; + const {vectors: V} = this; + const v = i * 4; + return this._simplify(V[v] || V[v + 1] + ? this._clipInfinite(i, points, V[v], V[v + 1], V[v + 2], V[v + 3]) + : this._clipFinite(i, points)); + } + _clipFinite(i, points) { + const n = points.length; + let P = null; + let x0, y0, x1 = points[n - 2], y1 = points[n - 1]; + let c0, c1 = this._regioncode(x1, y1); + let e0, e1 = 0; + for (let j = 0; j < n; j += 2) { + x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1]; + c0 = c1, c1 = this._regioncode(x1, y1); + if (c0 === 0 && c1 === 0) { + e0 = e1, e1 = 0; + if (P) P.push(x1, y1); + else P = [x1, y1]; + } else { + let S, sx0, sy0, sx1, sy1; + if (c0 === 0) { + if ((S = this._clipSegment(x0, y0, x1, y1, c0, c1)) === null) continue; + [sx0, sy0, sx1, sy1] = S; + } else { + if ((S = this._clipSegment(x1, y1, x0, y0, c1, c0)) === null) continue; + [sx1, sy1, sx0, sy0] = S; + e0 = e1, e1 = this._edgecode(sx0, sy0); + if (e0 && e1) this._edge(i, e0, e1, P, P.length); + if (P) P.push(sx0, sy0); + else P = [sx0, sy0]; + } + e0 = e1, e1 = this._edgecode(sx1, sy1); + if (e0 && e1) this._edge(i, e0, e1, P, P.length); + if (P) P.push(sx1, sy1); + else P = [sx1, sy1]; + } + } + if (P) { + e0 = e1, e1 = this._edgecode(P[0], P[1]); + if (e0 && e1) this._edge(i, e0, e1, P, P.length); + } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) { + return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin]; + } + return P; + } + _clipSegment(x0, y0, x1, y1, c0, c1) { + // for more robustness, always consider the segment in the same order + const flip = c0 < c1; + if (flip) [x0, y0, x1, y1, c0, c1] = [x1, y1, x0, y0, c1, c0]; + while (true) { + if (c0 === 0 && c1 === 0) return flip ? [x1, y1, x0, y0] : [x0, y0, x1, y1]; + if (c0 & c1) return null; + let x, y, c = c0 || c1; + if (c & 0b1000) x = x0 + (x1 - x0) * (this.ymax - y0) / (y1 - y0), y = this.ymax; + else if (c & 0b0100) x = x0 + (x1 - x0) * (this.ymin - y0) / (y1 - y0), y = this.ymin; + else if (c & 0b0010) y = y0 + (y1 - y0) * (this.xmax - x0) / (x1 - x0), x = this.xmax; + else y = y0 + (y1 - y0) * (this.xmin - x0) / (x1 - x0), x = this.xmin; + if (c0) x0 = x, y0 = y, c0 = this._regioncode(x0, y0); + else x1 = x, y1 = y, c1 = this._regioncode(x1, y1); + } + } + _clipInfinite(i, points, vx0, vy0, vxn, vyn) { + let P = Array.from(points), p; + if (p = this._project(P[0], P[1], vx0, vy0)) P.unshift(p[0], p[1]); + if (p = this._project(P[P.length - 2], P[P.length - 1], vxn, vyn)) P.push(p[0], p[1]); + if (P = this._clipFinite(i, P)) { + for (let j = 0, n = P.length, c0, c1 = this._edgecode(P[n - 2], P[n - 1]); j < n; j += 2) { + c0 = c1, c1 = this._edgecode(P[j], P[j + 1]); + if (c0 && c1) j = this._edge(i, c0, c1, P, j), n = P.length; + } + } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) { + P = [this.xmin, this.ymin, this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax]; + } + return P; + } + _edge(i, e0, e1, P, j) { + while (e0 !== e1) { + let x, y; + switch (e0) { + case 0b0101: e0 = 0b0100; continue; // top-left + case 0b0100: e0 = 0b0110, x = this.xmax, y = this.ymin; break; // top + case 0b0110: e0 = 0b0010; continue; // top-right + case 0b0010: e0 = 0b1010, x = this.xmax, y = this.ymax; break; // right + case 0b1010: e0 = 0b1000; continue; // bottom-right + case 0b1000: e0 = 0b1001, x = this.xmin, y = this.ymax; break; // bottom + case 0b1001: e0 = 0b0001; continue; // bottom-left + case 0b0001: e0 = 0b0101, x = this.xmin, y = this.ymin; break; // left + } + // Note: this implicitly checks for out of bounds: if P[j] or P[j+1] are + // undefined, the conditional statement will be executed. + if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) { + P.splice(j, 0, x, y), j += 2; + } + } + return j; + } + _project(x0, y0, vx, vy) { + let t = Infinity, c, x, y; + if (vy < 0) { // top + if (y0 <= this.ymin) return null; + if ((c = (this.ymin - y0) / vy) < t) y = this.ymin, x = x0 + (t = c) * vx; + } else if (vy > 0) { // bottom + if (y0 >= this.ymax) return null; + if ((c = (this.ymax - y0) / vy) < t) y = this.ymax, x = x0 + (t = c) * vx; + } + if (vx > 0) { // right + if (x0 >= this.xmax) return null; + if ((c = (this.xmax - x0) / vx) < t) x = this.xmax, y = y0 + (t = c) * vy; + } else if (vx < 0) { // left + if (x0 <= this.xmin) return null; + if ((c = (this.xmin - x0) / vx) < t) x = this.xmin, y = y0 + (t = c) * vy; + } + return [x, y]; + } + _edgecode(x, y) { + return (x === this.xmin ? 0b0001 + : x === this.xmax ? 0b0010 : 0b0000) + | (y === this.ymin ? 0b0100 + : y === this.ymax ? 0b1000 : 0b0000); + } + _regioncode(x, y) { + return (x < this.xmin ? 0b0001 + : x > this.xmax ? 0b0010 : 0b0000) + | (y < this.ymin ? 0b0100 + : y > this.ymax ? 0b1000 : 0b0000); + } + _simplify(P) { + if (P && P.length > 4) { + for (let i = 0; i < P.length; i+= 2) { + const j = (i + 2) % P.length, k = (i + 4) % P.length; + if (P[i] === P[j] && P[j] === P[k] || P[i + 1] === P[j + 1] && P[j + 1] === P[k + 1]) { + P.splice(j, 2), i -= 2; + } + } + if (!P.length) P = null; + } + return P; + } +} + +const tau$2 = 2 * Math.PI, pow$2 = Math.pow; + +function pointX(p) { + return p[0]; +} + +function pointY(p) { + return p[1]; +} + +// A triangulation is collinear if all its triangles have a non-null area +function collinear(d) { + const {triangles, coords} = d; + for (let i = 0; i < triangles.length; i += 3) { + const a = 2 * triangles[i], + b = 2 * triangles[i + 1], + c = 2 * triangles[i + 2], + cross = (coords[c] - coords[a]) * (coords[b + 1] - coords[a + 1]) + - (coords[b] - coords[a]) * (coords[c + 1] - coords[a + 1]); + if (cross > 1e-10) return false; + } + return true; +} + +function jitter(x, y, r) { + return [x + Math.sin(x + y) * r, y + Math.cos(x - y) * r]; +} + +class Delaunay { + static from(points, fx = pointX, fy = pointY, that) { + return new Delaunay("length" in points + ? flatArray(points, fx, fy, that) + : Float64Array.from(flatIterable(points, fx, fy, that))); + } + constructor(points) { + this._delaunator = new Delaunator(points); + this.inedges = new Int32Array(points.length / 2); + this._hullIndex = new Int32Array(points.length / 2); + this.points = this._delaunator.coords; + this._init(); + } + update() { + this._delaunator.update(); + this._init(); + return this; + } + _init() { + const d = this._delaunator, points = this.points; + + // check for collinear + if (d.hull && d.hull.length > 2 && collinear(d)) { + this.collinear = Int32Array.from({length: points.length/2}, (_,i) => i) + .sort((i, j) => points[2 * i] - points[2 * j] || points[2 * i + 1] - points[2 * j + 1]); // for exact neighbors + const e = this.collinear[0], f = this.collinear[this.collinear.length - 1], + bounds = [ points[2 * e], points[2 * e + 1], points[2 * f], points[2 * f + 1] ], + r = 1e-8 * Math.hypot(bounds[3] - bounds[1], bounds[2] - bounds[0]); + for (let i = 0, n = points.length / 2; i < n; ++i) { + const p = jitter(points[2 * i], points[2 * i + 1], r); + points[2 * i] = p[0]; + points[2 * i + 1] = p[1]; + } + this._delaunator = new Delaunator(points); + } else { + delete this.collinear; + } + + const halfedges = this.halfedges = this._delaunator.halfedges; + const hull = this.hull = this._delaunator.hull; + const triangles = this.triangles = this._delaunator.triangles; + const inedges = this.inedges.fill(-1); + const hullIndex = this._hullIndex.fill(-1); + + // Compute an index from each point to an (arbitrary) incoming halfedge + // Used to give the first neighbor of each point; for this reason, + // on the hull we give priority to exterior halfedges + for (let e = 0, n = halfedges.length; e < n; ++e) { + const p = triangles[e % 3 === 2 ? e - 2 : e + 1]; + if (halfedges[e] === -1 || inedges[p] === -1) inedges[p] = e; + } + for (let i = 0, n = hull.length; i < n; ++i) { + hullIndex[hull[i]] = i; + } + + // degenerate case: 1 or 2 (distinct) points + if (hull.length <= 2 && hull.length > 0) { + this.triangles = new Int32Array(3).fill(-1); + this.halfedges = new Int32Array(3).fill(-1); + this.triangles[0] = hull[0]; + inedges[hull[0]] = 1; + if (hull.length === 2) { + inedges[hull[1]] = 0; + this.triangles[1] = hull[1]; + this.triangles[2] = hull[1]; + } + } + } + voronoi(bounds) { + return new Voronoi(this, bounds); + } + *neighbors(i) { + const {inedges, hull, _hullIndex, halfedges, triangles, collinear} = this; + + // degenerate case with several collinear points + if (collinear) { + const l = collinear.indexOf(i); + if (l > 0) yield collinear[l - 1]; + if (l < collinear.length - 1) yield collinear[l + 1]; + return; + } + + const e0 = inedges[i]; + if (e0 === -1) return; // coincident point + let e = e0, p0 = -1; + do { + yield p0 = triangles[e]; + e = e % 3 === 2 ? e - 2 : e + 1; + if (triangles[e] !== i) return; // bad triangulation + e = halfedges[e]; + if (e === -1) { + const p = hull[(_hullIndex[i] + 1) % hull.length]; + if (p !== p0) yield p; + return; + } + } while (e !== e0); + } + find(x, y, i = 0) { + if ((x = +x, x !== x) || (y = +y, y !== y)) return -1; + const i0 = i; + let c; + while ((c = this._step(i, x, y)) >= 0 && c !== i && c !== i0) i = c; + return c; + } + _step(i, x, y) { + const {inedges, hull, _hullIndex, halfedges, triangles, points} = this; + if (inedges[i] === -1 || !points.length) return (i + 1) % (points.length >> 1); + let c = i; + let dc = pow$2(x - points[i * 2], 2) + pow$2(y - points[i * 2 + 1], 2); + const e0 = inedges[i]; + let e = e0; + do { + let t = triangles[e]; + const dt = pow$2(x - points[t * 2], 2) + pow$2(y - points[t * 2 + 1], 2); + if (dt < dc) dc = dt, c = t; + e = e % 3 === 2 ? e - 2 : e + 1; + if (triangles[e] !== i) break; // bad triangulation + e = halfedges[e]; + if (e === -1) { + e = hull[(_hullIndex[i] + 1) % hull.length]; + if (e !== t) { + if (pow$2(x - points[e * 2], 2) + pow$2(y - points[e * 2 + 1], 2) < dc) return e; + } + break; + } + } while (e !== e0); + return c; + } + render(context) { + const buffer = context == null ? context = new Path : undefined; + const {points, halfedges, triangles} = this; + for (let i = 0, n = halfedges.length; i < n; ++i) { + const j = halfedges[i]; + if (j < i) continue; + const ti = triangles[i] * 2; + const tj = triangles[j] * 2; + context.moveTo(points[ti], points[ti + 1]); + context.lineTo(points[tj], points[tj + 1]); + } + this.renderHull(context); + return buffer && buffer.value(); + } + renderPoints(context, r) { + if (r === undefined && (!context || typeof context.moveTo !== "function")) r = context, context = null; + r = r == undefined ? 2 : +r; + const buffer = context == null ? context = new Path : undefined; + const {points} = this; + for (let i = 0, n = points.length; i < n; i += 2) { + const x = points[i], y = points[i + 1]; + context.moveTo(x + r, y); + context.arc(x, y, r, 0, tau$2); + } + return buffer && buffer.value(); + } + renderHull(context) { + const buffer = context == null ? context = new Path : undefined; + const {hull, points} = this; + const h = hull[0] * 2, n = hull.length; + context.moveTo(points[h], points[h + 1]); + for (let i = 1; i < n; ++i) { + const h = 2 * hull[i]; + context.lineTo(points[h], points[h + 1]); + } + context.closePath(); + return buffer && buffer.value(); + } + hullPolygon() { + const polygon = new Polygon; + this.renderHull(polygon); + return polygon.value(); + } + renderTriangle(i, context) { + const buffer = context == null ? context = new Path : undefined; + const {points, triangles} = this; + const t0 = triangles[i *= 3] * 2; + const t1 = triangles[i + 1] * 2; + const t2 = triangles[i + 2] * 2; + context.moveTo(points[t0], points[t0 + 1]); + context.lineTo(points[t1], points[t1 + 1]); + context.lineTo(points[t2], points[t2 + 1]); + context.closePath(); + return buffer && buffer.value(); + } + *trianglePolygons() { + const {triangles} = this; + for (let i = 0, n = triangles.length / 3; i < n; ++i) { + yield this.trianglePolygon(i); + } + } + trianglePolygon(i) { + const polygon = new Polygon; + this.renderTriangle(i, polygon); + return polygon.value(); + } +} + +function flatArray(points, fx, fy, that) { + const n = points.length; + const array = new Float64Array(n * 2); + for (let i = 0; i < n; ++i) { + const p = points[i]; + array[i * 2] = fx.call(that, p, i, points); + array[i * 2 + 1] = fy.call(that, p, i, points); + } + return array; +} + +function* flatIterable(points, fx, fy, that) { + let i = 0; + for (const p of points) { + yield fx.call(that, p, i, points); + yield fy.call(that, p, i, points); + ++i; + } +} + +var EOL = {}, + EOF = {}, + QUOTE = 34, + NEWLINE = 10, + RETURN = 13; + +function objectConverter(columns) { + return new Function("d", "return {" + columns.map(function(name, i) { + return JSON.stringify(name) + ": d[" + i + "] || \"\""; + }).join(",") + "}"); +} + +function customConverter(columns, f) { + var object = objectConverter(columns); + return function(row, i) { + return f(object(row), i, columns); + }; +} + +// Compute unique columns in order of discovery. +function inferColumns(rows) { + var columnSet = Object.create(null), + columns = []; + + rows.forEach(function(row) { + for (var column in row) { + if (!(column in columnSet)) { + columns.push(columnSet[column] = column); + } + } + }); + + return columns; +} + +function pad$1(value, width) { + var s = value + "", length = s.length; + return length < width ? new Array(width - length + 1).join(0) + s : s; +} + +function formatYear$1(year) { + return year < 0 ? "-" + pad$1(-year, 6) + : year > 9999 ? "+" + pad$1(year, 6) + : pad$1(year, 4); +} + +function formatDate(date) { + var hours = date.getUTCHours(), + minutes = date.getUTCMinutes(), + seconds = date.getUTCSeconds(), + milliseconds = date.getUTCMilliseconds(); + return isNaN(date) ? "Invalid Date" + : formatYear$1(date.getUTCFullYear()) + "-" + pad$1(date.getUTCMonth() + 1, 2) + "-" + pad$1(date.getUTCDate(), 2) + + (milliseconds ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + ":" + pad$1(seconds, 2) + "." + pad$1(milliseconds, 3) + "Z" + : seconds ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + ":" + pad$1(seconds, 2) + "Z" + : minutes || hours ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + "Z" + : ""); +} + +function dsvFormat(delimiter) { + var reFormat = new RegExp("[\"" + delimiter + "\n\r]"), + DELIMITER = delimiter.charCodeAt(0); + + function parse(text, f) { + var convert, columns, rows = parseRows(text, function(row, i) { + if (convert) return convert(row, i - 1); + columns = row, convert = f ? customConverter(row, f) : objectConverter(row); + }); + rows.columns = columns || []; + return rows; + } + + function parseRows(text, f) { + var rows = [], // output rows + N = text.length, + I = 0, // current character index + n = 0, // current line number + t, // current token + eof = N <= 0, // current token followed by EOF? + eol = false; // current token followed by EOL? + + // Strip the trailing newline. + if (text.charCodeAt(N - 1) === NEWLINE) --N; + if (text.charCodeAt(N - 1) === RETURN) --N; + + function token() { + if (eof) return EOF; + if (eol) return eol = false, EOL; + + // Unescape quotes. + var i, j = I, c; + if (text.charCodeAt(j) === QUOTE) { + while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE); + if ((i = I) >= N) eof = true; + else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true; + else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; } + return text.slice(j + 1, i - 1).replace(/""/g, "\""); + } + + // Find next delimiter or newline. + while (I < N) { + if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true; + else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; } + else if (c !== DELIMITER) continue; + return text.slice(j, i); + } + + // Return last token before EOF. + return eof = true, text.slice(j, N); + } + + while ((t = token()) !== EOF) { + var row = []; + while (t !== EOL && t !== EOF) row.push(t), t = token(); + if (f && (row = f(row, n++)) == null) continue; + rows.push(row); + } + + return rows; + } + + function preformatBody(rows, columns) { + return rows.map(function(row) { + return columns.map(function(column) { + return formatValue(row[column]); + }).join(delimiter); + }); + } + + function format(rows, columns) { + if (columns == null) columns = inferColumns(rows); + return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join("\n"); + } + + function formatBody(rows, columns) { + if (columns == null) columns = inferColumns(rows); + return preformatBody(rows, columns).join("\n"); + } + + function formatRows(rows) { + return rows.map(formatRow).join("\n"); + } + + function formatRow(row) { + return row.map(formatValue).join(delimiter); + } + + function formatValue(value) { + return value == null ? "" + : value instanceof Date ? formatDate(value) + : reFormat.test(value += "") ? "\"" + value.replace(/"/g, "\"\"") + "\"" + : value; + } + + return { + parse: parse, + parseRows: parseRows, + format: format, + formatBody: formatBody, + formatRows: formatRows, + formatRow: formatRow, + formatValue: formatValue + }; +} + +var csv$1 = dsvFormat(","); + +var csvParse = csv$1.parse; +var csvParseRows = csv$1.parseRows; +var csvFormat = csv$1.format; +var csvFormatBody = csv$1.formatBody; +var csvFormatRows = csv$1.formatRows; +var csvFormatRow = csv$1.formatRow; +var csvFormatValue = csv$1.formatValue; + +var tsv$1 = dsvFormat("\t"); + +var tsvParse = tsv$1.parse; +var tsvParseRows = tsv$1.parseRows; +var tsvFormat = tsv$1.format; +var tsvFormatBody = tsv$1.formatBody; +var tsvFormatRows = tsv$1.formatRows; +var tsvFormatRow = tsv$1.formatRow; +var tsvFormatValue = tsv$1.formatValue; + +function autoType(object) { + for (var key in object) { + var value = object[key].trim(), number, m; + if (!value) value = null; + else if (value === "true") value = true; + else if (value === "false") value = false; + else if (value === "NaN") value = NaN; + else if (!isNaN(number = +value)) value = number; + else if (m = value.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/)) { + if (fixtz && !!m[4] && !m[7]) value = value.replace(/-/g, "/").replace(/T/, " "); + value = new Date(value); + } + else continue; + object[key] = value; + } + return object; +} + +// https://github.com/d3/d3-dsv/issues/45 +const fixtz = new Date("2019-01-01T00:00").getHours() || new Date("2019-07-01T00:00").getHours(); + +function responseBlob(response) { + if (!response.ok) throw new Error(response.status + " " + response.statusText); + return response.blob(); +} + +function blob(input, init) { + return fetch(input, init).then(responseBlob); +} + +function responseArrayBuffer(response) { + if (!response.ok) throw new Error(response.status + " " + response.statusText); + return response.arrayBuffer(); +} + +function buffer(input, init) { + return fetch(input, init).then(responseArrayBuffer); +} + +function responseText(response) { + if (!response.ok) throw new Error(response.status + " " + response.statusText); + return response.text(); +} + +function text(input, init) { + return fetch(input, init).then(responseText); +} + +function dsvParse(parse) { + return function(input, init, row) { + if (arguments.length === 2 && typeof init === "function") row = init, init = undefined; + return text(input, init).then(function(response) { + return parse(response, row); + }); + }; +} + +function dsv(delimiter, input, init, row) { + if (arguments.length === 3 && typeof init === "function") row = init, init = undefined; + var format = dsvFormat(delimiter); + return text(input, init).then(function(response) { + return format.parse(response, row); + }); +} + +var csv = dsvParse(csvParse); +var tsv = dsvParse(tsvParse); + +function image(input, init) { + return new Promise(function(resolve, reject) { + var image = new Image; + for (var key in init) image[key] = init[key]; + image.onerror = reject; + image.onload = function() { resolve(image); }; + image.src = input; + }); +} + +function responseJson(response) { + if (!response.ok) throw new Error(response.status + " " + response.statusText); + if (response.status === 204 || response.status === 205) return; + return response.json(); +} + +function json(input, init) { + return fetch(input, init).then(responseJson); +} + +function parser(type) { + return (input, init) => text(input, init) + .then(text => (new DOMParser).parseFromString(text, type)); +} + +var xml = parser("application/xml"); + +var html = parser("text/html"); + +var svg = parser("image/svg+xml"); + +function center(x, y) { + var nodes, strength = 1; + + if (x == null) x = 0; + if (y == null) y = 0; + + function force() { + var i, + n = nodes.length, + node, + sx = 0, + sy = 0; + + for (i = 0; i < n; ++i) { + node = nodes[i], sx += node.x, sy += node.y; + } + + for (sx = (sx / n - x) * strength, sy = (sy / n - y) * strength, i = 0; i < n; ++i) { + node = nodes[i], node.x -= sx, node.y -= sy; + } + } + + force.initialize = function(_) { + nodes = _; + }; + + force.x = function(_) { + return arguments.length ? (x = +_, force) : x; + }; + + force.y = function(_) { + return arguments.length ? (y = +_, force) : y; + }; + + force.strength = function(_) { + return arguments.length ? (strength = +_, force) : strength; + }; + + return force; +} + +function tree_add(d) { + const x = +this._x.call(null, d), + y = +this._y.call(null, d); + return add(this.cover(x, y), x, y, d); +} + +function add(tree, x, y, d) { + if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points + + var parent, + node = tree._root, + leaf = {data: d}, + x0 = tree._x0, + y0 = tree._y0, + x1 = tree._x1, + y1 = tree._y1, + xm, + ym, + xp, + yp, + right, + bottom, + i, + j; + + // If the tree is empty, initialize the root as a leaf. + if (!node) return tree._root = leaf, tree; + + // Find the existing leaf for the new point, or add it. + while (node.length) { + if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; + if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; + if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree; + } + + // Is the new point is exactly coincident with the existing point? + xp = +tree._x.call(null, node.data); + yp = +tree._y.call(null, node.data); + if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree; + + // Otherwise, split the leaf node until the old and new point are separated. + do { + parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4); + if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; + if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; + } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm))); + return parent[j] = node, parent[i] = leaf, tree; +} + +function addAll(data) { + var d, i, n = data.length, + x, + y, + xz = new Array(n), + yz = new Array(n), + x0 = Infinity, + y0 = Infinity, + x1 = -Infinity, + y1 = -Infinity; + + // Compute the points and their extent. + for (i = 0; i < n; ++i) { + if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue; + xz[i] = x; + yz[i] = y; + if (x < x0) x0 = x; + if (x > x1) x1 = x; + if (y < y0) y0 = y; + if (y > y1) y1 = y; + } + + // If there were no (valid) points, abort. + if (x0 > x1 || y0 > y1) return this; + + // Expand the tree to cover the new points. + this.cover(x0, y0).cover(x1, y1); + + // Add the new points. + for (i = 0; i < n; ++i) { + add(this, xz[i], yz[i], data[i]); + } + + return this; +} + +function tree_cover(x, y) { + if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points + + var x0 = this._x0, + y0 = this._y0, + x1 = this._x1, + y1 = this._y1; + + // If the quadtree has no extent, initialize them. + // Integer extent are necessary so that if we later double the extent, + // the existing quadrant boundaries don’t change due to floating point error! + if (isNaN(x0)) { + x1 = (x0 = Math.floor(x)) + 1; + y1 = (y0 = Math.floor(y)) + 1; + } + + // Otherwise, double repeatedly to cover. + else { + var z = x1 - x0 || 1, + node = this._root, + parent, + i; + + while (x0 > x || x >= x1 || y0 > y || y >= y1) { + i = (y < y0) << 1 | (x < x0); + parent = new Array(4), parent[i] = node, node = parent, z *= 2; + switch (i) { + case 0: x1 = x0 + z, y1 = y0 + z; break; + case 1: x0 = x1 - z, y1 = y0 + z; break; + case 2: x1 = x0 + z, y0 = y1 - z; break; + case 3: x0 = x1 - z, y0 = y1 - z; break; + } + } + + if (this._root && this._root.length) this._root = node; + } + + this._x0 = x0; + this._y0 = y0; + this._x1 = x1; + this._y1 = y1; + return this; +} + +function tree_data() { + var data = []; + this.visit(function(node) { + if (!node.length) do data.push(node.data); while (node = node.next) + }); + return data; +} + +function tree_extent(_) { + return arguments.length + ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1]) + : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]]; +} + +function Quad(node, x0, y0, x1, y1) { + this.node = node; + this.x0 = x0; + this.y0 = y0; + this.x1 = x1; + this.y1 = y1; +} + +function tree_find(x, y, radius) { + var data, + x0 = this._x0, + y0 = this._y0, + x1, + y1, + x2, + y2, + x3 = this._x1, + y3 = this._y1, + quads = [], + node = this._root, + q, + i; + + if (node) quads.push(new Quad(node, x0, y0, x3, y3)); + if (radius == null) radius = Infinity; + else { + x0 = x - radius, y0 = y - radius; + x3 = x + radius, y3 = y + radius; + radius *= radius; + } + + while (q = quads.pop()) { + + // Stop searching if this quadrant can’t contain a closer node. + if (!(node = q.node) + || (x1 = q.x0) > x3 + || (y1 = q.y0) > y3 + || (x2 = q.x1) < x0 + || (y2 = q.y1) < y0) continue; + + // Bisect the current quadrant. + if (node.length) { + var xm = (x1 + x2) / 2, + ym = (y1 + y2) / 2; + + quads.push( + new Quad(node[3], xm, ym, x2, y2), + new Quad(node[2], x1, ym, xm, y2), + new Quad(node[1], xm, y1, x2, ym), + new Quad(node[0], x1, y1, xm, ym) + ); + + // Visit the closest quadrant first. + if (i = (y >= ym) << 1 | (x >= xm)) { + q = quads[quads.length - 1]; + quads[quads.length - 1] = quads[quads.length - 1 - i]; + quads[quads.length - 1 - i] = q; + } + } + + // Visit this point. (Visiting coincident points isn’t necessary!) + else { + var dx = x - +this._x.call(null, node.data), + dy = y - +this._y.call(null, node.data), + d2 = dx * dx + dy * dy; + if (d2 < radius) { + var d = Math.sqrt(radius = d2); + x0 = x - d, y0 = y - d; + x3 = x + d, y3 = y + d; + data = node.data; + } + } + } + + return data; +} + +function tree_remove(d) { + if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points + + var parent, + node = this._root, + retainer, + previous, + next, + x0 = this._x0, + y0 = this._y0, + x1 = this._x1, + y1 = this._y1, + x, + y, + xm, + ym, + right, + bottom, + i, + j; + + // If the tree is empty, initialize the root as a leaf. + if (!node) return this; + + // Find the leaf node for the point. + // While descending, also retain the deepest parent with a non-removed sibling. + if (node.length) while (true) { + if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; + if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; + if (!(parent = node, node = node[i = bottom << 1 | right])) return this; + if (!node.length) break; + if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i; + } + + // Find the point to remove. + while (node.data !== d) if (!(previous = node, node = node.next)) return this; + if (next = node.next) delete node.next; + + // If there are multiple coincident points, remove just the point. + if (previous) return (next ? previous.next = next : delete previous.next), this; + + // If this is the root point, remove it. + if (!parent) return this._root = next, this; + + // Remove this leaf. + next ? parent[i] = next : delete parent[i]; + + // If the parent now contains exactly one leaf, collapse superfluous parents. + if ((node = parent[0] || parent[1] || parent[2] || parent[3]) + && node === (parent[3] || parent[2] || parent[1] || parent[0]) + && !node.length) { + if (retainer) retainer[j] = node; + else this._root = node; + } + + return this; +} + +function removeAll(data) { + for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]); + return this; +} + +function tree_root() { + return this._root; +} + +function tree_size() { + var size = 0; + this.visit(function(node) { + if (!node.length) do ++size; while (node = node.next) + }); + return size; +} + +function tree_visit(callback) { + var quads = [], q, node = this._root, child, x0, y0, x1, y1; + if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1)); + while (q = quads.pop()) { + if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) { + var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2; + if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1)); + if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1)); + if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym)); + if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym)); + } + } + return this; +} + +function tree_visitAfter(callback) { + var quads = [], next = [], q; + if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1)); + while (q = quads.pop()) { + var node = q.node; + if (node.length) { + var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2; + if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym)); + if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym)); + if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1)); + if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1)); + } + next.push(q); + } + while (q = next.pop()) { + callback(q.node, q.x0, q.y0, q.x1, q.y1); + } + return this; +} + +function defaultX(d) { + return d[0]; +} + +function tree_x(_) { + return arguments.length ? (this._x = _, this) : this._x; +} + +function defaultY(d) { + return d[1]; +} + +function tree_y(_) { + return arguments.length ? (this._y = _, this) : this._y; +} + +function quadtree(nodes, x, y) { + var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN); + return nodes == null ? tree : tree.addAll(nodes); +} + +function Quadtree(x, y, x0, y0, x1, y1) { + this._x = x; + this._y = y; + this._x0 = x0; + this._y0 = y0; + this._x1 = x1; + this._y1 = y1; + this._root = undefined; +} + +function leaf_copy(leaf) { + var copy = {data: leaf.data}, next = copy; + while (leaf = leaf.next) next = next.next = {data: leaf.data}; + return copy; +} + +var treeProto = quadtree.prototype = Quadtree.prototype; + +treeProto.copy = function() { + var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1), + node = this._root, + nodes, + child; + + if (!node) return copy; + + if (!node.length) return copy._root = leaf_copy(node), copy; + + nodes = [{source: node, target: copy._root = new Array(4)}]; + while (node = nodes.pop()) { + for (var i = 0; i < 4; ++i) { + if (child = node.source[i]) { + if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)}); + else node.target[i] = leaf_copy(child); + } + } + } + + return copy; +}; + +treeProto.add = tree_add; +treeProto.addAll = addAll; +treeProto.cover = tree_cover; +treeProto.data = tree_data; +treeProto.extent = tree_extent; +treeProto.find = tree_find; +treeProto.remove = tree_remove; +treeProto.removeAll = removeAll; +treeProto.root = tree_root; +treeProto.size = tree_size; +treeProto.visit = tree_visit; +treeProto.visitAfter = tree_visitAfter; +treeProto.x = tree_x; +treeProto.y = tree_y; + +function constant$4(x) { + return function() { + return x; + }; +} + +function jiggle(random) { + return (random() - 0.5) * 1e-6; +} + +function x$3(d) { + return d.x + d.vx; +} + +function y$3(d) { + return d.y + d.vy; +} + +function collide(radius) { + var nodes, + radii, + random, + strength = 1, + iterations = 1; + + if (typeof radius !== "function") radius = constant$4(radius == null ? 1 : +radius); + + function force() { + var i, n = nodes.length, + tree, + node, + xi, + yi, + ri, + ri2; + + for (var k = 0; k < iterations; ++k) { + tree = quadtree(nodes, x$3, y$3).visitAfter(prepare); + for (i = 0; i < n; ++i) { + node = nodes[i]; + ri = radii[node.index], ri2 = ri * ri; + xi = node.x + node.vx; + yi = node.y + node.vy; + tree.visit(apply); + } + } + + function apply(quad, x0, y0, x1, y1) { + var data = quad.data, rj = quad.r, r = ri + rj; + if (data) { + if (data.index > node.index) { + var x = xi - data.x - data.vx, + y = yi - data.y - data.vy, + l = x * x + y * y; + if (l < r * r) { + if (x === 0) x = jiggle(random), l += x * x; + if (y === 0) y = jiggle(random), l += y * y; + l = (r - (l = Math.sqrt(l))) / l * strength; + node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj)); + node.vy += (y *= l) * r; + data.vx -= x * (r = 1 - r); + data.vy -= y * r; + } + } + return; + } + return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r; + } + } + + function prepare(quad) { + if (quad.data) return quad.r = radii[quad.data.index]; + for (var i = quad.r = 0; i < 4; ++i) { + if (quad[i] && quad[i].r > quad.r) { + quad.r = quad[i].r; + } + } + } + + function initialize() { + if (!nodes) return; + var i, n = nodes.length, node; + radii = new Array(n); + for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes); + } + + force.initialize = function(_nodes, _random) { + nodes = _nodes; + random = _random; + initialize(); + }; + + force.iterations = function(_) { + return arguments.length ? (iterations = +_, force) : iterations; + }; + + force.strength = function(_) { + return arguments.length ? (strength = +_, force) : strength; + }; + + force.radius = function(_) { + return arguments.length ? (radius = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : radius; + }; + + return force; +} + +function index$3(d) { + return d.index; +} + +function find(nodeById, nodeId) { + var node = nodeById.get(nodeId); + if (!node) throw new Error("node not found: " + nodeId); + return node; +} + +function link$2(links) { + var id = index$3, + strength = defaultStrength, + strengths, + distance = constant$4(30), + distances, + nodes, + count, + bias, + random, + iterations = 1; + + if (links == null) links = []; + + function defaultStrength(link) { + return 1 / Math.min(count[link.source.index], count[link.target.index]); + } + + function force(alpha) { + for (var k = 0, n = links.length; k < iterations; ++k) { + for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) { + link = links[i], source = link.source, target = link.target; + x = target.x + target.vx - source.x - source.vx || jiggle(random); + y = target.y + target.vy - source.y - source.vy || jiggle(random); + l = Math.sqrt(x * x + y * y); + l = (l - distances[i]) / l * alpha * strengths[i]; + x *= l, y *= l; + target.vx -= x * (b = bias[i]); + target.vy -= y * b; + source.vx += x * (b = 1 - b); + source.vy += y * b; + } + } + } + + function initialize() { + if (!nodes) return; + + var i, + n = nodes.length, + m = links.length, + nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d])), + link; + + for (i = 0, count = new Array(n); i < m; ++i) { + link = links[i], link.index = i; + if (typeof link.source !== "object") link.source = find(nodeById, link.source); + if (typeof link.target !== "object") link.target = find(nodeById, link.target); + count[link.source.index] = (count[link.source.index] || 0) + 1; + count[link.target.index] = (count[link.target.index] || 0) + 1; + } + + for (i = 0, bias = new Array(m); i < m; ++i) { + link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]); + } + + strengths = new Array(m), initializeStrength(); + distances = new Array(m), initializeDistance(); + } + + function initializeStrength() { + if (!nodes) return; + + for (var i = 0, n = links.length; i < n; ++i) { + strengths[i] = +strength(links[i], i, links); + } + } + + function initializeDistance() { + if (!nodes) return; + + for (var i = 0, n = links.length; i < n; ++i) { + distances[i] = +distance(links[i], i, links); + } + } + + force.initialize = function(_nodes, _random) { + nodes = _nodes; + random = _random; + initialize(); + }; + + force.links = function(_) { + return arguments.length ? (links = _, initialize(), force) : links; + }; + + force.id = function(_) { + return arguments.length ? (id = _, force) : id; + }; + + force.iterations = function(_) { + return arguments.length ? (iterations = +_, force) : iterations; + }; + + force.strength = function(_) { + return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initializeStrength(), force) : strength; + }; + + force.distance = function(_) { + return arguments.length ? (distance = typeof _ === "function" ? _ : constant$4(+_), initializeDistance(), force) : distance; + }; + + return force; +} + +// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use +const a$2 = 1664525; +const c$4 = 1013904223; +const m$1 = 4294967296; // 2^32 + +function lcg$2() { + let s = 1; + return () => (s = (a$2 * s + c$4) % m$1) / m$1; +} + +function x$2(d) { + return d.x; +} + +function y$2(d) { + return d.y; +} + +var initialRadius = 10, + initialAngle = Math.PI * (3 - Math.sqrt(5)); + +function simulation(nodes) { + var simulation, + alpha = 1, + alphaMin = 0.001, + alphaDecay = 1 - Math.pow(alphaMin, 1 / 300), + alphaTarget = 0, + velocityDecay = 0.6, + forces = new Map(), + stepper = timer(step), + event = dispatch("tick", "end"), + random = lcg$2(); + + if (nodes == null) nodes = []; + + function step() { + tick(); + event.call("tick", simulation); + if (alpha < alphaMin) { + stepper.stop(); + event.call("end", simulation); + } + } + + function tick(iterations) { + var i, n = nodes.length, node; + + if (iterations === undefined) iterations = 1; + + for (var k = 0; k < iterations; ++k) { + alpha += (alphaTarget - alpha) * alphaDecay; + + forces.forEach(function(force) { + force(alpha); + }); + + for (i = 0; i < n; ++i) { + node = nodes[i]; + if (node.fx == null) node.x += node.vx *= velocityDecay; + else node.x = node.fx, node.vx = 0; + if (node.fy == null) node.y += node.vy *= velocityDecay; + else node.y = node.fy, node.vy = 0; + } + } + + return simulation; + } + + function initializeNodes() { + for (var i = 0, n = nodes.length, node; i < n; ++i) { + node = nodes[i], node.index = i; + if (node.fx != null) node.x = node.fx; + if (node.fy != null) node.y = node.fy; + if (isNaN(node.x) || isNaN(node.y)) { + var radius = initialRadius * Math.sqrt(0.5 + i), angle = i * initialAngle; + node.x = radius * Math.cos(angle); + node.y = radius * Math.sin(angle); + } + if (isNaN(node.vx) || isNaN(node.vy)) { + node.vx = node.vy = 0; + } + } + } + + function initializeForce(force) { + if (force.initialize) force.initialize(nodes, random); + return force; + } + + initializeNodes(); + + return simulation = { + tick: tick, + + restart: function() { + return stepper.restart(step), simulation; + }, + + stop: function() { + return stepper.stop(), simulation; + }, + + nodes: function(_) { + return arguments.length ? (nodes = _, initializeNodes(), forces.forEach(initializeForce), simulation) : nodes; + }, + + alpha: function(_) { + return arguments.length ? (alpha = +_, simulation) : alpha; + }, + + alphaMin: function(_) { + return arguments.length ? (alphaMin = +_, simulation) : alphaMin; + }, + + alphaDecay: function(_) { + return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay; + }, + + alphaTarget: function(_) { + return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget; + }, + + velocityDecay: function(_) { + return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay; + }, + + randomSource: function(_) { + return arguments.length ? (random = _, forces.forEach(initializeForce), simulation) : random; + }, + + force: function(name, _) { + return arguments.length > 1 ? ((_ == null ? forces.delete(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name); + }, + + find: function(x, y, radius) { + var i = 0, + n = nodes.length, + dx, + dy, + d2, + node, + closest; + + if (radius == null) radius = Infinity; + else radius *= radius; + + for (i = 0; i < n; ++i) { + node = nodes[i]; + dx = x - node.x; + dy = y - node.y; + d2 = dx * dx + dy * dy; + if (d2 < radius) closest = node, radius = d2; + } + + return closest; + }, + + on: function(name, _) { + return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name); + } + }; +} + +function manyBody() { + var nodes, + node, + random, + alpha, + strength = constant$4(-30), + strengths, + distanceMin2 = 1, + distanceMax2 = Infinity, + theta2 = 0.81; + + function force(_) { + var i, n = nodes.length, tree = quadtree(nodes, x$2, y$2).visitAfter(accumulate); + for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply); + } + + function initialize() { + if (!nodes) return; + var i, n = nodes.length, node; + strengths = new Array(n); + for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes); + } + + function accumulate(quad) { + var strength = 0, q, c, weight = 0, x, y, i; + + // For internal nodes, accumulate forces from child quadrants. + if (quad.length) { + for (x = y = i = 0; i < 4; ++i) { + if ((q = quad[i]) && (c = Math.abs(q.value))) { + strength += q.value, weight += c, x += c * q.x, y += c * q.y; + } + } + quad.x = x / weight; + quad.y = y / weight; + } + + // For leaf nodes, accumulate forces from coincident quadrants. + else { + q = quad; + q.x = q.data.x; + q.y = q.data.y; + do strength += strengths[q.data.index]; + while (q = q.next); + } + + quad.value = strength; + } + + function apply(quad, x1, _, x2) { + if (!quad.value) return true; + + var x = quad.x - node.x, + y = quad.y - node.y, + w = x2 - x1, + l = x * x + y * y; + + // Apply the Barnes-Hut approximation if possible. + // Limit forces for very close nodes; randomize direction if coincident. + if (w * w / theta2 < l) { + if (l < distanceMax2) { + if (x === 0) x = jiggle(random), l += x * x; + if (y === 0) y = jiggle(random), l += y * y; + if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l); + node.vx += x * quad.value * alpha / l; + node.vy += y * quad.value * alpha / l; + } + return true; + } + + // Otherwise, process points directly. + else if (quad.length || l >= distanceMax2) return; + + // Limit forces for very close nodes; randomize direction if coincident. + if (quad.data !== node || quad.next) { + if (x === 0) x = jiggle(random), l += x * x; + if (y === 0) y = jiggle(random), l += y * y; + if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l); + } + + do if (quad.data !== node) { + w = strengths[quad.data.index] * alpha / l; + node.vx += x * w; + node.vy += y * w; + } while (quad = quad.next); + } + + force.initialize = function(_nodes, _random) { + nodes = _nodes; + random = _random; + initialize(); + }; + + force.strength = function(_) { + return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength; + }; + + force.distanceMin = function(_) { + return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2); + }; + + force.distanceMax = function(_) { + return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2); + }; + + force.theta = function(_) { + return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2); + }; + + return force; +} + +function radial$1(radius, x, y) { + var nodes, + strength = constant$4(0.1), + strengths, + radiuses; + + if (typeof radius !== "function") radius = constant$4(+radius); + if (x == null) x = 0; + if (y == null) y = 0; + + function force(alpha) { + for (var i = 0, n = nodes.length; i < n; ++i) { + var node = nodes[i], + dx = node.x - x || 1e-6, + dy = node.y - y || 1e-6, + r = Math.sqrt(dx * dx + dy * dy), + k = (radiuses[i] - r) * strengths[i] * alpha / r; + node.vx += dx * k; + node.vy += dy * k; + } + } + + function initialize() { + if (!nodes) return; + var i, n = nodes.length; + strengths = new Array(n); + radiuses = new Array(n); + for (i = 0; i < n; ++i) { + radiuses[i] = +radius(nodes[i], i, nodes); + strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes); + } + } + + force.initialize = function(_) { + nodes = _, initialize(); + }; + + force.strength = function(_) { + return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength; + }; + + force.radius = function(_) { + return arguments.length ? (radius = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : radius; + }; + + force.x = function(_) { + return arguments.length ? (x = +_, force) : x; + }; + + force.y = function(_) { + return arguments.length ? (y = +_, force) : y; + }; + + return force; +} + +function x$1(x) { + var strength = constant$4(0.1), + nodes, + strengths, + xz; + + if (typeof x !== "function") x = constant$4(x == null ? 0 : +x); + + function force(alpha) { + for (var i = 0, n = nodes.length, node; i < n; ++i) { + node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha; + } + } + + function initialize() { + if (!nodes) return; + var i, n = nodes.length; + strengths = new Array(n); + xz = new Array(n); + for (i = 0; i < n; ++i) { + strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes); + } + } + + force.initialize = function(_) { + nodes = _; + initialize(); + }; + + force.strength = function(_) { + return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength; + }; + + force.x = function(_) { + return arguments.length ? (x = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : x; + }; + + return force; +} + +function y$1(y) { + var strength = constant$4(0.1), + nodes, + strengths, + yz; + + if (typeof y !== "function") y = constant$4(y == null ? 0 : +y); + + function force(alpha) { + for (var i = 0, n = nodes.length, node; i < n; ++i) { + node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha; + } + } + + function initialize() { + if (!nodes) return; + var i, n = nodes.length; + strengths = new Array(n); + yz = new Array(n); + for (i = 0; i < n; ++i) { + strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes); + } + } + + force.initialize = function(_) { + nodes = _; + initialize(); + }; + + force.strength = function(_) { + return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength; + }; + + force.y = function(_) { + return arguments.length ? (y = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : y; + }; + + return force; +} + +function formatDecimal(x) { + return Math.abs(x = Math.round(x)) >= 1e21 + ? x.toLocaleString("en").replace(/,/g, "") + : x.toString(10); +} + +// Computes the decimal coefficient and exponent of the specified number x with +// significant digits p, where x is positive and p is in [1, 21] or undefined. +// For example, formatDecimalParts(1.23) returns ["123", 0]. +function formatDecimalParts(x, p) { + if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0) return null; // NaN, ±Infinity + var i, coefficient = x.slice(0, i); + + // The string returned by toExponential either has the form \d\.\d+e[-+]\d+ + // (e.g., 1.2e+3) or the form \de[-+]\d+ (e.g., 1e+3). + return [ + coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, + +x.slice(i + 1) + ]; +} + +function exponent(x) { + return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN; +} + +function formatGroup(grouping, thousands) { + return function(value, width) { + var i = value.length, + t = [], + j = 0, + g = grouping[0], + length = 0; + + while (i > 0 && g > 0) { + if (length + g + 1 > width) g = Math.max(1, width - length); + t.push(value.substring(i -= g, i + g)); + if ((length += g + 1) > width) break; + g = grouping[j = (j + 1) % grouping.length]; + } + + return t.reverse().join(thousands); + }; +} + +function formatNumerals(numerals) { + return function(value) { + return value.replace(/[0-9]/g, function(i) { + return numerals[+i]; + }); + }; +} + +// [[fill]align][sign][symbol][0][width][,][.precision][~][type] +var re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i; + +function formatSpecifier(specifier) { + if (!(match = re.exec(specifier))) throw new Error("invalid format: " + specifier); + var match; + return new FormatSpecifier({ + fill: match[1], + align: match[2], + sign: match[3], + symbol: match[4], + zero: match[5], + width: match[6], + comma: match[7], + precision: match[8] && match[8].slice(1), + trim: match[9], + type: match[10] + }); +} + +formatSpecifier.prototype = FormatSpecifier.prototype; // instanceof + +function FormatSpecifier(specifier) { + this.fill = specifier.fill === undefined ? " " : specifier.fill + ""; + this.align = specifier.align === undefined ? ">" : specifier.align + ""; + this.sign = specifier.sign === undefined ? "-" : specifier.sign + ""; + this.symbol = specifier.symbol === undefined ? "" : specifier.symbol + ""; + this.zero = !!specifier.zero; + this.width = specifier.width === undefined ? undefined : +specifier.width; + this.comma = !!specifier.comma; + this.precision = specifier.precision === undefined ? undefined : +specifier.precision; + this.trim = !!specifier.trim; + this.type = specifier.type === undefined ? "" : specifier.type + ""; +} + +FormatSpecifier.prototype.toString = function() { + return this.fill + + this.align + + this.sign + + this.symbol + + (this.zero ? "0" : "") + + (this.width === undefined ? "" : Math.max(1, this.width | 0)) + + (this.comma ? "," : "") + + (this.precision === undefined ? "" : "." + Math.max(0, this.precision | 0)) + + (this.trim ? "~" : "") + + this.type; +}; + +// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k. +function formatTrim(s) { + out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) { + switch (s[i]) { + case ".": i0 = i1 = i; break; + case "0": if (i0 === 0) i0 = i; i1 = i; break; + default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break; + } + } + return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s; +} + +var prefixExponent; + +function formatPrefixAuto(x, p) { + var d = formatDecimalParts(x, p); + if (!d) return x + ""; + var coefficient = d[0], + exponent = d[1], + i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1, + n = coefficient.length; + return i === n ? coefficient + : i > n ? coefficient + new Array(i - n + 1).join("0") + : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i) + : "0." + new Array(1 - i).join("0") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y! +} + +function formatRounded(x, p) { + var d = formatDecimalParts(x, p); + if (!d) return x + ""; + var coefficient = d[0], + exponent = d[1]; + return exponent < 0 ? "0." + new Array(-exponent).join("0") + coefficient + : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + "." + coefficient.slice(exponent + 1) + : coefficient + new Array(exponent - coefficient.length + 2).join("0"); +} + +var formatTypes = { + "%": (x, p) => (x * 100).toFixed(p), + "b": (x) => Math.round(x).toString(2), + "c": (x) => x + "", + "d": formatDecimal, + "e": (x, p) => x.toExponential(p), + "f": (x, p) => x.toFixed(p), + "g": (x, p) => x.toPrecision(p), + "o": (x) => Math.round(x).toString(8), + "p": (x, p) => formatRounded(x * 100, p), + "r": formatRounded, + "s": formatPrefixAuto, + "X": (x) => Math.round(x).toString(16).toUpperCase(), + "x": (x) => Math.round(x).toString(16) +}; + +function identity$6(x) { + return x; +} + +var map = Array.prototype.map, + prefixes = ["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"]; + +function formatLocale$1(locale) { + var group = locale.grouping === undefined || locale.thousands === undefined ? identity$6 : formatGroup(map.call(locale.grouping, Number), locale.thousands + ""), + currencyPrefix = locale.currency === undefined ? "" : locale.currency[0] + "", + currencySuffix = locale.currency === undefined ? "" : locale.currency[1] + "", + decimal = locale.decimal === undefined ? "." : locale.decimal + "", + numerals = locale.numerals === undefined ? identity$6 : formatNumerals(map.call(locale.numerals, String)), + percent = locale.percent === undefined ? "%" : locale.percent + "", + minus = locale.minus === undefined ? "−" : locale.minus + "", + nan = locale.nan === undefined ? "NaN" : locale.nan + ""; + + function newFormat(specifier) { + specifier = formatSpecifier(specifier); + + var fill = specifier.fill, + align = specifier.align, + sign = specifier.sign, + symbol = specifier.symbol, + zero = specifier.zero, + width = specifier.width, + comma = specifier.comma, + precision = specifier.precision, + trim = specifier.trim, + type = specifier.type; + + // The "n" type is an alias for ",g". + if (type === "n") comma = true, type = "g"; + + // The "" type, and any invalid type, is an alias for ".12~g". + else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = "g"; + + // If zero fill is specified, padding goes after sign and before digits. + if (zero || (fill === "0" && align === "=")) zero = true, fill = "0", align = "="; + + // Compute the prefix and suffix. + // For SI-prefix, the suffix is lazily computed. + var prefix = symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : "", + suffix = symbol === "$" ? currencySuffix : /[%p]/.test(type) ? percent : ""; + + // What format function should we use? + // Is this an integer type? + // Can this type generate exponential notation? + var formatType = formatTypes[type], + maybeSuffix = /[defgprs%]/.test(type); + + // Set the default precision if not specified, + // or clamp the specified precision to the supported range. + // For significant precision, it must be in [1, 21]. + // For fixed precision, it must be in [0, 20]. + precision = precision === undefined ? 6 + : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) + : Math.max(0, Math.min(20, precision)); + + function format(value) { + var valuePrefix = prefix, + valueSuffix = suffix, + i, n, c; + + if (type === "c") { + valueSuffix = formatType(value) + valueSuffix; + value = ""; + } else { + value = +value; + + // Determine the sign. -0 is not less than 0, but 1 / -0 is! + var valueNegative = value < 0 || 1 / value < 0; + + // Perform the initial formatting. + value = isNaN(value) ? nan : formatType(Math.abs(value), precision); + + // Trim insignificant zeros. + if (trim) value = formatTrim(value); + + // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign. + if (valueNegative && +value === 0 && sign !== "+") valueNegative = false; + + // Compute the prefix and suffix. + valuePrefix = (valueNegative ? (sign === "(" ? sign : minus) : sign === "-" || sign === "(" ? "" : sign) + valuePrefix; + valueSuffix = (type === "s" ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : ""); + + // Break the formatted value into the integer “value†part that can be + // grouped, and fractional or exponential “suffix†part that is not. + if (maybeSuffix) { + i = -1, n = value.length; + while (++i < n) { + if (c = value.charCodeAt(i), 48 > c || c > 57) { + valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix; + value = value.slice(0, i); + break; + } + } + } + } + + // If the fill character is not "0", grouping is applied before padding. + if (comma && !zero) value = group(value, Infinity); + + // Compute the padding. + var length = valuePrefix.length + value.length + valueSuffix.length, + padding = length < width ? new Array(width - length + 1).join(fill) : ""; + + // If the fill character is "0", grouping is applied after padding. + if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = ""; + + // Reconstruct the final output based on the desired alignment. + switch (align) { + case "<": value = valuePrefix + value + valueSuffix + padding; break; + case "=": value = valuePrefix + padding + value + valueSuffix; break; + case "^": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break; + default: value = padding + valuePrefix + value + valueSuffix; break; + } + + return numerals(value); + } + + format.toString = function() { + return specifier + ""; + }; + + return format; + } + + function formatPrefix(specifier, value) { + var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = "f", specifier)), + e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3, + k = Math.pow(10, -e), + prefix = prefixes[8 + e / 3]; + return function(value) { + return f(k * value) + prefix; + }; + } + + return { + format: newFormat, + formatPrefix: formatPrefix + }; +} + +var locale$1; +exports.format = void 0; +exports.formatPrefix = void 0; + +defaultLocale$1({ + thousands: ",", + grouping: [3], + currency: ["$", ""] +}); + +function defaultLocale$1(definition) { + locale$1 = formatLocale$1(definition); + exports.format = locale$1.format; + exports.formatPrefix = locale$1.formatPrefix; + return locale$1; +} + +function precisionFixed(step) { + return Math.max(0, -exponent(Math.abs(step))); +} + +function precisionPrefix(step, value) { + return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step))); +} + +function precisionRound(step, max) { + step = Math.abs(step), max = Math.abs(max) - step; + return Math.max(0, exponent(max) - exponent(step)) + 1; +} + +var epsilon$1 = 1e-6; +var epsilon2 = 1e-12; +var pi$1 = Math.PI; +var halfPi$1 = pi$1 / 2; +var quarterPi = pi$1 / 4; +var tau$1 = pi$1 * 2; + +var degrees = 180 / pi$1; +var radians = pi$1 / 180; + +var abs$1 = Math.abs; +var atan = Math.atan; +var atan2$1 = Math.atan2; +var cos$1 = Math.cos; +var ceil = Math.ceil; +var exp = Math.exp; +var hypot = Math.hypot; +var log$1 = Math.log; +var pow$1 = Math.pow; +var sin$1 = Math.sin; +var sign$1 = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; }; +var sqrt$2 = Math.sqrt; +var tan = Math.tan; + +function acos$1(x) { + return x > 1 ? 0 : x < -1 ? pi$1 : Math.acos(x); +} + +function asin$1(x) { + return x > 1 ? halfPi$1 : x < -1 ? -halfPi$1 : Math.asin(x); +} + +function haversin(x) { + return (x = sin$1(x / 2)) * x; +} + +function noop$1() {} + +function streamGeometry(geometry, stream) { + if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) { + streamGeometryType[geometry.type](geometry, stream); + } +} + +var streamObjectType = { + Feature: function(object, stream) { + streamGeometry(object.geometry, stream); + }, + FeatureCollection: function(object, stream) { + var features = object.features, i = -1, n = features.length; + while (++i < n) streamGeometry(features[i].geometry, stream); + } +}; + +var streamGeometryType = { + Sphere: function(object, stream) { + stream.sphere(); + }, + Point: function(object, stream) { + object = object.coordinates; + stream.point(object[0], object[1], object[2]); + }, + MultiPoint: function(object, stream) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]); + }, + LineString: function(object, stream) { + streamLine(object.coordinates, stream, 0); + }, + MultiLineString: function(object, stream) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) streamLine(coordinates[i], stream, 0); + }, + Polygon: function(object, stream) { + streamPolygon(object.coordinates, stream); + }, + MultiPolygon: function(object, stream) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) streamPolygon(coordinates[i], stream); + }, + GeometryCollection: function(object, stream) { + var geometries = object.geometries, i = -1, n = geometries.length; + while (++i < n) streamGeometry(geometries[i], stream); + } +}; + +function streamLine(coordinates, stream, closed) { + var i = -1, n = coordinates.length - closed, coordinate; + stream.lineStart(); + while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]); + stream.lineEnd(); +} + +function streamPolygon(coordinates, stream) { + var i = -1, n = coordinates.length; + stream.polygonStart(); + while (++i < n) streamLine(coordinates[i], stream, 1); + stream.polygonEnd(); +} + +function geoStream(object, stream) { + if (object && streamObjectType.hasOwnProperty(object.type)) { + streamObjectType[object.type](object, stream); + } else { + streamGeometry(object, stream); + } +} + +var areaRingSum$1 = new Adder(); + +// hello? + +var areaSum$1 = new Adder(), + lambda00$2, + phi00$2, + lambda0$2, + cosPhi0$1, + sinPhi0$1; + +var areaStream$1 = { + point: noop$1, + lineStart: noop$1, + lineEnd: noop$1, + polygonStart: function() { + areaRingSum$1 = new Adder(); + areaStream$1.lineStart = areaRingStart$1; + areaStream$1.lineEnd = areaRingEnd$1; + }, + polygonEnd: function() { + var areaRing = +areaRingSum$1; + areaSum$1.add(areaRing < 0 ? tau$1 + areaRing : areaRing); + this.lineStart = this.lineEnd = this.point = noop$1; + }, + sphere: function() { + areaSum$1.add(tau$1); + } +}; + +function areaRingStart$1() { + areaStream$1.point = areaPointFirst$1; +} + +function areaRingEnd$1() { + areaPoint$1(lambda00$2, phi00$2); +} + +function areaPointFirst$1(lambda, phi) { + areaStream$1.point = areaPoint$1; + lambda00$2 = lambda, phi00$2 = phi; + lambda *= radians, phi *= radians; + lambda0$2 = lambda, cosPhi0$1 = cos$1(phi = phi / 2 + quarterPi), sinPhi0$1 = sin$1(phi); +} + +function areaPoint$1(lambda, phi) { + lambda *= radians, phi *= radians; + phi = phi / 2 + quarterPi; // half the angular distance from south pole + + // Spherical excess E for a spherical triangle with vertices: south pole, + // previous point, current point. Uses a formula derived from Cagnoli’s + // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2). + var dLambda = lambda - lambda0$2, + sdLambda = dLambda >= 0 ? 1 : -1, + adLambda = sdLambda * dLambda, + cosPhi = cos$1(phi), + sinPhi = sin$1(phi), + k = sinPhi0$1 * sinPhi, + u = cosPhi0$1 * cosPhi + k * cos$1(adLambda), + v = k * sdLambda * sin$1(adLambda); + areaRingSum$1.add(atan2$1(v, u)); + + // Advance the previous points. + lambda0$2 = lambda, cosPhi0$1 = cosPhi, sinPhi0$1 = sinPhi; +} + +function area$2(object) { + areaSum$1 = new Adder(); + geoStream(object, areaStream$1); + return areaSum$1 * 2; +} + +function spherical(cartesian) { + return [atan2$1(cartesian[1], cartesian[0]), asin$1(cartesian[2])]; +} + +function cartesian(spherical) { + var lambda = spherical[0], phi = spherical[1], cosPhi = cos$1(phi); + return [cosPhi * cos$1(lambda), cosPhi * sin$1(lambda), sin$1(phi)]; +} + +function cartesianDot(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; +} + +function cartesianCross(a, b) { + return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]]; +} + +// TODO return a +function cartesianAddInPlace(a, b) { + a[0] += b[0], a[1] += b[1], a[2] += b[2]; +} + +function cartesianScale(vector, k) { + return [vector[0] * k, vector[1] * k, vector[2] * k]; +} + +// TODO return d +function cartesianNormalizeInPlace(d) { + var l = sqrt$2(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]); + d[0] /= l, d[1] /= l, d[2] /= l; +} + +var lambda0$1, phi0, lambda1, phi1, // bounds + lambda2, // previous lambda-coordinate + lambda00$1, phi00$1, // first point + p0, // previous 3D point + deltaSum, + ranges, + range; + +var boundsStream$2 = { + point: boundsPoint$1, + lineStart: boundsLineStart, + lineEnd: boundsLineEnd, + polygonStart: function() { + boundsStream$2.point = boundsRingPoint; + boundsStream$2.lineStart = boundsRingStart; + boundsStream$2.lineEnd = boundsRingEnd; + deltaSum = new Adder(); + areaStream$1.polygonStart(); + }, + polygonEnd: function() { + areaStream$1.polygonEnd(); + boundsStream$2.point = boundsPoint$1; + boundsStream$2.lineStart = boundsLineStart; + boundsStream$2.lineEnd = boundsLineEnd; + if (areaRingSum$1 < 0) lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90); + else if (deltaSum > epsilon$1) phi1 = 90; + else if (deltaSum < -epsilon$1) phi0 = -90; + range[0] = lambda0$1, range[1] = lambda1; + }, + sphere: function() { + lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90); + } +}; + +function boundsPoint$1(lambda, phi) { + ranges.push(range = [lambda0$1 = lambda, lambda1 = lambda]); + if (phi < phi0) phi0 = phi; + if (phi > phi1) phi1 = phi; +} + +function linePoint(lambda, phi) { + var p = cartesian([lambda * radians, phi * radians]); + if (p0) { + var normal = cartesianCross(p0, p), + equatorial = [normal[1], -normal[0], 0], + inflection = cartesianCross(equatorial, normal); + cartesianNormalizeInPlace(inflection); + inflection = spherical(inflection); + var delta = lambda - lambda2, + sign = delta > 0 ? 1 : -1, + lambdai = inflection[0] * degrees * sign, + phii, + antimeridian = abs$1(delta) > 180; + if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) { + phii = inflection[1] * degrees; + if (phii > phi1) phi1 = phii; + } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) { + phii = -inflection[1] * degrees; + if (phii < phi0) phi0 = phii; + } else { + if (phi < phi0) phi0 = phi; + if (phi > phi1) phi1 = phi; + } + if (antimeridian) { + if (lambda < lambda2) { + if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda; + } else { + if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda; + } + } else { + if (lambda1 >= lambda0$1) { + if (lambda < lambda0$1) lambda0$1 = lambda; + if (lambda > lambda1) lambda1 = lambda; + } else { + if (lambda > lambda2) { + if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda; + } else { + if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda; + } + } + } + } else { + ranges.push(range = [lambda0$1 = lambda, lambda1 = lambda]); + } + if (phi < phi0) phi0 = phi; + if (phi > phi1) phi1 = phi; + p0 = p, lambda2 = lambda; +} + +function boundsLineStart() { + boundsStream$2.point = linePoint; +} + +function boundsLineEnd() { + range[0] = lambda0$1, range[1] = lambda1; + boundsStream$2.point = boundsPoint$1; + p0 = null; +} + +function boundsRingPoint(lambda, phi) { + if (p0) { + var delta = lambda - lambda2; + deltaSum.add(abs$1(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta); + } else { + lambda00$1 = lambda, phi00$1 = phi; + } + areaStream$1.point(lambda, phi); + linePoint(lambda, phi); +} + +function boundsRingStart() { + areaStream$1.lineStart(); +} + +function boundsRingEnd() { + boundsRingPoint(lambda00$1, phi00$1); + areaStream$1.lineEnd(); + if (abs$1(deltaSum) > epsilon$1) lambda0$1 = -(lambda1 = 180); + range[0] = lambda0$1, range[1] = lambda1; + p0 = null; +} + +// Finds the left-right distance between two longitudes. +// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want +// the distance between ±180° to be 360°. +function angle(lambda0, lambda1) { + return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1; +} + +function rangeCompare(a, b) { + return a[0] - b[0]; +} + +function rangeContains(range, x) { + return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x; +} + +function bounds(feature) { + var i, n, a, b, merged, deltaMax, delta; + + phi1 = lambda1 = -(lambda0$1 = phi0 = Infinity); + ranges = []; + geoStream(feature, boundsStream$2); + + // First, sort ranges by their minimum longitudes. + if (n = ranges.length) { + ranges.sort(rangeCompare); + + // Then, merge any ranges that overlap. + for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) { + b = ranges[i]; + if (rangeContains(a, b[0]) || rangeContains(a, b[1])) { + if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1]; + if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0]; + } else { + merged.push(a = b); + } + } + + // Finally, find the largest gap between the merged ranges. + // The final bounding box will be the inverse of this gap. + for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) { + b = merged[i]; + if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0$1 = b[0], lambda1 = a[1]; + } + } + + ranges = range = null; + + return lambda0$1 === Infinity || phi0 === Infinity + ? [[NaN, NaN], [NaN, NaN]] + : [[lambda0$1, phi0], [lambda1, phi1]]; +} + +var W0, W1, + X0$1, Y0$1, Z0$1, + X1$1, Y1$1, Z1$1, + X2$1, Y2$1, Z2$1, + lambda00, phi00, // first point + x0$4, y0$4, z0; // previous point + +var centroidStream$1 = { + sphere: noop$1, + point: centroidPoint$1, + lineStart: centroidLineStart$1, + lineEnd: centroidLineEnd$1, + polygonStart: function() { + centroidStream$1.lineStart = centroidRingStart$1; + centroidStream$1.lineEnd = centroidRingEnd$1; + }, + polygonEnd: function() { + centroidStream$1.lineStart = centroidLineStart$1; + centroidStream$1.lineEnd = centroidLineEnd$1; + } +}; + +// Arithmetic mean of Cartesian vectors. +function centroidPoint$1(lambda, phi) { + lambda *= radians, phi *= radians; + var cosPhi = cos$1(phi); + centroidPointCartesian(cosPhi * cos$1(lambda), cosPhi * sin$1(lambda), sin$1(phi)); +} + +function centroidPointCartesian(x, y, z) { + ++W0; + X0$1 += (x - X0$1) / W0; + Y0$1 += (y - Y0$1) / W0; + Z0$1 += (z - Z0$1) / W0; +} + +function centroidLineStart$1() { + centroidStream$1.point = centroidLinePointFirst; +} + +function centroidLinePointFirst(lambda, phi) { + lambda *= radians, phi *= radians; + var cosPhi = cos$1(phi); + x0$4 = cosPhi * cos$1(lambda); + y0$4 = cosPhi * sin$1(lambda); + z0 = sin$1(phi); + centroidStream$1.point = centroidLinePoint; + centroidPointCartesian(x0$4, y0$4, z0); +} + +function centroidLinePoint(lambda, phi) { + lambda *= radians, phi *= radians; + var cosPhi = cos$1(phi), + x = cosPhi * cos$1(lambda), + y = cosPhi * sin$1(lambda), + z = sin$1(phi), + w = atan2$1(sqrt$2((w = y0$4 * z - z0 * y) * w + (w = z0 * x - x0$4 * z) * w + (w = x0$4 * y - y0$4 * x) * w), x0$4 * x + y0$4 * y + z0 * z); + W1 += w; + X1$1 += w * (x0$4 + (x0$4 = x)); + Y1$1 += w * (y0$4 + (y0$4 = y)); + Z1$1 += w * (z0 + (z0 = z)); + centroidPointCartesian(x0$4, y0$4, z0); +} + +function centroidLineEnd$1() { + centroidStream$1.point = centroidPoint$1; +} + +// See J. E. Brock, The Inertia Tensor for a Spherical Triangle, +// J. Applied Mechanics 42, 239 (1975). +function centroidRingStart$1() { + centroidStream$1.point = centroidRingPointFirst; +} + +function centroidRingEnd$1() { + centroidRingPoint(lambda00, phi00); + centroidStream$1.point = centroidPoint$1; +} + +function centroidRingPointFirst(lambda, phi) { + lambda00 = lambda, phi00 = phi; + lambda *= radians, phi *= radians; + centroidStream$1.point = centroidRingPoint; + var cosPhi = cos$1(phi); + x0$4 = cosPhi * cos$1(lambda); + y0$4 = cosPhi * sin$1(lambda); + z0 = sin$1(phi); + centroidPointCartesian(x0$4, y0$4, z0); +} + +function centroidRingPoint(lambda, phi) { + lambda *= radians, phi *= radians; + var cosPhi = cos$1(phi), + x = cosPhi * cos$1(lambda), + y = cosPhi * sin$1(lambda), + z = sin$1(phi), + cx = y0$4 * z - z0 * y, + cy = z0 * x - x0$4 * z, + cz = x0$4 * y - y0$4 * x, + m = hypot(cx, cy, cz), + w = asin$1(m), // line weight = angle + v = m && -w / m; // area weight multiplier + X2$1.add(v * cx); + Y2$1.add(v * cy); + Z2$1.add(v * cz); + W1 += w; + X1$1 += w * (x0$4 + (x0$4 = x)); + Y1$1 += w * (y0$4 + (y0$4 = y)); + Z1$1 += w * (z0 + (z0 = z)); + centroidPointCartesian(x0$4, y0$4, z0); +} + +function centroid$1(object) { + W0 = W1 = + X0$1 = Y0$1 = Z0$1 = + X1$1 = Y1$1 = Z1$1 = 0; + X2$1 = new Adder(); + Y2$1 = new Adder(); + Z2$1 = new Adder(); + geoStream(object, centroidStream$1); + + var x = +X2$1, + y = +Y2$1, + z = +Z2$1, + m = hypot(x, y, z); + + // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid. + if (m < epsilon2) { + x = X1$1, y = Y1$1, z = Z1$1; + // If the feature has zero length, fall back to arithmetic mean of point vectors. + if (W1 < epsilon$1) x = X0$1, y = Y0$1, z = Z0$1; + m = hypot(x, y, z); + // If the feature still has an undefined ccentroid, then return. + if (m < epsilon2) return [NaN, NaN]; + } + + return [atan2$1(y, x) * degrees, asin$1(z / m) * degrees]; +} + +function constant$3(x) { + return function() { + return x; + }; +} + +function compose(a, b) { + + function compose(x, y) { + return x = a(x, y), b(x[0], x[1]); + } + + if (a.invert && b.invert) compose.invert = function(x, y) { + return x = b.invert(x, y), x && a.invert(x[0], x[1]); + }; + + return compose; +} + +function rotationIdentity(lambda, phi) { + if (abs$1(lambda) > pi$1) lambda -= Math.round(lambda / tau$1) * tau$1; + return [lambda, phi]; +} + +rotationIdentity.invert = rotationIdentity; + +function rotateRadians(deltaLambda, deltaPhi, deltaGamma) { + return (deltaLambda %= tau$1) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma)) + : rotationLambda(deltaLambda)) + : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma) + : rotationIdentity); +} + +function forwardRotationLambda(deltaLambda) { + return function(lambda, phi) { + lambda += deltaLambda; + if (abs$1(lambda) > pi$1) lambda -= Math.round(lambda / tau$1) * tau$1; + return [lambda, phi]; + }; +} + +function rotationLambda(deltaLambda) { + var rotation = forwardRotationLambda(deltaLambda); + rotation.invert = forwardRotationLambda(-deltaLambda); + return rotation; +} + +function rotationPhiGamma(deltaPhi, deltaGamma) { + var cosDeltaPhi = cos$1(deltaPhi), + sinDeltaPhi = sin$1(deltaPhi), + cosDeltaGamma = cos$1(deltaGamma), + sinDeltaGamma = sin$1(deltaGamma); + + function rotation(lambda, phi) { + var cosPhi = cos$1(phi), + x = cos$1(lambda) * cosPhi, + y = sin$1(lambda) * cosPhi, + z = sin$1(phi), + k = z * cosDeltaPhi + x * sinDeltaPhi; + return [ + atan2$1(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi), + asin$1(k * cosDeltaGamma + y * sinDeltaGamma) + ]; + } + + rotation.invert = function(lambda, phi) { + var cosPhi = cos$1(phi), + x = cos$1(lambda) * cosPhi, + y = sin$1(lambda) * cosPhi, + z = sin$1(phi), + k = z * cosDeltaGamma - y * sinDeltaGamma; + return [ + atan2$1(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi), + asin$1(k * cosDeltaPhi - x * sinDeltaPhi) + ]; + }; + + return rotation; +} + +function rotation(rotate) { + rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0); + + function forward(coordinates) { + coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians); + return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates; + } + + forward.invert = function(coordinates) { + coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians); + return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates; + }; + + return forward; +} + +// Generates a circle centered at [0°, 0°], with a given radius and precision. +function circleStream(stream, radius, delta, direction, t0, t1) { + if (!delta) return; + var cosRadius = cos$1(radius), + sinRadius = sin$1(radius), + step = direction * delta; + if (t0 == null) { + t0 = radius + direction * tau$1; + t1 = radius - step / 2; + } else { + t0 = circleRadius(cosRadius, t0); + t1 = circleRadius(cosRadius, t1); + if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau$1; + } + for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) { + point = spherical([cosRadius, -sinRadius * cos$1(t), -sinRadius * sin$1(t)]); + stream.point(point[0], point[1]); + } +} + +// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0]. +function circleRadius(cosRadius, point) { + point = cartesian(point), point[0] -= cosRadius; + cartesianNormalizeInPlace(point); + var radius = acos$1(-point[1]); + return ((-point[2] < 0 ? -radius : radius) + tau$1 - epsilon$1) % tau$1; +} + +function circle$1() { + var center = constant$3([0, 0]), + radius = constant$3(90), + precision = constant$3(6), + ring, + rotate, + stream = {point: point}; + + function point(x, y) { + ring.push(x = rotate(x, y)); + x[0] *= degrees, x[1] *= degrees; + } + + function circle() { + var c = center.apply(this, arguments), + r = radius.apply(this, arguments) * radians, + p = precision.apply(this, arguments) * radians; + ring = []; + rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert; + circleStream(stream, r, p, 1); + c = {type: "Polygon", coordinates: [ring]}; + ring = rotate = null; + return c; + } + + circle.center = function(_) { + return arguments.length ? (center = typeof _ === "function" ? _ : constant$3([+_[0], +_[1]]), circle) : center; + }; + + circle.radius = function(_) { + return arguments.length ? (radius = typeof _ === "function" ? _ : constant$3(+_), circle) : radius; + }; + + circle.precision = function(_) { + return arguments.length ? (precision = typeof _ === "function" ? _ : constant$3(+_), circle) : precision; + }; + + return circle; +} + +function clipBuffer() { + var lines = [], + line; + return { + point: function(x, y, m) { + line.push([x, y, m]); + }, + lineStart: function() { + lines.push(line = []); + }, + lineEnd: noop$1, + rejoin: function() { + if (lines.length > 1) lines.push(lines.pop().concat(lines.shift())); + }, + result: function() { + var result = lines; + lines = []; + line = null; + return result; + } + }; +} + +function pointEqual(a, b) { + return abs$1(a[0] - b[0]) < epsilon$1 && abs$1(a[1] - b[1]) < epsilon$1; +} + +function Intersection(point, points, other, entry) { + this.x = point; + this.z = points; + this.o = other; // another intersection + this.e = entry; // is an entry? + this.v = false; // visited + this.n = this.p = null; // next & previous +} + +// A generalized polygon clipping algorithm: given a polygon that has been cut +// into its visible line segments, and rejoins the segments by interpolating +// along the clip edge. +function clipRejoin(segments, compareIntersection, startInside, interpolate, stream) { + var subject = [], + clip = [], + i, + n; + + segments.forEach(function(segment) { + if ((n = segment.length - 1) <= 0) return; + var n, p0 = segment[0], p1 = segment[n], x; + + if (pointEqual(p0, p1)) { + if (!p0[2] && !p1[2]) { + stream.lineStart(); + for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]); + stream.lineEnd(); + return; + } + // handle degenerate cases by moving the point + p1[0] += 2 * epsilon$1; + } + + subject.push(x = new Intersection(p0, segment, null, true)); + clip.push(x.o = new Intersection(p0, null, x, false)); + subject.push(x = new Intersection(p1, segment, null, false)); + clip.push(x.o = new Intersection(p1, null, x, true)); + }); + + if (!subject.length) return; + + clip.sort(compareIntersection); + link$1(subject); + link$1(clip); + + for (i = 0, n = clip.length; i < n; ++i) { + clip[i].e = startInside = !startInside; + } + + var start = subject[0], + points, + point; + + while (1) { + // Find first unvisited intersection. + var current = start, + isSubject = true; + while (current.v) if ((current = current.n) === start) return; + points = current.z; + stream.lineStart(); + do { + current.v = current.o.v = true; + if (current.e) { + if (isSubject) { + for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]); + } else { + interpolate(current.x, current.n.x, 1, stream); + } + current = current.n; + } else { + if (isSubject) { + points = current.p.z; + for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]); + } else { + interpolate(current.x, current.p.x, -1, stream); + } + current = current.p; + } + current = current.o; + points = current.z; + isSubject = !isSubject; + } while (!current.v); + stream.lineEnd(); + } +} + +function link$1(array) { + if (!(n = array.length)) return; + var n, + i = 0, + a = array[0], + b; + while (++i < n) { + a.n = b = array[i]; + b.p = a; + a = b; + } + a.n = b = array[0]; + b.p = a; +} + +function longitude(point) { + return abs$1(point[0]) <= pi$1 ? point[0] : sign$1(point[0]) * ((abs$1(point[0]) + pi$1) % tau$1 - pi$1); +} + +function polygonContains(polygon, point) { + var lambda = longitude(point), + phi = point[1], + sinPhi = sin$1(phi), + normal = [sin$1(lambda), -cos$1(lambda), 0], + angle = 0, + winding = 0; + + var sum = new Adder(); + + if (sinPhi === 1) phi = halfPi$1 + epsilon$1; + else if (sinPhi === -1) phi = -halfPi$1 - epsilon$1; + + for (var i = 0, n = polygon.length; i < n; ++i) { + if (!(m = (ring = polygon[i]).length)) continue; + var ring, + m, + point0 = ring[m - 1], + lambda0 = longitude(point0), + phi0 = point0[1] / 2 + quarterPi, + sinPhi0 = sin$1(phi0), + cosPhi0 = cos$1(phi0); + + for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) { + var point1 = ring[j], + lambda1 = longitude(point1), + phi1 = point1[1] / 2 + quarterPi, + sinPhi1 = sin$1(phi1), + cosPhi1 = cos$1(phi1), + delta = lambda1 - lambda0, + sign = delta >= 0 ? 1 : -1, + absDelta = sign * delta, + antimeridian = absDelta > pi$1, + k = sinPhi0 * sinPhi1; + + sum.add(atan2$1(k * sign * sin$1(absDelta), cosPhi0 * cosPhi1 + k * cos$1(absDelta))); + angle += antimeridian ? delta + sign * tau$1 : delta; + + // Are the longitudes either side of the point’s meridian (lambda), + // and are the latitudes smaller than the parallel (phi)? + if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) { + var arc = cartesianCross(cartesian(point0), cartesian(point1)); + cartesianNormalizeInPlace(arc); + var intersection = cartesianCross(normal, arc); + cartesianNormalizeInPlace(intersection); + var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin$1(intersection[2]); + if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) { + winding += antimeridian ^ delta >= 0 ? 1 : -1; + } + } + } + } + + // First, determine whether the South pole is inside or outside: + // + // It is inside if: + // * the polygon winds around it in a clockwise direction. + // * the polygon does not (cumulatively) wind around it, but has a negative + // (counter-clockwise) area. + // + // Second, count the (signed) number of times a segment crosses a lambda + // from the point to the South pole. If it is zero, then the point is the + // same side as the South pole. + + return (angle < -epsilon$1 || angle < epsilon$1 && sum < -epsilon2) ^ (winding & 1); +} + +function clip(pointVisible, clipLine, interpolate, start) { + return function(sink) { + var line = clipLine(sink), + ringBuffer = clipBuffer(), + ringSink = clipLine(ringBuffer), + polygonStarted = false, + polygon, + segments, + ring; + + var clip = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + clip.point = pointRing; + clip.lineStart = ringStart; + clip.lineEnd = ringEnd; + segments = []; + polygon = []; + }, + polygonEnd: function() { + clip.point = point; + clip.lineStart = lineStart; + clip.lineEnd = lineEnd; + segments = merge(segments); + var startInside = polygonContains(polygon, start); + if (segments.length) { + if (!polygonStarted) sink.polygonStart(), polygonStarted = true; + clipRejoin(segments, compareIntersection, startInside, interpolate, sink); + } else if (startInside) { + if (!polygonStarted) sink.polygonStart(), polygonStarted = true; + sink.lineStart(); + interpolate(null, null, 1, sink); + sink.lineEnd(); + } + if (polygonStarted) sink.polygonEnd(), polygonStarted = false; + segments = polygon = null; + }, + sphere: function() { + sink.polygonStart(); + sink.lineStart(); + interpolate(null, null, 1, sink); + sink.lineEnd(); + sink.polygonEnd(); + } + }; + + function point(lambda, phi) { + if (pointVisible(lambda, phi)) sink.point(lambda, phi); + } + + function pointLine(lambda, phi) { + line.point(lambda, phi); + } + + function lineStart() { + clip.point = pointLine; + line.lineStart(); + } + + function lineEnd() { + clip.point = point; + line.lineEnd(); + } + + function pointRing(lambda, phi) { + ring.push([lambda, phi]); + ringSink.point(lambda, phi); + } + + function ringStart() { + ringSink.lineStart(); + ring = []; + } + + function ringEnd() { + pointRing(ring[0][0], ring[0][1]); + ringSink.lineEnd(); + + var clean = ringSink.clean(), + ringSegments = ringBuffer.result(), + i, n = ringSegments.length, m, + segment, + point; + + ring.pop(); + polygon.push(ring); + ring = null; + + if (!n) return; + + // No intersections. + if (clean & 1) { + segment = ringSegments[0]; + if ((m = segment.length - 1) > 0) { + if (!polygonStarted) sink.polygonStart(), polygonStarted = true; + sink.lineStart(); + for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]); + sink.lineEnd(); + } + return; + } + + // Rejoin connected segments. + // TODO reuse ringBuffer.rejoin()? + if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift())); + + segments.push(ringSegments.filter(validSegment)); + } + + return clip; + }; +} + +function validSegment(segment) { + return segment.length > 1; +} + +// Intersections are sorted along the clip edge. For both antimeridian cutting +// and circle clipping, the same comparison is used. +function compareIntersection(a, b) { + return ((a = a.x)[0] < 0 ? a[1] - halfPi$1 - epsilon$1 : halfPi$1 - a[1]) + - ((b = b.x)[0] < 0 ? b[1] - halfPi$1 - epsilon$1 : halfPi$1 - b[1]); +} + +var clipAntimeridian = clip( + function() { return true; }, + clipAntimeridianLine, + clipAntimeridianInterpolate, + [-pi$1, -halfPi$1] +); + +// Takes a line and cuts into visible segments. Return values: 0 - there were +// intersections or the line was empty; 1 - no intersections; 2 - there were +// intersections, and the first and last segments should be rejoined. +function clipAntimeridianLine(stream) { + var lambda0 = NaN, + phi0 = NaN, + sign0 = NaN, + clean; // no intersections + + return { + lineStart: function() { + stream.lineStart(); + clean = 1; + }, + point: function(lambda1, phi1) { + var sign1 = lambda1 > 0 ? pi$1 : -pi$1, + delta = abs$1(lambda1 - lambda0); + if (abs$1(delta - pi$1) < epsilon$1) { // line crosses a pole + stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi$1 : -halfPi$1); + stream.point(sign0, phi0); + stream.lineEnd(); + stream.lineStart(); + stream.point(sign1, phi0); + stream.point(lambda1, phi0); + clean = 0; + } else if (sign0 !== sign1 && delta >= pi$1) { // line crosses antimeridian + if (abs$1(lambda0 - sign0) < epsilon$1) lambda0 -= sign0 * epsilon$1; // handle degeneracies + if (abs$1(lambda1 - sign1) < epsilon$1) lambda1 -= sign1 * epsilon$1; + phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1); + stream.point(sign0, phi0); + stream.lineEnd(); + stream.lineStart(); + stream.point(sign1, phi0); + clean = 0; + } + stream.point(lambda0 = lambda1, phi0 = phi1); + sign0 = sign1; + }, + lineEnd: function() { + stream.lineEnd(); + lambda0 = phi0 = NaN; + }, + clean: function() { + return 2 - clean; // if intersections, rejoin first and last segments + } + }; +} + +function clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) { + var cosPhi0, + cosPhi1, + sinLambda0Lambda1 = sin$1(lambda0 - lambda1); + return abs$1(sinLambda0Lambda1) > epsilon$1 + ? atan((sin$1(phi0) * (cosPhi1 = cos$1(phi1)) * sin$1(lambda1) + - sin$1(phi1) * (cosPhi0 = cos$1(phi0)) * sin$1(lambda0)) + / (cosPhi0 * cosPhi1 * sinLambda0Lambda1)) + : (phi0 + phi1) / 2; +} + +function clipAntimeridianInterpolate(from, to, direction, stream) { + var phi; + if (from == null) { + phi = direction * halfPi$1; + stream.point(-pi$1, phi); + stream.point(0, phi); + stream.point(pi$1, phi); + stream.point(pi$1, 0); + stream.point(pi$1, -phi); + stream.point(0, -phi); + stream.point(-pi$1, -phi); + stream.point(-pi$1, 0); + stream.point(-pi$1, phi); + } else if (abs$1(from[0] - to[0]) > epsilon$1) { + var lambda = from[0] < to[0] ? pi$1 : -pi$1; + phi = direction * lambda / 2; + stream.point(-lambda, phi); + stream.point(0, phi); + stream.point(lambda, phi); + } else { + stream.point(to[0], to[1]); + } +} + +function clipCircle(radius) { + var cr = cos$1(radius), + delta = 6 * radians, + smallRadius = cr > 0, + notHemisphere = abs$1(cr) > epsilon$1; // TODO optimise for this common case + + function interpolate(from, to, direction, stream) { + circleStream(stream, radius, delta, direction, from, to); + } + + function visible(lambda, phi) { + return cos$1(lambda) * cos$1(phi) > cr; + } + + // Takes a line and cuts into visible segments. Return values used for polygon + // clipping: 0 - there were intersections or the line was empty; 1 - no + // intersections 2 - there were intersections, and the first and last segments + // should be rejoined. + function clipLine(stream) { + var point0, // previous point + c0, // code for previous point + v0, // visibility of previous point + v00, // visibility of first point + clean; // no intersections + return { + lineStart: function() { + v00 = v0 = false; + clean = 1; + }, + point: function(lambda, phi) { + var point1 = [lambda, phi], + point2, + v = visible(lambda, phi), + c = smallRadius + ? v ? 0 : code(lambda, phi) + : v ? code(lambda + (lambda < 0 ? pi$1 : -pi$1), phi) : 0; + if (!point0 && (v00 = v0 = v)) stream.lineStart(); + if (v !== v0) { + point2 = intersect(point0, point1); + if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2)) + point1[2] = 1; + } + if (v !== v0) { + clean = 0; + if (v) { + // outside going in + stream.lineStart(); + point2 = intersect(point1, point0); + stream.point(point2[0], point2[1]); + } else { + // inside going out + point2 = intersect(point0, point1); + stream.point(point2[0], point2[1], 2); + stream.lineEnd(); + } + point0 = point2; + } else if (notHemisphere && point0 && smallRadius ^ v) { + var t; + // If the codes for two points are different, or are both zero, + // and there this segment intersects with the small circle. + if (!(c & c0) && (t = intersect(point1, point0, true))) { + clean = 0; + if (smallRadius) { + stream.lineStart(); + stream.point(t[0][0], t[0][1]); + stream.point(t[1][0], t[1][1]); + stream.lineEnd(); + } else { + stream.point(t[1][0], t[1][1]); + stream.lineEnd(); + stream.lineStart(); + stream.point(t[0][0], t[0][1], 3); + } + } + } + if (v && (!point0 || !pointEqual(point0, point1))) { + stream.point(point1[0], point1[1]); + } + point0 = point1, v0 = v, c0 = c; + }, + lineEnd: function() { + if (v0) stream.lineEnd(); + point0 = null; + }, + // Rejoin first and last segments if there were intersections and the first + // and last points were visible. + clean: function() { + return clean | ((v00 && v0) << 1); + } + }; + } + + // Intersects the great circle between a and b with the clip circle. + function intersect(a, b, two) { + var pa = cartesian(a), + pb = cartesian(b); + + // We have two planes, n1.p = d1 and n2.p = d2. + // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2). + var n1 = [1, 0, 0], // normal + n2 = cartesianCross(pa, pb), + n2n2 = cartesianDot(n2, n2), + n1n2 = n2[0], // cartesianDot(n1, n2), + determinant = n2n2 - n1n2 * n1n2; + + // Two polar points. + if (!determinant) return !two && a; + + var c1 = cr * n2n2 / determinant, + c2 = -cr * n1n2 / determinant, + n1xn2 = cartesianCross(n1, n2), + A = cartesianScale(n1, c1), + B = cartesianScale(n2, c2); + cartesianAddInPlace(A, B); + + // Solve |p(t)|^2 = 1. + var u = n1xn2, + w = cartesianDot(A, u), + uu = cartesianDot(u, u), + t2 = w * w - uu * (cartesianDot(A, A) - 1); + + if (t2 < 0) return; + + var t = sqrt$2(t2), + q = cartesianScale(u, (-w - t) / uu); + cartesianAddInPlace(q, A); + q = spherical(q); + + if (!two) return q; + + // Two intersection points. + var lambda0 = a[0], + lambda1 = b[0], + phi0 = a[1], + phi1 = b[1], + z; + + if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z; + + var delta = lambda1 - lambda0, + polar = abs$1(delta - pi$1) < epsilon$1, + meridian = polar || delta < epsilon$1; + + if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z; + + // Check that the first point is between a and b. + if (meridian + ? polar + ? phi0 + phi1 > 0 ^ q[1] < (abs$1(q[0] - lambda0) < epsilon$1 ? phi0 : phi1) + : phi0 <= q[1] && q[1] <= phi1 + : delta > pi$1 ^ (lambda0 <= q[0] && q[0] <= lambda1)) { + var q1 = cartesianScale(u, (-w + t) / uu); + cartesianAddInPlace(q1, A); + return [q, spherical(q1)]; + } + } + + // Generates a 4-bit vector representing the location of a point relative to + // the small circle's bounding box. + function code(lambda, phi) { + var r = smallRadius ? radius : pi$1 - radius, + code = 0; + if (lambda < -r) code |= 1; // left + else if (lambda > r) code |= 2; // right + if (phi < -r) code |= 4; // below + else if (phi > r) code |= 8; // above + return code; + } + + return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi$1, radius - pi$1]); +} + +function clipLine(a, b, x0, y0, x1, y1) { + var ax = a[0], + ay = a[1], + bx = b[0], + by = b[1], + t0 = 0, + t1 = 1, + dx = bx - ax, + dy = by - ay, + r; + + r = x0 - ax; + if (!dx && r > 0) return; + r /= dx; + if (dx < 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } else if (dx > 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } + + r = x1 - ax; + if (!dx && r < 0) return; + r /= dx; + if (dx < 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } else if (dx > 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } + + r = y0 - ay; + if (!dy && r > 0) return; + r /= dy; + if (dy < 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } else if (dy > 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } + + r = y1 - ay; + if (!dy && r < 0) return; + r /= dy; + if (dy < 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } else if (dy > 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } + + if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy; + if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy; + return true; +} + +var clipMax = 1e9, clipMin = -clipMax; + +// TODO Use d3-polygon’s polygonContains here for the ring check? +// TODO Eliminate duplicate buffering in clipBuffer and polygon.push? + +function clipRectangle(x0, y0, x1, y1) { + + function visible(x, y) { + return x0 <= x && x <= x1 && y0 <= y && y <= y1; + } + + function interpolate(from, to, direction, stream) { + var a = 0, a1 = 0; + if (from == null + || (a = corner(from, direction)) !== (a1 = corner(to, direction)) + || comparePoint(from, to) < 0 ^ direction > 0) { + do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0); + while ((a = (a + direction + 4) % 4) !== a1); + } else { + stream.point(to[0], to[1]); + } + } + + function corner(p, direction) { + return abs$1(p[0] - x0) < epsilon$1 ? direction > 0 ? 0 : 3 + : abs$1(p[0] - x1) < epsilon$1 ? direction > 0 ? 2 : 1 + : abs$1(p[1] - y0) < epsilon$1 ? direction > 0 ? 1 : 0 + : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon + } + + function compareIntersection(a, b) { + return comparePoint(a.x, b.x); + } + + function comparePoint(a, b) { + var ca = corner(a, 1), + cb = corner(b, 1); + return ca !== cb ? ca - cb + : ca === 0 ? b[1] - a[1] + : ca === 1 ? a[0] - b[0] + : ca === 2 ? a[1] - b[1] + : b[0] - a[0]; + } + + return function(stream) { + var activeStream = stream, + bufferStream = clipBuffer(), + segments, + polygon, + ring, + x__, y__, v__, // first point + x_, y_, v_, // previous point + first, + clean; + + var clipStream = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: polygonStart, + polygonEnd: polygonEnd + }; + + function point(x, y) { + if (visible(x, y)) activeStream.point(x, y); + } + + function polygonInside() { + var winding = 0; + + for (var i = 0, n = polygon.length; i < n; ++i) { + for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) { + a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1]; + if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; } + else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; } + } + } + + return winding; + } + + // Buffer geometry within a polygon and then clip it en masse. + function polygonStart() { + activeStream = bufferStream, segments = [], polygon = [], clean = true; + } + + function polygonEnd() { + var startInside = polygonInside(), + cleanInside = clean && startInside, + visible = (segments = merge(segments)).length; + if (cleanInside || visible) { + stream.polygonStart(); + if (cleanInside) { + stream.lineStart(); + interpolate(null, null, 1, stream); + stream.lineEnd(); + } + if (visible) { + clipRejoin(segments, compareIntersection, startInside, interpolate, stream); + } + stream.polygonEnd(); + } + activeStream = stream, segments = polygon = ring = null; + } + + function lineStart() { + clipStream.point = linePoint; + if (polygon) polygon.push(ring = []); + first = true; + v_ = false; + x_ = y_ = NaN; + } + + // TODO rather than special-case polygons, simply handle them separately. + // Ideally, coincident intersection points should be jittered to avoid + // clipping issues. + function lineEnd() { + if (segments) { + linePoint(x__, y__); + if (v__ && v_) bufferStream.rejoin(); + segments.push(bufferStream.result()); + } + clipStream.point = point; + if (v_) activeStream.lineEnd(); + } + + function linePoint(x, y) { + var v = visible(x, y); + if (polygon) ring.push([x, y]); + if (first) { + x__ = x, y__ = y, v__ = v; + first = false; + if (v) { + activeStream.lineStart(); + activeStream.point(x, y); + } + } else { + if (v && v_) activeStream.point(x, y); + else { + var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))], + b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))]; + if (clipLine(a, b, x0, y0, x1, y1)) { + if (!v_) { + activeStream.lineStart(); + activeStream.point(a[0], a[1]); + } + activeStream.point(b[0], b[1]); + if (!v) activeStream.lineEnd(); + clean = false; + } else if (v) { + activeStream.lineStart(); + activeStream.point(x, y); + clean = false; + } + } + } + x_ = x, y_ = y, v_ = v; + } + + return clipStream; + }; +} + +function extent() { + var x0 = 0, + y0 = 0, + x1 = 960, + y1 = 500, + cache, + cacheStream, + clip; + + return clip = { + stream: function(stream) { + return cache && cacheStream === stream ? cache : cache = clipRectangle(x0, y0, x1, y1)(cacheStream = stream); + }, + extent: function(_) { + return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]]; + } + }; +} + +var lengthSum$1, + lambda0, + sinPhi0, + cosPhi0; + +var lengthStream$1 = { + sphere: noop$1, + point: noop$1, + lineStart: lengthLineStart, + lineEnd: noop$1, + polygonStart: noop$1, + polygonEnd: noop$1 +}; + +function lengthLineStart() { + lengthStream$1.point = lengthPointFirst$1; + lengthStream$1.lineEnd = lengthLineEnd; +} + +function lengthLineEnd() { + lengthStream$1.point = lengthStream$1.lineEnd = noop$1; +} + +function lengthPointFirst$1(lambda, phi) { + lambda *= radians, phi *= radians; + lambda0 = lambda, sinPhi0 = sin$1(phi), cosPhi0 = cos$1(phi); + lengthStream$1.point = lengthPoint$1; +} + +function lengthPoint$1(lambda, phi) { + lambda *= radians, phi *= radians; + var sinPhi = sin$1(phi), + cosPhi = cos$1(phi), + delta = abs$1(lambda - lambda0), + cosDelta = cos$1(delta), + sinDelta = sin$1(delta), + x = cosPhi * sinDelta, + y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta, + z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta; + lengthSum$1.add(atan2$1(sqrt$2(x * x + y * y), z)); + lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi; +} + +function length$1(object) { + lengthSum$1 = new Adder(); + geoStream(object, lengthStream$1); + return +lengthSum$1; +} + +var coordinates = [null, null], + object = {type: "LineString", coordinates: coordinates}; + +function distance(a, b) { + coordinates[0] = a; + coordinates[1] = b; + return length$1(object); +} + +var containsObjectType = { + Feature: function(object, point) { + return containsGeometry(object.geometry, point); + }, + FeatureCollection: function(object, point) { + var features = object.features, i = -1, n = features.length; + while (++i < n) if (containsGeometry(features[i].geometry, point)) return true; + return false; + } +}; + +var containsGeometryType = { + Sphere: function() { + return true; + }, + Point: function(object, point) { + return containsPoint(object.coordinates, point); + }, + MultiPoint: function(object, point) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) if (containsPoint(coordinates[i], point)) return true; + return false; + }, + LineString: function(object, point) { + return containsLine(object.coordinates, point); + }, + MultiLineString: function(object, point) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) if (containsLine(coordinates[i], point)) return true; + return false; + }, + Polygon: function(object, point) { + return containsPolygon(object.coordinates, point); + }, + MultiPolygon: function(object, point) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) if (containsPolygon(coordinates[i], point)) return true; + return false; + }, + GeometryCollection: function(object, point) { + var geometries = object.geometries, i = -1, n = geometries.length; + while (++i < n) if (containsGeometry(geometries[i], point)) return true; + return false; + } +}; + +function containsGeometry(geometry, point) { + return geometry && containsGeometryType.hasOwnProperty(geometry.type) + ? containsGeometryType[geometry.type](geometry, point) + : false; +} + +function containsPoint(coordinates, point) { + return distance(coordinates, point) === 0; +} + +function containsLine(coordinates, point) { + var ao, bo, ab; + for (var i = 0, n = coordinates.length; i < n; i++) { + bo = distance(coordinates[i], point); + if (bo === 0) return true; + if (i > 0) { + ab = distance(coordinates[i], coordinates[i - 1]); + if ( + ab > 0 && + ao <= ab && + bo <= ab && + (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < epsilon2 * ab + ) + return true; + } + ao = bo; + } + return false; +} + +function containsPolygon(coordinates, point) { + return !!polygonContains(coordinates.map(ringRadians), pointRadians(point)); +} + +function ringRadians(ring) { + return ring = ring.map(pointRadians), ring.pop(), ring; +} + +function pointRadians(point) { + return [point[0] * radians, point[1] * radians]; +} + +function contains$1(object, point) { + return (object && containsObjectType.hasOwnProperty(object.type) + ? containsObjectType[object.type] + : containsGeometry)(object, point); +} + +function graticuleX(y0, y1, dy) { + var y = range$2(y0, y1 - epsilon$1, dy).concat(y1); + return function(x) { return y.map(function(y) { return [x, y]; }); }; +} + +function graticuleY(x0, x1, dx) { + var x = range$2(x0, x1 - epsilon$1, dx).concat(x1); + return function(y) { return x.map(function(x) { return [x, y]; }); }; +} + +function graticule() { + var x1, x0, X1, X0, + y1, y0, Y1, Y0, + dx = 10, dy = dx, DX = 90, DY = 360, + x, y, X, Y, + precision = 2.5; + + function graticule() { + return {type: "MultiLineString", coordinates: lines()}; + } + + function lines() { + return range$2(ceil(X0 / DX) * DX, X1, DX).map(X) + .concat(range$2(ceil(Y0 / DY) * DY, Y1, DY).map(Y)) + .concat(range$2(ceil(x0 / dx) * dx, x1, dx).filter(function(x) { return abs$1(x % DX) > epsilon$1; }).map(x)) + .concat(range$2(ceil(y0 / dy) * dy, y1, dy).filter(function(y) { return abs$1(y % DY) > epsilon$1; }).map(y)); + } + + graticule.lines = function() { + return lines().map(function(coordinates) { return {type: "LineString", coordinates: coordinates}; }); + }; + + graticule.outline = function() { + return { + type: "Polygon", + coordinates: [ + X(X0).concat( + Y(Y1).slice(1), + X(X1).reverse().slice(1), + Y(Y0).reverse().slice(1)) + ] + }; + }; + + graticule.extent = function(_) { + if (!arguments.length) return graticule.extentMinor(); + return graticule.extentMajor(_).extentMinor(_); + }; + + graticule.extentMajor = function(_) { + if (!arguments.length) return [[X0, Y0], [X1, Y1]]; + X0 = +_[0][0], X1 = +_[1][0]; + Y0 = +_[0][1], Y1 = +_[1][1]; + if (X0 > X1) _ = X0, X0 = X1, X1 = _; + if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _; + return graticule.precision(precision); + }; + + graticule.extentMinor = function(_) { + if (!arguments.length) return [[x0, y0], [x1, y1]]; + x0 = +_[0][0], x1 = +_[1][0]; + y0 = +_[0][1], y1 = +_[1][1]; + if (x0 > x1) _ = x0, x0 = x1, x1 = _; + if (y0 > y1) _ = y0, y0 = y1, y1 = _; + return graticule.precision(precision); + }; + + graticule.step = function(_) { + if (!arguments.length) return graticule.stepMinor(); + return graticule.stepMajor(_).stepMinor(_); + }; + + graticule.stepMajor = function(_) { + if (!arguments.length) return [DX, DY]; + DX = +_[0], DY = +_[1]; + return graticule; + }; + + graticule.stepMinor = function(_) { + if (!arguments.length) return [dx, dy]; + dx = +_[0], dy = +_[1]; + return graticule; + }; + + graticule.precision = function(_) { + if (!arguments.length) return precision; + precision = +_; + x = graticuleX(y0, y1, 90); + y = graticuleY(x0, x1, precision); + X = graticuleX(Y0, Y1, 90); + Y = graticuleY(X0, X1, precision); + return graticule; + }; + + return graticule + .extentMajor([[-180, -90 + epsilon$1], [180, 90 - epsilon$1]]) + .extentMinor([[-180, -80 - epsilon$1], [180, 80 + epsilon$1]]); +} + +function graticule10() { + return graticule()(); +} + +function interpolate(a, b) { + var x0 = a[0] * radians, + y0 = a[1] * radians, + x1 = b[0] * radians, + y1 = b[1] * radians, + cy0 = cos$1(y0), + sy0 = sin$1(y0), + cy1 = cos$1(y1), + sy1 = sin$1(y1), + kx0 = cy0 * cos$1(x0), + ky0 = cy0 * sin$1(x0), + kx1 = cy1 * cos$1(x1), + ky1 = cy1 * sin$1(x1), + d = 2 * asin$1(sqrt$2(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))), + k = sin$1(d); + + var interpolate = d ? function(t) { + var B = sin$1(t *= d) / k, + A = sin$1(d - t) / k, + x = A * kx0 + B * kx1, + y = A * ky0 + B * ky1, + z = A * sy0 + B * sy1; + return [ + atan2$1(y, x) * degrees, + atan2$1(z, sqrt$2(x * x + y * y)) * degrees + ]; + } : function() { + return [x0 * degrees, y0 * degrees]; + }; + + interpolate.distance = d; + + return interpolate; +} + +var identity$5 = x => x; + +var areaSum = new Adder(), + areaRingSum = new Adder(), + x00$2, + y00$2, + x0$3, + y0$3; + +var areaStream = { + point: noop$1, + lineStart: noop$1, + lineEnd: noop$1, + polygonStart: function() { + areaStream.lineStart = areaRingStart; + areaStream.lineEnd = areaRingEnd; + }, + polygonEnd: function() { + areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop$1; + areaSum.add(abs$1(areaRingSum)); + areaRingSum = new Adder(); + }, + result: function() { + var area = areaSum / 2; + areaSum = new Adder(); + return area; + } +}; + +function areaRingStart() { + areaStream.point = areaPointFirst; +} + +function areaPointFirst(x, y) { + areaStream.point = areaPoint; + x00$2 = x0$3 = x, y00$2 = y0$3 = y; +} + +function areaPoint(x, y) { + areaRingSum.add(y0$3 * x - x0$3 * y); + x0$3 = x, y0$3 = y; +} + +function areaRingEnd() { + areaPoint(x00$2, y00$2); +} + +var pathArea = areaStream; + +var x0$2 = Infinity, + y0$2 = x0$2, + x1 = -x0$2, + y1 = x1; + +var boundsStream = { + point: boundsPoint, + lineStart: noop$1, + lineEnd: noop$1, + polygonStart: noop$1, + polygonEnd: noop$1, + result: function() { + var bounds = [[x0$2, y0$2], [x1, y1]]; + x1 = y1 = -(y0$2 = x0$2 = Infinity); + return bounds; + } +}; + +function boundsPoint(x, y) { + if (x < x0$2) x0$2 = x; + if (x > x1) x1 = x; + if (y < y0$2) y0$2 = y; + if (y > y1) y1 = y; +} + +var boundsStream$1 = boundsStream; + +// TODO Enforce positive area for exterior, negative area for interior? + +var X0 = 0, + Y0 = 0, + Z0 = 0, + X1 = 0, + Y1 = 0, + Z1 = 0, + X2 = 0, + Y2 = 0, + Z2 = 0, + x00$1, + y00$1, + x0$1, + y0$1; + +var centroidStream = { + point: centroidPoint, + lineStart: centroidLineStart, + lineEnd: centroidLineEnd, + polygonStart: function() { + centroidStream.lineStart = centroidRingStart; + centroidStream.lineEnd = centroidRingEnd; + }, + polygonEnd: function() { + centroidStream.point = centroidPoint; + centroidStream.lineStart = centroidLineStart; + centroidStream.lineEnd = centroidLineEnd; + }, + result: function() { + var centroid = Z2 ? [X2 / Z2, Y2 / Z2] + : Z1 ? [X1 / Z1, Y1 / Z1] + : Z0 ? [X0 / Z0, Y0 / Z0] + : [NaN, NaN]; + X0 = Y0 = Z0 = + X1 = Y1 = Z1 = + X2 = Y2 = Z2 = 0; + return centroid; + } +}; + +function centroidPoint(x, y) { + X0 += x; + Y0 += y; + ++Z0; +} + +function centroidLineStart() { + centroidStream.point = centroidPointFirstLine; +} + +function centroidPointFirstLine(x, y) { + centroidStream.point = centroidPointLine; + centroidPoint(x0$1 = x, y0$1 = y); +} + +function centroidPointLine(x, y) { + var dx = x - x0$1, dy = y - y0$1, z = sqrt$2(dx * dx + dy * dy); + X1 += z * (x0$1 + x) / 2; + Y1 += z * (y0$1 + y) / 2; + Z1 += z; + centroidPoint(x0$1 = x, y0$1 = y); +} + +function centroidLineEnd() { + centroidStream.point = centroidPoint; +} + +function centroidRingStart() { + centroidStream.point = centroidPointFirstRing; +} + +function centroidRingEnd() { + centroidPointRing(x00$1, y00$1); +} + +function centroidPointFirstRing(x, y) { + centroidStream.point = centroidPointRing; + centroidPoint(x00$1 = x0$1 = x, y00$1 = y0$1 = y); +} + +function centroidPointRing(x, y) { + var dx = x - x0$1, + dy = y - y0$1, + z = sqrt$2(dx * dx + dy * dy); + + X1 += z * (x0$1 + x) / 2; + Y1 += z * (y0$1 + y) / 2; + Z1 += z; + + z = y0$1 * x - x0$1 * y; + X2 += z * (x0$1 + x); + Y2 += z * (y0$1 + y); + Z2 += z * 3; + centroidPoint(x0$1 = x, y0$1 = y); +} + +var pathCentroid = centroidStream; + +function PathContext(context) { + this._context = context; +} + +PathContext.prototype = { + _radius: 4.5, + pointRadius: function(_) { + return this._radius = _, this; + }, + polygonStart: function() { + this._line = 0; + }, + polygonEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._point = 0; + }, + lineEnd: function() { + if (this._line === 0) this._context.closePath(); + this._point = NaN; + }, + point: function(x, y) { + switch (this._point) { + case 0: { + this._context.moveTo(x, y); + this._point = 1; + break; + } + case 1: { + this._context.lineTo(x, y); + break; + } + default: { + this._context.moveTo(x + this._radius, y); + this._context.arc(x, y, this._radius, 0, tau$1); + break; + } + } + }, + result: noop$1 +}; + +var lengthSum = new Adder(), + lengthRing, + x00, + y00, + x0, + y0; + +var lengthStream = { + point: noop$1, + lineStart: function() { + lengthStream.point = lengthPointFirst; + }, + lineEnd: function() { + if (lengthRing) lengthPoint(x00, y00); + lengthStream.point = noop$1; + }, + polygonStart: function() { + lengthRing = true; + }, + polygonEnd: function() { + lengthRing = null; + }, + result: function() { + var length = +lengthSum; + lengthSum = new Adder(); + return length; + } +}; + +function lengthPointFirst(x, y) { + lengthStream.point = lengthPoint; + x00 = x0 = x, y00 = y0 = y; +} + +function lengthPoint(x, y) { + x0 -= x, y0 -= y; + lengthSum.add(sqrt$2(x0 * x0 + y0 * y0)); + x0 = x, y0 = y; +} + +var pathMeasure = lengthStream; + +// Simple caching for constant-radius points. +let cacheDigits, cacheAppend, cacheRadius, cacheCircle; + +class PathString { + constructor(digits) { + this._append = digits == null ? append : appendRound(digits); + this._radius = 4.5; + this._ = ""; + } + pointRadius(_) { + this._radius = +_; + return this; + } + polygonStart() { + this._line = 0; + } + polygonEnd() { + this._line = NaN; + } + lineStart() { + this._point = 0; + } + lineEnd() { + if (this._line === 0) this._ += "Z"; + this._point = NaN; + } + point(x, y) { + switch (this._point) { + case 0: { + this._append`M${x},${y}`; + this._point = 1; + break; + } + case 1: { + this._append`L${x},${y}`; + break; + } + default: { + this._append`M${x},${y}`; + if (this._radius !== cacheRadius || this._append !== cacheAppend) { + const r = this._radius; + const s = this._; + this._ = ""; // stash the old string so we can cache the circle path fragment + this._append`m0,${r}a${r},${r} 0 1,1 0,${-2 * r}a${r},${r} 0 1,1 0,${2 * r}z`; + cacheRadius = r; + cacheAppend = this._append; + cacheCircle = this._; + this._ = s; + } + this._ += cacheCircle; + break; + } + } + } + result() { + const result = this._; + this._ = ""; + return result.length ? result : null; + } +} + +function append(strings) { + let i = 1; + this._ += strings[0]; + for (const j = strings.length; i < j; ++i) { + this._ += arguments[i] + strings[i]; + } +} + +function appendRound(digits) { + const d = Math.floor(digits); + if (!(d >= 0)) throw new RangeError(`invalid digits: ${digits}`); + if (d > 15) return append; + if (d !== cacheDigits) { + const k = 10 ** d; + cacheDigits = d; + cacheAppend = function append(strings) { + let i = 1; + this._ += strings[0]; + for (const j = strings.length; i < j; ++i) { + this._ += Math.round(arguments[i] * k) / k + strings[i]; + } + }; + } + return cacheAppend; +} + +function index$2(projection, context) { + let digits = 3, + pointRadius = 4.5, + projectionStream, + contextStream; + + function path(object) { + if (object) { + if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments)); + geoStream(object, projectionStream(contextStream)); + } + return contextStream.result(); + } + + path.area = function(object) { + geoStream(object, projectionStream(pathArea)); + return pathArea.result(); + }; + + path.measure = function(object) { + geoStream(object, projectionStream(pathMeasure)); + return pathMeasure.result(); + }; + + path.bounds = function(object) { + geoStream(object, projectionStream(boundsStream$1)); + return boundsStream$1.result(); + }; + + path.centroid = function(object) { + geoStream(object, projectionStream(pathCentroid)); + return pathCentroid.result(); + }; + + path.projection = function(_) { + if (!arguments.length) return projection; + projectionStream = _ == null ? (projection = null, identity$5) : (projection = _).stream; + return path; + }; + + path.context = function(_) { + if (!arguments.length) return context; + contextStream = _ == null ? (context = null, new PathString(digits)) : new PathContext(context = _); + if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius); + return path; + }; + + path.pointRadius = function(_) { + if (!arguments.length) return pointRadius; + pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_); + return path; + }; + + path.digits = function(_) { + if (!arguments.length) return digits; + if (_ == null) digits = null; + else { + const d = Math.floor(_); + if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`); + digits = d; + } + if (context === null) contextStream = new PathString(digits); + return path; + }; + + return path.projection(projection).digits(digits).context(context); +} + +function transform$1(methods) { + return { + stream: transformer$3(methods) + }; +} + +function transformer$3(methods) { + return function(stream) { + var s = new TransformStream; + for (var key in methods) s[key] = methods[key]; + s.stream = stream; + return s; + }; +} + +function TransformStream() {} + +TransformStream.prototype = { + constructor: TransformStream, + point: function(x, y) { this.stream.point(x, y); }, + sphere: function() { this.stream.sphere(); }, + lineStart: function() { this.stream.lineStart(); }, + lineEnd: function() { this.stream.lineEnd(); }, + polygonStart: function() { this.stream.polygonStart(); }, + polygonEnd: function() { this.stream.polygonEnd(); } +}; + +function fit(projection, fitBounds, object) { + var clip = projection.clipExtent && projection.clipExtent(); + projection.scale(150).translate([0, 0]); + if (clip != null) projection.clipExtent(null); + geoStream(object, projection.stream(boundsStream$1)); + fitBounds(boundsStream$1.result()); + if (clip != null) projection.clipExtent(clip); + return projection; +} + +function fitExtent(projection, extent, object) { + return fit(projection, function(b) { + var w = extent[1][0] - extent[0][0], + h = extent[1][1] - extent[0][1], + k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])), + x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2, + y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2; + projection.scale(150 * k).translate([x, y]); + }, object); +} + +function fitSize(projection, size, object) { + return fitExtent(projection, [[0, 0], size], object); +} + +function fitWidth(projection, width, object) { + return fit(projection, function(b) { + var w = +width, + k = w / (b[1][0] - b[0][0]), + x = (w - k * (b[1][0] + b[0][0])) / 2, + y = -k * b[0][1]; + projection.scale(150 * k).translate([x, y]); + }, object); +} + +function fitHeight(projection, height, object) { + return fit(projection, function(b) { + var h = +height, + k = h / (b[1][1] - b[0][1]), + x = -k * b[0][0], + y = (h - k * (b[1][1] + b[0][1])) / 2; + projection.scale(150 * k).translate([x, y]); + }, object); +} + +var maxDepth = 16, // maximum depth of subdivision + cosMinDistance = cos$1(30 * radians); // cos(minimum angular distance) + +function resample(project, delta2) { + return +delta2 ? resample$1(project, delta2) : resampleNone(project); +} + +function resampleNone(project) { + return transformer$3({ + point: function(x, y) { + x = project(x, y); + this.stream.point(x[0], x[1]); + } + }); +} + +function resample$1(project, delta2) { + + function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) { + var dx = x1 - x0, + dy = y1 - y0, + d2 = dx * dx + dy * dy; + if (d2 > 4 * delta2 && depth--) { + var a = a0 + a1, + b = b0 + b1, + c = c0 + c1, + m = sqrt$2(a * a + b * b + c * c), + phi2 = asin$1(c /= m), + lambda2 = abs$1(abs$1(c) - 1) < epsilon$1 || abs$1(lambda0 - lambda1) < epsilon$1 ? (lambda0 + lambda1) / 2 : atan2$1(b, a), + p = project(lambda2, phi2), + x2 = p[0], + y2 = p[1], + dx2 = x2 - x0, + dy2 = y2 - y0, + dz = dy * dx2 - dx * dy2; + if (dz * dz / d2 > delta2 // perpendicular projected distance + || abs$1((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end + || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance + resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream); + stream.point(x2, y2); + resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream); + } + } + } + return function(stream) { + var lambda00, x00, y00, a00, b00, c00, // first point + lambda0, x0, y0, a0, b0, c0; // previous point + + var resampleStream = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; }, + polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; } + }; + + function point(x, y) { + x = project(x, y); + stream.point(x[0], x[1]); + } + + function lineStart() { + x0 = NaN; + resampleStream.point = linePoint; + stream.lineStart(); + } + + function linePoint(lambda, phi) { + var c = cartesian([lambda, phi]), p = project(lambda, phi); + resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream); + stream.point(x0, y0); + } + + function lineEnd() { + resampleStream.point = point; + stream.lineEnd(); + } + + function ringStart() { + lineStart(); + resampleStream.point = ringPoint; + resampleStream.lineEnd = ringEnd; + } + + function ringPoint(lambda, phi) { + linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0; + resampleStream.point = linePoint; + } + + function ringEnd() { + resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream); + resampleStream.lineEnd = lineEnd; + lineEnd(); + } + + return resampleStream; + }; +} + +var transformRadians = transformer$3({ + point: function(x, y) { + this.stream.point(x * radians, y * radians); + } +}); + +function transformRotate(rotate) { + return transformer$3({ + point: function(x, y) { + var r = rotate(x, y); + return this.stream.point(r[0], r[1]); + } + }); +} + +function scaleTranslate(k, dx, dy, sx, sy) { + function transform(x, y) { + x *= sx; y *= sy; + return [dx + k * x, dy - k * y]; + } + transform.invert = function(x, y) { + return [(x - dx) / k * sx, (dy - y) / k * sy]; + }; + return transform; +} + +function scaleTranslateRotate(k, dx, dy, sx, sy, alpha) { + if (!alpha) return scaleTranslate(k, dx, dy, sx, sy); + var cosAlpha = cos$1(alpha), + sinAlpha = sin$1(alpha), + a = cosAlpha * k, + b = sinAlpha * k, + ai = cosAlpha / k, + bi = sinAlpha / k, + ci = (sinAlpha * dy - cosAlpha * dx) / k, + fi = (sinAlpha * dx + cosAlpha * dy) / k; + function transform(x, y) { + x *= sx; y *= sy; + return [a * x - b * y + dx, dy - b * x - a * y]; + } + transform.invert = function(x, y) { + return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)]; + }; + return transform; +} + +function projection(project) { + return projectionMutator(function() { return project; })(); +} + +function projectionMutator(projectAt) { + var project, + k = 150, // scale + x = 480, y = 250, // translate + lambda = 0, phi = 0, // center + deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate + alpha = 0, // post-rotate angle + sx = 1, // reflectX + sy = 1, // reflectX + theta = null, preclip = clipAntimeridian, // pre-clip angle + x0 = null, y0, x1, y1, postclip = identity$5, // post-clip extent + delta2 = 0.5, // precision + projectResample, + projectTransform, + projectRotateTransform, + cache, + cacheStream; + + function projection(point) { + return projectRotateTransform(point[0] * radians, point[1] * radians); + } + + function invert(point) { + point = projectRotateTransform.invert(point[0], point[1]); + return point && [point[0] * degrees, point[1] * degrees]; + } + + projection.stream = function(stream) { + return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream))))); + }; + + projection.preclip = function(_) { + return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip; + }; + + projection.postclip = function(_) { + return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip; + }; + + projection.clipAngle = function(_) { + return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees; + }; + + projection.clipExtent = function(_) { + return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity$5) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]]; + }; + + projection.scale = function(_) { + return arguments.length ? (k = +_, recenter()) : k; + }; + + projection.translate = function(_) { + return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y]; + }; + + projection.center = function(_) { + return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees]; + }; + + projection.rotate = function(_) { + return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees]; + }; + + projection.angle = function(_) { + return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees; + }; + + projection.reflectX = function(_) { + return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0; + }; + + projection.reflectY = function(_) { + return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0; + }; + + projection.precision = function(_) { + return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt$2(delta2); + }; + + projection.fitExtent = function(extent, object) { + return fitExtent(projection, extent, object); + }; + + projection.fitSize = function(size, object) { + return fitSize(projection, size, object); + }; + + projection.fitWidth = function(width, object) { + return fitWidth(projection, width, object); + }; + + projection.fitHeight = function(height, object) { + return fitHeight(projection, height, object); + }; + + function recenter() { + var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)), + transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha); + rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma); + projectTransform = compose(project, transform); + projectRotateTransform = compose(rotate, projectTransform); + projectResample = resample(projectTransform, delta2); + return reset(); + } + + function reset() { + cache = cacheStream = null; + return projection; + } + + return function() { + project = projectAt.apply(this, arguments); + projection.invert = project.invert && invert; + return recenter(); + }; +} + +function conicProjection(projectAt) { + var phi0 = 0, + phi1 = pi$1 / 3, + m = projectionMutator(projectAt), + p = m(phi0, phi1); + + p.parallels = function(_) { + return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees]; + }; + + return p; +} + +function cylindricalEqualAreaRaw(phi0) { + var cosPhi0 = cos$1(phi0); + + function forward(lambda, phi) { + return [lambda * cosPhi0, sin$1(phi) / cosPhi0]; + } + + forward.invert = function(x, y) { + return [x / cosPhi0, asin$1(y * cosPhi0)]; + }; + + return forward; +} + +function conicEqualAreaRaw(y0, y1) { + var sy0 = sin$1(y0), n = (sy0 + sin$1(y1)) / 2; + + // Are the parallels symmetrical around the Equator? + if (abs$1(n) < epsilon$1) return cylindricalEqualAreaRaw(y0); + + var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt$2(c) / n; + + function project(x, y) { + var r = sqrt$2(c - 2 * n * sin$1(y)) / n; + return [r * sin$1(x *= n), r0 - r * cos$1(x)]; + } + + project.invert = function(x, y) { + var r0y = r0 - y, + l = atan2$1(x, abs$1(r0y)) * sign$1(r0y); + if (r0y * n < 0) + l -= pi$1 * sign$1(x) * sign$1(r0y); + return [l / n, asin$1((c - (x * x + r0y * r0y) * n * n) / (2 * n))]; + }; + + return project; +} + +function conicEqualArea() { + return conicProjection(conicEqualAreaRaw) + .scale(155.424) + .center([0, 33.6442]); +} + +function albers() { + return conicEqualArea() + .parallels([29.5, 45.5]) + .scale(1070) + .translate([480, 250]) + .rotate([96, 0]) + .center([-0.6, 38.7]); +} + +// The projections must have mutually exclusive clip regions on the sphere, +// as this will avoid emitting interleaving lines and polygons. +function multiplex(streams) { + var n = streams.length; + return { + point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); }, + sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); }, + lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); }, + lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); }, + polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); }, + polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); } + }; +} + +// A composite projection for the United States, configured by default for +// 960×500. The projection also works quite well at 960×600 if you change the +// scale to 1285 and adjust the translate accordingly. The set of standard +// parallels for each region comes from USGS, which is published here: +// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers +function albersUsa() { + var cache, + cacheStream, + lower48 = albers(), lower48Point, + alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338 + hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007 + point, pointStream = {point: function(x, y) { point = [x, y]; }}; + + function albersUsa(coordinates) { + var x = coordinates[0], y = coordinates[1]; + return point = null, + (lower48Point.point(x, y), point) + || (alaskaPoint.point(x, y), point) + || (hawaiiPoint.point(x, y), point); + } + + albersUsa.invert = function(coordinates) { + var k = lower48.scale(), + t = lower48.translate(), + x = (coordinates[0] - t[0]) / k, + y = (coordinates[1] - t[1]) / k; + return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska + : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii + : lower48).invert(coordinates); + }; + + albersUsa.stream = function(stream) { + return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]); + }; + + albersUsa.precision = function(_) { + if (!arguments.length) return lower48.precision(); + lower48.precision(_), alaska.precision(_), hawaii.precision(_); + return reset(); + }; + + albersUsa.scale = function(_) { + if (!arguments.length) return lower48.scale(); + lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_); + return albersUsa.translate(lower48.translate()); + }; + + albersUsa.translate = function(_) { + if (!arguments.length) return lower48.translate(); + var k = lower48.scale(), x = +_[0], y = +_[1]; + + lower48Point = lower48 + .translate(_) + .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]]) + .stream(pointStream); + + alaskaPoint = alaska + .translate([x - 0.307 * k, y + 0.201 * k]) + .clipExtent([[x - 0.425 * k + epsilon$1, y + 0.120 * k + epsilon$1], [x - 0.214 * k - epsilon$1, y + 0.234 * k - epsilon$1]]) + .stream(pointStream); + + hawaiiPoint = hawaii + .translate([x - 0.205 * k, y + 0.212 * k]) + .clipExtent([[x - 0.214 * k + epsilon$1, y + 0.166 * k + epsilon$1], [x - 0.115 * k - epsilon$1, y + 0.234 * k - epsilon$1]]) + .stream(pointStream); + + return reset(); + }; + + albersUsa.fitExtent = function(extent, object) { + return fitExtent(albersUsa, extent, object); + }; + + albersUsa.fitSize = function(size, object) { + return fitSize(albersUsa, size, object); + }; + + albersUsa.fitWidth = function(width, object) { + return fitWidth(albersUsa, width, object); + }; + + albersUsa.fitHeight = function(height, object) { + return fitHeight(albersUsa, height, object); + }; + + function reset() { + cache = cacheStream = null; + return albersUsa; + } + + return albersUsa.scale(1070); +} + +function azimuthalRaw(scale) { + return function(x, y) { + var cx = cos$1(x), + cy = cos$1(y), + k = scale(cx * cy); + if (k === Infinity) return [2, 0]; + return [ + k * cy * sin$1(x), + k * sin$1(y) + ]; + } +} + +function azimuthalInvert(angle) { + return function(x, y) { + var z = sqrt$2(x * x + y * y), + c = angle(z), + sc = sin$1(c), + cc = cos$1(c); + return [ + atan2$1(x * sc, z * cc), + asin$1(z && y * sc / z) + ]; + } +} + +var azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) { + return sqrt$2(2 / (1 + cxcy)); +}); + +azimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) { + return 2 * asin$1(z / 2); +}); + +function azimuthalEqualArea() { + return projection(azimuthalEqualAreaRaw) + .scale(124.75) + .clipAngle(180 - 1e-3); +} + +var azimuthalEquidistantRaw = azimuthalRaw(function(c) { + return (c = acos$1(c)) && c / sin$1(c); +}); + +azimuthalEquidistantRaw.invert = azimuthalInvert(function(z) { + return z; +}); + +function azimuthalEquidistant() { + return projection(azimuthalEquidistantRaw) + .scale(79.4188) + .clipAngle(180 - 1e-3); +} + +function mercatorRaw(lambda, phi) { + return [lambda, log$1(tan((halfPi$1 + phi) / 2))]; +} + +mercatorRaw.invert = function(x, y) { + return [x, 2 * atan(exp(y)) - halfPi$1]; +}; + +function mercator() { + return mercatorProjection(mercatorRaw) + .scale(961 / tau$1); +} + +function mercatorProjection(project) { + var m = projection(project), + center = m.center, + scale = m.scale, + translate = m.translate, + clipExtent = m.clipExtent, + x0 = null, y0, x1, y1; // clip extent + + m.scale = function(_) { + return arguments.length ? (scale(_), reclip()) : scale(); + }; + + m.translate = function(_) { + return arguments.length ? (translate(_), reclip()) : translate(); + }; + + m.center = function(_) { + return arguments.length ? (center(_), reclip()) : center(); + }; + + m.clipExtent = function(_) { + return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]]; + }; + + function reclip() { + var k = pi$1 * scale(), + t = m(rotation(m.rotate()).invert([0, 0])); + return clipExtent(x0 == null + ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw + ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]] + : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]); + } + + return reclip(); +} + +function tany(y) { + return tan((halfPi$1 + y) / 2); +} + +function conicConformalRaw(y0, y1) { + var cy0 = cos$1(y0), + n = y0 === y1 ? sin$1(y0) : log$1(cy0 / cos$1(y1)) / log$1(tany(y1) / tany(y0)), + f = cy0 * pow$1(tany(y0), n) / n; + + if (!n) return mercatorRaw; + + function project(x, y) { + if (f > 0) { if (y < -halfPi$1 + epsilon$1) y = -halfPi$1 + epsilon$1; } + else { if (y > halfPi$1 - epsilon$1) y = halfPi$1 - epsilon$1; } + var r = f / pow$1(tany(y), n); + return [r * sin$1(n * x), f - r * cos$1(n * x)]; + } + + project.invert = function(x, y) { + var fy = f - y, r = sign$1(n) * sqrt$2(x * x + fy * fy), + l = atan2$1(x, abs$1(fy)) * sign$1(fy); + if (fy * n < 0) + l -= pi$1 * sign$1(x) * sign$1(fy); + return [l / n, 2 * atan(pow$1(f / r, 1 / n)) - halfPi$1]; + }; + + return project; +} + +function conicConformal() { + return conicProjection(conicConformalRaw) + .scale(109.5) + .parallels([30, 30]); +} + +function equirectangularRaw(lambda, phi) { + return [lambda, phi]; +} + +equirectangularRaw.invert = equirectangularRaw; + +function equirectangular() { + return projection(equirectangularRaw) + .scale(152.63); +} + +function conicEquidistantRaw(y0, y1) { + var cy0 = cos$1(y0), + n = y0 === y1 ? sin$1(y0) : (cy0 - cos$1(y1)) / (y1 - y0), + g = cy0 / n + y0; + + if (abs$1(n) < epsilon$1) return equirectangularRaw; + + function project(x, y) { + var gy = g - y, nx = n * x; + return [gy * sin$1(nx), g - gy * cos$1(nx)]; + } + + project.invert = function(x, y) { + var gy = g - y, + l = atan2$1(x, abs$1(gy)) * sign$1(gy); + if (gy * n < 0) + l -= pi$1 * sign$1(x) * sign$1(gy); + return [l / n, g - sign$1(n) * sqrt$2(x * x + gy * gy)]; + }; + + return project; +} + +function conicEquidistant() { + return conicProjection(conicEquidistantRaw) + .scale(131.154) + .center([0, 13.9389]); +} + +var A1 = 1.340264, + A2 = -0.081106, + A3 = 0.000893, + A4 = 0.003796, + M = sqrt$2(3) / 2, + iterations = 12; + +function equalEarthRaw(lambda, phi) { + var l = asin$1(M * sin$1(phi)), l2 = l * l, l6 = l2 * l2 * l2; + return [ + lambda * cos$1(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))), + l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) + ]; +} + +equalEarthRaw.invert = function(x, y) { + var l = y, l2 = l * l, l6 = l2 * l2 * l2; + for (var i = 0, delta, fy, fpy; i < iterations; ++i) { + fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y; + fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2); + l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2; + if (abs$1(delta) < epsilon2) break; + } + return [ + M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos$1(l), + asin$1(sin$1(l) / M) + ]; +}; + +function equalEarth() { + return projection(equalEarthRaw) + .scale(177.158); +} + +function gnomonicRaw(x, y) { + var cy = cos$1(y), k = cos$1(x) * cy; + return [cy * sin$1(x) / k, sin$1(y) / k]; +} + +gnomonicRaw.invert = azimuthalInvert(atan); + +function gnomonic() { + return projection(gnomonicRaw) + .scale(144.049) + .clipAngle(60); +} + +function identity$4() { + var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, // scale, translate and reflect + alpha = 0, ca, sa, // angle + x0 = null, y0, x1, y1, // clip extent + kx = 1, ky = 1, + transform = transformer$3({ + point: function(x, y) { + var p = projection([x, y]); + this.stream.point(p[0], p[1]); + } + }), + postclip = identity$5, + cache, + cacheStream; + + function reset() { + kx = k * sx; + ky = k * sy; + cache = cacheStream = null; + return projection; + } + + function projection (p) { + var x = p[0] * kx, y = p[1] * ky; + if (alpha) { + var t = y * ca - x * sa; + x = x * ca + y * sa; + y = t; + } + return [x + tx, y + ty]; + } + projection.invert = function(p) { + var x = p[0] - tx, y = p[1] - ty; + if (alpha) { + var t = y * ca + x * sa; + x = x * ca - y * sa; + y = t; + } + return [x / kx, y / ky]; + }; + projection.stream = function(stream) { + return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream)); + }; + projection.postclip = function(_) { + return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip; + }; + projection.clipExtent = function(_) { + return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity$5) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]]; + }; + projection.scale = function(_) { + return arguments.length ? (k = +_, reset()) : k; + }; + projection.translate = function(_) { + return arguments.length ? (tx = +_[0], ty = +_[1], reset()) : [tx, ty]; + }; + projection.angle = function(_) { + return arguments.length ? (alpha = _ % 360 * radians, sa = sin$1(alpha), ca = cos$1(alpha), reset()) : alpha * degrees; + }; + projection.reflectX = function(_) { + return arguments.length ? (sx = _ ? -1 : 1, reset()) : sx < 0; + }; + projection.reflectY = function(_) { + return arguments.length ? (sy = _ ? -1 : 1, reset()) : sy < 0; + }; + projection.fitExtent = function(extent, object) { + return fitExtent(projection, extent, object); + }; + projection.fitSize = function(size, object) { + return fitSize(projection, size, object); + }; + projection.fitWidth = function(width, object) { + return fitWidth(projection, width, object); + }; + projection.fitHeight = function(height, object) { + return fitHeight(projection, height, object); + }; + + return projection; +} + +function naturalEarth1Raw(lambda, phi) { + var phi2 = phi * phi, phi4 = phi2 * phi2; + return [ + lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))), + phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) + ]; +} + +naturalEarth1Raw.invert = function(x, y) { + var phi = y, i = 25, delta; + do { + var phi2 = phi * phi, phi4 = phi2 * phi2; + phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) / + (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4))); + } while (abs$1(delta) > epsilon$1 && --i > 0); + return [ + x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))), + phi + ]; +}; + +function naturalEarth1() { + return projection(naturalEarth1Raw) + .scale(175.295); +} + +function orthographicRaw(x, y) { + return [cos$1(y) * sin$1(x), sin$1(y)]; +} + +orthographicRaw.invert = azimuthalInvert(asin$1); + +function orthographic() { + return projection(orthographicRaw) + .scale(249.5) + .clipAngle(90 + epsilon$1); +} + +function stereographicRaw(x, y) { + var cy = cos$1(y), k = 1 + cos$1(x) * cy; + return [cy * sin$1(x) / k, sin$1(y) / k]; +} + +stereographicRaw.invert = azimuthalInvert(function(z) { + return 2 * atan(z); +}); + +function stereographic() { + return projection(stereographicRaw) + .scale(250) + .clipAngle(142); +} + +function transverseMercatorRaw(lambda, phi) { + return [log$1(tan((halfPi$1 + phi) / 2)), -lambda]; +} + +transverseMercatorRaw.invert = function(x, y) { + return [-y, 2 * atan(exp(x)) - halfPi$1]; +}; + +function transverseMercator() { + var m = mercatorProjection(transverseMercatorRaw), + center = m.center, + rotate = m.rotate; + + m.center = function(_) { + return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]); + }; + + m.rotate = function(_) { + return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]); + }; + + return rotate([0, 0, 90]) + .scale(159.155); +} + +function defaultSeparation$1(a, b) { + return a.parent === b.parent ? 1 : 2; +} + +function meanX(children) { + return children.reduce(meanXReduce, 0) / children.length; +} + +function meanXReduce(x, c) { + return x + c.x; +} + +function maxY(children) { + return 1 + children.reduce(maxYReduce, 0); +} + +function maxYReduce(y, c) { + return Math.max(y, c.y); +} + +function leafLeft(node) { + var children; + while (children = node.children) node = children[0]; + return node; +} + +function leafRight(node) { + var children; + while (children = node.children) node = children[children.length - 1]; + return node; +} + +function cluster() { + var separation = defaultSeparation$1, + dx = 1, + dy = 1, + nodeSize = false; + + function cluster(root) { + var previousNode, + x = 0; + + // First walk, computing the initial x & y values. + root.eachAfter(function(node) { + var children = node.children; + if (children) { + node.x = meanX(children); + node.y = maxY(children); + } else { + node.x = previousNode ? x += separation(node, previousNode) : 0; + node.y = 0; + previousNode = node; + } + }); + + var left = leafLeft(root), + right = leafRight(root), + x0 = left.x - separation(left, right) / 2, + x1 = right.x + separation(right, left) / 2; + + // Second walk, normalizing x & y to the desired size. + return root.eachAfter(nodeSize ? function(node) { + node.x = (node.x - root.x) * dx; + node.y = (root.y - node.y) * dy; + } : function(node) { + node.x = (node.x - x0) / (x1 - x0) * dx; + node.y = (1 - (root.y ? node.y / root.y : 1)) * dy; + }); + } + + cluster.separation = function(x) { + return arguments.length ? (separation = x, cluster) : separation; + }; + + cluster.size = function(x) { + return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]); + }; + + cluster.nodeSize = function(x) { + return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null); + }; + + return cluster; +} + +function count(node) { + var sum = 0, + children = node.children, + i = children && children.length; + if (!i) sum = 1; + else while (--i >= 0) sum += children[i].value; + node.value = sum; +} + +function node_count() { + return this.eachAfter(count); +} + +function node_each(callback, that) { + let index = -1; + for (const node of this) { + callback.call(that, node, ++index, this); + } + return this; +} + +function node_eachBefore(callback, that) { + var node = this, nodes = [node], children, i, index = -1; + while (node = nodes.pop()) { + callback.call(that, node, ++index, this); + if (children = node.children) { + for (i = children.length - 1; i >= 0; --i) { + nodes.push(children[i]); + } + } + } + return this; +} + +function node_eachAfter(callback, that) { + var node = this, nodes = [node], next = [], children, i, n, index = -1; + while (node = nodes.pop()) { + next.push(node); + if (children = node.children) { + for (i = 0, n = children.length; i < n; ++i) { + nodes.push(children[i]); + } + } + } + while (node = next.pop()) { + callback.call(that, node, ++index, this); + } + return this; +} + +function node_find(callback, that) { + let index = -1; + for (const node of this) { + if (callback.call(that, node, ++index, this)) { + return node; + } + } +} + +function node_sum(value) { + return this.eachAfter(function(node) { + var sum = +value(node.data) || 0, + children = node.children, + i = children && children.length; + while (--i >= 0) sum += children[i].value; + node.value = sum; + }); +} + +function node_sort(compare) { + return this.eachBefore(function(node) { + if (node.children) { + node.children.sort(compare); + } + }); +} + +function node_path(end) { + var start = this, + ancestor = leastCommonAncestor(start, end), + nodes = [start]; + while (start !== ancestor) { + start = start.parent; + nodes.push(start); + } + var k = nodes.length; + while (end !== ancestor) { + nodes.splice(k, 0, end); + end = end.parent; + } + return nodes; +} + +function leastCommonAncestor(a, b) { + if (a === b) return a; + var aNodes = a.ancestors(), + bNodes = b.ancestors(), + c = null; + a = aNodes.pop(); + b = bNodes.pop(); + while (a === b) { + c = a; + a = aNodes.pop(); + b = bNodes.pop(); + } + return c; +} + +function node_ancestors() { + var node = this, nodes = [node]; + while (node = node.parent) { + nodes.push(node); + } + return nodes; +} + +function node_descendants() { + return Array.from(this); +} + +function node_leaves() { + var leaves = []; + this.eachBefore(function(node) { + if (!node.children) { + leaves.push(node); + } + }); + return leaves; +} + +function node_links() { + var root = this, links = []; + root.each(function(node) { + if (node !== root) { // Don’t include the root’s parent, if any. + links.push({source: node.parent, target: node}); + } + }); + return links; +} + +function* node_iterator() { + var node = this, current, next = [node], children, i, n; + do { + current = next.reverse(), next = []; + while (node = current.pop()) { + yield node; + if (children = node.children) { + for (i = 0, n = children.length; i < n; ++i) { + next.push(children[i]); + } + } + } + } while (next.length); +} + +function hierarchy(data, children) { + if (data instanceof Map) { + data = [undefined, data]; + if (children === undefined) children = mapChildren; + } else if (children === undefined) { + children = objectChildren; + } + + var root = new Node$1(data), + node, + nodes = [root], + child, + childs, + i, + n; + + while (node = nodes.pop()) { + if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) { + node.children = childs; + for (i = n - 1; i >= 0; --i) { + nodes.push(child = childs[i] = new Node$1(childs[i])); + child.parent = node; + child.depth = node.depth + 1; + } + } + } + + return root.eachBefore(computeHeight); +} + +function node_copy() { + return hierarchy(this).eachBefore(copyData); +} + +function objectChildren(d) { + return d.children; +} + +function mapChildren(d) { + return Array.isArray(d) ? d[1] : null; +} + +function copyData(node) { + if (node.data.value !== undefined) node.value = node.data.value; + node.data = node.data.data; +} + +function computeHeight(node) { + var height = 0; + do node.height = height; + while ((node = node.parent) && (node.height < ++height)); +} + +function Node$1(data) { + this.data = data; + this.depth = + this.height = 0; + this.parent = null; +} + +Node$1.prototype = hierarchy.prototype = { + constructor: Node$1, + count: node_count, + each: node_each, + eachAfter: node_eachAfter, + eachBefore: node_eachBefore, + find: node_find, + sum: node_sum, + sort: node_sort, + path: node_path, + ancestors: node_ancestors, + descendants: node_descendants, + leaves: node_leaves, + links: node_links, + copy: node_copy, + [Symbol.iterator]: node_iterator +}; + +function optional(f) { + return f == null ? null : required(f); +} + +function required(f) { + if (typeof f !== "function") throw new Error; + return f; +} + +function constantZero() { + return 0; +} + +function constant$2(x) { + return function() { + return x; + }; +} + +// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use +const a$1 = 1664525; +const c$3 = 1013904223; +const m = 4294967296; // 2^32 + +function lcg$1() { + let s = 1; + return () => (s = (a$1 * s + c$3) % m) / m; +} + +function array$1(x) { + return typeof x === "object" && "length" in x + ? x // Array, TypedArray, NodeList, array-like + : Array.from(x); // Map, Set, iterable, string, or anything else +} + +function shuffle(array, random) { + let m = array.length, + t, + i; + + while (m) { + i = random() * m-- | 0; + t = array[m]; + array[m] = array[i]; + array[i] = t; + } + + return array; +} + +function enclose(circles) { + return packEncloseRandom(circles, lcg$1()); +} + +function packEncloseRandom(circles, random) { + var i = 0, n = (circles = shuffle(Array.from(circles), random)).length, B = [], p, e; + + while (i < n) { + p = circles[i]; + if (e && enclosesWeak(e, p)) ++i; + else e = encloseBasis(B = extendBasis(B, p)), i = 0; + } + + return e; +} + +function extendBasis(B, p) { + var i, j; + + if (enclosesWeakAll(p, B)) return [p]; + + // If we get here then B must have at least one element. + for (i = 0; i < B.length; ++i) { + if (enclosesNot(p, B[i]) + && enclosesWeakAll(encloseBasis2(B[i], p), B)) { + return [B[i], p]; + } + } + + // If we get here then B must have at least two elements. + for (i = 0; i < B.length - 1; ++i) { + for (j = i + 1; j < B.length; ++j) { + if (enclosesNot(encloseBasis2(B[i], B[j]), p) + && enclosesNot(encloseBasis2(B[i], p), B[j]) + && enclosesNot(encloseBasis2(B[j], p), B[i]) + && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) { + return [B[i], B[j], p]; + } + } + } + + // If we get here then something is very wrong. + throw new Error; +} + +function enclosesNot(a, b) { + var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y; + return dr < 0 || dr * dr < dx * dx + dy * dy; +} + +function enclosesWeak(a, b) { + var dr = a.r - b.r + Math.max(a.r, b.r, 1) * 1e-9, dx = b.x - a.x, dy = b.y - a.y; + return dr > 0 && dr * dr > dx * dx + dy * dy; +} + +function enclosesWeakAll(a, B) { + for (var i = 0; i < B.length; ++i) { + if (!enclosesWeak(a, B[i])) { + return false; + } + } + return true; +} + +function encloseBasis(B) { + switch (B.length) { + case 1: return encloseBasis1(B[0]); + case 2: return encloseBasis2(B[0], B[1]); + case 3: return encloseBasis3(B[0], B[1], B[2]); + } +} + +function encloseBasis1(a) { + return { + x: a.x, + y: a.y, + r: a.r + }; +} + +function encloseBasis2(a, b) { + var x1 = a.x, y1 = a.y, r1 = a.r, + x2 = b.x, y2 = b.y, r2 = b.r, + x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1, + l = Math.sqrt(x21 * x21 + y21 * y21); + return { + x: (x1 + x2 + x21 / l * r21) / 2, + y: (y1 + y2 + y21 / l * r21) / 2, + r: (l + r1 + r2) / 2 + }; +} + +function encloseBasis3(a, b, c) { + var x1 = a.x, y1 = a.y, r1 = a.r, + x2 = b.x, y2 = b.y, r2 = b.r, + x3 = c.x, y3 = c.y, r3 = c.r, + a2 = x1 - x2, + a3 = x1 - x3, + b2 = y1 - y2, + b3 = y1 - y3, + c2 = r2 - r1, + c3 = r3 - r1, + d1 = x1 * x1 + y1 * y1 - r1 * r1, + d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2, + d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3, + ab = a3 * b2 - a2 * b3, + xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1, + xb = (b3 * c2 - b2 * c3) / ab, + ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1, + yb = (a2 * c3 - a3 * c2) / ab, + A = xb * xb + yb * yb - 1, + B = 2 * (r1 + xa * xb + ya * yb), + C = xa * xa + ya * ya - r1 * r1, + r = -(Math.abs(A) > 1e-6 ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B); + return { + x: x1 + xa + xb * r, + y: y1 + ya + yb * r, + r: r + }; +} + +function place(b, a, c) { + var dx = b.x - a.x, x, a2, + dy = b.y - a.y, y, b2, + d2 = dx * dx + dy * dy; + if (d2) { + a2 = a.r + c.r, a2 *= a2; + b2 = b.r + c.r, b2 *= b2; + if (a2 > b2) { + x = (d2 + b2 - a2) / (2 * d2); + y = Math.sqrt(Math.max(0, b2 / d2 - x * x)); + c.x = b.x - x * dx - y * dy; + c.y = b.y - x * dy + y * dx; + } else { + x = (d2 + a2 - b2) / (2 * d2); + y = Math.sqrt(Math.max(0, a2 / d2 - x * x)); + c.x = a.x + x * dx - y * dy; + c.y = a.y + x * dy + y * dx; + } + } else { + c.x = a.x + c.r; + c.y = a.y; + } +} + +function intersects(a, b) { + var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y; + return dr > 0 && dr * dr > dx * dx + dy * dy; +} + +function score(node) { + var a = node._, + b = node.next._, + ab = a.r + b.r, + dx = (a.x * b.r + b.x * a.r) / ab, + dy = (a.y * b.r + b.y * a.r) / ab; + return dx * dx + dy * dy; +} + +function Node(circle) { + this._ = circle; + this.next = null; + this.previous = null; +} + +function packSiblingsRandom(circles, random) { + if (!(n = (circles = array$1(circles)).length)) return 0; + + var a, b, c, n, aa, ca, i, j, k, sj, sk; + + // Place the first circle. + a = circles[0], a.x = 0, a.y = 0; + if (!(n > 1)) return a.r; + + // Place the second circle. + b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0; + if (!(n > 2)) return a.r + b.r; + + // Place the third circle. + place(b, a, c = circles[2]); + + // Initialize the front-chain using the first three circles a, b and c. + a = new Node(a), b = new Node(b), c = new Node(c); + a.next = c.previous = b; + b.next = a.previous = c; + c.next = b.previous = a; + + // Attempt to place each remaining circle… + pack: for (i = 3; i < n; ++i) { + place(a._, b._, c = circles[i]), c = new Node(c); + + // Find the closest intersecting circle on the front-chain, if any. + // “Closeness†is determined by linear distance along the front-chain. + // “Ahead†or “behind†is likewise determined by linear distance. + j = b.next, k = a.previous, sj = b._.r, sk = a._.r; + do { + if (sj <= sk) { + if (intersects(j._, c._)) { + b = j, a.next = b, b.previous = a, --i; + continue pack; + } + sj += j._.r, j = j.next; + } else { + if (intersects(k._, c._)) { + a = k, a.next = b, b.previous = a, --i; + continue pack; + } + sk += k._.r, k = k.previous; + } + } while (j !== k.next); + + // Success! Insert the new circle c between a and b. + c.previous = a, c.next = b, a.next = b.previous = b = c; + + // Compute the new closest circle pair to the centroid. + aa = score(a); + while ((c = c.next) !== b) { + if ((ca = score(c)) < aa) { + a = c, aa = ca; + } + } + b = a.next; + } + + // Compute the enclosing circle of the front chain. + a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = packEncloseRandom(a, random); + + // Translate the circles to put the enclosing circle around the origin. + for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y; + + return c.r; +} + +function siblings(circles) { + packSiblingsRandom(circles, lcg$1()); + return circles; +} + +function defaultRadius(d) { + return Math.sqrt(d.value); +} + +function index$1() { + var radius = null, + dx = 1, + dy = 1, + padding = constantZero; + + function pack(root) { + const random = lcg$1(); + root.x = dx / 2, root.y = dy / 2; + if (radius) { + root.eachBefore(radiusLeaf(radius)) + .eachAfter(packChildrenRandom(padding, 0.5, random)) + .eachBefore(translateChild(1)); + } else { + root.eachBefore(radiusLeaf(defaultRadius)) + .eachAfter(packChildrenRandom(constantZero, 1, random)) + .eachAfter(packChildrenRandom(padding, root.r / Math.min(dx, dy), random)) + .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r))); + } + return root; + } + + pack.radius = function(x) { + return arguments.length ? (radius = optional(x), pack) : radius; + }; + + pack.size = function(x) { + return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy]; + }; + + pack.padding = function(x) { + return arguments.length ? (padding = typeof x === "function" ? x : constant$2(+x), pack) : padding; + }; + + return pack; +} + +function radiusLeaf(radius) { + return function(node) { + if (!node.children) { + node.r = Math.max(0, +radius(node) || 0); + } + }; +} + +function packChildrenRandom(padding, k, random) { + return function(node) { + if (children = node.children) { + var children, + i, + n = children.length, + r = padding(node) * k || 0, + e; + + if (r) for (i = 0; i < n; ++i) children[i].r += r; + e = packSiblingsRandom(children, random); + if (r) for (i = 0; i < n; ++i) children[i].r -= r; + node.r = e + r; + } + }; +} + +function translateChild(k) { + return function(node) { + var parent = node.parent; + node.r *= k; + if (parent) { + node.x = parent.x + k * node.x; + node.y = parent.y + k * node.y; + } + }; +} + +function roundNode(node) { + node.x0 = Math.round(node.x0); + node.y0 = Math.round(node.y0); + node.x1 = Math.round(node.x1); + node.y1 = Math.round(node.y1); +} + +function treemapDice(parent, x0, y0, x1, y1) { + var nodes = parent.children, + node, + i = -1, + n = nodes.length, + k = parent.value && (x1 - x0) / parent.value; + + while (++i < n) { + node = nodes[i], node.y0 = y0, node.y1 = y1; + node.x0 = x0, node.x1 = x0 += node.value * k; + } +} + +function partition() { + var dx = 1, + dy = 1, + padding = 0, + round = false; + + function partition(root) { + var n = root.height + 1; + root.x0 = + root.y0 = padding; + root.x1 = dx; + root.y1 = dy / n; + root.eachBefore(positionNode(dy, n)); + if (round) root.eachBefore(roundNode); + return root; + } + + function positionNode(dy, n) { + return function(node) { + if (node.children) { + treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n); + } + var x0 = node.x0, + y0 = node.y0, + x1 = node.x1 - padding, + y1 = node.y1 - padding; + if (x1 < x0) x0 = x1 = (x0 + x1) / 2; + if (y1 < y0) y0 = y1 = (y0 + y1) / 2; + node.x0 = x0; + node.y0 = y0; + node.x1 = x1; + node.y1 = y1; + }; + } + + partition.round = function(x) { + return arguments.length ? (round = !!x, partition) : round; + }; + + partition.size = function(x) { + return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy]; + }; + + partition.padding = function(x) { + return arguments.length ? (padding = +x, partition) : padding; + }; + + return partition; +} + +var preroot = {depth: -1}, + ambiguous = {}, + imputed = {}; + +function defaultId(d) { + return d.id; +} + +function defaultParentId(d) { + return d.parentId; +} + +function stratify() { + var id = defaultId, + parentId = defaultParentId, + path; + + function stratify(data) { + var nodes = Array.from(data), + currentId = id, + currentParentId = parentId, + n, + d, + i, + root, + parent, + node, + nodeId, + nodeKey, + nodeByKey = new Map; + + if (path != null) { + const I = nodes.map((d, i) => normalize$1(path(d, i, data))); + const P = I.map(parentof); + const S = new Set(I).add(""); + for (const i of P) { + if (!S.has(i)) { + S.add(i); + I.push(i); + P.push(parentof(i)); + nodes.push(imputed); + } + } + currentId = (_, i) => I[i]; + currentParentId = (_, i) => P[i]; + } + + for (i = 0, n = nodes.length; i < n; ++i) { + d = nodes[i], node = nodes[i] = new Node$1(d); + if ((nodeId = currentId(d, i, data)) != null && (nodeId += "")) { + nodeKey = node.id = nodeId; + nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node); + } + if ((nodeId = currentParentId(d, i, data)) != null && (nodeId += "")) { + node.parent = nodeId; + } + } + + for (i = 0; i < n; ++i) { + node = nodes[i]; + if (nodeId = node.parent) { + parent = nodeByKey.get(nodeId); + if (!parent) throw new Error("missing: " + nodeId); + if (parent === ambiguous) throw new Error("ambiguous: " + nodeId); + if (parent.children) parent.children.push(node); + else parent.children = [node]; + node.parent = parent; + } else { + if (root) throw new Error("multiple roots"); + root = node; + } + } + + if (!root) throw new Error("no root"); + + // When imputing internal nodes, only introduce roots if needed. + // Then replace the imputed marker data with null. + if (path != null) { + while (root.data === imputed && root.children.length === 1) { + root = root.children[0], --n; + } + for (let i = nodes.length - 1; i >= 0; --i) { + node = nodes[i]; + if (node.data !== imputed) break; + node.data = null; + } + } + + root.parent = preroot; + root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight); + root.parent = null; + if (n > 0) throw new Error("cycle"); + + return root; + } + + stratify.id = function(x) { + return arguments.length ? (id = optional(x), stratify) : id; + }; + + stratify.parentId = function(x) { + return arguments.length ? (parentId = optional(x), stratify) : parentId; + }; + + stratify.path = function(x) { + return arguments.length ? (path = optional(x), stratify) : path; + }; + + return stratify; +} + +// To normalize a path, we coerce to a string, strip the trailing slash if any +// (as long as the trailing slash is not immediately preceded by another slash), +// and add leading slash if missing. +function normalize$1(path) { + path = `${path}`; + let i = path.length; + if (slash(path, i - 1) && !slash(path, i - 2)) path = path.slice(0, -1); + return path[0] === "/" ? path : `/${path}`; +} + +// Walk backwards to find the first slash that is not the leading slash, e.g.: +// "/foo/bar" ⇥ "/foo", "/foo" ⇥ "/", "/" ↦ "". (The root is special-cased +// because the id of the root must be a truthy value.) +function parentof(path) { + let i = path.length; + if (i < 2) return ""; + while (--i > 1) if (slash(path, i)) break; + return path.slice(0, i); +} + +// Slashes can be escaped; to determine whether a slash is a path delimiter, we +// count the number of preceding backslashes escaping the forward slash: an odd +// number indicates an escaped forward slash. +function slash(path, i) { + if (path[i] === "/") { + let k = 0; + while (i > 0 && path[--i] === "\\") ++k; + if ((k & 1) === 0) return true; + } + return false; +} + +function defaultSeparation(a, b) { + return a.parent === b.parent ? 1 : 2; +} + +// function radialSeparation(a, b) { +// return (a.parent === b.parent ? 1 : 2) / a.depth; +// } + +// This function is used to traverse the left contour of a subtree (or +// subforest). It returns the successor of v on this contour. This successor is +// either given by the leftmost child of v or by the thread of v. The function +// returns null if and only if v is on the highest level of its subtree. +function nextLeft(v) { + var children = v.children; + return children ? children[0] : v.t; +} + +// This function works analogously to nextLeft. +function nextRight(v) { + var children = v.children; + return children ? children[children.length - 1] : v.t; +} + +// Shifts the current subtree rooted at w+. This is done by increasing +// prelim(w+) and mod(w+) by shift. +function moveSubtree(wm, wp, shift) { + var change = shift / (wp.i - wm.i); + wp.c -= change; + wp.s += shift; + wm.c += change; + wp.z += shift; + wp.m += shift; +} + +// All other shifts, applied to the smaller subtrees between w- and w+, are +// performed by this function. To prepare the shifts, we have to adjust +// change(w+), shift(w+), and change(w-). +function executeShifts(v) { + var shift = 0, + change = 0, + children = v.children, + i = children.length, + w; + while (--i >= 0) { + w = children[i]; + w.z += shift; + w.m += shift; + shift += w.s + (change += w.c); + } +} + +// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise, +// returns the specified (default) ancestor. +function nextAncestor(vim, v, ancestor) { + return vim.a.parent === v.parent ? vim.a : ancestor; +} + +function TreeNode(node, i) { + this._ = node; + this.parent = null; + this.children = null; + this.A = null; // default ancestor + this.a = this; // ancestor + this.z = 0; // prelim + this.m = 0; // mod + this.c = 0; // change + this.s = 0; // shift + this.t = null; // thread + this.i = i; // number +} + +TreeNode.prototype = Object.create(Node$1.prototype); + +function treeRoot(root) { + var tree = new TreeNode(root, 0), + node, + nodes = [tree], + child, + children, + i, + n; + + while (node = nodes.pop()) { + if (children = node._.children) { + node.children = new Array(n = children.length); + for (i = n - 1; i >= 0; --i) { + nodes.push(child = node.children[i] = new TreeNode(children[i], i)); + child.parent = node; + } + } + } + + (tree.parent = new TreeNode(null, 0)).children = [tree]; + return tree; +} + +// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm +function tree() { + var separation = defaultSeparation, + dx = 1, + dy = 1, + nodeSize = null; + + function tree(root) { + var t = treeRoot(root); + + // Compute the layout using Buchheim et al.’s algorithm. + t.eachAfter(firstWalk), t.parent.m = -t.z; + t.eachBefore(secondWalk); + + // If a fixed node size is specified, scale x and y. + if (nodeSize) root.eachBefore(sizeNode); + + // If a fixed tree size is specified, scale x and y based on the extent. + // Compute the left-most, right-most, and depth-most nodes for extents. + else { + var left = root, + right = root, + bottom = root; + root.eachBefore(function(node) { + if (node.x < left.x) left = node; + if (node.x > right.x) right = node; + if (node.depth > bottom.depth) bottom = node; + }); + var s = left === right ? 1 : separation(left, right) / 2, + tx = s - left.x, + kx = dx / (right.x + s + tx), + ky = dy / (bottom.depth || 1); + root.eachBefore(function(node) { + node.x = (node.x + tx) * kx; + node.y = node.depth * ky; + }); + } + + return root; + } + + // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is + // applied recursively to the children of v, as well as the function + // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the + // node v is placed to the midpoint of its outermost children. + function firstWalk(v) { + var children = v.children, + siblings = v.parent.children, + w = v.i ? siblings[v.i - 1] : null; + if (children) { + executeShifts(v); + var midpoint = (children[0].z + children[children.length - 1].z) / 2; + if (w) { + v.z = w.z + separation(v._, w._); + v.m = v.z - midpoint; + } else { + v.z = midpoint; + } + } else if (w) { + v.z = w.z + separation(v._, w._); + } + v.parent.A = apportion(v, w, v.parent.A || siblings[0]); + } + + // Computes all real x-coordinates by summing up the modifiers recursively. + function secondWalk(v) { + v._.x = v.z + v.parent.m; + v.m += v.parent.m; + } + + // The core of the algorithm. Here, a new subtree is combined with the + // previous subtrees. Threads are used to traverse the inside and outside + // contours of the left and right subtree up to the highest common level. The + // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the + // superscript o means outside and i means inside, the subscript - means left + // subtree and + means right subtree. For summing up the modifiers along the + // contour, we use respective variables si+, si-, so-, and so+. Whenever two + // nodes of the inside contours conflict, we compute the left one of the + // greatest uncommon ancestors using the function ANCESTOR and call MOVE + // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees. + // Finally, we add a new thread (if necessary). + function apportion(v, w, ancestor) { + if (w) { + var vip = v, + vop = v, + vim = w, + vom = vip.parent.children[0], + sip = vip.m, + sop = vop.m, + sim = vim.m, + som = vom.m, + shift; + while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) { + vom = nextLeft(vom); + vop = nextRight(vop); + vop.a = v; + shift = vim.z + sim - vip.z - sip + separation(vim._, vip._); + if (shift > 0) { + moveSubtree(nextAncestor(vim, v, ancestor), v, shift); + sip += shift; + sop += shift; + } + sim += vim.m; + sip += vip.m; + som += vom.m; + sop += vop.m; + } + if (vim && !nextRight(vop)) { + vop.t = vim; + vop.m += sim - sop; + } + if (vip && !nextLeft(vom)) { + vom.t = vip; + vom.m += sip - som; + ancestor = v; + } + } + return ancestor; + } + + function sizeNode(node) { + node.x *= dx; + node.y = node.depth * dy; + } + + tree.separation = function(x) { + return arguments.length ? (separation = x, tree) : separation; + }; + + tree.size = function(x) { + return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]); + }; + + tree.nodeSize = function(x) { + return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null); + }; + + return tree; +} + +function treemapSlice(parent, x0, y0, x1, y1) { + var nodes = parent.children, + node, + i = -1, + n = nodes.length, + k = parent.value && (y1 - y0) / parent.value; + + while (++i < n) { + node = nodes[i], node.x0 = x0, node.x1 = x1; + node.y0 = y0, node.y1 = y0 += node.value * k; + } +} + +var phi = (1 + Math.sqrt(5)) / 2; + +function squarifyRatio(ratio, parent, x0, y0, x1, y1) { + var rows = [], + nodes = parent.children, + row, + nodeValue, + i0 = 0, + i1 = 0, + n = nodes.length, + dx, dy, + value = parent.value, + sumValue, + minValue, + maxValue, + newRatio, + minRatio, + alpha, + beta; + + while (i0 < n) { + dx = x1 - x0, dy = y1 - y0; + + // Find the next non-empty node. + do sumValue = nodes[i1++].value; while (!sumValue && i1 < n); + minValue = maxValue = sumValue; + alpha = Math.max(dy / dx, dx / dy) / (value * ratio); + beta = sumValue * sumValue * alpha; + minRatio = Math.max(maxValue / beta, beta / minValue); + + // Keep adding nodes while the aspect ratio maintains or improves. + for (; i1 < n; ++i1) { + sumValue += nodeValue = nodes[i1].value; + if (nodeValue < minValue) minValue = nodeValue; + if (nodeValue > maxValue) maxValue = nodeValue; + beta = sumValue * sumValue * alpha; + newRatio = Math.max(maxValue / beta, beta / minValue); + if (newRatio > minRatio) { sumValue -= nodeValue; break; } + minRatio = newRatio; + } + + // Position and record the row orientation. + rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)}); + if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1); + else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1); + value -= sumValue, i0 = i1; + } + + return rows; +} + +var squarify = (function custom(ratio) { + + function squarify(parent, x0, y0, x1, y1) { + squarifyRatio(ratio, parent, x0, y0, x1, y1); + } + + squarify.ratio = function(x) { + return custom((x = +x) > 1 ? x : 1); + }; + + return squarify; +})(phi); + +function index() { + var tile = squarify, + round = false, + dx = 1, + dy = 1, + paddingStack = [0], + paddingInner = constantZero, + paddingTop = constantZero, + paddingRight = constantZero, + paddingBottom = constantZero, + paddingLeft = constantZero; + + function treemap(root) { + root.x0 = + root.y0 = 0; + root.x1 = dx; + root.y1 = dy; + root.eachBefore(positionNode); + paddingStack = [0]; + if (round) root.eachBefore(roundNode); + return root; + } + + function positionNode(node) { + var p = paddingStack[node.depth], + x0 = node.x0 + p, + y0 = node.y0 + p, + x1 = node.x1 - p, + y1 = node.y1 - p; + if (x1 < x0) x0 = x1 = (x0 + x1) / 2; + if (y1 < y0) y0 = y1 = (y0 + y1) / 2; + node.x0 = x0; + node.y0 = y0; + node.x1 = x1; + node.y1 = y1; + if (node.children) { + p = paddingStack[node.depth + 1] = paddingInner(node) / 2; + x0 += paddingLeft(node) - p; + y0 += paddingTop(node) - p; + x1 -= paddingRight(node) - p; + y1 -= paddingBottom(node) - p; + if (x1 < x0) x0 = x1 = (x0 + x1) / 2; + if (y1 < y0) y0 = y1 = (y0 + y1) / 2; + tile(node, x0, y0, x1, y1); + } + } + + treemap.round = function(x) { + return arguments.length ? (round = !!x, treemap) : round; + }; + + treemap.size = function(x) { + return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy]; + }; + + treemap.tile = function(x) { + return arguments.length ? (tile = required(x), treemap) : tile; + }; + + treemap.padding = function(x) { + return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner(); + }; + + treemap.paddingInner = function(x) { + return arguments.length ? (paddingInner = typeof x === "function" ? x : constant$2(+x), treemap) : paddingInner; + }; + + treemap.paddingOuter = function(x) { + return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop(); + }; + + treemap.paddingTop = function(x) { + return arguments.length ? (paddingTop = typeof x === "function" ? x : constant$2(+x), treemap) : paddingTop; + }; + + treemap.paddingRight = function(x) { + return arguments.length ? (paddingRight = typeof x === "function" ? x : constant$2(+x), treemap) : paddingRight; + }; + + treemap.paddingBottom = function(x) { + return arguments.length ? (paddingBottom = typeof x === "function" ? x : constant$2(+x), treemap) : paddingBottom; + }; + + treemap.paddingLeft = function(x) { + return arguments.length ? (paddingLeft = typeof x === "function" ? x : constant$2(+x), treemap) : paddingLeft; + }; + + return treemap; +} + +function binary(parent, x0, y0, x1, y1) { + var nodes = parent.children, + i, n = nodes.length, + sum, sums = new Array(n + 1); + + for (sums[0] = sum = i = 0; i < n; ++i) { + sums[i + 1] = sum += nodes[i].value; + } + + partition(0, n, parent.value, x0, y0, x1, y1); + + function partition(i, j, value, x0, y0, x1, y1) { + if (i >= j - 1) { + var node = nodes[i]; + node.x0 = x0, node.y0 = y0; + node.x1 = x1, node.y1 = y1; + return; + } + + var valueOffset = sums[i], + valueTarget = (value / 2) + valueOffset, + k = i + 1, + hi = j - 1; + + while (k < hi) { + var mid = k + hi >>> 1; + if (sums[mid] < valueTarget) k = mid + 1; + else hi = mid; + } + + if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k; + + var valueLeft = sums[k] - valueOffset, + valueRight = value - valueLeft; + + if ((x1 - x0) > (y1 - y0)) { + var xk = value ? (x0 * valueRight + x1 * valueLeft) / value : x1; + partition(i, k, valueLeft, x0, y0, xk, y1); + partition(k, j, valueRight, xk, y0, x1, y1); + } else { + var yk = value ? (y0 * valueRight + y1 * valueLeft) / value : y1; + partition(i, k, valueLeft, x0, y0, x1, yk); + partition(k, j, valueRight, x0, yk, x1, y1); + } + } +} + +function sliceDice(parent, x0, y0, x1, y1) { + (parent.depth & 1 ? treemapSlice : treemapDice)(parent, x0, y0, x1, y1); +} + +var resquarify = (function custom(ratio) { + + function resquarify(parent, x0, y0, x1, y1) { + if ((rows = parent._squarify) && (rows.ratio === ratio)) { + var rows, + row, + nodes, + i, + j = -1, + n, + m = rows.length, + value = parent.value; + + while (++j < m) { + row = rows[j], nodes = row.children; + for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value; + if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += (y1 - y0) * row.value / value : y1); + else treemapSlice(row, x0, y0, value ? x0 += (x1 - x0) * row.value / value : x1, y1); + value -= row.value; + } + } else { + parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1); + rows.ratio = ratio; + } + } + + resquarify.ratio = function(x) { + return custom((x = +x) > 1 ? x : 1); + }; + + return resquarify; +})(phi); + +function area$1(polygon) { + var i = -1, + n = polygon.length, + a, + b = polygon[n - 1], + area = 0; + + while (++i < n) { + a = b; + b = polygon[i]; + area += a[1] * b[0] - a[0] * b[1]; + } + + return area / 2; +} + +function centroid(polygon) { + var i = -1, + n = polygon.length, + x = 0, + y = 0, + a, + b = polygon[n - 1], + c, + k = 0; + + while (++i < n) { + a = b; + b = polygon[i]; + k += c = a[0] * b[1] - b[0] * a[1]; + x += (a[0] + b[0]) * c; + y += (a[1] + b[1]) * c; + } + + return k *= 3, [x / k, y / k]; +} + +// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of +// the 3D cross product in a quadrant I Cartesian coordinate system (+x is +// right, +y is up). Returns a positive value if ABC is counter-clockwise, +// negative if clockwise, and zero if the points are collinear. +function cross$1(a, b, c) { + return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]); +} + +function lexicographicOrder(a, b) { + return a[0] - b[0] || a[1] - b[1]; +} + +// Computes the upper convex hull per the monotone chain algorithm. +// Assumes points.length >= 3, is sorted by x, unique in y. +// Returns an array of indices into points in left-to-right order. +function computeUpperHullIndexes(points) { + const n = points.length, + indexes = [0, 1]; + let size = 2, i; + + for (i = 2; i < n; ++i) { + while (size > 1 && cross$1(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size; + indexes[size++] = i; + } + + return indexes.slice(0, size); // remove popped points +} + +function hull(points) { + if ((n = points.length) < 3) return null; + + var i, + n, + sortedPoints = new Array(n), + flippedPoints = new Array(n); + + for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i]; + sortedPoints.sort(lexicographicOrder); + for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]]; + + var upperIndexes = computeUpperHullIndexes(sortedPoints), + lowerIndexes = computeUpperHullIndexes(flippedPoints); + + // Construct the hull polygon, removing possible duplicate endpoints. + var skipLeft = lowerIndexes[0] === upperIndexes[0], + skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1], + hull = []; + + // Add upper hull in right-to-l order. + // Then add lower hull in left-to-right order. + for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]); + for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]); + + return hull; +} + +function contains(polygon, point) { + var n = polygon.length, + p = polygon[n - 1], + x = point[0], y = point[1], + x0 = p[0], y0 = p[1], + x1, y1, + inside = false; + + for (var i = 0; i < n; ++i) { + p = polygon[i], x1 = p[0], y1 = p[1]; + if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside; + x0 = x1, y0 = y1; + } + + return inside; +} + +function length(polygon) { + var i = -1, + n = polygon.length, + b = polygon[n - 1], + xa, + ya, + xb = b[0], + yb = b[1], + perimeter = 0; + + while (++i < n) { + xa = xb; + ya = yb; + b = polygon[i]; + xb = b[0]; + yb = b[1]; + xa -= xb; + ya -= yb; + perimeter += Math.hypot(xa, ya); + } + + return perimeter; +} + +var defaultSource = Math.random; + +var uniform = (function sourceRandomUniform(source) { + function randomUniform(min, max) { + min = min == null ? 0 : +min; + max = max == null ? 1 : +max; + if (arguments.length === 1) max = min, min = 0; + else max -= min; + return function() { + return source() * max + min; + }; + } + + randomUniform.source = sourceRandomUniform; + + return randomUniform; +})(defaultSource); + +var int = (function sourceRandomInt(source) { + function randomInt(min, max) { + if (arguments.length < 2) max = min, min = 0; + min = Math.floor(min); + max = Math.floor(max) - min; + return function() { + return Math.floor(source() * max + min); + }; + } + + randomInt.source = sourceRandomInt; + + return randomInt; +})(defaultSource); + +var normal = (function sourceRandomNormal(source) { + function randomNormal(mu, sigma) { + var x, r; + mu = mu == null ? 0 : +mu; + sigma = sigma == null ? 1 : +sigma; + return function() { + var y; + + // If available, use the second previously-generated uniform random. + if (x != null) y = x, x = null; + + // Otherwise, generate a new x and y. + else do { + x = source() * 2 - 1; + y = source() * 2 - 1; + r = x * x + y * y; + } while (!r || r > 1); + + return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r); + }; + } + + randomNormal.source = sourceRandomNormal; + + return randomNormal; +})(defaultSource); + +var logNormal = (function sourceRandomLogNormal(source) { + var N = normal.source(source); + + function randomLogNormal() { + var randomNormal = N.apply(this, arguments); + return function() { + return Math.exp(randomNormal()); + }; + } + + randomLogNormal.source = sourceRandomLogNormal; + + return randomLogNormal; +})(defaultSource); + +var irwinHall = (function sourceRandomIrwinHall(source) { + function randomIrwinHall(n) { + if ((n = +n) <= 0) return () => 0; + return function() { + for (var sum = 0, i = n; i > 1; --i) sum += source(); + return sum + i * source(); + }; + } + + randomIrwinHall.source = sourceRandomIrwinHall; + + return randomIrwinHall; +})(defaultSource); + +var bates = (function sourceRandomBates(source) { + var I = irwinHall.source(source); + + function randomBates(n) { + // use limiting distribution at n === 0 + if ((n = +n) === 0) return source; + var randomIrwinHall = I(n); + return function() { + return randomIrwinHall() / n; + }; + } + + randomBates.source = sourceRandomBates; + + return randomBates; +})(defaultSource); + +var exponential = (function sourceRandomExponential(source) { + function randomExponential(lambda) { + return function() { + return -Math.log1p(-source()) / lambda; + }; + } + + randomExponential.source = sourceRandomExponential; + + return randomExponential; +})(defaultSource); + +var pareto = (function sourceRandomPareto(source) { + function randomPareto(alpha) { + if ((alpha = +alpha) < 0) throw new RangeError("invalid alpha"); + alpha = 1 / -alpha; + return function() { + return Math.pow(1 - source(), alpha); + }; + } + + randomPareto.source = sourceRandomPareto; + + return randomPareto; +})(defaultSource); + +var bernoulli = (function sourceRandomBernoulli(source) { + function randomBernoulli(p) { + if ((p = +p) < 0 || p > 1) throw new RangeError("invalid p"); + return function() { + return Math.floor(source() + p); + }; + } + + randomBernoulli.source = sourceRandomBernoulli; + + return randomBernoulli; +})(defaultSource); + +var geometric = (function sourceRandomGeometric(source) { + function randomGeometric(p) { + if ((p = +p) < 0 || p > 1) throw new RangeError("invalid p"); + if (p === 0) return () => Infinity; + if (p === 1) return () => 1; + p = Math.log1p(-p); + return function() { + return 1 + Math.floor(Math.log1p(-source()) / p); + }; + } + + randomGeometric.source = sourceRandomGeometric; + + return randomGeometric; +})(defaultSource); + +var gamma = (function sourceRandomGamma(source) { + var randomNormal = normal.source(source)(); + + function randomGamma(k, theta) { + if ((k = +k) < 0) throw new RangeError("invalid k"); + // degenerate distribution if k === 0 + if (k === 0) return () => 0; + theta = theta == null ? 1 : +theta; + // exponential distribution if k === 1 + if (k === 1) return () => -Math.log1p(-source()) * theta; + + var d = (k < 1 ? k + 1 : k) - 1 / 3, + c = 1 / (3 * Math.sqrt(d)), + multiplier = k < 1 ? () => Math.pow(source(), 1 / k) : () => 1; + return function() { + do { + do { + var x = randomNormal(), + v = 1 + c * x; + } while (v <= 0); + v *= v * v; + var u = 1 - source(); + } while (u >= 1 - 0.0331 * x * x * x * x && Math.log(u) >= 0.5 * x * x + d * (1 - v + Math.log(v))); + return d * v * multiplier() * theta; + }; + } + + randomGamma.source = sourceRandomGamma; + + return randomGamma; +})(defaultSource); + +var beta = (function sourceRandomBeta(source) { + var G = gamma.source(source); + + function randomBeta(alpha, beta) { + var X = G(alpha), + Y = G(beta); + return function() { + var x = X(); + return x === 0 ? 0 : x / (x + Y()); + }; + } + + randomBeta.source = sourceRandomBeta; + + return randomBeta; +})(defaultSource); + +var binomial = (function sourceRandomBinomial(source) { + var G = geometric.source(source), + B = beta.source(source); + + function randomBinomial(n, p) { + n = +n; + if ((p = +p) >= 1) return () => n; + if (p <= 0) return () => 0; + return function() { + var acc = 0, nn = n, pp = p; + while (nn * pp > 16 && nn * (1 - pp) > 16) { + var i = Math.floor((nn + 1) * pp), + y = B(i, nn - i + 1)(); + if (y <= pp) { + acc += i; + nn -= i; + pp = (pp - y) / (1 - y); + } else { + nn = i - 1; + pp /= y; + } + } + var sign = pp < 0.5, + pFinal = sign ? pp : 1 - pp, + g = G(pFinal); + for (var s = g(), k = 0; s <= nn; ++k) s += g(); + return acc + (sign ? k : nn - k); + }; + } + + randomBinomial.source = sourceRandomBinomial; + + return randomBinomial; +})(defaultSource); + +var weibull = (function sourceRandomWeibull(source) { + function randomWeibull(k, a, b) { + var outerFunc; + if ((k = +k) === 0) { + outerFunc = x => -Math.log(x); + } else { + k = 1 / k; + outerFunc = x => Math.pow(x, k); + } + a = a == null ? 0 : +a; + b = b == null ? 1 : +b; + return function() { + return a + b * outerFunc(-Math.log1p(-source())); + }; + } + + randomWeibull.source = sourceRandomWeibull; + + return randomWeibull; +})(defaultSource); + +var cauchy = (function sourceRandomCauchy(source) { + function randomCauchy(a, b) { + a = a == null ? 0 : +a; + b = b == null ? 1 : +b; + return function() { + return a + b * Math.tan(Math.PI * source()); + }; + } + + randomCauchy.source = sourceRandomCauchy; + + return randomCauchy; +})(defaultSource); + +var logistic = (function sourceRandomLogistic(source) { + function randomLogistic(a, b) { + a = a == null ? 0 : +a; + b = b == null ? 1 : +b; + return function() { + var u = source(); + return a + b * Math.log(u / (1 - u)); + }; + } + + randomLogistic.source = sourceRandomLogistic; + + return randomLogistic; +})(defaultSource); + +var poisson = (function sourceRandomPoisson(source) { + var G = gamma.source(source), + B = binomial.source(source); + + function randomPoisson(lambda) { + return function() { + var acc = 0, l = lambda; + while (l > 16) { + var n = Math.floor(0.875 * l), + t = G(n)(); + if (t > l) return acc + B(n - 1, l / t)(); + acc += n; + l -= t; + } + for (var s = -Math.log1p(-source()), k = 0; s <= l; ++k) s -= Math.log1p(-source()); + return acc + k; + }; + } + + randomPoisson.source = sourceRandomPoisson; + + return randomPoisson; +})(defaultSource); + +// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use +const mul = 0x19660D; +const inc = 0x3C6EF35F; +const eps = 1 / 0x100000000; + +function lcg(seed = Math.random()) { + let state = (0 <= seed && seed < 1 ? seed / eps : Math.abs(seed)) | 0; + return () => (state = mul * state + inc | 0, eps * (state >>> 0)); +} + +function initRange(domain, range) { + switch (arguments.length) { + case 0: break; + case 1: this.range(domain); break; + default: this.range(range).domain(domain); break; + } + return this; +} + +function initInterpolator(domain, interpolator) { + switch (arguments.length) { + case 0: break; + case 1: { + if (typeof domain === "function") this.interpolator(domain); + else this.range(domain); + break; + } + default: { + this.domain(domain); + if (typeof interpolator === "function") this.interpolator(interpolator); + else this.range(interpolator); + break; + } + } + return this; +} + +const implicit = Symbol("implicit"); + +function ordinal() { + var index = new InternMap(), + domain = [], + range = [], + unknown = implicit; + + function scale(d) { + let i = index.get(d); + if (i === undefined) { + if (unknown !== implicit) return unknown; + index.set(d, i = domain.push(d) - 1); + } + return range[i % range.length]; + } + + scale.domain = function(_) { + if (!arguments.length) return domain.slice(); + domain = [], index = new InternMap(); + for (const value of _) { + if (index.has(value)) continue; + index.set(value, domain.push(value) - 1); + } + return scale; + }; + + scale.range = function(_) { + return arguments.length ? (range = Array.from(_), scale) : range.slice(); + }; + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + scale.copy = function() { + return ordinal(domain, range).unknown(unknown); + }; + + initRange.apply(scale, arguments); + + return scale; +} + +function band() { + var scale = ordinal().unknown(undefined), + domain = scale.domain, + ordinalRange = scale.range, + r0 = 0, + r1 = 1, + step, + bandwidth, + round = false, + paddingInner = 0, + paddingOuter = 0, + align = 0.5; + + delete scale.unknown; + + function rescale() { + var n = domain().length, + reverse = r1 < r0, + start = reverse ? r1 : r0, + stop = reverse ? r0 : r1; + step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2); + if (round) step = Math.floor(step); + start += (stop - start - step * (n - paddingInner)) * align; + bandwidth = step * (1 - paddingInner); + if (round) start = Math.round(start), bandwidth = Math.round(bandwidth); + var values = range$2(n).map(function(i) { return start + step * i; }); + return ordinalRange(reverse ? values.reverse() : values); + } + + scale.domain = function(_) { + return arguments.length ? (domain(_), rescale()) : domain(); + }; + + scale.range = function(_) { + return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1]; + }; + + scale.rangeRound = function(_) { + return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale(); + }; + + scale.bandwidth = function() { + return bandwidth; + }; + + scale.step = function() { + return step; + }; + + scale.round = function(_) { + return arguments.length ? (round = !!_, rescale()) : round; + }; + + scale.padding = function(_) { + return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner; + }; + + scale.paddingInner = function(_) { + return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner; + }; + + scale.paddingOuter = function(_) { + return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter; + }; + + scale.align = function(_) { + return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align; + }; + + scale.copy = function() { + return band(domain(), [r0, r1]) + .round(round) + .paddingInner(paddingInner) + .paddingOuter(paddingOuter) + .align(align); + }; + + return initRange.apply(rescale(), arguments); +} + +function pointish(scale) { + var copy = scale.copy; + + scale.padding = scale.paddingOuter; + delete scale.paddingInner; + delete scale.paddingOuter; + + scale.copy = function() { + return pointish(copy()); + }; + + return scale; +} + +function point$4() { + return pointish(band.apply(null, arguments).paddingInner(1)); +} + +function constants(x) { + return function() { + return x; + }; +} + +function number$1(x) { + return +x; +} + +var unit = [0, 1]; + +function identity$3(x) { + return x; +} + +function normalize(a, b) { + return (b -= (a = +a)) + ? function(x) { return (x - a) / b; } + : constants(isNaN(b) ? NaN : 0.5); +} + +function clamper(a, b) { + var t; + if (a > b) t = a, a = b, b = t; + return function(x) { return Math.max(a, Math.min(b, x)); }; +} + +// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1]. +// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b]. +function bimap(domain, range, interpolate) { + var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1]; + if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0); + else d0 = normalize(d0, d1), r0 = interpolate(r0, r1); + return function(x) { return r0(d0(x)); }; +} + +function polymap(domain, range, interpolate) { + var j = Math.min(domain.length, range.length) - 1, + d = new Array(j), + r = new Array(j), + i = -1; + + // Reverse descending domains. + if (domain[j] < domain[0]) { + domain = domain.slice().reverse(); + range = range.slice().reverse(); + } + + while (++i < j) { + d[i] = normalize(domain[i], domain[i + 1]); + r[i] = interpolate(range[i], range[i + 1]); + } + + return function(x) { + var i = bisect(domain, x, 1, j) - 1; + return r[i](d[i](x)); + }; +} + +function copy$1(source, target) { + return target + .domain(source.domain()) + .range(source.range()) + .interpolate(source.interpolate()) + .clamp(source.clamp()) + .unknown(source.unknown()); +} + +function transformer$2() { + var domain = unit, + range = unit, + interpolate = interpolate$2, + transform, + untransform, + unknown, + clamp = identity$3, + piecewise, + output, + input; + + function rescale() { + var n = Math.min(domain.length, range.length); + if (clamp !== identity$3) clamp = clamper(domain[0], domain[n - 1]); + piecewise = n > 2 ? polymap : bimap; + output = input = null; + return scale; + } + + function scale(x) { + return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x))); + } + + scale.invert = function(y) { + return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y))); + }; + + scale.domain = function(_) { + return arguments.length ? (domain = Array.from(_, number$1), rescale()) : domain.slice(); + }; + + scale.range = function(_) { + return arguments.length ? (range = Array.from(_), rescale()) : range.slice(); + }; + + scale.rangeRound = function(_) { + return range = Array.from(_), interpolate = interpolateRound, rescale(); + }; + + scale.clamp = function(_) { + return arguments.length ? (clamp = _ ? true : identity$3, rescale()) : clamp !== identity$3; + }; + + scale.interpolate = function(_) { + return arguments.length ? (interpolate = _, rescale()) : interpolate; + }; + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + return function(t, u) { + transform = t, untransform = u; + return rescale(); + }; +} + +function continuous() { + return transformer$2()(identity$3, identity$3); +} + +function tickFormat(start, stop, count, specifier) { + var step = tickStep(start, stop, count), + precision; + specifier = formatSpecifier(specifier == null ? ",f" : specifier); + switch (specifier.type) { + case "s": { + var value = Math.max(Math.abs(start), Math.abs(stop)); + if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision; + return exports.formatPrefix(specifier, value); + } + case "": + case "e": + case "g": + case "p": + case "r": { + if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === "e"); + break; + } + case "f": + case "%": { + if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === "%") * 2; + break; + } + } + return exports.format(specifier); +} + +function linearish(scale) { + var domain = scale.domain; + + scale.ticks = function(count) { + var d = domain(); + return ticks(d[0], d[d.length - 1], count == null ? 10 : count); + }; + + scale.tickFormat = function(count, specifier) { + var d = domain(); + return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier); + }; + + scale.nice = function(count) { + if (count == null) count = 10; + + var d = domain(); + var i0 = 0; + var i1 = d.length - 1; + var start = d[i0]; + var stop = d[i1]; + var prestep; + var step; + var maxIter = 10; + + if (stop < start) { + step = start, start = stop, stop = step; + step = i0, i0 = i1, i1 = step; + } + + while (maxIter-- > 0) { + step = tickIncrement(start, stop, count); + if (step === prestep) { + d[i0] = start; + d[i1] = stop; + return domain(d); + } else if (step > 0) { + start = Math.floor(start / step) * step; + stop = Math.ceil(stop / step) * step; + } else if (step < 0) { + start = Math.ceil(start * step) / step; + stop = Math.floor(stop * step) / step; + } else { + break; + } + prestep = step; + } + + return scale; + }; + + return scale; +} + +function linear() { + var scale = continuous(); + + scale.copy = function() { + return copy$1(scale, linear()); + }; + + initRange.apply(scale, arguments); + + return linearish(scale); +} + +function identity$2(domain) { + var unknown; + + function scale(x) { + return x == null || isNaN(x = +x) ? unknown : x; + } + + scale.invert = scale; + + scale.domain = scale.range = function(_) { + return arguments.length ? (domain = Array.from(_, number$1), scale) : domain.slice(); + }; + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + scale.copy = function() { + return identity$2(domain).unknown(unknown); + }; + + domain = arguments.length ? Array.from(domain, number$1) : [0, 1]; + + return linearish(scale); +} + +function nice(domain, interval) { + domain = domain.slice(); + + var i0 = 0, + i1 = domain.length - 1, + x0 = domain[i0], + x1 = domain[i1], + t; + + if (x1 < x0) { + t = i0, i0 = i1, i1 = t; + t = x0, x0 = x1, x1 = t; + } + + domain[i0] = interval.floor(x0); + domain[i1] = interval.ceil(x1); + return domain; +} + +function transformLog(x) { + return Math.log(x); +} + +function transformExp(x) { + return Math.exp(x); +} + +function transformLogn(x) { + return -Math.log(-x); +} + +function transformExpn(x) { + return -Math.exp(-x); +} + +function pow10(x) { + return isFinite(x) ? +("1e" + x) : x < 0 ? 0 : x; +} + +function powp(base) { + return base === 10 ? pow10 + : base === Math.E ? Math.exp + : x => Math.pow(base, x); +} + +function logp(base) { + return base === Math.E ? Math.log + : base === 10 && Math.log10 + || base === 2 && Math.log2 + || (base = Math.log(base), x => Math.log(x) / base); +} + +function reflect(f) { + return (x, k) => -f(-x, k); +} + +function loggish(transform) { + const scale = transform(transformLog, transformExp); + const domain = scale.domain; + let base = 10; + let logs; + let pows; + + function rescale() { + logs = logp(base), pows = powp(base); + if (domain()[0] < 0) { + logs = reflect(logs), pows = reflect(pows); + transform(transformLogn, transformExpn); + } else { + transform(transformLog, transformExp); + } + return scale; + } + + scale.base = function(_) { + return arguments.length ? (base = +_, rescale()) : base; + }; + + scale.domain = function(_) { + return arguments.length ? (domain(_), rescale()) : domain(); + }; + + scale.ticks = count => { + const d = domain(); + let u = d[0]; + let v = d[d.length - 1]; + const r = v < u; + + if (r) ([u, v] = [v, u]); + + let i = logs(u); + let j = logs(v); + let k; + let t; + const n = count == null ? 10 : +count; + let z = []; + + if (!(base % 1) && j - i < n) { + i = Math.floor(i), j = Math.ceil(j); + if (u > 0) for (; i <= j; ++i) { + for (k = 1; k < base; ++k) { + t = i < 0 ? k / pows(-i) : k * pows(i); + if (t < u) continue; + if (t > v) break; + z.push(t); + } + } else for (; i <= j; ++i) { + for (k = base - 1; k >= 1; --k) { + t = i > 0 ? k / pows(-i) : k * pows(i); + if (t < u) continue; + if (t > v) break; + z.push(t); + } + } + if (z.length * 2 < n) z = ticks(u, v, n); + } else { + z = ticks(i, j, Math.min(j - i, n)).map(pows); + } + return r ? z.reverse() : z; + }; + + scale.tickFormat = (count, specifier) => { + if (count == null) count = 10; + if (specifier == null) specifier = base === 10 ? "s" : ","; + if (typeof specifier !== "function") { + if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) specifier.trim = true; + specifier = exports.format(specifier); + } + if (count === Infinity) return specifier; + const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate? + return d => { + let i = d / pows(Math.round(logs(d))); + if (i * base < base - 0.5) i *= base; + return i <= k ? specifier(d) : ""; + }; + }; + + scale.nice = () => { + return domain(nice(domain(), { + floor: x => pows(Math.floor(logs(x))), + ceil: x => pows(Math.ceil(logs(x))) + })); + }; + + return scale; +} + +function log() { + const scale = loggish(transformer$2()).domain([1, 10]); + scale.copy = () => copy$1(scale, log()).base(scale.base()); + initRange.apply(scale, arguments); + return scale; +} + +function transformSymlog(c) { + return function(x) { + return Math.sign(x) * Math.log1p(Math.abs(x / c)); + }; +} + +function transformSymexp(c) { + return function(x) { + return Math.sign(x) * Math.expm1(Math.abs(x)) * c; + }; +} + +function symlogish(transform) { + var c = 1, scale = transform(transformSymlog(c), transformSymexp(c)); + + scale.constant = function(_) { + return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c; + }; + + return linearish(scale); +} + +function symlog() { + var scale = symlogish(transformer$2()); + + scale.copy = function() { + return copy$1(scale, symlog()).constant(scale.constant()); + }; + + return initRange.apply(scale, arguments); +} + +function transformPow(exponent) { + return function(x) { + return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent); + }; +} + +function transformSqrt(x) { + return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x); +} + +function transformSquare(x) { + return x < 0 ? -x * x : x * x; +} + +function powish(transform) { + var scale = transform(identity$3, identity$3), + exponent = 1; + + function rescale() { + return exponent === 1 ? transform(identity$3, identity$3) + : exponent === 0.5 ? transform(transformSqrt, transformSquare) + : transform(transformPow(exponent), transformPow(1 / exponent)); + } + + scale.exponent = function(_) { + return arguments.length ? (exponent = +_, rescale()) : exponent; + }; + + return linearish(scale); +} + +function pow() { + var scale = powish(transformer$2()); + + scale.copy = function() { + return copy$1(scale, pow()).exponent(scale.exponent()); + }; + + initRange.apply(scale, arguments); + + return scale; +} + +function sqrt$1() { + return pow.apply(null, arguments).exponent(0.5); +} + +function square$1(x) { + return Math.sign(x) * x * x; +} + +function unsquare(x) { + return Math.sign(x) * Math.sqrt(Math.abs(x)); +} + +function radial() { + var squared = continuous(), + range = [0, 1], + round = false, + unknown; + + function scale(x) { + var y = unsquare(squared(x)); + return isNaN(y) ? unknown : round ? Math.round(y) : y; + } + + scale.invert = function(y) { + return squared.invert(square$1(y)); + }; + + scale.domain = function(_) { + return arguments.length ? (squared.domain(_), scale) : squared.domain(); + }; + + scale.range = function(_) { + return arguments.length ? (squared.range((range = Array.from(_, number$1)).map(square$1)), scale) : range.slice(); + }; + + scale.rangeRound = function(_) { + return scale.range(_).round(true); + }; + + scale.round = function(_) { + return arguments.length ? (round = !!_, scale) : round; + }; + + scale.clamp = function(_) { + return arguments.length ? (squared.clamp(_), scale) : squared.clamp(); + }; + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + scale.copy = function() { + return radial(squared.domain(), range) + .round(round) + .clamp(squared.clamp()) + .unknown(unknown); + }; + + initRange.apply(scale, arguments); + + return linearish(scale); +} + +function quantile() { + var domain = [], + range = [], + thresholds = [], + unknown; + + function rescale() { + var i = 0, n = Math.max(1, range.length); + thresholds = new Array(n - 1); + while (++i < n) thresholds[i - 1] = quantileSorted(domain, i / n); + return scale; + } + + function scale(x) { + return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)]; + } + + scale.invertExtent = function(y) { + var i = range.indexOf(y); + return i < 0 ? [NaN, NaN] : [ + i > 0 ? thresholds[i - 1] : domain[0], + i < thresholds.length ? thresholds[i] : domain[domain.length - 1] + ]; + }; + + scale.domain = function(_) { + if (!arguments.length) return domain.slice(); + domain = []; + for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d); + domain.sort(ascending$3); + return rescale(); + }; + + scale.range = function(_) { + return arguments.length ? (range = Array.from(_), rescale()) : range.slice(); + }; + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + scale.quantiles = function() { + return thresholds.slice(); + }; + + scale.copy = function() { + return quantile() + .domain(domain) + .range(range) + .unknown(unknown); + }; + + return initRange.apply(scale, arguments); +} + +function quantize() { + var x0 = 0, + x1 = 1, + n = 1, + domain = [0.5], + range = [0, 1], + unknown; + + function scale(x) { + return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown; + } + + function rescale() { + var i = -1; + domain = new Array(n); + while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1); + return scale; + } + + scale.domain = function(_) { + return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1]; + }; + + scale.range = function(_) { + return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice(); + }; + + scale.invertExtent = function(y) { + var i = range.indexOf(y); + return i < 0 ? [NaN, NaN] + : i < 1 ? [x0, domain[0]] + : i >= n ? [domain[n - 1], x1] + : [domain[i - 1], domain[i]]; + }; + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : scale; + }; + + scale.thresholds = function() { + return domain.slice(); + }; + + scale.copy = function() { + return quantize() + .domain([x0, x1]) + .range(range) + .unknown(unknown); + }; + + return initRange.apply(linearish(scale), arguments); +} + +function threshold() { + var domain = [0.5], + range = [0, 1], + unknown, + n = 1; + + function scale(x) { + return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown; + } + + scale.domain = function(_) { + return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice(); + }; + + scale.range = function(_) { + return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice(); + }; + + scale.invertExtent = function(y) { + var i = range.indexOf(y); + return [domain[i - 1], domain[i]]; + }; + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + scale.copy = function() { + return threshold() + .domain(domain) + .range(range) + .unknown(unknown); + }; + + return initRange.apply(scale, arguments); +} + +const t0 = new Date, t1 = new Date; + +function timeInterval(floori, offseti, count, field) { + + function interval(date) { + return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date; + } + + interval.floor = (date) => { + return floori(date = new Date(+date)), date; + }; + + interval.ceil = (date) => { + return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date; + }; + + interval.round = (date) => { + const d0 = interval(date), d1 = interval.ceil(date); + return date - d0 < d1 - date ? d0 : d1; + }; + + interval.offset = (date, step) => { + return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date; + }; + + interval.range = (start, stop, step) => { + const range = []; + start = interval.ceil(start); + step = step == null ? 1 : Math.floor(step); + if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date + let previous; + do range.push(previous = new Date(+start)), offseti(start, step), floori(start); + while (previous < start && start < stop); + return range; + }; + + interval.filter = (test) => { + return timeInterval((date) => { + if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1); + }, (date, step) => { + if (date >= date) { + if (step < 0) while (++step <= 0) { + while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty + } else while (--step >= 0) { + while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty + } + } + }); + }; + + if (count) { + interval.count = (start, end) => { + t0.setTime(+start), t1.setTime(+end); + floori(t0), floori(t1); + return Math.floor(count(t0, t1)); + }; + + interval.every = (step) => { + step = Math.floor(step); + return !isFinite(step) || !(step > 0) ? null + : !(step > 1) ? interval + : interval.filter(field + ? (d) => field(d) % step === 0 + : (d) => interval.count(0, d) % step === 0); + }; + } + + return interval; +} + +const millisecond = timeInterval(() => { + // noop +}, (date, step) => { + date.setTime(+date + step); +}, (start, end) => { + return end - start; +}); + +// An optimized implementation for this simple case. +millisecond.every = (k) => { + k = Math.floor(k); + if (!isFinite(k) || !(k > 0)) return null; + if (!(k > 1)) return millisecond; + return timeInterval((date) => { + date.setTime(Math.floor(date / k) * k); + }, (date, step) => { + date.setTime(+date + step * k); + }, (start, end) => { + return (end - start) / k; + }); +}; + +const milliseconds = millisecond.range; + +const durationSecond = 1000; +const durationMinute = durationSecond * 60; +const durationHour = durationMinute * 60; +const durationDay = durationHour * 24; +const durationWeek = durationDay * 7; +const durationMonth = durationDay * 30; +const durationYear = durationDay * 365; + +const second = timeInterval((date) => { + date.setTime(date - date.getMilliseconds()); +}, (date, step) => { + date.setTime(+date + step * durationSecond); +}, (start, end) => { + return (end - start) / durationSecond; +}, (date) => { + return date.getUTCSeconds(); +}); + +const seconds = second.range; + +const timeMinute = timeInterval((date) => { + date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond); +}, (date, step) => { + date.setTime(+date + step * durationMinute); +}, (start, end) => { + return (end - start) / durationMinute; +}, (date) => { + return date.getMinutes(); +}); + +const timeMinutes = timeMinute.range; + +const utcMinute = timeInterval((date) => { + date.setUTCSeconds(0, 0); +}, (date, step) => { + date.setTime(+date + step * durationMinute); +}, (start, end) => { + return (end - start) / durationMinute; +}, (date) => { + return date.getUTCMinutes(); +}); + +const utcMinutes = utcMinute.range; + +const timeHour = timeInterval((date) => { + date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute); +}, (date, step) => { + date.setTime(+date + step * durationHour); +}, (start, end) => { + return (end - start) / durationHour; +}, (date) => { + return date.getHours(); +}); + +const timeHours = timeHour.range; + +const utcHour = timeInterval((date) => { + date.setUTCMinutes(0, 0, 0); +}, (date, step) => { + date.setTime(+date + step * durationHour); +}, (start, end) => { + return (end - start) / durationHour; +}, (date) => { + return date.getUTCHours(); +}); + +const utcHours = utcHour.range; + +const timeDay = timeInterval( + date => date.setHours(0, 0, 0, 0), + (date, step) => date.setDate(date.getDate() + step), + (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay, + date => date.getDate() - 1 +); + +const timeDays = timeDay.range; + +const utcDay = timeInterval((date) => { + date.setUTCHours(0, 0, 0, 0); +}, (date, step) => { + date.setUTCDate(date.getUTCDate() + step); +}, (start, end) => { + return (end - start) / durationDay; +}, (date) => { + return date.getUTCDate() - 1; +}); + +const utcDays = utcDay.range; + +const unixDay = timeInterval((date) => { + date.setUTCHours(0, 0, 0, 0); +}, (date, step) => { + date.setUTCDate(date.getUTCDate() + step); +}, (start, end) => { + return (end - start) / durationDay; +}, (date) => { + return Math.floor(date / durationDay); +}); + +const unixDays = unixDay.range; + +function timeWeekday(i) { + return timeInterval((date) => { + date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7); + date.setHours(0, 0, 0, 0); + }, (date, step) => { + date.setDate(date.getDate() + step * 7); + }, (start, end) => { + return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek; + }); +} + +const timeSunday = timeWeekday(0); +const timeMonday = timeWeekday(1); +const timeTuesday = timeWeekday(2); +const timeWednesday = timeWeekday(3); +const timeThursday = timeWeekday(4); +const timeFriday = timeWeekday(5); +const timeSaturday = timeWeekday(6); + +const timeSundays = timeSunday.range; +const timeMondays = timeMonday.range; +const timeTuesdays = timeTuesday.range; +const timeWednesdays = timeWednesday.range; +const timeThursdays = timeThursday.range; +const timeFridays = timeFriday.range; +const timeSaturdays = timeSaturday.range; + +function utcWeekday(i) { + return timeInterval((date) => { + date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7); + date.setUTCHours(0, 0, 0, 0); + }, (date, step) => { + date.setUTCDate(date.getUTCDate() + step * 7); + }, (start, end) => { + return (end - start) / durationWeek; + }); +} + +const utcSunday = utcWeekday(0); +const utcMonday = utcWeekday(1); +const utcTuesday = utcWeekday(2); +const utcWednesday = utcWeekday(3); +const utcThursday = utcWeekday(4); +const utcFriday = utcWeekday(5); +const utcSaturday = utcWeekday(6); + +const utcSundays = utcSunday.range; +const utcMondays = utcMonday.range; +const utcTuesdays = utcTuesday.range; +const utcWednesdays = utcWednesday.range; +const utcThursdays = utcThursday.range; +const utcFridays = utcFriday.range; +const utcSaturdays = utcSaturday.range; + +const timeMonth = timeInterval((date) => { + date.setDate(1); + date.setHours(0, 0, 0, 0); +}, (date, step) => { + date.setMonth(date.getMonth() + step); +}, (start, end) => { + return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12; +}, (date) => { + return date.getMonth(); +}); + +const timeMonths = timeMonth.range; + +const utcMonth = timeInterval((date) => { + date.setUTCDate(1); + date.setUTCHours(0, 0, 0, 0); +}, (date, step) => { + date.setUTCMonth(date.getUTCMonth() + step); +}, (start, end) => { + return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12; +}, (date) => { + return date.getUTCMonth(); +}); + +const utcMonths = utcMonth.range; + +const timeYear = timeInterval((date) => { + date.setMonth(0, 1); + date.setHours(0, 0, 0, 0); +}, (date, step) => { + date.setFullYear(date.getFullYear() + step); +}, (start, end) => { + return end.getFullYear() - start.getFullYear(); +}, (date) => { + return date.getFullYear(); +}); + +// An optimized implementation for this simple case. +timeYear.every = (k) => { + return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => { + date.setFullYear(Math.floor(date.getFullYear() / k) * k); + date.setMonth(0, 1); + date.setHours(0, 0, 0, 0); + }, (date, step) => { + date.setFullYear(date.getFullYear() + step * k); + }); +}; + +const timeYears = timeYear.range; + +const utcYear = timeInterval((date) => { + date.setUTCMonth(0, 1); + date.setUTCHours(0, 0, 0, 0); +}, (date, step) => { + date.setUTCFullYear(date.getUTCFullYear() + step); +}, (start, end) => { + return end.getUTCFullYear() - start.getUTCFullYear(); +}, (date) => { + return date.getUTCFullYear(); +}); + +// An optimized implementation for this simple case. +utcYear.every = (k) => { + return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => { + date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k); + date.setUTCMonth(0, 1); + date.setUTCHours(0, 0, 0, 0); + }, (date, step) => { + date.setUTCFullYear(date.getUTCFullYear() + step * k); + }); +}; + +const utcYears = utcYear.range; + +function ticker(year, month, week, day, hour, minute) { + + const tickIntervals = [ + [second, 1, durationSecond], + [second, 5, 5 * durationSecond], + [second, 15, 15 * durationSecond], + [second, 30, 30 * durationSecond], + [minute, 1, durationMinute], + [minute, 5, 5 * durationMinute], + [minute, 15, 15 * durationMinute], + [minute, 30, 30 * durationMinute], + [ hour, 1, durationHour ], + [ hour, 3, 3 * durationHour ], + [ hour, 6, 6 * durationHour ], + [ hour, 12, 12 * durationHour ], + [ day, 1, durationDay ], + [ day, 2, 2 * durationDay ], + [ week, 1, durationWeek ], + [ month, 1, durationMonth ], + [ month, 3, 3 * durationMonth ], + [ year, 1, durationYear ] + ]; + + function ticks(start, stop, count) { + const reverse = stop < start; + if (reverse) [start, stop] = [stop, start]; + const interval = count && typeof count.range === "function" ? count : tickInterval(start, stop, count); + const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop + return reverse ? ticks.reverse() : ticks; + } + + function tickInterval(start, stop, count) { + const target = Math.abs(stop - start) / count; + const i = bisector(([,, step]) => step).right(tickIntervals, target); + if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count)); + if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1)); + const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i]; + return t.every(step); + } + + return [ticks, tickInterval]; +} + +const [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute); +const [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute); + +function localDate(d) { + if (0 <= d.y && d.y < 100) { + var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L); + date.setFullYear(d.y); + return date; + } + return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L); +} + +function utcDate(d) { + if (0 <= d.y && d.y < 100) { + var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L)); + date.setUTCFullYear(d.y); + return date; + } + return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L)); +} + +function newDate(y, m, d) { + return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0}; +} + +function formatLocale(locale) { + var locale_dateTime = locale.dateTime, + locale_date = locale.date, + locale_time = locale.time, + locale_periods = locale.periods, + locale_weekdays = locale.days, + locale_shortWeekdays = locale.shortDays, + locale_months = locale.months, + locale_shortMonths = locale.shortMonths; + + var periodRe = formatRe(locale_periods), + periodLookup = formatLookup(locale_periods), + weekdayRe = formatRe(locale_weekdays), + weekdayLookup = formatLookup(locale_weekdays), + shortWeekdayRe = formatRe(locale_shortWeekdays), + shortWeekdayLookup = formatLookup(locale_shortWeekdays), + monthRe = formatRe(locale_months), + monthLookup = formatLookup(locale_months), + shortMonthRe = formatRe(locale_shortMonths), + shortMonthLookup = formatLookup(locale_shortMonths); + + var formats = { + "a": formatShortWeekday, + "A": formatWeekday, + "b": formatShortMonth, + "B": formatMonth, + "c": null, + "d": formatDayOfMonth, + "e": formatDayOfMonth, + "f": formatMicroseconds, + "g": formatYearISO, + "G": formatFullYearISO, + "H": formatHour24, + "I": formatHour12, + "j": formatDayOfYear, + "L": formatMilliseconds, + "m": formatMonthNumber, + "M": formatMinutes, + "p": formatPeriod, + "q": formatQuarter, + "Q": formatUnixTimestamp, + "s": formatUnixTimestampSeconds, + "S": formatSeconds, + "u": formatWeekdayNumberMonday, + "U": formatWeekNumberSunday, + "V": formatWeekNumberISO, + "w": formatWeekdayNumberSunday, + "W": formatWeekNumberMonday, + "x": null, + "X": null, + "y": formatYear, + "Y": formatFullYear, + "Z": formatZone, + "%": formatLiteralPercent + }; + + var utcFormats = { + "a": formatUTCShortWeekday, + "A": formatUTCWeekday, + "b": formatUTCShortMonth, + "B": formatUTCMonth, + "c": null, + "d": formatUTCDayOfMonth, + "e": formatUTCDayOfMonth, + "f": formatUTCMicroseconds, + "g": formatUTCYearISO, + "G": formatUTCFullYearISO, + "H": formatUTCHour24, + "I": formatUTCHour12, + "j": formatUTCDayOfYear, + "L": formatUTCMilliseconds, + "m": formatUTCMonthNumber, + "M": formatUTCMinutes, + "p": formatUTCPeriod, + "q": formatUTCQuarter, + "Q": formatUnixTimestamp, + "s": formatUnixTimestampSeconds, + "S": formatUTCSeconds, + "u": formatUTCWeekdayNumberMonday, + "U": formatUTCWeekNumberSunday, + "V": formatUTCWeekNumberISO, + "w": formatUTCWeekdayNumberSunday, + "W": formatUTCWeekNumberMonday, + "x": null, + "X": null, + "y": formatUTCYear, + "Y": formatUTCFullYear, + "Z": formatUTCZone, + "%": formatLiteralPercent + }; + + var parses = { + "a": parseShortWeekday, + "A": parseWeekday, + "b": parseShortMonth, + "B": parseMonth, + "c": parseLocaleDateTime, + "d": parseDayOfMonth, + "e": parseDayOfMonth, + "f": parseMicroseconds, + "g": parseYear, + "G": parseFullYear, + "H": parseHour24, + "I": parseHour24, + "j": parseDayOfYear, + "L": parseMilliseconds, + "m": parseMonthNumber, + "M": parseMinutes, + "p": parsePeriod, + "q": parseQuarter, + "Q": parseUnixTimestamp, + "s": parseUnixTimestampSeconds, + "S": parseSeconds, + "u": parseWeekdayNumberMonday, + "U": parseWeekNumberSunday, + "V": parseWeekNumberISO, + "w": parseWeekdayNumberSunday, + "W": parseWeekNumberMonday, + "x": parseLocaleDate, + "X": parseLocaleTime, + "y": parseYear, + "Y": parseFullYear, + "Z": parseZone, + "%": parseLiteralPercent + }; + + // These recursive directive definitions must be deferred. + formats.x = newFormat(locale_date, formats); + formats.X = newFormat(locale_time, formats); + formats.c = newFormat(locale_dateTime, formats); + utcFormats.x = newFormat(locale_date, utcFormats); + utcFormats.X = newFormat(locale_time, utcFormats); + utcFormats.c = newFormat(locale_dateTime, utcFormats); + + function newFormat(specifier, formats) { + return function(date) { + var string = [], + i = -1, + j = 0, + n = specifier.length, + c, + pad, + format; + + if (!(date instanceof Date)) date = new Date(+date); + + while (++i < n) { + if (specifier.charCodeAt(i) === 37) { + string.push(specifier.slice(j, i)); + if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i); + else pad = c === "e" ? " " : "0"; + if (format = formats[c]) c = format(date, pad); + string.push(c); + j = i + 1; + } + } + + string.push(specifier.slice(j, i)); + return string.join(""); + }; + } + + function newParse(specifier, Z) { + return function(string) { + var d = newDate(1900, undefined, 1), + i = parseSpecifier(d, specifier, string += "", 0), + week, day; + if (i != string.length) return null; + + // If a UNIX timestamp is specified, return it. + if ("Q" in d) return new Date(d.Q); + if ("s" in d) return new Date(d.s * 1000 + ("L" in d ? d.L : 0)); + + // If this is utcParse, never use the local timezone. + if (Z && !("Z" in d)) d.Z = 0; + + // The am-pm flag is 0 for AM, and 1 for PM. + if ("p" in d) d.H = d.H % 12 + d.p * 12; + + // If the month was not specified, inherit from the quarter. + if (d.m === undefined) d.m = "q" in d ? d.q : 0; + + // Convert day-of-week and week-of-year to day-of-year. + if ("V" in d) { + if (d.V < 1 || d.V > 53) return null; + if (!("w" in d)) d.w = 1; + if ("Z" in d) { + week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay(); + week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week); + week = utcDay.offset(week, (d.V - 1) * 7); + d.y = week.getUTCFullYear(); + d.m = week.getUTCMonth(); + d.d = week.getUTCDate() + (d.w + 6) % 7; + } else { + week = localDate(newDate(d.y, 0, 1)), day = week.getDay(); + week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week); + week = timeDay.offset(week, (d.V - 1) * 7); + d.y = week.getFullYear(); + d.m = week.getMonth(); + d.d = week.getDate() + (d.w + 6) % 7; + } + } else if ("W" in d || "U" in d) { + if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0; + day = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay(); + d.m = 0; + d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7; + } + + // If a time zone is specified, all fields are interpreted as UTC and then + // offset according to the specified time zone. + if ("Z" in d) { + d.H += d.Z / 100 | 0; + d.M += d.Z % 100; + return utcDate(d); + } + + // Otherwise, all fields are in local time. + return localDate(d); + }; + } + + function parseSpecifier(d, specifier, string, j) { + var i = 0, + n = specifier.length, + m = string.length, + c, + parse; + + while (i < n) { + if (j >= m) return -1; + c = specifier.charCodeAt(i++); + if (c === 37) { + c = specifier.charAt(i++); + parse = parses[c in pads ? specifier.charAt(i++) : c]; + if (!parse || ((j = parse(d, string, j)) < 0)) return -1; + } else if (c != string.charCodeAt(j++)) { + return -1; + } + } + + return j; + } + + function parsePeriod(d, string, i) { + var n = periodRe.exec(string.slice(i)); + return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + + function parseShortWeekday(d, string, i) { + var n = shortWeekdayRe.exec(string.slice(i)); + return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + + function parseWeekday(d, string, i) { + var n = weekdayRe.exec(string.slice(i)); + return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + + function parseShortMonth(d, string, i) { + var n = shortMonthRe.exec(string.slice(i)); + return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + + function parseMonth(d, string, i) { + var n = monthRe.exec(string.slice(i)); + return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + + function parseLocaleDateTime(d, string, i) { + return parseSpecifier(d, locale_dateTime, string, i); + } + + function parseLocaleDate(d, string, i) { + return parseSpecifier(d, locale_date, string, i); + } + + function parseLocaleTime(d, string, i) { + return parseSpecifier(d, locale_time, string, i); + } + + function formatShortWeekday(d) { + return locale_shortWeekdays[d.getDay()]; + } + + function formatWeekday(d) { + return locale_weekdays[d.getDay()]; + } + + function formatShortMonth(d) { + return locale_shortMonths[d.getMonth()]; + } + + function formatMonth(d) { + return locale_months[d.getMonth()]; + } + + function formatPeriod(d) { + return locale_periods[+(d.getHours() >= 12)]; + } + + function formatQuarter(d) { + return 1 + ~~(d.getMonth() / 3); + } + + function formatUTCShortWeekday(d) { + return locale_shortWeekdays[d.getUTCDay()]; + } + + function formatUTCWeekday(d) { + return locale_weekdays[d.getUTCDay()]; + } + + function formatUTCShortMonth(d) { + return locale_shortMonths[d.getUTCMonth()]; + } + + function formatUTCMonth(d) { + return locale_months[d.getUTCMonth()]; + } + + function formatUTCPeriod(d) { + return locale_periods[+(d.getUTCHours() >= 12)]; + } + + function formatUTCQuarter(d) { + return 1 + ~~(d.getUTCMonth() / 3); + } + + return { + format: function(specifier) { + var f = newFormat(specifier += "", formats); + f.toString = function() { return specifier; }; + return f; + }, + parse: function(specifier) { + var p = newParse(specifier += "", false); + p.toString = function() { return specifier; }; + return p; + }, + utcFormat: function(specifier) { + var f = newFormat(specifier += "", utcFormats); + f.toString = function() { return specifier; }; + return f; + }, + utcParse: function(specifier) { + var p = newParse(specifier += "", true); + p.toString = function() { return specifier; }; + return p; + } + }; +} + +var pads = {"-": "", "_": " ", "0": "0"}, + numberRe = /^\s*\d+/, // note: ignores next directive + percentRe = /^%/, + requoteRe = /[\\^$*+?|[\]().{}]/g; + +function pad(value, fill, width) { + var sign = value < 0 ? "-" : "", + string = (sign ? -value : value) + "", + length = string.length; + return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string); +} + +function requote(s) { + return s.replace(requoteRe, "\\$&"); +} + +function formatRe(names) { + return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i"); +} + +function formatLookup(names) { + return new Map(names.map((name, i) => [name.toLowerCase(), i])); +} + +function parseWeekdayNumberSunday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 1)); + return n ? (d.w = +n[0], i + n[0].length) : -1; +} + +function parseWeekdayNumberMonday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 1)); + return n ? (d.u = +n[0], i + n[0].length) : -1; +} + +function parseWeekNumberSunday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.U = +n[0], i + n[0].length) : -1; +} + +function parseWeekNumberISO(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.V = +n[0], i + n[0].length) : -1; +} + +function parseWeekNumberMonday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.W = +n[0], i + n[0].length) : -1; +} + +function parseFullYear(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 4)); + return n ? (d.y = +n[0], i + n[0].length) : -1; +} + +function parseYear(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1; +} + +function parseZone(d, string, i) { + var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6)); + return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1; +} + +function parseQuarter(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 1)); + return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1; +} + +function parseMonthNumber(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.m = n[0] - 1, i + n[0].length) : -1; +} + +function parseDayOfMonth(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.d = +n[0], i + n[0].length) : -1; +} + +function parseDayOfYear(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 3)); + return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1; +} + +function parseHour24(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.H = +n[0], i + n[0].length) : -1; +} + +function parseMinutes(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.M = +n[0], i + n[0].length) : -1; +} + +function parseSeconds(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.S = +n[0], i + n[0].length) : -1; +} + +function parseMilliseconds(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 3)); + return n ? (d.L = +n[0], i + n[0].length) : -1; +} + +function parseMicroseconds(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 6)); + return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1; +} + +function parseLiteralPercent(d, string, i) { + var n = percentRe.exec(string.slice(i, i + 1)); + return n ? i + n[0].length : -1; +} + +function parseUnixTimestamp(d, string, i) { + var n = numberRe.exec(string.slice(i)); + return n ? (d.Q = +n[0], i + n[0].length) : -1; +} + +function parseUnixTimestampSeconds(d, string, i) { + var n = numberRe.exec(string.slice(i)); + return n ? (d.s = +n[0], i + n[0].length) : -1; +} + +function formatDayOfMonth(d, p) { + return pad(d.getDate(), p, 2); +} + +function formatHour24(d, p) { + return pad(d.getHours(), p, 2); +} + +function formatHour12(d, p) { + return pad(d.getHours() % 12 || 12, p, 2); +} + +function formatDayOfYear(d, p) { + return pad(1 + timeDay.count(timeYear(d), d), p, 3); +} + +function formatMilliseconds(d, p) { + return pad(d.getMilliseconds(), p, 3); +} + +function formatMicroseconds(d, p) { + return formatMilliseconds(d, p) + "000"; +} + +function formatMonthNumber(d, p) { + return pad(d.getMonth() + 1, p, 2); +} + +function formatMinutes(d, p) { + return pad(d.getMinutes(), p, 2); +} + +function formatSeconds(d, p) { + return pad(d.getSeconds(), p, 2); +} + +function formatWeekdayNumberMonday(d) { + var day = d.getDay(); + return day === 0 ? 7 : day; +} + +function formatWeekNumberSunday(d, p) { + return pad(timeSunday.count(timeYear(d) - 1, d), p, 2); +} + +function dISO(d) { + var day = d.getDay(); + return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d); +} + +function formatWeekNumberISO(d, p) { + d = dISO(d); + return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2); +} + +function formatWeekdayNumberSunday(d) { + return d.getDay(); +} + +function formatWeekNumberMonday(d, p) { + return pad(timeMonday.count(timeYear(d) - 1, d), p, 2); +} + +function formatYear(d, p) { + return pad(d.getFullYear() % 100, p, 2); +} + +function formatYearISO(d, p) { + d = dISO(d); + return pad(d.getFullYear() % 100, p, 2); +} + +function formatFullYear(d, p) { + return pad(d.getFullYear() % 10000, p, 4); +} + +function formatFullYearISO(d, p) { + var day = d.getDay(); + d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d); + return pad(d.getFullYear() % 10000, p, 4); +} + +function formatZone(d) { + var z = d.getTimezoneOffset(); + return (z > 0 ? "-" : (z *= -1, "+")) + + pad(z / 60 | 0, "0", 2) + + pad(z % 60, "0", 2); +} + +function formatUTCDayOfMonth(d, p) { + return pad(d.getUTCDate(), p, 2); +} + +function formatUTCHour24(d, p) { + return pad(d.getUTCHours(), p, 2); +} + +function formatUTCHour12(d, p) { + return pad(d.getUTCHours() % 12 || 12, p, 2); +} + +function formatUTCDayOfYear(d, p) { + return pad(1 + utcDay.count(utcYear(d), d), p, 3); +} + +function formatUTCMilliseconds(d, p) { + return pad(d.getUTCMilliseconds(), p, 3); +} + +function formatUTCMicroseconds(d, p) { + return formatUTCMilliseconds(d, p) + "000"; +} + +function formatUTCMonthNumber(d, p) { + return pad(d.getUTCMonth() + 1, p, 2); +} + +function formatUTCMinutes(d, p) { + return pad(d.getUTCMinutes(), p, 2); +} + +function formatUTCSeconds(d, p) { + return pad(d.getUTCSeconds(), p, 2); +} + +function formatUTCWeekdayNumberMonday(d) { + var dow = d.getUTCDay(); + return dow === 0 ? 7 : dow; +} + +function formatUTCWeekNumberSunday(d, p) { + return pad(utcSunday.count(utcYear(d) - 1, d), p, 2); +} + +function UTCdISO(d) { + var day = d.getUTCDay(); + return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d); +} + +function formatUTCWeekNumberISO(d, p) { + d = UTCdISO(d); + return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2); +} + +function formatUTCWeekdayNumberSunday(d) { + return d.getUTCDay(); +} + +function formatUTCWeekNumberMonday(d, p) { + return pad(utcMonday.count(utcYear(d) - 1, d), p, 2); +} + +function formatUTCYear(d, p) { + return pad(d.getUTCFullYear() % 100, p, 2); +} + +function formatUTCYearISO(d, p) { + d = UTCdISO(d); + return pad(d.getUTCFullYear() % 100, p, 2); +} + +function formatUTCFullYear(d, p) { + return pad(d.getUTCFullYear() % 10000, p, 4); +} + +function formatUTCFullYearISO(d, p) { + var day = d.getUTCDay(); + d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d); + return pad(d.getUTCFullYear() % 10000, p, 4); +} + +function formatUTCZone() { + return "+0000"; +} + +function formatLiteralPercent() { + return "%"; +} + +function formatUnixTimestamp(d) { + return +d; +} + +function formatUnixTimestampSeconds(d) { + return Math.floor(+d / 1000); +} + +var locale; +exports.timeFormat = void 0; +exports.timeParse = void 0; +exports.utcFormat = void 0; +exports.utcParse = void 0; + +defaultLocale({ + dateTime: "%x, %X", + date: "%-m/%-d/%Y", + time: "%-I:%M:%S %p", + periods: ["AM", "PM"], + days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], + shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], + months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], + shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] +}); + +function defaultLocale(definition) { + locale = formatLocale(definition); + exports.timeFormat = locale.format; + exports.timeParse = locale.parse; + exports.utcFormat = locale.utcFormat; + exports.utcParse = locale.utcParse; + return locale; +} + +var isoSpecifier = "%Y-%m-%dT%H:%M:%S.%LZ"; + +function formatIsoNative(date) { + return date.toISOString(); +} + +var formatIso = Date.prototype.toISOString + ? formatIsoNative + : exports.utcFormat(isoSpecifier); + +var formatIso$1 = formatIso; + +function parseIsoNative(string) { + var date = new Date(string); + return isNaN(date) ? null : date; +} + +var parseIso = +new Date("2000-01-01T00:00:00.000Z") + ? parseIsoNative + : exports.utcParse(isoSpecifier); + +var parseIso$1 = parseIso; + +function date(t) { + return new Date(t); +} + +function number(t) { + return t instanceof Date ? +t : +new Date(+t); +} + +function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) { + var scale = continuous(), + invert = scale.invert, + domain = scale.domain; + + var formatMillisecond = format(".%L"), + formatSecond = format(":%S"), + formatMinute = format("%I:%M"), + formatHour = format("%I %p"), + formatDay = format("%a %d"), + formatWeek = format("%b %d"), + formatMonth = format("%B"), + formatYear = format("%Y"); + + function tickFormat(date) { + return (second(date) < date ? formatMillisecond + : minute(date) < date ? formatSecond + : hour(date) < date ? formatMinute + : day(date) < date ? formatHour + : month(date) < date ? (week(date) < date ? formatDay : formatWeek) + : year(date) < date ? formatMonth + : formatYear)(date); + } + + scale.invert = function(y) { + return new Date(invert(y)); + }; + + scale.domain = function(_) { + return arguments.length ? domain(Array.from(_, number)) : domain().map(date); + }; + + scale.ticks = function(interval) { + var d = domain(); + return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval); + }; + + scale.tickFormat = function(count, specifier) { + return specifier == null ? tickFormat : format(specifier); + }; + + scale.nice = function(interval) { + var d = domain(); + if (!interval || typeof interval.range !== "function") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval); + return interval ? domain(nice(d, interval)) : scale; + }; + + scale.copy = function() { + return copy$1(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format)); + }; + + return scale; +} + +function time() { + return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute, second, exports.timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments); +} + +function utcTime() { + return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcSunday, utcDay, utcHour, utcMinute, second, exports.utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments); +} + +function transformer$1() { + var x0 = 0, + x1 = 1, + t0, + t1, + k10, + transform, + interpolator = identity$3, + clamp = false, + unknown; + + function scale(x) { + return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x)); + } + + scale.domain = function(_) { + return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1]; + }; + + scale.clamp = function(_) { + return arguments.length ? (clamp = !!_, scale) : clamp; + }; + + scale.interpolator = function(_) { + return arguments.length ? (interpolator = _, scale) : interpolator; + }; + + function range(interpolate) { + return function(_) { + var r0, r1; + return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)]; + }; + } + + scale.range = range(interpolate$2); + + scale.rangeRound = range(interpolateRound); + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + return function(t) { + transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0); + return scale; + }; +} + +function copy(source, target) { + return target + .domain(source.domain()) + .interpolator(source.interpolator()) + .clamp(source.clamp()) + .unknown(source.unknown()); +} + +function sequential() { + var scale = linearish(transformer$1()(identity$3)); + + scale.copy = function() { + return copy(scale, sequential()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function sequentialLog() { + var scale = loggish(transformer$1()).domain([1, 10]); + + scale.copy = function() { + return copy(scale, sequentialLog()).base(scale.base()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function sequentialSymlog() { + var scale = symlogish(transformer$1()); + + scale.copy = function() { + return copy(scale, sequentialSymlog()).constant(scale.constant()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function sequentialPow() { + var scale = powish(transformer$1()); + + scale.copy = function() { + return copy(scale, sequentialPow()).exponent(scale.exponent()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function sequentialSqrt() { + return sequentialPow.apply(null, arguments).exponent(0.5); +} + +function sequentialQuantile() { + var domain = [], + interpolator = identity$3; + + function scale(x) { + if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1)); + } + + scale.domain = function(_) { + if (!arguments.length) return domain.slice(); + domain = []; + for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d); + domain.sort(ascending$3); + return scale; + }; + + scale.interpolator = function(_) { + return arguments.length ? (interpolator = _, scale) : interpolator; + }; + + scale.range = function() { + return domain.map((d, i) => interpolator(i / (domain.length - 1))); + }; + + scale.quantiles = function(n) { + return Array.from({length: n + 1}, (_, i) => quantile$1(domain, i / n)); + }; + + scale.copy = function() { + return sequentialQuantile(interpolator).domain(domain); + }; + + return initInterpolator.apply(scale, arguments); +} + +function transformer() { + var x0 = 0, + x1 = 0.5, + x2 = 1, + s = 1, + t0, + t1, + t2, + k10, + k21, + interpolator = identity$3, + transform, + clamp = false, + unknown; + + function scale(x) { + return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x)); + } + + scale.domain = function(_) { + return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2]; + }; + + scale.clamp = function(_) { + return arguments.length ? (clamp = !!_, scale) : clamp; + }; + + scale.interpolator = function(_) { + return arguments.length ? (interpolator = _, scale) : interpolator; + }; + + function range(interpolate) { + return function(_) { + var r0, r1, r2; + return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)]; + }; + } + + scale.range = range(interpolate$2); + + scale.rangeRound = range(interpolateRound); + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + return function(t) { + transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1; + return scale; + }; +} + +function diverging$1() { + var scale = linearish(transformer()(identity$3)); + + scale.copy = function() { + return copy(scale, diverging$1()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function divergingLog() { + var scale = loggish(transformer()).domain([0.1, 1, 10]); + + scale.copy = function() { + return copy(scale, divergingLog()).base(scale.base()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function divergingSymlog() { + var scale = symlogish(transformer()); + + scale.copy = function() { + return copy(scale, divergingSymlog()).constant(scale.constant()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function divergingPow() { + var scale = powish(transformer()); + + scale.copy = function() { + return copy(scale, divergingPow()).exponent(scale.exponent()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function divergingSqrt() { + return divergingPow.apply(null, arguments).exponent(0.5); +} + +function colors(specifier) { + var n = specifier.length / 6 | 0, colors = new Array(n), i = 0; + while (i < n) colors[i] = "#" + specifier.slice(i * 6, ++i * 6); + return colors; +} + +var category10 = colors("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"); + +var Accent = colors("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"); + +var Dark2 = colors("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"); + +var Paired = colors("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"); + +var Pastel1 = colors("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"); + +var Pastel2 = colors("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"); + +var Set1 = colors("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"); + +var Set2 = colors("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"); + +var Set3 = colors("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"); + +var Tableau10 = colors("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab"); + +var ramp$1 = scheme => rgbBasis(scheme[scheme.length - 1]); + +var scheme$q = new Array(3).concat( + "d8b365f5f5f55ab4ac", + "a6611adfc27d80cdc1018571", + "a6611adfc27df5f5f580cdc1018571", + "8c510ad8b365f6e8c3c7eae55ab4ac01665e", + "8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e", + "8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e", + "8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e", + "5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30", + "5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30" +).map(colors); + +var BrBG = ramp$1(scheme$q); + +var scheme$p = new Array(3).concat( + "af8dc3f7f7f77fbf7b", + "7b3294c2a5cfa6dba0008837", + "7b3294c2a5cff7f7f7a6dba0008837", + "762a83af8dc3e7d4e8d9f0d37fbf7b1b7837", + "762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837", + "762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837", + "762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837", + "40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b", + "40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b" +).map(colors); + +var PRGn = ramp$1(scheme$p); + +var scheme$o = new Array(3).concat( + "e9a3c9f7f7f7a1d76a", + "d01c8bf1b6dab8e1864dac26", + "d01c8bf1b6daf7f7f7b8e1864dac26", + "c51b7de9a3c9fde0efe6f5d0a1d76a4d9221", + "c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221", + "c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221", + "c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221", + "8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419", + "8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419" +).map(colors); + +var PiYG = ramp$1(scheme$o); + +var scheme$n = new Array(3).concat( + "998ec3f7f7f7f1a340", + "5e3c99b2abd2fdb863e66101", + "5e3c99b2abd2f7f7f7fdb863e66101", + "542788998ec3d8daebfee0b6f1a340b35806", + "542788998ec3d8daebf7f7f7fee0b6f1a340b35806", + "5427888073acb2abd2d8daebfee0b6fdb863e08214b35806", + "5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806", + "2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08", + "2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08" +).map(colors); + +var PuOr = ramp$1(scheme$n); + +var scheme$m = new Array(3).concat( + "ef8a62f7f7f767a9cf", + "ca0020f4a58292c5de0571b0", + "ca0020f4a582f7f7f792c5de0571b0", + "b2182bef8a62fddbc7d1e5f067a9cf2166ac", + "b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac", + "b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac", + "b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac", + "67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061", + "67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061" +).map(colors); + +var RdBu = ramp$1(scheme$m); + +var scheme$l = new Array(3).concat( + "ef8a62ffffff999999", + "ca0020f4a582bababa404040", + "ca0020f4a582ffffffbababa404040", + "b2182bef8a62fddbc7e0e0e09999994d4d4d", + "b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d", + "b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d", + "b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d", + "67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a", + "67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a" +).map(colors); + +var RdGy = ramp$1(scheme$l); + +var scheme$k = new Array(3).concat( + "fc8d59ffffbf91bfdb", + "d7191cfdae61abd9e92c7bb6", + "d7191cfdae61ffffbfabd9e92c7bb6", + "d73027fc8d59fee090e0f3f891bfdb4575b4", + "d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4", + "d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4", + "d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4", + "a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695", + "a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695" +).map(colors); + +var RdYlBu = ramp$1(scheme$k); + +var scheme$j = new Array(3).concat( + "fc8d59ffffbf91cf60", + "d7191cfdae61a6d96a1a9641", + "d7191cfdae61ffffbfa6d96a1a9641", + "d73027fc8d59fee08bd9ef8b91cf601a9850", + "d73027fc8d59fee08bffffbfd9ef8b91cf601a9850", + "d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850", + "d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850", + "a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837", + "a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837" +).map(colors); + +var RdYlGn = ramp$1(scheme$j); + +var scheme$i = new Array(3).concat( + "fc8d59ffffbf99d594", + "d7191cfdae61abdda42b83ba", + "d7191cfdae61ffffbfabdda42b83ba", + "d53e4ffc8d59fee08be6f59899d5943288bd", + "d53e4ffc8d59fee08bffffbfe6f59899d5943288bd", + "d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd", + "d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd", + "9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2", + "9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2" +).map(colors); + +var Spectral = ramp$1(scheme$i); + +var scheme$h = new Array(3).concat( + "e5f5f999d8c92ca25f", + "edf8fbb2e2e266c2a4238b45", + "edf8fbb2e2e266c2a42ca25f006d2c", + "edf8fbccece699d8c966c2a42ca25f006d2c", + "edf8fbccece699d8c966c2a441ae76238b45005824", + "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824", + "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b" +).map(colors); + +var BuGn = ramp$1(scheme$h); + +var scheme$g = new Array(3).concat( + "e0ecf49ebcda8856a7", + "edf8fbb3cde38c96c688419d", + "edf8fbb3cde38c96c68856a7810f7c", + "edf8fbbfd3e69ebcda8c96c68856a7810f7c", + "edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b", + "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b", + "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b" +).map(colors); + +var BuPu = ramp$1(scheme$g); + +var scheme$f = new Array(3).concat( + "e0f3dba8ddb543a2ca", + "f0f9e8bae4bc7bccc42b8cbe", + "f0f9e8bae4bc7bccc443a2ca0868ac", + "f0f9e8ccebc5a8ddb57bccc443a2ca0868ac", + "f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e", + "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e", + "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081" +).map(colors); + +var GnBu = ramp$1(scheme$f); + +var scheme$e = new Array(3).concat( + "fee8c8fdbb84e34a33", + "fef0d9fdcc8afc8d59d7301f", + "fef0d9fdcc8afc8d59e34a33b30000", + "fef0d9fdd49efdbb84fc8d59e34a33b30000", + "fef0d9fdd49efdbb84fc8d59ef6548d7301f990000", + "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000", + "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000" +).map(colors); + +var OrRd = ramp$1(scheme$e); + +var scheme$d = new Array(3).concat( + "ece2f0a6bddb1c9099", + "f6eff7bdc9e167a9cf02818a", + "f6eff7bdc9e167a9cf1c9099016c59", + "f6eff7d0d1e6a6bddb67a9cf1c9099016c59", + "f6eff7d0d1e6a6bddb67a9cf3690c002818a016450", + "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450", + "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636" +).map(colors); + +var PuBuGn = ramp$1(scheme$d); + +var scheme$c = new Array(3).concat( + "ece7f2a6bddb2b8cbe", + "f1eef6bdc9e174a9cf0570b0", + "f1eef6bdc9e174a9cf2b8cbe045a8d", + "f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d", + "f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b", + "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b", + "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858" +).map(colors); + +var PuBu = ramp$1(scheme$c); + +var scheme$b = new Array(3).concat( + "e7e1efc994c7dd1c77", + "f1eef6d7b5d8df65b0ce1256", + "f1eef6d7b5d8df65b0dd1c77980043", + "f1eef6d4b9dac994c7df65b0dd1c77980043", + "f1eef6d4b9dac994c7df65b0e7298ace125691003f", + "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f", + "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f" +).map(colors); + +var PuRd = ramp$1(scheme$b); + +var scheme$a = new Array(3).concat( + "fde0ddfa9fb5c51b8a", + "feebe2fbb4b9f768a1ae017e", + "feebe2fbb4b9f768a1c51b8a7a0177", + "feebe2fcc5c0fa9fb5f768a1c51b8a7a0177", + "feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177", + "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177", + "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a" +).map(colors); + +var RdPu = ramp$1(scheme$a); + +var scheme$9 = new Array(3).concat( + "edf8b17fcdbb2c7fb8", + "ffffcca1dab441b6c4225ea8", + "ffffcca1dab441b6c42c7fb8253494", + "ffffccc7e9b47fcdbb41b6c42c7fb8253494", + "ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84", + "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84", + "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58" +).map(colors); + +var YlGnBu = ramp$1(scheme$9); + +var scheme$8 = new Array(3).concat( + "f7fcb9addd8e31a354", + "ffffccc2e69978c679238443", + "ffffccc2e69978c67931a354006837", + "ffffccd9f0a3addd8e78c67931a354006837", + "ffffccd9f0a3addd8e78c67941ab5d238443005a32", + "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32", + "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529" +).map(colors); + +var YlGn = ramp$1(scheme$8); + +var scheme$7 = new Array(3).concat( + "fff7bcfec44fd95f0e", + "ffffd4fed98efe9929cc4c02", + "ffffd4fed98efe9929d95f0e993404", + "ffffd4fee391fec44ffe9929d95f0e993404", + "ffffd4fee391fec44ffe9929ec7014cc4c028c2d04", + "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04", + "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506" +).map(colors); + +var YlOrBr = ramp$1(scheme$7); + +var scheme$6 = new Array(3).concat( + "ffeda0feb24cf03b20", + "ffffb2fecc5cfd8d3ce31a1c", + "ffffb2fecc5cfd8d3cf03b20bd0026", + "ffffb2fed976feb24cfd8d3cf03b20bd0026", + "ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026", + "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026", + "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026" +).map(colors); + +var YlOrRd = ramp$1(scheme$6); + +var scheme$5 = new Array(3).concat( + "deebf79ecae13182bd", + "eff3ffbdd7e76baed62171b5", + "eff3ffbdd7e76baed63182bd08519c", + "eff3ffc6dbef9ecae16baed63182bd08519c", + "eff3ffc6dbef9ecae16baed64292c62171b5084594", + "f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594", + "f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b" +).map(colors); + +var Blues = ramp$1(scheme$5); + +var scheme$4 = new Array(3).concat( + "e5f5e0a1d99b31a354", + "edf8e9bae4b374c476238b45", + "edf8e9bae4b374c47631a354006d2c", + "edf8e9c7e9c0a1d99b74c47631a354006d2c", + "edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32", + "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32", + "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b" +).map(colors); + +var Greens = ramp$1(scheme$4); + +var scheme$3 = new Array(3).concat( + "f0f0f0bdbdbd636363", + "f7f7f7cccccc969696525252", + "f7f7f7cccccc969696636363252525", + "f7f7f7d9d9d9bdbdbd969696636363252525", + "f7f7f7d9d9d9bdbdbd969696737373525252252525", + "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525", + "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000" +).map(colors); + +var Greys = ramp$1(scheme$3); + +var scheme$2 = new Array(3).concat( + "efedf5bcbddc756bb1", + "f2f0f7cbc9e29e9ac86a51a3", + "f2f0f7cbc9e29e9ac8756bb154278f", + "f2f0f7dadaebbcbddc9e9ac8756bb154278f", + "f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486", + "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486", + "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d" +).map(colors); + +var Purples = ramp$1(scheme$2); + +var scheme$1 = new Array(3).concat( + "fee0d2fc9272de2d26", + "fee5d9fcae91fb6a4acb181d", + "fee5d9fcae91fb6a4ade2d26a50f15", + "fee5d9fcbba1fc9272fb6a4ade2d26a50f15", + "fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d", + "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d", + "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d" +).map(colors); + +var Reds = ramp$1(scheme$1); + +var scheme = new Array(3).concat( + "fee6cefdae6be6550d", + "feeddefdbe85fd8d3cd94701", + "feeddefdbe85fd8d3ce6550da63603", + "feeddefdd0a2fdae6bfd8d3ce6550da63603", + "feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04", + "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04", + "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704" +).map(colors); + +var Oranges = ramp$1(scheme); + +function cividis(t) { + t = Math.max(0, Math.min(1, t)); + return "rgb(" + + Math.max(0, Math.min(255, Math.round(-4.54 - t * (35.34 - t * (2381.73 - t * (6402.7 - t * (7024.72 - t * 2710.57))))))) + ", " + + Math.max(0, Math.min(255, Math.round(32.49 + t * (170.73 + t * (52.82 - t * (131.46 - t * (176.58 - t * 67.37))))))) + ", " + + Math.max(0, Math.min(255, Math.round(81.24 + t * (442.36 - t * (2482.43 - t * (6167.24 - t * (6614.94 - t * 2475.67))))))) + + ")"; +} + +var cubehelix = cubehelixLong(cubehelix$3(300, 0.5, 0.0), cubehelix$3(-240, 0.5, 1.0)); + +var warm = cubehelixLong(cubehelix$3(-100, 0.75, 0.35), cubehelix$3(80, 1.50, 0.8)); + +var cool = cubehelixLong(cubehelix$3(260, 0.75, 0.35), cubehelix$3(80, 1.50, 0.8)); + +var c$2 = cubehelix$3(); + +function rainbow(t) { + if (t < 0 || t > 1) t -= Math.floor(t); + var ts = Math.abs(t - 0.5); + c$2.h = 360 * t - 100; + c$2.s = 1.5 - 1.5 * ts; + c$2.l = 0.8 - 0.9 * ts; + return c$2 + ""; +} + +var c$1 = rgb(), + pi_1_3 = Math.PI / 3, + pi_2_3 = Math.PI * 2 / 3; + +function sinebow(t) { + var x; + t = (0.5 - t) * Math.PI; + c$1.r = 255 * (x = Math.sin(t)) * x; + c$1.g = 255 * (x = Math.sin(t + pi_1_3)) * x; + c$1.b = 255 * (x = Math.sin(t + pi_2_3)) * x; + return c$1 + ""; +} + +function turbo(t) { + t = Math.max(0, Math.min(1, t)); + return "rgb(" + + Math.max(0, Math.min(255, Math.round(34.61 + t * (1172.33 - t * (10793.56 - t * (33300.12 - t * (38394.49 - t * 14825.05))))))) + ", " + + Math.max(0, Math.min(255, Math.round(23.31 + t * (557.33 + t * (1225.33 - t * (3574.96 - t * (1073.77 + t * 707.56))))))) + ", " + + Math.max(0, Math.min(255, Math.round(27.2 + t * (3211.1 - t * (15327.97 - t * (27814 - t * (22569.18 - t * 6838.66))))))) + + ")"; +} + +function ramp(range) { + var n = range.length; + return function(t) { + return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))]; + }; +} + +var viridis = ramp(colors("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")); + +var magma = ramp(colors("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")); + +var inferno = ramp(colors("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")); + +var plasma = ramp(colors("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")); + +function constant$1(x) { + return function constant() { + return x; + }; +} + +const abs = Math.abs; +const atan2 = Math.atan2; +const cos = Math.cos; +const max = Math.max; +const min = Math.min; +const sin = Math.sin; +const sqrt = Math.sqrt; + +const epsilon = 1e-12; +const pi = Math.PI; +const halfPi = pi / 2; +const tau = 2 * pi; + +function acos(x) { + return x > 1 ? 0 : x < -1 ? pi : Math.acos(x); +} + +function asin(x) { + return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x); +} + +function withPath(shape) { + let digits = 3; + + shape.digits = function(_) { + if (!arguments.length) return digits; + if (_ == null) { + digits = null; + } else { + const d = Math.floor(_); + if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`); + digits = d; + } + return shape; + }; + + return () => new Path$1(digits); +} + +function arcInnerRadius(d) { + return d.innerRadius; +} + +function arcOuterRadius(d) { + return d.outerRadius; +} + +function arcStartAngle(d) { + return d.startAngle; +} + +function arcEndAngle(d) { + return d.endAngle; +} + +function arcPadAngle(d) { + return d && d.padAngle; // Note: optional! +} + +function intersect(x0, y0, x1, y1, x2, y2, x3, y3) { + var x10 = x1 - x0, y10 = y1 - y0, + x32 = x3 - x2, y32 = y3 - y2, + t = y32 * x10 - x32 * y10; + if (t * t < epsilon) return; + t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t; + return [x0 + t * x10, y0 + t * y10]; +} + +// Compute perpendicular offset line of length rc. +// http://mathworld.wolfram.com/Circle-LineIntersection.html +function cornerTangents(x0, y0, x1, y1, r1, rc, cw) { + var x01 = x0 - x1, + y01 = y0 - y1, + lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01), + ox = lo * y01, + oy = -lo * x01, + x11 = x0 + ox, + y11 = y0 + oy, + x10 = x1 + ox, + y10 = y1 + oy, + x00 = (x11 + x10) / 2, + y00 = (y11 + y10) / 2, + dx = x10 - x11, + dy = y10 - y11, + d2 = dx * dx + dy * dy, + r = r1 - rc, + D = x11 * y10 - x10 * y11, + d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)), + cx0 = (D * dy - dx * d) / d2, + cy0 = (-D * dx - dy * d) / d2, + cx1 = (D * dy + dx * d) / d2, + cy1 = (-D * dx + dy * d) / d2, + dx0 = cx0 - x00, + dy0 = cy0 - y00, + dx1 = cx1 - x00, + dy1 = cy1 - y00; + + // Pick the closer of the two intersection points. + // TODO Is there a faster way to determine which intersection to use? + if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1; + + return { + cx: cx0, + cy: cy0, + x01: -ox, + y01: -oy, + x11: cx0 * (r1 / r - 1), + y11: cy0 * (r1 / r - 1) + }; +} + +function arc() { + var innerRadius = arcInnerRadius, + outerRadius = arcOuterRadius, + cornerRadius = constant$1(0), + padRadius = null, + startAngle = arcStartAngle, + endAngle = arcEndAngle, + padAngle = arcPadAngle, + context = null, + path = withPath(arc); + + function arc() { + var buffer, + r, + r0 = +innerRadius.apply(this, arguments), + r1 = +outerRadius.apply(this, arguments), + a0 = startAngle.apply(this, arguments) - halfPi, + a1 = endAngle.apply(this, arguments) - halfPi, + da = abs(a1 - a0), + cw = a1 > a0; + + if (!context) context = buffer = path(); + + // Ensure that the outer radius is always larger than the inner radius. + if (r1 < r0) r = r1, r1 = r0, r0 = r; + + // Is it a point? + if (!(r1 > epsilon)) context.moveTo(0, 0); + + // Or is it a circle or annulus? + else if (da > tau - epsilon) { + context.moveTo(r1 * cos(a0), r1 * sin(a0)); + context.arc(0, 0, r1, a0, a1, !cw); + if (r0 > epsilon) { + context.moveTo(r0 * cos(a1), r0 * sin(a1)); + context.arc(0, 0, r0, a1, a0, cw); + } + } + + // Or is it a circular or annular sector? + else { + var a01 = a0, + a11 = a1, + a00 = a0, + a10 = a1, + da0 = da, + da1 = da, + ap = padAngle.apply(this, arguments) / 2, + rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)), + rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)), + rc0 = rc, + rc1 = rc, + t0, + t1; + + // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0. + if (rp > epsilon) { + var p0 = asin(rp / r0 * sin(ap)), + p1 = asin(rp / r1 * sin(ap)); + if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0; + else da0 = 0, a00 = a10 = (a0 + a1) / 2; + if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1; + else da1 = 0, a01 = a11 = (a0 + a1) / 2; + } + + var x01 = r1 * cos(a01), + y01 = r1 * sin(a01), + x10 = r0 * cos(a10), + y10 = r0 * sin(a10); + + // Apply rounded corners? + if (rc > epsilon) { + var x11 = r1 * cos(a11), + y11 = r1 * sin(a11), + x00 = r0 * cos(a00), + y00 = r0 * sin(a00), + oc; + + // Restrict the corner radius according to the sector angle. If this + // intersection fails, it’s probably because the arc is too small, so + // disable the corner radius entirely. + if (da < pi) { + if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) { + var ax = x01 - oc[0], + ay = y01 - oc[1], + bx = x11 - oc[0], + by = y11 - oc[1], + kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2), + lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]); + rc0 = min(rc, (r0 - lc) / (kc - 1)); + rc1 = min(rc, (r1 - lc) / (kc + 1)); + } else { + rc0 = rc1 = 0; + } + } + } + + // Is the sector collapsed to a line? + if (!(da1 > epsilon)) context.moveTo(x01, y01); + + // Does the sector’s outer ring have rounded corners? + else if (rc1 > epsilon) { + t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw); + t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw); + + context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01); + + // Have the corners merged? + if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); + + // Otherwise, draw the two corners and the ring. + else { + context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw); + context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw); + context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw); + } + } + + // Or is the outer ring just a circular arc? + else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw); + + // Is there no inner ring, and it’s a circular sector? + // Or perhaps it’s an annular sector collapsed due to padding? + if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10); + + // Does the sector’s inner ring (or point) have rounded corners? + else if (rc0 > epsilon) { + t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw); + t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw); + + context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01); + + // Have the corners merged? + if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); + + // Otherwise, draw the two corners and the ring. + else { + context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw); + context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw); + context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw); + } + } + + // Or is the inner ring just a circular arc? + else context.arc(0, 0, r0, a10, a00, cw); + } + + context.closePath(); + + if (buffer) return context = null, buffer + "" || null; + } + + arc.centroid = function() { + var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, + a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2; + return [cos(a) * r, sin(a) * r]; + }; + + arc.innerRadius = function(_) { + return arguments.length ? (innerRadius = typeof _ === "function" ? _ : constant$1(+_), arc) : innerRadius; + }; + + arc.outerRadius = function(_) { + return arguments.length ? (outerRadius = typeof _ === "function" ? _ : constant$1(+_), arc) : outerRadius; + }; + + arc.cornerRadius = function(_) { + return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : constant$1(+_), arc) : cornerRadius; + }; + + arc.padRadius = function(_) { + return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : constant$1(+_), arc) : padRadius; + }; + + arc.startAngle = function(_) { + return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant$1(+_), arc) : startAngle; + }; + + arc.endAngle = function(_) { + return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant$1(+_), arc) : endAngle; + }; + + arc.padAngle = function(_) { + return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant$1(+_), arc) : padAngle; + }; + + arc.context = function(_) { + return arguments.length ? ((context = _ == null ? null : _), arc) : context; + }; + + return arc; +} + +var slice = Array.prototype.slice; + +function array(x) { + return typeof x === "object" && "length" in x + ? x // Array, TypedArray, NodeList, array-like + : Array.from(x); // Map, Set, iterable, string, or anything else +} + +function Linear(context) { + this._context = context; +} + +Linear.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._point = 0; + }, + lineEnd: function() { + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; // falls through + default: this._context.lineTo(x, y); break; + } + } +}; + +function curveLinear(context) { + return new Linear(context); +} + +function x(p) { + return p[0]; +} + +function y(p) { + return p[1]; +} + +function line(x$1, y$1) { + var defined = constant$1(true), + context = null, + curve = curveLinear, + output = null, + path = withPath(line); + + x$1 = typeof x$1 === "function" ? x$1 : (x$1 === undefined) ? x : constant$1(x$1); + y$1 = typeof y$1 === "function" ? y$1 : (y$1 === undefined) ? y : constant$1(y$1); + + function line(data) { + var i, + n = (data = array(data)).length, + d, + defined0 = false, + buffer; + + if (context == null) output = curve(buffer = path()); + + for (i = 0; i <= n; ++i) { + if (!(i < n && defined(d = data[i], i, data)) === defined0) { + if (defined0 = !defined0) output.lineStart(); + else output.lineEnd(); + } + if (defined0) output.point(+x$1(d, i, data), +y$1(d, i, data)); + } + + if (buffer) return output = null, buffer + "" || null; + } + + line.x = function(_) { + return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant$1(+_), line) : x$1; + }; + + line.y = function(_) { + return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant$1(+_), line) : y$1; + }; + + line.defined = function(_) { + return arguments.length ? (defined = typeof _ === "function" ? _ : constant$1(!!_), line) : defined; + }; + + line.curve = function(_) { + return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve; + }; + + line.context = function(_) { + return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context; + }; + + return line; +} + +function area(x0, y0, y1) { + var x1 = null, + defined = constant$1(true), + context = null, + curve = curveLinear, + output = null, + path = withPath(area); + + x0 = typeof x0 === "function" ? x0 : (x0 === undefined) ? x : constant$1(+x0); + y0 = typeof y0 === "function" ? y0 : (y0 === undefined) ? constant$1(0) : constant$1(+y0); + y1 = typeof y1 === "function" ? y1 : (y1 === undefined) ? y : constant$1(+y1); + + function area(data) { + var i, + j, + k, + n = (data = array(data)).length, + d, + defined0 = false, + buffer, + x0z = new Array(n), + y0z = new Array(n); + + if (context == null) output = curve(buffer = path()); + + for (i = 0; i <= n; ++i) { + if (!(i < n && defined(d = data[i], i, data)) === defined0) { + if (defined0 = !defined0) { + j = i; + output.areaStart(); + output.lineStart(); + } else { + output.lineEnd(); + output.lineStart(); + for (k = i - 1; k >= j; --k) { + output.point(x0z[k], y0z[k]); + } + output.lineEnd(); + output.areaEnd(); + } + } + if (defined0) { + x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data); + output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]); + } + } + + if (buffer) return output = null, buffer + "" || null; + } + + function arealine() { + return line().defined(defined).curve(curve).context(context); + } + + area.x = function(_) { + return arguments.length ? (x0 = typeof _ === "function" ? _ : constant$1(+_), x1 = null, area) : x0; + }; + + area.x0 = function(_) { + return arguments.length ? (x0 = typeof _ === "function" ? _ : constant$1(+_), area) : x0; + }; + + area.x1 = function(_) { + return arguments.length ? (x1 = _ == null ? null : typeof _ === "function" ? _ : constant$1(+_), area) : x1; + }; + + area.y = function(_) { + return arguments.length ? (y0 = typeof _ === "function" ? _ : constant$1(+_), y1 = null, area) : y0; + }; + + area.y0 = function(_) { + return arguments.length ? (y0 = typeof _ === "function" ? _ : constant$1(+_), area) : y0; + }; + + area.y1 = function(_) { + return arguments.length ? (y1 = _ == null ? null : typeof _ === "function" ? _ : constant$1(+_), area) : y1; + }; + + area.lineX0 = + area.lineY0 = function() { + return arealine().x(x0).y(y0); + }; + + area.lineY1 = function() { + return arealine().x(x0).y(y1); + }; + + area.lineX1 = function() { + return arealine().x(x1).y(y0); + }; + + area.defined = function(_) { + return arguments.length ? (defined = typeof _ === "function" ? _ : constant$1(!!_), area) : defined; + }; + + area.curve = function(_) { + return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve; + }; + + area.context = function(_) { + return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context; + }; + + return area; +} + +function descending$1(a, b) { + return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; +} + +function identity$1(d) { + return d; +} + +function pie() { + var value = identity$1, + sortValues = descending$1, + sort = null, + startAngle = constant$1(0), + endAngle = constant$1(tau), + padAngle = constant$1(0); + + function pie(data) { + var i, + n = (data = array(data)).length, + j, + k, + sum = 0, + index = new Array(n), + arcs = new Array(n), + a0 = +startAngle.apply(this, arguments), + da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)), + a1, + p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)), + pa = p * (da < 0 ? -1 : 1), + v; + + for (i = 0; i < n; ++i) { + if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) { + sum += v; + } + } + + // Optionally sort the arcs by previously-computed values or by data. + if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); }); + else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); }); + + // Compute the arcs! They are stored in the original data's order. + for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) { + j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = { + data: data[j], + index: i, + value: v, + startAngle: a0, + endAngle: a1, + padAngle: p + }; + } + + return arcs; + } + + pie.value = function(_) { + return arguments.length ? (value = typeof _ === "function" ? _ : constant$1(+_), pie) : value; + }; + + pie.sortValues = function(_) { + return arguments.length ? (sortValues = _, sort = null, pie) : sortValues; + }; + + pie.sort = function(_) { + return arguments.length ? (sort = _, sortValues = null, pie) : sort; + }; + + pie.startAngle = function(_) { + return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant$1(+_), pie) : startAngle; + }; + + pie.endAngle = function(_) { + return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant$1(+_), pie) : endAngle; + }; + + pie.padAngle = function(_) { + return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant$1(+_), pie) : padAngle; + }; + + return pie; +} + +var curveRadialLinear = curveRadial(curveLinear); + +function Radial(curve) { + this._curve = curve; +} + +Radial.prototype = { + areaStart: function() { + this._curve.areaStart(); + }, + areaEnd: function() { + this._curve.areaEnd(); + }, + lineStart: function() { + this._curve.lineStart(); + }, + lineEnd: function() { + this._curve.lineEnd(); + }, + point: function(a, r) { + this._curve.point(r * Math.sin(a), r * -Math.cos(a)); + } +}; + +function curveRadial(curve) { + + function radial(context) { + return new Radial(curve(context)); + } + + radial._curve = curve; + + return radial; +} + +function lineRadial(l) { + var c = l.curve; + + l.angle = l.x, delete l.x; + l.radius = l.y, delete l.y; + + l.curve = function(_) { + return arguments.length ? c(curveRadial(_)) : c()._curve; + }; + + return l; +} + +function lineRadial$1() { + return lineRadial(line().curve(curveRadialLinear)); +} + +function areaRadial() { + var a = area().curve(curveRadialLinear), + c = a.curve, + x0 = a.lineX0, + x1 = a.lineX1, + y0 = a.lineY0, + y1 = a.lineY1; + + a.angle = a.x, delete a.x; + a.startAngle = a.x0, delete a.x0; + a.endAngle = a.x1, delete a.x1; + a.radius = a.y, delete a.y; + a.innerRadius = a.y0, delete a.y0; + a.outerRadius = a.y1, delete a.y1; + a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0; + a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1; + a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0; + a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1; + + a.curve = function(_) { + return arguments.length ? c(curveRadial(_)) : c()._curve; + }; + + return a; +} + +function pointRadial(x, y) { + return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)]; +} + +class Bump { + constructor(context, x) { + this._context = context; + this._x = x; + } + areaStart() { + this._line = 0; + } + areaEnd() { + this._line = NaN; + } + lineStart() { + this._point = 0; + } + lineEnd() { + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + } + point(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: { + this._point = 1; + if (this._line) this._context.lineTo(x, y); + else this._context.moveTo(x, y); + break; + } + case 1: this._point = 2; // falls through + default: { + if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y); + else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y); + break; + } + } + this._x0 = x, this._y0 = y; + } +} + +class BumpRadial { + constructor(context) { + this._context = context; + } + lineStart() { + this._point = 0; + } + lineEnd() {} + point(x, y) { + x = +x, y = +y; + if (this._point === 0) { + this._point = 1; + } else { + const p0 = pointRadial(this._x0, this._y0); + const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2); + const p2 = pointRadial(x, this._y0); + const p3 = pointRadial(x, y); + this._context.moveTo(...p0); + this._context.bezierCurveTo(...p1, ...p2, ...p3); + } + this._x0 = x, this._y0 = y; + } +} + +function bumpX(context) { + return new Bump(context, true); +} + +function bumpY(context) { + return new Bump(context, false); +} + +function bumpRadial(context) { + return new BumpRadial(context); +} + +function linkSource(d) { + return d.source; +} + +function linkTarget(d) { + return d.target; +} + +function link(curve) { + let source = linkSource, + target = linkTarget, + x$1 = x, + y$1 = y, + context = null, + output = null, + path = withPath(link); + + function link() { + let buffer; + const argv = slice.call(arguments); + const s = source.apply(this, argv); + const t = target.apply(this, argv); + if (context == null) output = curve(buffer = path()); + output.lineStart(); + argv[0] = s, output.point(+x$1.apply(this, argv), +y$1.apply(this, argv)); + argv[0] = t, output.point(+x$1.apply(this, argv), +y$1.apply(this, argv)); + output.lineEnd(); + if (buffer) return output = null, buffer + "" || null; + } + + link.source = function(_) { + return arguments.length ? (source = _, link) : source; + }; + + link.target = function(_) { + return arguments.length ? (target = _, link) : target; + }; + + link.x = function(_) { + return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant$1(+_), link) : x$1; + }; + + link.y = function(_) { + return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant$1(+_), link) : y$1; + }; + + link.context = function(_) { + return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), link) : context; + }; + + return link; +} + +function linkHorizontal() { + return link(bumpX); +} + +function linkVertical() { + return link(bumpY); +} + +function linkRadial() { + const l = link(bumpRadial); + l.angle = l.x, delete l.x; + l.radius = l.y, delete l.y; + return l; +} + +const sqrt3$2 = sqrt(3); + +var asterisk = { + draw(context, size) { + const r = sqrt(size + min(size / 28, 0.75)) * 0.59436; + const t = r / 2; + const u = t * sqrt3$2; + context.moveTo(0, r); + context.lineTo(0, -r); + context.moveTo(-u, -t); + context.lineTo(u, t); + context.moveTo(-u, t); + context.lineTo(u, -t); + } +}; + +var circle = { + draw(context, size) { + const r = sqrt(size / pi); + context.moveTo(r, 0); + context.arc(0, 0, r, 0, tau); + } +}; + +var cross = { + draw(context, size) { + const r = sqrt(size / 5) / 2; + context.moveTo(-3 * r, -r); + context.lineTo(-r, -r); + context.lineTo(-r, -3 * r); + context.lineTo(r, -3 * r); + context.lineTo(r, -r); + context.lineTo(3 * r, -r); + context.lineTo(3 * r, r); + context.lineTo(r, r); + context.lineTo(r, 3 * r); + context.lineTo(-r, 3 * r); + context.lineTo(-r, r); + context.lineTo(-3 * r, r); + context.closePath(); + } +}; + +const tan30 = sqrt(1 / 3); +const tan30_2 = tan30 * 2; + +var diamond = { + draw(context, size) { + const y = sqrt(size / tan30_2); + const x = y * tan30; + context.moveTo(0, -y); + context.lineTo(x, 0); + context.lineTo(0, y); + context.lineTo(-x, 0); + context.closePath(); + } +}; + +var diamond2 = { + draw(context, size) { + const r = sqrt(size) * 0.62625; + context.moveTo(0, -r); + context.lineTo(r, 0); + context.lineTo(0, r); + context.lineTo(-r, 0); + context.closePath(); + } +}; + +var plus = { + draw(context, size) { + const r = sqrt(size - min(size / 7, 2)) * 0.87559; + context.moveTo(-r, 0); + context.lineTo(r, 0); + context.moveTo(0, r); + context.lineTo(0, -r); + } +}; + +var square = { + draw(context, size) { + const w = sqrt(size); + const x = -w / 2; + context.rect(x, x, w, w); + } +}; + +var square2 = { + draw(context, size) { + const r = sqrt(size) * 0.4431; + context.moveTo(r, r); + context.lineTo(r, -r); + context.lineTo(-r, -r); + context.lineTo(-r, r); + context.closePath(); + } +}; + +const ka = 0.89081309152928522810; +const kr = sin(pi / 10) / sin(7 * pi / 10); +const kx = sin(tau / 10) * kr; +const ky = -cos(tau / 10) * kr; + +var star = { + draw(context, size) { + const r = sqrt(size * ka); + const x = kx * r; + const y = ky * r; + context.moveTo(0, -r); + context.lineTo(x, y); + for (let i = 1; i < 5; ++i) { + const a = tau * i / 5; + const c = cos(a); + const s = sin(a); + context.lineTo(s * r, -c * r); + context.lineTo(c * x - s * y, s * x + c * y); + } + context.closePath(); + } +}; + +const sqrt3$1 = sqrt(3); + +var triangle = { + draw(context, size) { + const y = -sqrt(size / (sqrt3$1 * 3)); + context.moveTo(0, y * 2); + context.lineTo(-sqrt3$1 * y, -y); + context.lineTo(sqrt3$1 * y, -y); + context.closePath(); + } +}; + +const sqrt3 = sqrt(3); + +var triangle2 = { + draw(context, size) { + const s = sqrt(size) * 0.6824; + const t = s / 2; + const u = (s * sqrt3) / 2; // cos(Math.PI / 6) + context.moveTo(0, -s); + context.lineTo(u, t); + context.lineTo(-u, t); + context.closePath(); + } +}; + +const c = -0.5; +const s = sqrt(3) / 2; +const k = 1 / sqrt(12); +const a = (k / 2 + 1) * 3; + +var wye = { + draw(context, size) { + const r = sqrt(size / a); + const x0 = r / 2, y0 = r * k; + const x1 = x0, y1 = r * k + r; + const x2 = -x1, y2 = y1; + context.moveTo(x0, y0); + context.lineTo(x1, y1); + context.lineTo(x2, y2); + context.lineTo(c * x0 - s * y0, s * x0 + c * y0); + context.lineTo(c * x1 - s * y1, s * x1 + c * y1); + context.lineTo(c * x2 - s * y2, s * x2 + c * y2); + context.lineTo(c * x0 + s * y0, c * y0 - s * x0); + context.lineTo(c * x1 + s * y1, c * y1 - s * x1); + context.lineTo(c * x2 + s * y2, c * y2 - s * x2); + context.closePath(); + } +}; + +var times = { + draw(context, size) { + const r = sqrt(size - min(size / 6, 1.7)) * 0.6189; + context.moveTo(-r, -r); + context.lineTo(r, r); + context.moveTo(-r, r); + context.lineTo(r, -r); + } +}; + +// These symbols are designed to be filled. +const symbolsFill = [ + circle, + cross, + diamond, + square, + star, + triangle, + wye +]; + +// These symbols are designed to be stroked (with a width of 1.5px and round caps). +const symbolsStroke = [ + circle, + plus, + times, + triangle2, + asterisk, + square2, + diamond2 +]; + +function Symbol$1(type, size) { + let context = null, + path = withPath(symbol); + + type = typeof type === "function" ? type : constant$1(type || circle); + size = typeof size === "function" ? size : constant$1(size === undefined ? 64 : +size); + + function symbol() { + let buffer; + if (!context) context = buffer = path(); + type.apply(this, arguments).draw(context, +size.apply(this, arguments)); + if (buffer) return context = null, buffer + "" || null; + } + + symbol.type = function(_) { + return arguments.length ? (type = typeof _ === "function" ? _ : constant$1(_), symbol) : type; + }; + + symbol.size = function(_) { + return arguments.length ? (size = typeof _ === "function" ? _ : constant$1(+_), symbol) : size; + }; + + symbol.context = function(_) { + return arguments.length ? (context = _ == null ? null : _, symbol) : context; + }; + + return symbol; +} + +function noop() {} + +function point$3(that, x, y) { + that._context.bezierCurveTo( + (2 * that._x0 + that._x1) / 3, + (2 * that._y0 + that._y1) / 3, + (that._x0 + 2 * that._x1) / 3, + (that._y0 + 2 * that._y1) / 3, + (that._x0 + 4 * that._x1 + x) / 6, + (that._y0 + 4 * that._y1 + y) / 6 + ); +} + +function Basis(context) { + this._context = context; +} + +Basis.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = + this._y0 = this._y1 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 3: point$3(this, this._x1, this._y1); // falls through + case 2: this._context.lineTo(this._x1, this._y1); break; + } + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; break; + case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through + default: point$3(this, x, y); break; + } + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + } +}; + +function basis(context) { + return new Basis(context); +} + +function BasisClosed(context) { + this._context = context; +} + +BasisClosed.prototype = { + areaStart: noop, + areaEnd: noop, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = + this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 1: { + this._context.moveTo(this._x2, this._y2); + this._context.closePath(); + break; + } + case 2: { + this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3); + this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3); + this._context.closePath(); + break; + } + case 3: { + this.point(this._x2, this._y2); + this.point(this._x3, this._y3); + this.point(this._x4, this._y4); + break; + } + } + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._x2 = x, this._y2 = y; break; + case 1: this._point = 2; this._x3 = x, this._y3 = y; break; + case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break; + default: point$3(this, x, y); break; + } + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + } +}; + +function basisClosed(context) { + return new BasisClosed(context); +} + +function BasisOpen(context) { + this._context = context; +} + +BasisOpen.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = + this._y0 = this._y1 = NaN; + this._point = 0; + }, + lineEnd: function() { + if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; break; + case 1: this._point = 2; break; + case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break; + case 3: this._point = 4; // falls through + default: point$3(this, x, y); break; + } + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + } +}; + +function basisOpen(context) { + return new BasisOpen(context); +} + +function Bundle(context, beta) { + this._basis = new Basis(context); + this._beta = beta; +} + +Bundle.prototype = { + lineStart: function() { + this._x = []; + this._y = []; + this._basis.lineStart(); + }, + lineEnd: function() { + var x = this._x, + y = this._y, + j = x.length - 1; + + if (j > 0) { + var x0 = x[0], + y0 = y[0], + dx = x[j] - x0, + dy = y[j] - y0, + i = -1, + t; + + while (++i <= j) { + t = i / j; + this._basis.point( + this._beta * x[i] + (1 - this._beta) * (x0 + t * dx), + this._beta * y[i] + (1 - this._beta) * (y0 + t * dy) + ); + } + } + + this._x = this._y = null; + this._basis.lineEnd(); + }, + point: function(x, y) { + this._x.push(+x); + this._y.push(+y); + } +}; + +var bundle = (function custom(beta) { + + function bundle(context) { + return beta === 1 ? new Basis(context) : new Bundle(context, beta); + } + + bundle.beta = function(beta) { + return custom(+beta); + }; + + return bundle; +})(0.85); + +function point$2(that, x, y) { + that._context.bezierCurveTo( + that._x1 + that._k * (that._x2 - that._x0), + that._y1 + that._k * (that._y2 - that._y0), + that._x2 + that._k * (that._x1 - x), + that._y2 + that._k * (that._y1 - y), + that._x2, + that._y2 + ); +} + +function Cardinal(context, tension) { + this._context = context; + this._k = (1 - tension) / 6; +} + +Cardinal.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = + this._y0 = this._y1 = this._y2 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 2: this._context.lineTo(this._x2, this._y2); break; + case 3: point$2(this, this._x1, this._y1); break; + } + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; this._x1 = x, this._y1 = y; break; + case 2: this._point = 3; // falls through + default: point$2(this, x, y); break; + } + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; + +var cardinal = (function custom(tension) { + + function cardinal(context) { + return new Cardinal(context, tension); + } + + cardinal.tension = function(tension) { + return custom(+tension); + }; + + return cardinal; +})(0); + +function CardinalClosed(context, tension) { + this._context = context; + this._k = (1 - tension) / 6; +} + +CardinalClosed.prototype = { + areaStart: noop, + areaEnd: noop, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = + this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 1: { + this._context.moveTo(this._x3, this._y3); + this._context.closePath(); + break; + } + case 2: { + this._context.lineTo(this._x3, this._y3); + this._context.closePath(); + break; + } + case 3: { + this.point(this._x3, this._y3); + this.point(this._x4, this._y4); + this.point(this._x5, this._y5); + break; + } + } + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._x3 = x, this._y3 = y; break; + case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break; + case 2: this._point = 3; this._x5 = x, this._y5 = y; break; + default: point$2(this, x, y); break; + } + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; + +var cardinalClosed = (function custom(tension) { + + function cardinal(context) { + return new CardinalClosed(context, tension); + } + + cardinal.tension = function(tension) { + return custom(+tension); + }; + + return cardinal; +})(0); + +function CardinalOpen(context, tension) { + this._context = context; + this._k = (1 - tension) / 6; +} + +CardinalOpen.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = + this._y0 = this._y1 = this._y2 = NaN; + this._point = 0; + }, + lineEnd: function() { + if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; break; + case 1: this._point = 2; break; + case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break; + case 3: this._point = 4; // falls through + default: point$2(this, x, y); break; + } + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; + +var cardinalOpen = (function custom(tension) { + + function cardinal(context) { + return new CardinalOpen(context, tension); + } + + cardinal.tension = function(tension) { + return custom(+tension); + }; + + return cardinal; +})(0); + +function point$1(that, x, y) { + var x1 = that._x1, + y1 = that._y1, + x2 = that._x2, + y2 = that._y2; + + if (that._l01_a > epsilon) { + var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a, + n = 3 * that._l01_a * (that._l01_a + that._l12_a); + x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n; + y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n; + } + + if (that._l23_a > epsilon) { + var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a, + m = 3 * that._l23_a * (that._l23_a + that._l12_a); + x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m; + y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m; + } + + that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2); +} + +function CatmullRom(context, alpha) { + this._context = context; + this._alpha = alpha; +} + +CatmullRom.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = + this._y0 = this._y1 = this._y2 = NaN; + this._l01_a = this._l12_a = this._l23_a = + this._l01_2a = this._l12_2a = this._l23_2a = + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 2: this._context.lineTo(this._x2, this._y2); break; + case 3: this.point(this._x2, this._y2); break; + } + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + + if (this._point) { + var x23 = this._x2 - x, + y23 = this._y2 - y; + this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); + } + + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; break; + case 2: this._point = 3; // falls through + default: point$1(this, x, y); break; + } + + this._l01_a = this._l12_a, this._l12_a = this._l23_a; + this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; + +var catmullRom = (function custom(alpha) { + + function catmullRom(context) { + return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0); + } + + catmullRom.alpha = function(alpha) { + return custom(+alpha); + }; + + return catmullRom; +})(0.5); + +function CatmullRomClosed(context, alpha) { + this._context = context; + this._alpha = alpha; +} + +CatmullRomClosed.prototype = { + areaStart: noop, + areaEnd: noop, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = + this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN; + this._l01_a = this._l12_a = this._l23_a = + this._l01_2a = this._l12_2a = this._l23_2a = + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 1: { + this._context.moveTo(this._x3, this._y3); + this._context.closePath(); + break; + } + case 2: { + this._context.lineTo(this._x3, this._y3); + this._context.closePath(); + break; + } + case 3: { + this.point(this._x3, this._y3); + this.point(this._x4, this._y4); + this.point(this._x5, this._y5); + break; + } + } + }, + point: function(x, y) { + x = +x, y = +y; + + if (this._point) { + var x23 = this._x2 - x, + y23 = this._y2 - y; + this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); + } + + switch (this._point) { + case 0: this._point = 1; this._x3 = x, this._y3 = y; break; + case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break; + case 2: this._point = 3; this._x5 = x, this._y5 = y; break; + default: point$1(this, x, y); break; + } + + this._l01_a = this._l12_a, this._l12_a = this._l23_a; + this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; + +var catmullRomClosed = (function custom(alpha) { + + function catmullRom(context) { + return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0); + } + + catmullRom.alpha = function(alpha) { + return custom(+alpha); + }; + + return catmullRom; +})(0.5); + +function CatmullRomOpen(context, alpha) { + this._context = context; + this._alpha = alpha; +} + +CatmullRomOpen.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = + this._y0 = this._y1 = this._y2 = NaN; + this._l01_a = this._l12_a = this._l23_a = + this._l01_2a = this._l12_2a = this._l23_2a = + this._point = 0; + }, + lineEnd: function() { + if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + + if (this._point) { + var x23 = this._x2 - x, + y23 = this._y2 - y; + this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); + } + + switch (this._point) { + case 0: this._point = 1; break; + case 1: this._point = 2; break; + case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break; + case 3: this._point = 4; // falls through + default: point$1(this, x, y); break; + } + + this._l01_a = this._l12_a, this._l12_a = this._l23_a; + this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; + +var catmullRomOpen = (function custom(alpha) { + + function catmullRom(context) { + return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0); + } + + catmullRom.alpha = function(alpha) { + return custom(+alpha); + }; + + return catmullRom; +})(0.5); + +function LinearClosed(context) { + this._context = context; +} + +LinearClosed.prototype = { + areaStart: noop, + areaEnd: noop, + lineStart: function() { + this._point = 0; + }, + lineEnd: function() { + if (this._point) this._context.closePath(); + }, + point: function(x, y) { + x = +x, y = +y; + if (this._point) this._context.lineTo(x, y); + else this._point = 1, this._context.moveTo(x, y); + } +}; + +function linearClosed(context) { + return new LinearClosed(context); +} + +function sign(x) { + return x < 0 ? -1 : 1; +} + +// Calculate the slopes of the tangents (Hermite-type interpolation) based on +// the following paper: Steffen, M. 1990. A Simple Method for Monotonic +// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO. +// NOV(II), P. 443, 1990. +function slope3(that, x2, y2) { + var h0 = that._x1 - that._x0, + h1 = x2 - that._x1, + s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0), + s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0), + p = (s0 * h1 + s1 * h0) / (h0 + h1); + return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0; +} + +// Calculate a one-sided slope. +function slope2(that, t) { + var h = that._x1 - that._x0; + return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t; +} + +// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations +// "you can express cubic Hermite interpolation in terms of cubic Bézier curves +// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1". +function point(that, t0, t1) { + var x0 = that._x0, + y0 = that._y0, + x1 = that._x1, + y1 = that._y1, + dx = (x1 - x0) / 3; + that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1); +} + +function MonotoneX(context) { + this._context = context; +} + +MonotoneX.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = + this._y0 = this._y1 = + this._t0 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 2: this._context.lineTo(this._x1, this._y1); break; + case 3: point(this, this._t0, slope2(this, this._t0)); break; + } + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + var t1 = NaN; + + x = +x, y = +y; + if (x === this._x1 && y === this._y1) return; // Ignore coincident points. + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; break; + case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break; + default: point(this, this._t0, t1 = slope3(this, x, y)); break; + } + + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + this._t0 = t1; + } +}; + +function MonotoneY(context) { + this._context = new ReflectContext(context); +} + +(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) { + MonotoneX.prototype.point.call(this, y, x); +}; + +function ReflectContext(context) { + this._context = context; +} + +ReflectContext.prototype = { + moveTo: function(x, y) { this._context.moveTo(y, x); }, + closePath: function() { this._context.closePath(); }, + lineTo: function(x, y) { this._context.lineTo(y, x); }, + bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); } +}; + +function monotoneX(context) { + return new MonotoneX(context); +} + +function monotoneY(context) { + return new MonotoneY(context); +} + +function Natural(context) { + this._context = context; +} + +Natural.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x = []; + this._y = []; + }, + lineEnd: function() { + var x = this._x, + y = this._y, + n = x.length; + + if (n) { + this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]); + if (n === 2) { + this._context.lineTo(x[1], y[1]); + } else { + var px = controlPoints(x), + py = controlPoints(y); + for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) { + this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]); + } + } + } + + if (this._line || (this._line !== 0 && n === 1)) this._context.closePath(); + this._line = 1 - this._line; + this._x = this._y = null; + }, + point: function(x, y) { + this._x.push(+x); + this._y.push(+y); + } +}; + +// See https://www.particleincell.com/2012/bezier-splines/ for derivation. +function controlPoints(x) { + var i, + n = x.length - 1, + m, + a = new Array(n), + b = new Array(n), + r = new Array(n); + a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1]; + for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1]; + a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n]; + for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1]; + a[n - 1] = r[n - 1] / b[n - 1]; + for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i]; + b[n - 1] = (x[n] + a[n - 1]) / 2; + for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1]; + return [a, b]; +} + +function natural(context) { + return new Natural(context); +} + +function Step(context, t) { + this._context = context; + this._t = t; +} + +Step.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x = this._y = NaN; + this._point = 0; + }, + lineEnd: function() { + if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y); + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; // falls through + default: { + if (this._t <= 0) { + this._context.lineTo(this._x, y); + this._context.lineTo(x, y); + } else { + var x1 = this._x * (1 - this._t) + x * this._t; + this._context.lineTo(x1, this._y); + this._context.lineTo(x1, y); + } + break; + } + } + this._x = x, this._y = y; + } +}; + +function step(context) { + return new Step(context, 0.5); +} + +function stepBefore(context) { + return new Step(context, 0); +} + +function stepAfter(context) { + return new Step(context, 1); +} + +function none$1(series, order) { + if (!((n = series.length) > 1)) return; + for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) { + s0 = s1, s1 = series[order[i]]; + for (j = 0; j < m; ++j) { + s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1]; + } + } +} + +function none(series) { + var n = series.length, o = new Array(n); + while (--n >= 0) o[n] = n; + return o; +} + +function stackValue(d, key) { + return d[key]; +} + +function stackSeries(key) { + const series = []; + series.key = key; + return series; +} + +function stack() { + var keys = constant$1([]), + order = none, + offset = none$1, + value = stackValue; + + function stack(data) { + var sz = Array.from(keys.apply(this, arguments), stackSeries), + i, n = sz.length, j = -1, + oz; + + for (const d of data) { + for (i = 0, ++j; i < n; ++i) { + (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d; + } + } + + for (i = 0, oz = array(order(sz)); i < n; ++i) { + sz[oz[i]].index = i; + } + + offset(sz, oz); + return sz; + } + + stack.keys = function(_) { + return arguments.length ? (keys = typeof _ === "function" ? _ : constant$1(Array.from(_)), stack) : keys; + }; + + stack.value = function(_) { + return arguments.length ? (value = typeof _ === "function" ? _ : constant$1(+_), stack) : value; + }; + + stack.order = function(_) { + return arguments.length ? (order = _ == null ? none : typeof _ === "function" ? _ : constant$1(Array.from(_)), stack) : order; + }; + + stack.offset = function(_) { + return arguments.length ? (offset = _ == null ? none$1 : _, stack) : offset; + }; + + return stack; +} + +function expand(series, order) { + if (!((n = series.length) > 0)) return; + for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) { + for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0; + if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y; + } + none$1(series, order); +} + +function diverging(series, order) { + if (!((n = series.length) > 0)) return; + for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) { + for (yp = yn = 0, i = 0; i < n; ++i) { + if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) { + d[0] = yp, d[1] = yp += dy; + } else if (dy < 0) { + d[1] = yn, d[0] = yn += dy; + } else { + d[0] = 0, d[1] = dy; + } + } + } +} + +function silhouette(series, order) { + if (!((n = series.length) > 0)) return; + for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) { + for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0; + s0[j][1] += s0[j][0] = -y / 2; + } + none$1(series, order); +} + +function wiggle(series, order) { + if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return; + for (var y = 0, j = 1, s0, m, n; j < m; ++j) { + for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) { + var si = series[order[i]], + sij0 = si[j][1] || 0, + sij1 = si[j - 1][1] || 0, + s3 = (sij0 - sij1) / 2; + for (var k = 0; k < i; ++k) { + var sk = series[order[k]], + skj0 = sk[j][1] || 0, + skj1 = sk[j - 1][1] || 0; + s3 += skj0 - skj1; + } + s1 += sij0, s2 += s3 * sij0; + } + s0[j - 1][1] += s0[j - 1][0] = y; + if (s1) y -= s2 / s1; + } + s0[j - 1][1] += s0[j - 1][0] = y; + none$1(series, order); +} + +function appearance(series) { + var peaks = series.map(peak); + return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; }); +} + +function peak(series) { + var i = -1, j = 0, n = series.length, vi, vj = -Infinity; + while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i; + return j; +} + +function ascending(series) { + var sums = series.map(sum); + return none(series).sort(function(a, b) { return sums[a] - sums[b]; }); +} + +function sum(series) { + var s = 0, i = -1, n = series.length, v; + while (++i < n) if (v = +series[i][1]) s += v; + return s; +} + +function descending(series) { + return ascending(series).reverse(); +} + +function insideOut(series) { + var n = series.length, + i, + j, + sums = series.map(sum), + order = appearance(series), + top = 0, + bottom = 0, + tops = [], + bottoms = []; + + for (i = 0; i < n; ++i) { + j = order[i]; + if (top < bottom) { + top += sums[j]; + tops.push(j); + } else { + bottom += sums[j]; + bottoms.push(j); + } + } + + return bottoms.reverse().concat(tops); +} + +function reverse(series) { + return none(series).reverse(); +} + +var constant = x => () => x; + +function ZoomEvent(type, { + sourceEvent, + target, + transform, + dispatch +}) { + Object.defineProperties(this, { + type: {value: type, enumerable: true, configurable: true}, + sourceEvent: {value: sourceEvent, enumerable: true, configurable: true}, + target: {value: target, enumerable: true, configurable: true}, + transform: {value: transform, enumerable: true, configurable: true}, + _: {value: dispatch} + }); +} + +function Transform(k, x, y) { + this.k = k; + this.x = x; + this.y = y; +} + +Transform.prototype = { + constructor: Transform, + scale: function(k) { + return k === 1 ? this : new Transform(this.k * k, this.x, this.y); + }, + translate: function(x, y) { + return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y); + }, + apply: function(point) { + return [point[0] * this.k + this.x, point[1] * this.k + this.y]; + }, + applyX: function(x) { + return x * this.k + this.x; + }, + applyY: function(y) { + return y * this.k + this.y; + }, + invert: function(location) { + return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k]; + }, + invertX: function(x) { + return (x - this.x) / this.k; + }, + invertY: function(y) { + return (y - this.y) / this.k; + }, + rescaleX: function(x) { + return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x)); + }, + rescaleY: function(y) { + return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y)); + }, + toString: function() { + return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")"; + } +}; + +var identity = new Transform(1, 0, 0); + +transform.prototype = Transform.prototype; + +function transform(node) { + while (!node.__zoom) if (!(node = node.parentNode)) return identity; + return node.__zoom; +} + +function nopropagation(event) { + event.stopImmediatePropagation(); +} + +function noevent(event) { + event.preventDefault(); + event.stopImmediatePropagation(); +} + +// Ignore right-click, since that should open the context menu. +// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event +function defaultFilter(event) { + return (!event.ctrlKey || event.type === 'wheel') && !event.button; +} + +function defaultExtent() { + var e = this; + if (e instanceof SVGElement) { + e = e.ownerSVGElement || e; + if (e.hasAttribute("viewBox")) { + e = e.viewBox.baseVal; + return [[e.x, e.y], [e.x + e.width, e.y + e.height]]; + } + return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]]; + } + return [[0, 0], [e.clientWidth, e.clientHeight]]; +} + +function defaultTransform() { + return this.__zoom || identity; +} + +function defaultWheelDelta(event) { + return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1); +} + +function defaultTouchable() { + return navigator.maxTouchPoints || ("ontouchstart" in this); +} + +function defaultConstrain(transform, extent, translateExtent) { + var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0], + dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0], + dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1], + dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1]; + return transform.translate( + dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1), + dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1) + ); +} + +function zoom() { + var filter = defaultFilter, + extent = defaultExtent, + constrain = defaultConstrain, + wheelDelta = defaultWheelDelta, + touchable = defaultTouchable, + scaleExtent = [0, Infinity], + translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]], + duration = 250, + interpolate = interpolateZoom, + listeners = dispatch("start", "zoom", "end"), + touchstarting, + touchfirst, + touchending, + touchDelay = 500, + wheelDelay = 150, + clickDistance2 = 0, + tapDistance = 10; + + function zoom(selection) { + selection + .property("__zoom", defaultTransform) + .on("wheel.zoom", wheeled, {passive: false}) + .on("mousedown.zoom", mousedowned) + .on("dblclick.zoom", dblclicked) + .filter(touchable) + .on("touchstart.zoom", touchstarted) + .on("touchmove.zoom", touchmoved) + .on("touchend.zoom touchcancel.zoom", touchended) + .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); + } + + zoom.transform = function(collection, transform, point, event) { + var selection = collection.selection ? collection.selection() : collection; + selection.property("__zoom", defaultTransform); + if (collection !== selection) { + schedule(collection, transform, point, event); + } else { + selection.interrupt().each(function() { + gesture(this, arguments) + .event(event) + .start() + .zoom(null, typeof transform === "function" ? transform.apply(this, arguments) : transform) + .end(); + }); + } + }; + + zoom.scaleBy = function(selection, k, p, event) { + zoom.scaleTo(selection, function() { + var k0 = this.__zoom.k, + k1 = typeof k === "function" ? k.apply(this, arguments) : k; + return k0 * k1; + }, p, event); + }; + + zoom.scaleTo = function(selection, k, p, event) { + zoom.transform(selection, function() { + var e = extent.apply(this, arguments), + t0 = this.__zoom, + p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p, + p1 = t0.invert(p0), + k1 = typeof k === "function" ? k.apply(this, arguments) : k; + return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent); + }, p, event); + }; + + zoom.translateBy = function(selection, x, y, event) { + zoom.transform(selection, function() { + return constrain(this.__zoom.translate( + typeof x === "function" ? x.apply(this, arguments) : x, + typeof y === "function" ? y.apply(this, arguments) : y + ), extent.apply(this, arguments), translateExtent); + }, null, event); + }; + + zoom.translateTo = function(selection, x, y, p, event) { + zoom.transform(selection, function() { + var e = extent.apply(this, arguments), + t = this.__zoom, + p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p; + return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate( + typeof x === "function" ? -x.apply(this, arguments) : -x, + typeof y === "function" ? -y.apply(this, arguments) : -y + ), e, translateExtent); + }, p, event); + }; + + function scale(transform, k) { + k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k)); + return k === transform.k ? transform : new Transform(k, transform.x, transform.y); + } + + function translate(transform, p0, p1) { + var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k; + return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y); + } + + function centroid(extent) { + return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2]; + } + + function schedule(transition, transform, point, event) { + transition + .on("start.zoom", function() { gesture(this, arguments).event(event).start(); }) + .on("interrupt.zoom end.zoom", function() { gesture(this, arguments).event(event).end(); }) + .tween("zoom", function() { + var that = this, + args = arguments, + g = gesture(that, args).event(event), + e = extent.apply(that, args), + p = point == null ? centroid(e) : typeof point === "function" ? point.apply(that, args) : point, + w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]), + a = that.__zoom, + b = typeof transform === "function" ? transform.apply(that, args) : transform, + i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k)); + return function(t) { + if (t === 1) t = b; // Avoid rounding error on end. + else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); } + g.zoom(null, t); + }; + }); + } + + function gesture(that, args, clean) { + return (!clean && that.__zooming) || new Gesture(that, args); + } + + function Gesture(that, args) { + this.that = that; + this.args = args; + this.active = 0; + this.sourceEvent = null; + this.extent = extent.apply(that, args); + this.taps = 0; + } + + Gesture.prototype = { + event: function(event) { + if (event) this.sourceEvent = event; + return this; + }, + start: function() { + if (++this.active === 1) { + this.that.__zooming = this; + this.emit("start"); + } + return this; + }, + zoom: function(key, transform) { + if (this.mouse && key !== "mouse") this.mouse[1] = transform.invert(this.mouse[0]); + if (this.touch0 && key !== "touch") this.touch0[1] = transform.invert(this.touch0[0]); + if (this.touch1 && key !== "touch") this.touch1[1] = transform.invert(this.touch1[0]); + this.that.__zoom = transform; + this.emit("zoom"); + return this; + }, + end: function() { + if (--this.active === 0) { + delete this.that.__zooming; + this.emit("end"); + } + return this; + }, + emit: function(type) { + var d = select(this.that).datum(); + listeners.call( + type, + this.that, + new ZoomEvent(type, { + sourceEvent: this.sourceEvent, + target: zoom, + type, + transform: this.that.__zoom, + dispatch: listeners + }), + d + ); + } + }; + + function wheeled(event, ...args) { + if (!filter.apply(this, arguments)) return; + var g = gesture(this, args).event(event), + t = this.__zoom, + k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))), + p = pointer(event); + + // If the mouse is in the same location as before, reuse it. + // If there were recent wheel events, reset the wheel idle timeout. + if (g.wheel) { + if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) { + g.mouse[1] = t.invert(g.mouse[0] = p); + } + clearTimeout(g.wheel); + } + + // If this wheel event won’t trigger a transform change, ignore it. + else if (t.k === k) return; + + // Otherwise, capture the mouse point and location at the start. + else { + g.mouse = [p, t.invert(p)]; + interrupt(this); + g.start(); + } + + noevent(event); + g.wheel = setTimeout(wheelidled, wheelDelay); + g.zoom("mouse", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent)); + + function wheelidled() { + g.wheel = null; + g.end(); + } + } + + function mousedowned(event, ...args) { + if (touchending || !filter.apply(this, arguments)) return; + var currentTarget = event.currentTarget, + g = gesture(this, args, true).event(event), + v = select(event.view).on("mousemove.zoom", mousemoved, true).on("mouseup.zoom", mouseupped, true), + p = pointer(event, currentTarget), + x0 = event.clientX, + y0 = event.clientY; + + dragDisable(event.view); + nopropagation(event); + g.mouse = [p, this.__zoom.invert(p)]; + interrupt(this); + g.start(); + + function mousemoved(event) { + noevent(event); + if (!g.moved) { + var dx = event.clientX - x0, dy = event.clientY - y0; + g.moved = dx * dx + dy * dy > clickDistance2; + } + g.event(event) + .zoom("mouse", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent)); + } + + function mouseupped(event) { + v.on("mousemove.zoom mouseup.zoom", null); + yesdrag(event.view, g.moved); + noevent(event); + g.event(event).end(); + } + } + + function dblclicked(event, ...args) { + if (!filter.apply(this, arguments)) return; + var t0 = this.__zoom, + p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this), + p1 = t0.invert(p0), + k1 = t0.k * (event.shiftKey ? 0.5 : 2), + t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent); + + noevent(event); + if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event); + else select(this).call(zoom.transform, t1, p0, event); + } + + function touchstarted(event, ...args) { + if (!filter.apply(this, arguments)) return; + var touches = event.touches, + n = touches.length, + g = gesture(this, args, event.changedTouches.length === n).event(event), + started, i, t, p; + + nopropagation(event); + for (i = 0; i < n; ++i) { + t = touches[i], p = pointer(t, this); + p = [p, this.__zoom.invert(p), t.identifier]; + if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting; + else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0; + } + + if (touchstarting) touchstarting = clearTimeout(touchstarting); + + if (started) { + if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay); + interrupt(this); + g.start(); + } + } + + function touchmoved(event, ...args) { + if (!this.__zooming) return; + var g = gesture(this, args).event(event), + touches = event.changedTouches, + n = touches.length, i, t, p, l; + + noevent(event); + for (i = 0; i < n; ++i) { + t = touches[i], p = pointer(t, this); + if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p; + else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p; + } + t = g.that.__zoom; + if (g.touch1) { + var p0 = g.touch0[0], l0 = g.touch0[1], + p1 = g.touch1[0], l1 = g.touch1[1], + dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp, + dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl; + t = scale(t, Math.sqrt(dp / dl)); + p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2]; + l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2]; + } + else if (g.touch0) p = g.touch0[0], l = g.touch0[1]; + else return; + + g.zoom("touch", constrain(translate(t, p, l), g.extent, translateExtent)); + } + + function touchended(event, ...args) { + if (!this.__zooming) return; + var g = gesture(this, args).event(event), + touches = event.changedTouches, + n = touches.length, i, t; + + nopropagation(event); + if (touchending) clearTimeout(touchending); + touchending = setTimeout(function() { touchending = null; }, touchDelay); + for (i = 0; i < n; ++i) { + t = touches[i]; + if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0; + else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1; + } + if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1; + if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]); + else { + g.end(); + // If this was a dbltap, reroute to the (optional) dblclick.zoom handler. + if (g.taps === 2) { + t = pointer(t, this); + if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) { + var p = select(this).on("dblclick.zoom"); + if (p) p.apply(this, arguments); + } + } + } + } + + zoom.wheelDelta = function(_) { + return arguments.length ? (wheelDelta = typeof _ === "function" ? _ : constant(+_), zoom) : wheelDelta; + }; + + zoom.filter = function(_) { + return arguments.length ? (filter = typeof _ === "function" ? _ : constant(!!_), zoom) : filter; + }; + + zoom.touchable = function(_) { + return arguments.length ? (touchable = typeof _ === "function" ? _ : constant(!!_), zoom) : touchable; + }; + + zoom.extent = function(_) { + return arguments.length ? (extent = typeof _ === "function" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent; + }; + + zoom.scaleExtent = function(_) { + return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]]; + }; + + zoom.translateExtent = function(_) { + return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]]; + }; + + zoom.constrain = function(_) { + return arguments.length ? (constrain = _, zoom) : constrain; + }; + + zoom.duration = function(_) { + return arguments.length ? (duration = +_, zoom) : duration; + }; + + zoom.interpolate = function(_) { + return arguments.length ? (interpolate = _, zoom) : interpolate; + }; + + zoom.on = function() { + var value = listeners.on.apply(listeners, arguments); + return value === listeners ? zoom : value; + }; + + zoom.clickDistance = function(_) { + return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2); + }; + + zoom.tapDistance = function(_) { + return arguments.length ? (tapDistance = +_, zoom) : tapDistance; + }; + + return zoom; +} + +exports.Adder = Adder; +exports.Delaunay = Delaunay; +exports.FormatSpecifier = FormatSpecifier; +exports.InternMap = InternMap; +exports.InternSet = InternSet; +exports.Node = Node$1; +exports.Path = Path$1; +exports.Voronoi = Voronoi; +exports.ZoomTransform = Transform; +exports.active = active; +exports.arc = arc; +exports.area = area; +exports.areaRadial = areaRadial; +exports.ascending = ascending$3; +exports.autoType = autoType; +exports.axisBottom = axisBottom; +exports.axisLeft = axisLeft; +exports.axisRight = axisRight; +exports.axisTop = axisTop; +exports.bin = bin; +exports.bisect = bisect; +exports.bisectCenter = bisectCenter; +exports.bisectLeft = bisectLeft; +exports.bisectRight = bisectRight; +exports.bisector = bisector; +exports.blob = blob; +exports.blur = blur; +exports.blur2 = blur2; +exports.blurImage = blurImage; +exports.brush = brush; +exports.brushSelection = brushSelection; +exports.brushX = brushX; +exports.brushY = brushY; +exports.buffer = buffer; +exports.chord = chord; +exports.chordDirected = chordDirected; +exports.chordTranspose = chordTranspose; +exports.cluster = cluster; +exports.color = color; +exports.contourDensity = density; +exports.contours = Contours; +exports.count = count$1; +exports.create = create$1; +exports.creator = creator; +exports.cross = cross$2; +exports.csv = csv; +exports.csvFormat = csvFormat; +exports.csvFormatBody = csvFormatBody; +exports.csvFormatRow = csvFormatRow; +exports.csvFormatRows = csvFormatRows; +exports.csvFormatValue = csvFormatValue; +exports.csvParse = csvParse; +exports.csvParseRows = csvParseRows; +exports.cubehelix = cubehelix$3; +exports.cumsum = cumsum; +exports.curveBasis = basis; +exports.curveBasisClosed = basisClosed; +exports.curveBasisOpen = basisOpen; +exports.curveBumpX = bumpX; +exports.curveBumpY = bumpY; +exports.curveBundle = bundle; +exports.curveCardinal = cardinal; +exports.curveCardinalClosed = cardinalClosed; +exports.curveCardinalOpen = cardinalOpen; +exports.curveCatmullRom = catmullRom; +exports.curveCatmullRomClosed = catmullRomClosed; +exports.curveCatmullRomOpen = catmullRomOpen; +exports.curveLinear = curveLinear; +exports.curveLinearClosed = linearClosed; +exports.curveMonotoneX = monotoneX; +exports.curveMonotoneY = monotoneY; +exports.curveNatural = natural; +exports.curveStep = step; +exports.curveStepAfter = stepAfter; +exports.curveStepBefore = stepBefore; +exports.descending = descending$2; +exports.deviation = deviation; +exports.difference = difference; +exports.disjoint = disjoint; +exports.dispatch = dispatch; +exports.drag = drag; +exports.dragDisable = dragDisable; +exports.dragEnable = yesdrag; +exports.dsv = dsv; +exports.dsvFormat = dsvFormat; +exports.easeBack = backInOut; +exports.easeBackIn = backIn; +exports.easeBackInOut = backInOut; +exports.easeBackOut = backOut; +exports.easeBounce = bounceOut; +exports.easeBounceIn = bounceIn; +exports.easeBounceInOut = bounceInOut; +exports.easeBounceOut = bounceOut; +exports.easeCircle = circleInOut; +exports.easeCircleIn = circleIn; +exports.easeCircleInOut = circleInOut; +exports.easeCircleOut = circleOut; +exports.easeCubic = cubicInOut; +exports.easeCubicIn = cubicIn; +exports.easeCubicInOut = cubicInOut; +exports.easeCubicOut = cubicOut; +exports.easeElastic = elasticOut; +exports.easeElasticIn = elasticIn; +exports.easeElasticInOut = elasticInOut; +exports.easeElasticOut = elasticOut; +exports.easeExp = expInOut; +exports.easeExpIn = expIn; +exports.easeExpInOut = expInOut; +exports.easeExpOut = expOut; +exports.easeLinear = linear$1; +exports.easePoly = polyInOut; +exports.easePolyIn = polyIn; +exports.easePolyInOut = polyInOut; +exports.easePolyOut = polyOut; +exports.easeQuad = quadInOut; +exports.easeQuadIn = quadIn; +exports.easeQuadInOut = quadInOut; +exports.easeQuadOut = quadOut; +exports.easeSin = sinInOut; +exports.easeSinIn = sinIn; +exports.easeSinInOut = sinInOut; +exports.easeSinOut = sinOut; +exports.every = every; +exports.extent = extent$1; +exports.fcumsum = fcumsum; +exports.filter = filter$1; +exports.flatGroup = flatGroup; +exports.flatRollup = flatRollup; +exports.forceCenter = center; +exports.forceCollide = collide; +exports.forceLink = link$2; +exports.forceManyBody = manyBody; +exports.forceRadial = radial$1; +exports.forceSimulation = simulation; +exports.forceX = x$1; +exports.forceY = y$1; +exports.formatDefaultLocale = defaultLocale$1; +exports.formatLocale = formatLocale$1; +exports.formatSpecifier = formatSpecifier; +exports.fsum = fsum; +exports.geoAlbers = albers; +exports.geoAlbersUsa = albersUsa; +exports.geoArea = area$2; +exports.geoAzimuthalEqualArea = azimuthalEqualArea; +exports.geoAzimuthalEqualAreaRaw = azimuthalEqualAreaRaw; +exports.geoAzimuthalEquidistant = azimuthalEquidistant; +exports.geoAzimuthalEquidistantRaw = azimuthalEquidistantRaw; +exports.geoBounds = bounds; +exports.geoCentroid = centroid$1; +exports.geoCircle = circle$1; +exports.geoClipAntimeridian = clipAntimeridian; +exports.geoClipCircle = clipCircle; +exports.geoClipExtent = extent; +exports.geoClipRectangle = clipRectangle; +exports.geoConicConformal = conicConformal; +exports.geoConicConformalRaw = conicConformalRaw; +exports.geoConicEqualArea = conicEqualArea; +exports.geoConicEqualAreaRaw = conicEqualAreaRaw; +exports.geoConicEquidistant = conicEquidistant; +exports.geoConicEquidistantRaw = conicEquidistantRaw; +exports.geoContains = contains$1; +exports.geoDistance = distance; +exports.geoEqualEarth = equalEarth; +exports.geoEqualEarthRaw = equalEarthRaw; +exports.geoEquirectangular = equirectangular; +exports.geoEquirectangularRaw = equirectangularRaw; +exports.geoGnomonic = gnomonic; +exports.geoGnomonicRaw = gnomonicRaw; +exports.geoGraticule = graticule; +exports.geoGraticule10 = graticule10; +exports.geoIdentity = identity$4; +exports.geoInterpolate = interpolate; +exports.geoLength = length$1; +exports.geoMercator = mercator; +exports.geoMercatorRaw = mercatorRaw; +exports.geoNaturalEarth1 = naturalEarth1; +exports.geoNaturalEarth1Raw = naturalEarth1Raw; +exports.geoOrthographic = orthographic; +exports.geoOrthographicRaw = orthographicRaw; +exports.geoPath = index$2; +exports.geoProjection = projection; +exports.geoProjectionMutator = projectionMutator; +exports.geoRotation = rotation; +exports.geoStereographic = stereographic; +exports.geoStereographicRaw = stereographicRaw; +exports.geoStream = geoStream; +exports.geoTransform = transform$1; +exports.geoTransverseMercator = transverseMercator; +exports.geoTransverseMercatorRaw = transverseMercatorRaw; +exports.gray = gray; +exports.greatest = greatest; +exports.greatestIndex = greatestIndex; +exports.group = group; +exports.groupSort = groupSort; +exports.groups = groups; +exports.hcl = hcl$2; +exports.hierarchy = hierarchy; +exports.histogram = bin; +exports.hsl = hsl$2; +exports.html = html; +exports.image = image; +exports.index = index$4; +exports.indexes = indexes; +exports.interpolate = interpolate$2; +exports.interpolateArray = array$3; +exports.interpolateBasis = basis$2; +exports.interpolateBasisClosed = basisClosed$1; +exports.interpolateBlues = Blues; +exports.interpolateBrBG = BrBG; +exports.interpolateBuGn = BuGn; +exports.interpolateBuPu = BuPu; +exports.interpolateCividis = cividis; +exports.interpolateCool = cool; +exports.interpolateCubehelix = cubehelix$2; +exports.interpolateCubehelixDefault = cubehelix; +exports.interpolateCubehelixLong = cubehelixLong; +exports.interpolateDate = date$1; +exports.interpolateDiscrete = discrete; +exports.interpolateGnBu = GnBu; +exports.interpolateGreens = Greens; +exports.interpolateGreys = Greys; +exports.interpolateHcl = hcl$1; +exports.interpolateHclLong = hclLong; +exports.interpolateHsl = hsl$1; +exports.interpolateHslLong = hslLong; +exports.interpolateHue = hue; +exports.interpolateInferno = inferno; +exports.interpolateLab = lab; +exports.interpolateMagma = magma; +exports.interpolateNumber = interpolateNumber; +exports.interpolateNumberArray = numberArray; +exports.interpolateObject = object$1; +exports.interpolateOrRd = OrRd; +exports.interpolateOranges = Oranges; +exports.interpolatePRGn = PRGn; +exports.interpolatePiYG = PiYG; +exports.interpolatePlasma = plasma; +exports.interpolatePuBu = PuBu; +exports.interpolatePuBuGn = PuBuGn; +exports.interpolatePuOr = PuOr; +exports.interpolatePuRd = PuRd; +exports.interpolatePurples = Purples; +exports.interpolateRainbow = rainbow; +exports.interpolateRdBu = RdBu; +exports.interpolateRdGy = RdGy; +exports.interpolateRdPu = RdPu; +exports.interpolateRdYlBu = RdYlBu; +exports.interpolateRdYlGn = RdYlGn; +exports.interpolateReds = Reds; +exports.interpolateRgb = interpolateRgb; +exports.interpolateRgbBasis = rgbBasis; +exports.interpolateRgbBasisClosed = rgbBasisClosed; +exports.interpolateRound = interpolateRound; +exports.interpolateSinebow = sinebow; +exports.interpolateSpectral = Spectral; +exports.interpolateString = interpolateString; +exports.interpolateTransformCss = interpolateTransformCss; +exports.interpolateTransformSvg = interpolateTransformSvg; +exports.interpolateTurbo = turbo; +exports.interpolateViridis = viridis; +exports.interpolateWarm = warm; +exports.interpolateYlGn = YlGn; +exports.interpolateYlGnBu = YlGnBu; +exports.interpolateYlOrBr = YlOrBr; +exports.interpolateYlOrRd = YlOrRd; +exports.interpolateZoom = interpolateZoom; +exports.interrupt = interrupt; +exports.intersection = intersection; +exports.interval = interval; +exports.isoFormat = formatIso$1; +exports.isoParse = parseIso$1; +exports.json = json; +exports.lab = lab$1; +exports.lch = lch; +exports.least = least; +exports.leastIndex = leastIndex; +exports.line = line; +exports.lineRadial = lineRadial$1; +exports.link = link; +exports.linkHorizontal = linkHorizontal; +exports.linkRadial = linkRadial; +exports.linkVertical = linkVertical; +exports.local = local$1; +exports.map = map$1; +exports.matcher = matcher; +exports.max = max$3; +exports.maxIndex = maxIndex; +exports.mean = mean; +exports.median = median; +exports.medianIndex = medianIndex; +exports.merge = merge; +exports.min = min$2; +exports.minIndex = minIndex; +exports.mode = mode; +exports.namespace = namespace; +exports.namespaces = namespaces; +exports.nice = nice$1; +exports.now = now; +exports.pack = index$1; +exports.packEnclose = enclose; +exports.packSiblings = siblings; +exports.pairs = pairs; +exports.partition = partition; +exports.path = path; +exports.pathRound = pathRound; +exports.permute = permute; +exports.pie = pie; +exports.piecewise = piecewise; +exports.pointRadial = pointRadial; +exports.pointer = pointer; +exports.pointers = pointers; +exports.polygonArea = area$1; +exports.polygonCentroid = centroid; +exports.polygonContains = contains; +exports.polygonHull = hull; +exports.polygonLength = length; +exports.precisionFixed = precisionFixed; +exports.precisionPrefix = precisionPrefix; +exports.precisionRound = precisionRound; +exports.quadtree = quadtree; +exports.quantile = quantile$1; +exports.quantileIndex = quantileIndex; +exports.quantileSorted = quantileSorted; +exports.quantize = quantize$1; +exports.quickselect = quickselect; +exports.radialArea = areaRadial; +exports.radialLine = lineRadial$1; +exports.randomBates = bates; +exports.randomBernoulli = bernoulli; +exports.randomBeta = beta; +exports.randomBinomial = binomial; +exports.randomCauchy = cauchy; +exports.randomExponential = exponential; +exports.randomGamma = gamma; +exports.randomGeometric = geometric; +exports.randomInt = int; +exports.randomIrwinHall = irwinHall; +exports.randomLcg = lcg; +exports.randomLogNormal = logNormal; +exports.randomLogistic = logistic; +exports.randomNormal = normal; +exports.randomPareto = pareto; +exports.randomPoisson = poisson; +exports.randomUniform = uniform; +exports.randomWeibull = weibull; +exports.range = range$2; +exports.rank = rank; +exports.reduce = reduce; +exports.reverse = reverse$1; +exports.rgb = rgb; +exports.ribbon = ribbon$1; +exports.ribbonArrow = ribbonArrow; +exports.rollup = rollup; +exports.rollups = rollups; +exports.scaleBand = band; +exports.scaleDiverging = diverging$1; +exports.scaleDivergingLog = divergingLog; +exports.scaleDivergingPow = divergingPow; +exports.scaleDivergingSqrt = divergingSqrt; +exports.scaleDivergingSymlog = divergingSymlog; +exports.scaleIdentity = identity$2; +exports.scaleImplicit = implicit; +exports.scaleLinear = linear; +exports.scaleLog = log; +exports.scaleOrdinal = ordinal; +exports.scalePoint = point$4; +exports.scalePow = pow; +exports.scaleQuantile = quantile; +exports.scaleQuantize = quantize; +exports.scaleRadial = radial; +exports.scaleSequential = sequential; +exports.scaleSequentialLog = sequentialLog; +exports.scaleSequentialPow = sequentialPow; +exports.scaleSequentialQuantile = sequentialQuantile; +exports.scaleSequentialSqrt = sequentialSqrt; +exports.scaleSequentialSymlog = sequentialSymlog; +exports.scaleSqrt = sqrt$1; +exports.scaleSymlog = symlog; +exports.scaleThreshold = threshold; +exports.scaleTime = time; +exports.scaleUtc = utcTime; +exports.scan = scan; +exports.schemeAccent = Accent; +exports.schemeBlues = scheme$5; +exports.schemeBrBG = scheme$q; +exports.schemeBuGn = scheme$h; +exports.schemeBuPu = scheme$g; +exports.schemeCategory10 = category10; +exports.schemeDark2 = Dark2; +exports.schemeGnBu = scheme$f; +exports.schemeGreens = scheme$4; +exports.schemeGreys = scheme$3; +exports.schemeOrRd = scheme$e; +exports.schemeOranges = scheme; +exports.schemePRGn = scheme$p; +exports.schemePaired = Paired; +exports.schemePastel1 = Pastel1; +exports.schemePastel2 = Pastel2; +exports.schemePiYG = scheme$o; +exports.schemePuBu = scheme$c; +exports.schemePuBuGn = scheme$d; +exports.schemePuOr = scheme$n; +exports.schemePuRd = scheme$b; +exports.schemePurples = scheme$2; +exports.schemeRdBu = scheme$m; +exports.schemeRdGy = scheme$l; +exports.schemeRdPu = scheme$a; +exports.schemeRdYlBu = scheme$k; +exports.schemeRdYlGn = scheme$j; +exports.schemeReds = scheme$1; +exports.schemeSet1 = Set1; +exports.schemeSet2 = Set2; +exports.schemeSet3 = Set3; +exports.schemeSpectral = scheme$i; +exports.schemeTableau10 = Tableau10; +exports.schemeYlGn = scheme$8; +exports.schemeYlGnBu = scheme$9; +exports.schemeYlOrBr = scheme$7; +exports.schemeYlOrRd = scheme$6; +exports.select = select; +exports.selectAll = selectAll; +exports.selection = selection; +exports.selector = selector; +exports.selectorAll = selectorAll; +exports.shuffle = shuffle$1; +exports.shuffler = shuffler; +exports.some = some; +exports.sort = sort; +exports.stack = stack; +exports.stackOffsetDiverging = diverging; +exports.stackOffsetExpand = expand; +exports.stackOffsetNone = none$1; +exports.stackOffsetSilhouette = silhouette; +exports.stackOffsetWiggle = wiggle; +exports.stackOrderAppearance = appearance; +exports.stackOrderAscending = ascending; +exports.stackOrderDescending = descending; +exports.stackOrderInsideOut = insideOut; +exports.stackOrderNone = none; +exports.stackOrderReverse = reverse; +exports.stratify = stratify; +exports.style = styleValue; +exports.subset = subset; +exports.sum = sum$2; +exports.superset = superset; +exports.svg = svg; +exports.symbol = Symbol$1; +exports.symbolAsterisk = asterisk; +exports.symbolCircle = circle; +exports.symbolCross = cross; +exports.symbolDiamond = diamond; +exports.symbolDiamond2 = diamond2; +exports.symbolPlus = plus; +exports.symbolSquare = square; +exports.symbolSquare2 = square2; +exports.symbolStar = star; +exports.symbolTimes = times; +exports.symbolTriangle = triangle; +exports.symbolTriangle2 = triangle2; +exports.symbolWye = wye; +exports.symbolX = times; +exports.symbols = symbolsFill; +exports.symbolsFill = symbolsFill; +exports.symbolsStroke = symbolsStroke; +exports.text = text; +exports.thresholdFreedmanDiaconis = thresholdFreedmanDiaconis; +exports.thresholdScott = thresholdScott; +exports.thresholdSturges = thresholdSturges; +exports.tickFormat = tickFormat; +exports.tickIncrement = tickIncrement; +exports.tickStep = tickStep; +exports.ticks = ticks; +exports.timeDay = timeDay; +exports.timeDays = timeDays; +exports.timeFormatDefaultLocale = defaultLocale; +exports.timeFormatLocale = formatLocale; +exports.timeFriday = timeFriday; +exports.timeFridays = timeFridays; +exports.timeHour = timeHour; +exports.timeHours = timeHours; +exports.timeInterval = timeInterval; +exports.timeMillisecond = millisecond; +exports.timeMilliseconds = milliseconds; +exports.timeMinute = timeMinute; +exports.timeMinutes = timeMinutes; +exports.timeMonday = timeMonday; +exports.timeMondays = timeMondays; +exports.timeMonth = timeMonth; +exports.timeMonths = timeMonths; +exports.timeSaturday = timeSaturday; +exports.timeSaturdays = timeSaturdays; +exports.timeSecond = second; +exports.timeSeconds = seconds; +exports.timeSunday = timeSunday; +exports.timeSundays = timeSundays; +exports.timeThursday = timeThursday; +exports.timeThursdays = timeThursdays; +exports.timeTickInterval = timeTickInterval; +exports.timeTicks = timeTicks; +exports.timeTuesday = timeTuesday; +exports.timeTuesdays = timeTuesdays; +exports.timeWednesday = timeWednesday; +exports.timeWednesdays = timeWednesdays; +exports.timeWeek = timeSunday; +exports.timeWeeks = timeSundays; +exports.timeYear = timeYear; +exports.timeYears = timeYears; +exports.timeout = timeout; +exports.timer = timer; +exports.timerFlush = timerFlush; +exports.transition = transition; +exports.transpose = transpose; +exports.tree = tree; +exports.treemap = index; +exports.treemapBinary = binary; +exports.treemapDice = treemapDice; +exports.treemapResquarify = resquarify; +exports.treemapSlice = treemapSlice; +exports.treemapSliceDice = sliceDice; +exports.treemapSquarify = squarify; +exports.tsv = tsv; +exports.tsvFormat = tsvFormat; +exports.tsvFormatBody = tsvFormatBody; +exports.tsvFormatRow = tsvFormatRow; +exports.tsvFormatRows = tsvFormatRows; +exports.tsvFormatValue = tsvFormatValue; +exports.tsvParse = tsvParse; +exports.tsvParseRows = tsvParseRows; +exports.union = union; +exports.unixDay = unixDay; +exports.unixDays = unixDays; +exports.utcDay = utcDay; +exports.utcDays = utcDays; +exports.utcFriday = utcFriday; +exports.utcFridays = utcFridays; +exports.utcHour = utcHour; +exports.utcHours = utcHours; +exports.utcMillisecond = millisecond; +exports.utcMilliseconds = milliseconds; +exports.utcMinute = utcMinute; +exports.utcMinutes = utcMinutes; +exports.utcMonday = utcMonday; +exports.utcMondays = utcMondays; +exports.utcMonth = utcMonth; +exports.utcMonths = utcMonths; +exports.utcSaturday = utcSaturday; +exports.utcSaturdays = utcSaturdays; +exports.utcSecond = second; +exports.utcSeconds = seconds; +exports.utcSunday = utcSunday; +exports.utcSundays = utcSundays; +exports.utcThursday = utcThursday; +exports.utcThursdays = utcThursdays; +exports.utcTickInterval = utcTickInterval; +exports.utcTicks = utcTicks; +exports.utcTuesday = utcTuesday; +exports.utcTuesdays = utcTuesdays; +exports.utcWednesday = utcWednesday; +exports.utcWednesdays = utcWednesdays; +exports.utcWeek = utcSunday; +exports.utcWeeks = utcSundays; +exports.utcYear = utcYear; +exports.utcYears = utcYears; +exports.variance = variance; +exports.version = version; +exports.window = defaultView; +exports.xml = xml; +exports.zip = zip; +exports.zoom = zoom; +exports.zoomIdentity = identity; +exports.zoomTransform = transform; + +})); diff --git a/static/javascripts/popperjs/enums.js b/static/javascripts/popperjs/enums.js new file mode 100644 index 000000000..286a8a8d7 --- /dev/null +++ b/static/javascripts/popperjs/enums.js @@ -0,0 +1,71 @@ +/** + * @popperjs/core v2.11.8 - MIT License + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Popper = {})); +}(this, (function (exports) { 'use strict'; + + var top = 'top'; + var bottom = 'bottom'; + var right = 'right'; + var left = 'left'; + var auto = 'auto'; + var basePlacements = [top, bottom, right, left]; + var start = 'start'; + var end = 'end'; + var clippingParents = 'clippingParents'; + var viewport = 'viewport'; + var popper = 'popper'; + var reference = 'reference'; + var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) { + return acc.concat([placement + "-" + start, placement + "-" + end]); + }, []); + var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) { + return acc.concat([placement, placement + "-" + start, placement + "-" + end]); + }, []); // modifiers that need to read the DOM + + var beforeRead = 'beforeRead'; + var read = 'read'; + var afterRead = 'afterRead'; // pure-logic modifiers + + var beforeMain = 'beforeMain'; + var main = 'main'; + var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state) + + var beforeWrite = 'beforeWrite'; + var write = 'write'; + var afterWrite = 'afterWrite'; + var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite]; + + exports.afterMain = afterMain; + exports.afterRead = afterRead; + exports.afterWrite = afterWrite; + exports.auto = auto; + exports.basePlacements = basePlacements; + exports.beforeMain = beforeMain; + exports.beforeRead = beforeRead; + exports.beforeWrite = beforeWrite; + exports.bottom = bottom; + exports.clippingParents = clippingParents; + exports.end = end; + exports.left = left; + exports.main = main; + exports.modifierPhases = modifierPhases; + exports.placements = placements; + exports.popper = popper; + exports.read = read; + exports.reference = reference; + exports.right = right; + exports.start = start; + exports.top = top; + exports.variationPlacements = variationPlacements; + exports.viewport = viewport; + exports.write = write; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); +//# sourceMappingURL=enums.js.map diff --git a/static/javascripts/popperjs/enums.js.map b/static/javascripts/popperjs/enums.js.map new file mode 100644 index 000000000..022e338ac --- /dev/null +++ b/static/javascripts/popperjs/enums.js.map @@ -0,0 +1 @@ +{"version":3,"file":"enums.js","sources":["../../src/enums.js"],"sourcesContent":["// @flow\nexport const top: 'top' = 'top';\nexport const bottom: 'bottom' = 'bottom';\nexport const right: 'right' = 'right';\nexport const left: 'left' = 'left';\nexport const auto: 'auto' = 'auto';\nexport type BasePlacement =\n | typeof top\n | typeof bottom\n | typeof right\n | typeof left;\nexport const basePlacements: Array<BasePlacement> = [top, bottom, right, left];\n\nexport const start: 'start' = 'start';\nexport const end: 'end' = 'end';\nexport type Variation = typeof start | typeof end;\n\nexport const clippingParents: 'clippingParents' = 'clippingParents';\nexport const viewport: 'viewport' = 'viewport';\nexport type Boundary = Element | Array<Element> | typeof clippingParents;\nexport type RootBoundary = typeof viewport | 'document';\n\nexport const popper: 'popper' = 'popper';\nexport const reference: 'reference' = 'reference';\nexport type Context = typeof popper | typeof reference;\n\nexport type VariationPlacement =\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end';\nexport type AutoPlacement = 'auto' | 'auto-start' | 'auto-end';\nexport type ComputedPlacement = VariationPlacement | BasePlacement;\nexport type Placement = AutoPlacement | BasePlacement | VariationPlacement;\n\nexport const variationPlacements: Array<VariationPlacement> = basePlacements.reduce(\n (acc: Array<VariationPlacement>, placement: BasePlacement) =>\n acc.concat([(`${placement}-${start}`: any), (`${placement}-${end}`: any)]),\n []\n);\nexport const placements: Array<Placement> = [...basePlacements, auto].reduce(\n (\n acc: Array<Placement>,\n placement: BasePlacement | typeof auto\n ): Array<Placement> =>\n acc.concat([\n placement,\n (`${placement}-${start}`: any),\n (`${placement}-${end}`: any),\n ]),\n []\n);\n\n// modifiers that need to read the DOM\nexport const beforeRead: 'beforeRead' = 'beforeRead';\nexport const read: 'read' = 'read';\nexport const afterRead: 'afterRead' = 'afterRead';\n// pure-logic modifiers\nexport const beforeMain: 'beforeMain' = 'beforeMain';\nexport const main: 'main' = 'main';\nexport const afterMain: 'afterMain' = 'afterMain';\n// modifier with the purpose to write to the DOM (or write into a framework state)\nexport const beforeWrite: 'beforeWrite' = 'beforeWrite';\nexport const write: 'write' = 'write';\nexport const afterWrite: 'afterWrite' = 'afterWrite';\nexport const modifierPhases: Array<ModifierPhases> = [\n beforeRead,\n read,\n afterRead,\n beforeMain,\n main,\n afterMain,\n beforeWrite,\n write,\n afterWrite,\n];\n\nexport type ModifierPhases =\n | typeof beforeRead\n | typeof read\n | typeof afterRead\n | typeof beforeMain\n | typeof main\n | typeof afterMain\n | typeof beforeWrite\n | typeof write\n | typeof afterWrite;\n"],"names":["top","bottom","right","left","auto","basePlacements","start","end","clippingParents","viewport","popper","reference","variationPlacements","reduce","acc","placement","concat","placements","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases"],"mappings":";;;;;;;;;;MACaA,GAAU,GAAG;MACbC,MAAgB,GAAG;MACnBC,KAAc,GAAG;MACjBC,IAAY,GAAG;MACfC,IAAY,GAAG;MAMfC,cAAoC,GAAG,CAACL,GAAD,EAAMC,MAAN,EAAcC,KAAd,EAAqBC,IAArB;MAEvCG,KAAc,GAAG;MACjBC,GAAU,GAAG;MAGbC,eAAkC,GAAG;MACrCC,QAAoB,GAAG;MAIvBC,MAAgB,GAAG;MACnBC,SAAsB,GAAG;MAgBzBC,mBAA8C,gBAAGP,cAAc,CAACQ,MAAf,CAC5D,UAACC,GAAD,EAAiCC,SAAjC;EAAA,SACED,GAAG,CAACE,MAAJ,CAAW,CAAKD,SAAL,SAAkBT,KAAlB,EAAqCS,SAArC,SAAkDR,GAAlD,CAAX,CADF;EAAA,CAD4D,EAG5D,EAH4D;MAKjDU,UAA4B,gBAAG,UAAIZ,cAAJ,GAAoBD,IAApB,GAA0BS,MAA1B,CAC1C,UACEC,GADF,EAEEC,SAFF;EAAA,SAIED,GAAG,CAACE,MAAJ,CAAW,CACTD,SADS,EAELA,SAFK,SAEQT,KAFR,EAGLS,SAHK,SAGQR,GAHR,CAAX,CAJF;EAAA,CAD0C,EAU1C,EAV0C;;MAc/BW,UAAwB,GAAG;MAC3BC,IAAY,GAAG;MACfC,SAAsB,GAAG;;MAEzBC,UAAwB,GAAG;MAC3BC,IAAY,GAAG;MACfC,SAAsB,GAAG;;MAEzBC,WAA0B,GAAG;MAC7BC,KAAc,GAAG;MACjBC,UAAwB,GAAG;MAC3BC,cAAqC,GAAG,CACnDT,UADmD,EAEnDC,IAFmD,EAGnDC,SAHmD,EAInDC,UAJmD,EAKnDC,IALmD,EAMnDC,SANmD,EAOnDC,WAPmD,EAQnDC,KARmD,EASnDC,UATmD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/static/javascripts/popperjs/enums.min.js b/static/javascripts/popperjs/enums.min.js new file mode 100644 index 000000000..4618f98fa --- /dev/null +++ b/static/javascripts/popperjs/enums.min.js @@ -0,0 +1,6 @@ +/** + * @popperjs/core v2.11.8 - MIT License + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";var t="bottom",r="right",o="left",n="auto",a=["top",t,r,o],i="start",f="end",p=a.reduce((function(e,t){return e.concat([t+"-"+i,t+"-"+f])}),[]),c=[].concat(a,[n]).reduce((function(e,t){return e.concat([t,t+"-"+i,t+"-"+f])}),[]),d="beforeRead",s="read",u="afterRead",l="beforeMain",b="main",m="afterMain",P="beforeWrite",g="write",h="afterWrite",v=[d,s,u,l,b,m,P,g,h];e.afterMain=m,e.afterRead=u,e.afterWrite=h,e.auto=n,e.basePlacements=a,e.beforeMain=l,e.beforeRead=d,e.beforeWrite=P,e.bottom=t,e.clippingParents="clippingParents",e.end=f,e.left=o,e.main=b,e.modifierPhases=v,e.placements=c,e.popper="popper",e.read=s,e.reference="reference",e.right=r,e.start=i,e.top="top",e.variationPlacements=p,e.viewport="viewport",e.write=g,Object.defineProperty(e,"__esModule",{value:!0})})); +//# sourceMappingURL=enums.min.js.map diff --git a/static/javascripts/popperjs/enums.min.js.flow b/static/javascripts/popperjs/enums.min.js.flow new file mode 100644 index 000000000..8512ad042 --- /dev/null +++ b/static/javascripts/popperjs/enums.min.js.flow @@ -0,0 +1,3 @@ +// @flow + +export * from '../../lib/enums.js' diff --git a/static/javascripts/popperjs/enums.min.js.map b/static/javascripts/popperjs/enums.min.js.map new file mode 100644 index 000000000..41d5f0f0b --- /dev/null +++ b/static/javascripts/popperjs/enums.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"enums.min.js","sources":["../../src/enums.js"],"sourcesContent":["// @flow\nexport const top: 'top' = 'top';\nexport const bottom: 'bottom' = 'bottom';\nexport const right: 'right' = 'right';\nexport const left: 'left' = 'left';\nexport const auto: 'auto' = 'auto';\nexport type BasePlacement =\n | typeof top\n | typeof bottom\n | typeof right\n | typeof left;\nexport const basePlacements: Array<BasePlacement> = [top, bottom, right, left];\n\nexport const start: 'start' = 'start';\nexport const end: 'end' = 'end';\nexport type Variation = typeof start | typeof end;\n\nexport const clippingParents: 'clippingParents' = 'clippingParents';\nexport const viewport: 'viewport' = 'viewport';\nexport type Boundary = Element | Array<Element> | typeof clippingParents;\nexport type RootBoundary = typeof viewport | 'document';\n\nexport const popper: 'popper' = 'popper';\nexport const reference: 'reference' = 'reference';\nexport type Context = typeof popper | typeof reference;\n\nexport type VariationPlacement =\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end';\nexport type AutoPlacement = 'auto' | 'auto-start' | 'auto-end';\nexport type ComputedPlacement = VariationPlacement | BasePlacement;\nexport type Placement = AutoPlacement | BasePlacement | VariationPlacement;\n\nexport const variationPlacements: Array<VariationPlacement> = basePlacements.reduce(\n (acc: Array<VariationPlacement>, placement: BasePlacement) =>\n acc.concat([(`${placement}-${start}`: any), (`${placement}-${end}`: any)]),\n []\n);\nexport const placements: Array<Placement> = [...basePlacements, auto].reduce(\n (\n acc: Array<Placement>,\n placement: BasePlacement | typeof auto\n ): Array<Placement> =>\n acc.concat([\n placement,\n (`${placement}-${start}`: any),\n (`${placement}-${end}`: any),\n ]),\n []\n);\n\n// modifiers that need to read the DOM\nexport const beforeRead: 'beforeRead' = 'beforeRead';\nexport const read: 'read' = 'read';\nexport const afterRead: 'afterRead' = 'afterRead';\n// pure-logic modifiers\nexport const beforeMain: 'beforeMain' = 'beforeMain';\nexport const main: 'main' = 'main';\nexport const afterMain: 'afterMain' = 'afterMain';\n// modifier with the purpose to write to the DOM (or write into a framework state)\nexport const beforeWrite: 'beforeWrite' = 'beforeWrite';\nexport const write: 'write' = 'write';\nexport const afterWrite: 'afterWrite' = 'afterWrite';\nexport const modifierPhases: Array<ModifierPhases> = [\n beforeRead,\n read,\n afterRead,\n beforeMain,\n main,\n afterMain,\n beforeWrite,\n write,\n afterWrite,\n];\n\nexport type ModifierPhases =\n | typeof beforeRead\n | typeof read\n | typeof afterRead\n | typeof beforeMain\n | typeof main\n | typeof afterMain\n | typeof beforeWrite\n | typeof write\n | typeof afterWrite;\n"],"names":["bottom","right","left","auto","basePlacements","start","end","variationPlacements","reduce","acc","placement","concat","placements","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases"],"mappings":";;;;kPAEaA,EAAmB,SACnBC,EAAiB,QACjBC,EAAe,OACfC,EAAe,OAMfC,EAAuC,CAV1B,MAUgCJ,EAAQC,EAAOC,GAE5DG,EAAiB,QACjBC,EAAa,MAyBbC,EAAiDH,EAAeI,QAC3E,SAACC,EAAgCC,UAC/BD,EAAIE,OAAO,CAAKD,MAAaL,EAAmBK,MAAaJ,MAC/D,IAEWM,EAA+B,UAAIR,GAAgBD,IAAMK,QACpE,SACEC,EACAC,UAEAD,EAAIE,OAAO,CACTD,EACIA,MAAaL,EACbK,MAAaJ,MAErB,IAIWO,EAA2B,aAC3BC,EAAe,OACfC,EAAyB,YAEzBC,EAA2B,aAC3BC,EAAe,OACfC,EAAyB,YAEzBC,EAA6B,cAC7BC,EAAiB,QACjBC,EAA2B,aAC3BC,EAAwC,CACnDT,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,qJA7DgD,uFAKlB,8BACM,sCAtBZ,yCAiBU"} \ No newline at end of file diff --git a/static/javascripts/popperjs/popper-base.js b/static/javascripts/popperjs/popper-base.js new file mode 100644 index 000000000..c18fc9c8a --- /dev/null +++ b/static/javascripts/popperjs/popper-base.js @@ -0,0 +1,945 @@ +/** + * @popperjs/core v2.11.8 - MIT License + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Popper = {})); +}(this, (function (exports) { 'use strict'; + + function getWindow(node) { + if (node == null) { + return window; + } + + if (node.toString() !== '[object Window]') { + var ownerDocument = node.ownerDocument; + return ownerDocument ? ownerDocument.defaultView || window : window; + } + + return node; + } + + function isElement(node) { + var OwnElement = getWindow(node).Element; + return node instanceof OwnElement || node instanceof Element; + } + + function isHTMLElement(node) { + var OwnElement = getWindow(node).HTMLElement; + return node instanceof OwnElement || node instanceof HTMLElement; + } + + function isShadowRoot(node) { + // IE 11 has no ShadowRoot + if (typeof ShadowRoot === 'undefined') { + return false; + } + + var OwnElement = getWindow(node).ShadowRoot; + return node instanceof OwnElement || node instanceof ShadowRoot; + } + + var max = Math.max; + var min = Math.min; + var round = Math.round; + + function getUAString() { + var uaData = navigator.userAgentData; + + if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) { + return uaData.brands.map(function (item) { + return item.brand + "/" + item.version; + }).join(' '); + } + + return navigator.userAgent; + } + + function isLayoutViewport() { + return !/^((?!chrome|android).)*safari/i.test(getUAString()); + } + + function getBoundingClientRect(element, includeScale, isFixedStrategy) { + if (includeScale === void 0) { + includeScale = false; + } + + if (isFixedStrategy === void 0) { + isFixedStrategy = false; + } + + var clientRect = element.getBoundingClientRect(); + var scaleX = 1; + var scaleY = 1; + + if (includeScale && isHTMLElement(element)) { + scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1; + scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1; + } + + var _ref = isElement(element) ? getWindow(element) : window, + visualViewport = _ref.visualViewport; + + var addVisualOffsets = !isLayoutViewport() && isFixedStrategy; + var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX; + var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY; + var width = clientRect.width / scaleX; + var height = clientRect.height / scaleY; + return { + width: width, + height: height, + top: y, + right: x + width, + bottom: y + height, + left: x, + x: x, + y: y + }; + } + + function getWindowScroll(node) { + var win = getWindow(node); + var scrollLeft = win.pageXOffset; + var scrollTop = win.pageYOffset; + return { + scrollLeft: scrollLeft, + scrollTop: scrollTop + }; + } + + function getHTMLElementScroll(element) { + return { + scrollLeft: element.scrollLeft, + scrollTop: element.scrollTop + }; + } + + function getNodeScroll(node) { + if (node === getWindow(node) || !isHTMLElement(node)) { + return getWindowScroll(node); + } else { + return getHTMLElementScroll(node); + } + } + + function getNodeName(element) { + return element ? (element.nodeName || '').toLowerCase() : null; + } + + function getDocumentElement(element) { + // $FlowFixMe[incompatible-return]: assume body is always available + return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing] + element.document) || window.document).documentElement; + } + + function getWindowScrollBarX(element) { + // If <html> has a CSS width greater than the viewport, then this will be + // incorrect for RTL. + // Popper 1 is broken in this case and never had a bug report so let's assume + // it's not an issue. I don't think anyone ever specifies width on <html> + // anyway. + // Browsers where the left scrollbar doesn't cause an issue report `0` for + // this (e.g. Edge 2019, IE11, Safari) + return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft; + } + + function getComputedStyle(element) { + return getWindow(element).getComputedStyle(element); + } + + function isScrollParent(element) { + // Firefox wants us to check `-x` and `-y` variations as well + var _getComputedStyle = getComputedStyle(element), + overflow = _getComputedStyle.overflow, + overflowX = _getComputedStyle.overflowX, + overflowY = _getComputedStyle.overflowY; + + return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); + } + + function isElementScaled(element) { + var rect = element.getBoundingClientRect(); + var scaleX = round(rect.width) / element.offsetWidth || 1; + var scaleY = round(rect.height) / element.offsetHeight || 1; + return scaleX !== 1 || scaleY !== 1; + } // Returns the composite rect of an element relative to its offsetParent. + // Composite means it takes into account transforms as well as layout. + + + function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { + if (isFixed === void 0) { + isFixed = false; + } + + var isOffsetParentAnElement = isHTMLElement(offsetParent); + var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent); + var documentElement = getDocumentElement(offsetParent); + var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed); + var scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + var offsets = { + x: 0, + y: 0 + }; + + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078 + isScrollParent(documentElement)) { + scroll = getNodeScroll(offsetParent); + } + + if (isHTMLElement(offsetParent)) { + offsets = getBoundingClientRect(offsetParent, true); + offsets.x += offsetParent.clientLeft; + offsets.y += offsetParent.clientTop; + } else if (documentElement) { + offsets.x = getWindowScrollBarX(documentElement); + } + } + + return { + x: rect.left + scroll.scrollLeft - offsets.x, + y: rect.top + scroll.scrollTop - offsets.y, + width: rect.width, + height: rect.height + }; + } + + // means it doesn't take into account transforms. + + function getLayoutRect(element) { + var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed. + // Fixes https://github.com/popperjs/popper-core/issues/1223 + + var width = element.offsetWidth; + var height = element.offsetHeight; + + if (Math.abs(clientRect.width - width) <= 1) { + width = clientRect.width; + } + + if (Math.abs(clientRect.height - height) <= 1) { + height = clientRect.height; + } + + return { + x: element.offsetLeft, + y: element.offsetTop, + width: width, + height: height + }; + } + + function getParentNode(element) { + if (getNodeName(element) === 'html') { + return element; + } + + return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle + // $FlowFixMe[incompatible-return] + // $FlowFixMe[prop-missing] + element.assignedSlot || // step into the shadow DOM of the parent of a slotted node + element.parentNode || ( // DOM Element detected + isShadowRoot(element) ? element.host : null) || // ShadowRoot detected + // $FlowFixMe[incompatible-call]: HTMLElement is a Node + getDocumentElement(element) // fallback + + ); + } + + function getScrollParent(node) { + if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) { + // $FlowFixMe[incompatible-return]: assume body is always available + return node.ownerDocument.body; + } + + if (isHTMLElement(node) && isScrollParent(node)) { + return node; + } + + return getScrollParent(getParentNode(node)); + } + + /* + given a DOM element, return the list of all scroll parents, up the list of ancesors + until we get to the top window object. This list is what we attach scroll listeners + to, because if any of these parent elements scroll, we'll need to re-calculate the + reference element's position. + */ + + function listScrollParents(element, list) { + var _element$ownerDocumen; + + if (list === void 0) { + list = []; + } + + var scrollParent = getScrollParent(element); + var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body); + var win = getWindow(scrollParent); + var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent; + var updatedList = list.concat(target); + return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here + updatedList.concat(listScrollParents(getParentNode(target))); + } + + function isTableElement(element) { + return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0; + } + + function getTrueOffsetParent(element) { + if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837 + getComputedStyle(element).position === 'fixed') { + return null; + } + + return element.offsetParent; + } // `.offsetParent` reports `null` for fixed elements, while absolute elements + // return the containing block + + + function getContainingBlock(element) { + var isFirefox = /firefox/i.test(getUAString()); + var isIE = /Trident/i.test(getUAString()); + + if (isIE && isHTMLElement(element)) { + // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport + var elementCss = getComputedStyle(element); + + if (elementCss.position === 'fixed') { + return null; + } + } + + var currentNode = getParentNode(element); + + if (isShadowRoot(currentNode)) { + currentNode = currentNode.host; + } + + while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) { + var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that + // create a containing block. + // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block + + if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') { + return currentNode; + } else { + currentNode = currentNode.parentNode; + } + } + + return null; + } // Gets the closest ancestor positioned element. Handles some edge cases, + // such as table ancestors and cross browser bugs. + + + function getOffsetParent(element) { + var window = getWindow(element); + var offsetParent = getTrueOffsetParent(element); + + while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') { + offsetParent = getTrueOffsetParent(offsetParent); + } + + if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) { + return window; + } + + return offsetParent || getContainingBlock(element) || window; + } + + var top = 'top'; + var bottom = 'bottom'; + var right = 'right'; + var left = 'left'; + var basePlacements = [top, bottom, right, left]; + var start = 'start'; + var end = 'end'; + var clippingParents = 'clippingParents'; + var viewport = 'viewport'; + var popper = 'popper'; + var reference = 'reference'; + + var beforeRead = 'beforeRead'; + var read = 'read'; + var afterRead = 'afterRead'; // pure-logic modifiers + + var beforeMain = 'beforeMain'; + var main = 'main'; + var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state) + + var beforeWrite = 'beforeWrite'; + var write = 'write'; + var afterWrite = 'afterWrite'; + var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite]; + + function order(modifiers) { + var map = new Map(); + var visited = new Set(); + var result = []; + modifiers.forEach(function (modifier) { + map.set(modifier.name, modifier); + }); // On visiting object, check for its dependencies and visit them recursively + + function sort(modifier) { + visited.add(modifier.name); + var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []); + requires.forEach(function (dep) { + if (!visited.has(dep)) { + var depModifier = map.get(dep); + + if (depModifier) { + sort(depModifier); + } + } + }); + result.push(modifier); + } + + modifiers.forEach(function (modifier) { + if (!visited.has(modifier.name)) { + // check for visited object + sort(modifier); + } + }); + return result; + } + + function orderModifiers(modifiers) { + // order based on dependencies + var orderedModifiers = order(modifiers); // order based on phase + + return modifierPhases.reduce(function (acc, phase) { + return acc.concat(orderedModifiers.filter(function (modifier) { + return modifier.phase === phase; + })); + }, []); + } + + function debounce(fn) { + var pending; + return function () { + if (!pending) { + pending = new Promise(function (resolve) { + Promise.resolve().then(function () { + pending = undefined; + resolve(fn()); + }); + }); + } + + return pending; + }; + } + + function mergeByName(modifiers) { + var merged = modifiers.reduce(function (merged, current) { + var existing = merged[current.name]; + merged[current.name] = existing ? Object.assign({}, existing, current, { + options: Object.assign({}, existing.options, current.options), + data: Object.assign({}, existing.data, current.data) + }) : current; + return merged; + }, {}); // IE11 does not support Object.values + + return Object.keys(merged).map(function (key) { + return merged[key]; + }); + } + + function getViewportRect(element, strategy) { + var win = getWindow(element); + var html = getDocumentElement(element); + var visualViewport = win.visualViewport; + var width = html.clientWidth; + var height = html.clientHeight; + var x = 0; + var y = 0; + + if (visualViewport) { + width = visualViewport.width; + height = visualViewport.height; + var layoutViewport = isLayoutViewport(); + + if (layoutViewport || !layoutViewport && strategy === 'fixed') { + x = visualViewport.offsetLeft; + y = visualViewport.offsetTop; + } + } + + return { + width: width, + height: height, + x: x + getWindowScrollBarX(element), + y: y + }; + } + + // of the `<html>` and `<body>` rect bounds if horizontally scrollable + + function getDocumentRect(element) { + var _element$ownerDocumen; + + var html = getDocumentElement(element); + var winScroll = getWindowScroll(element); + var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body; + var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0); + var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0); + var x = -winScroll.scrollLeft + getWindowScrollBarX(element); + var y = -winScroll.scrollTop; + + if (getComputedStyle(body || html).direction === 'rtl') { + x += max(html.clientWidth, body ? body.clientWidth : 0) - width; + } + + return { + width: width, + height: height, + x: x, + y: y + }; + } + + function contains(parent, child) { + var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method + + if (parent.contains(child)) { + return true; + } // then fallback to custom implementation with Shadow DOM support + else if (rootNode && isShadowRoot(rootNode)) { + var next = child; + + do { + if (next && parent.isSameNode(next)) { + return true; + } // $FlowFixMe[prop-missing]: need a better way to handle this... + + + next = next.parentNode || next.host; + } while (next); + } // Give up, the result is false + + + return false; + } + + function rectToClientRect(rect) { + return Object.assign({}, rect, { + left: rect.x, + top: rect.y, + right: rect.x + rect.width, + bottom: rect.y + rect.height + }); + } + + function getInnerBoundingClientRect(element, strategy) { + var rect = getBoundingClientRect(element, false, strategy === 'fixed'); + rect.top = rect.top + element.clientTop; + rect.left = rect.left + element.clientLeft; + rect.bottom = rect.top + element.clientHeight; + rect.right = rect.left + element.clientWidth; + rect.width = element.clientWidth; + rect.height = element.clientHeight; + rect.x = rect.left; + rect.y = rect.top; + return rect; + } + + function getClientRectFromMixedType(element, clippingParent, strategy) { + return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element))); + } // A "clipping parent" is an overflowable container with the characteristic of + // clipping (or hiding) overflowing elements with a position different from + // `initial` + + + function getClippingParents(element) { + var clippingParents = listScrollParents(getParentNode(element)); + var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0; + var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element; + + if (!isElement(clipperElement)) { + return []; + } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414 + + + return clippingParents.filter(function (clippingParent) { + return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body'; + }); + } // Gets the maximum area that the element is visible in due to any number of + // clipping parents + + + function getClippingRect(element, boundary, rootBoundary, strategy) { + var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary); + var clippingParents = [].concat(mainClippingParents, [rootBoundary]); + var firstClippingParent = clippingParents[0]; + var clippingRect = clippingParents.reduce(function (accRect, clippingParent) { + var rect = getClientRectFromMixedType(element, clippingParent, strategy); + accRect.top = max(rect.top, accRect.top); + accRect.right = min(rect.right, accRect.right); + accRect.bottom = min(rect.bottom, accRect.bottom); + accRect.left = max(rect.left, accRect.left); + return accRect; + }, getClientRectFromMixedType(element, firstClippingParent, strategy)); + clippingRect.width = clippingRect.right - clippingRect.left; + clippingRect.height = clippingRect.bottom - clippingRect.top; + clippingRect.x = clippingRect.left; + clippingRect.y = clippingRect.top; + return clippingRect; + } + + function getBasePlacement(placement) { + return placement.split('-')[0]; + } + + function getVariation(placement) { + return placement.split('-')[1]; + } + + function getMainAxisFromPlacement(placement) { + return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y'; + } + + function computeOffsets(_ref) { + var reference = _ref.reference, + element = _ref.element, + placement = _ref.placement; + var basePlacement = placement ? getBasePlacement(placement) : null; + var variation = placement ? getVariation(placement) : null; + var commonX = reference.x + reference.width / 2 - element.width / 2; + var commonY = reference.y + reference.height / 2 - element.height / 2; + var offsets; + + switch (basePlacement) { + case top: + offsets = { + x: commonX, + y: reference.y - element.height + }; + break; + + case bottom: + offsets = { + x: commonX, + y: reference.y + reference.height + }; + break; + + case right: + offsets = { + x: reference.x + reference.width, + y: commonY + }; + break; + + case left: + offsets = { + x: reference.x - element.width, + y: commonY + }; + break; + + default: + offsets = { + x: reference.x, + y: reference.y + }; + } + + var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null; + + if (mainAxis != null) { + var len = mainAxis === 'y' ? 'height' : 'width'; + + switch (variation) { + case start: + offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2); + break; + + case end: + offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2); + break; + } + } + + return offsets; + } + + function getFreshSideObject() { + return { + top: 0, + right: 0, + bottom: 0, + left: 0 + }; + } + + function mergePaddingObject(paddingObject) { + return Object.assign({}, getFreshSideObject(), paddingObject); + } + + function expandToHashMap(value, keys) { + return keys.reduce(function (hashMap, key) { + hashMap[key] = value; + return hashMap; + }, {}); + } + + function detectOverflow(state, options) { + if (options === void 0) { + options = {}; + } + + var _options = options, + _options$placement = _options.placement, + placement = _options$placement === void 0 ? state.placement : _options$placement, + _options$strategy = _options.strategy, + strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, + _options$boundary = _options.boundary, + boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, + _options$rootBoundary = _options.rootBoundary, + rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, + _options$elementConte = _options.elementContext, + elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, + _options$altBoundary = _options.altBoundary, + altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, + _options$padding = _options.padding, + padding = _options$padding === void 0 ? 0 : _options$padding; + var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements)); + var altContext = elementContext === popper ? reference : popper; + var popperRect = state.rects.popper; + var element = state.elements[altBoundary ? altContext : elementContext]; + var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy); + var referenceClientRect = getBoundingClientRect(state.elements.reference); + var popperOffsets = computeOffsets({ + reference: referenceClientRect, + element: popperRect, + strategy: 'absolute', + placement: placement + }); + var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets)); + var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect + // 0 or negative = within the clipping rect + + var overflowOffsets = { + top: clippingClientRect.top - elementClientRect.top + paddingObject.top, + bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom, + left: clippingClientRect.left - elementClientRect.left + paddingObject.left, + right: elementClientRect.right - clippingClientRect.right + paddingObject.right + }; + var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element + + if (elementContext === popper && offsetData) { + var offset = offsetData[placement]; + Object.keys(overflowOffsets).forEach(function (key) { + var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1; + var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x'; + overflowOffsets[key] += offset[axis] * multiply; + }); + } + + return overflowOffsets; + } + + var DEFAULT_OPTIONS = { + placement: 'bottom', + modifiers: [], + strategy: 'absolute' + }; + + function areValidElements() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return !args.some(function (element) { + return !(element && typeof element.getBoundingClientRect === 'function'); + }); + } + + function popperGenerator(generatorOptions) { + if (generatorOptions === void 0) { + generatorOptions = {}; + } + + var _generatorOptions = generatorOptions, + _generatorOptions$def = _generatorOptions.defaultModifiers, + defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, + _generatorOptions$def2 = _generatorOptions.defaultOptions, + defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2; + return function createPopper(reference, popper, options) { + if (options === void 0) { + options = defaultOptions; + } + + var state = { + placement: 'bottom', + orderedModifiers: [], + options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions), + modifiersData: {}, + elements: { + reference: reference, + popper: popper + }, + attributes: {}, + styles: {} + }; + var effectCleanupFns = []; + var isDestroyed = false; + var instance = { + state: state, + setOptions: function setOptions(setOptionsAction) { + var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction; + cleanupModifierEffects(); + state.options = Object.assign({}, defaultOptions, state.options, options); + state.scrollParents = { + reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [], + popper: listScrollParents(popper) + }; // Orders the modifiers based on their dependencies and `phase` + // properties + + var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers + + state.orderedModifiers = orderedModifiers.filter(function (m) { + return m.enabled; + }); + runModifierEffects(); + return instance.update(); + }, + // Sync update – it will always be executed, even if not necessary. This + // is useful for low frequency updates where sync behavior simplifies the + // logic. + // For high frequency updates (e.g. `resize` and `scroll` events), always + // prefer the async Popper#update method + forceUpdate: function forceUpdate() { + if (isDestroyed) { + return; + } + + var _state$elements = state.elements, + reference = _state$elements.reference, + popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements + // anymore + + if (!areValidElements(reference, popper)) { + return; + } // Store the reference and popper rects to be read by modifiers + + + state.rects = { + reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'), + popper: getLayoutRect(popper) + }; // Modifiers have the ability to reset the current update cycle. The + // most common use case for this is the `flip` modifier changing the + // placement, which then needs to re-run all the modifiers, because the + // logic was previously ran for the previous placement and is therefore + // stale/incorrect + + state.reset = false; + state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier + // is filled with the initial data specified by the modifier. This means + // it doesn't persist and is fresh on each update. + // To ensure persistent data, use `${name}#persistent` + + state.orderedModifiers.forEach(function (modifier) { + return state.modifiersData[modifier.name] = Object.assign({}, modifier.data); + }); + + for (var index = 0; index < state.orderedModifiers.length; index++) { + if (state.reset === true) { + state.reset = false; + index = -1; + continue; + } + + var _state$orderedModifie = state.orderedModifiers[index], + fn = _state$orderedModifie.fn, + _state$orderedModifie2 = _state$orderedModifie.options, + _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, + name = _state$orderedModifie.name; + + if (typeof fn === 'function') { + state = fn({ + state: state, + options: _options, + name: name, + instance: instance + }) || state; + } + } + }, + // Async and optimistically optimized update – it will not be executed if + // not necessary (debounced to run at most once-per-tick) + update: debounce(function () { + return new Promise(function (resolve) { + instance.forceUpdate(); + resolve(state); + }); + }), + destroy: function destroy() { + cleanupModifierEffects(); + isDestroyed = true; + } + }; + + if (!areValidElements(reference, popper)) { + return instance; + } + + instance.setOptions(options).then(function (state) { + if (!isDestroyed && options.onFirstUpdate) { + options.onFirstUpdate(state); + } + }); // Modifiers have the ability to execute arbitrary code before the first + // update cycle runs. They will be executed in the same order as the update + // cycle. This is useful when a modifier adds some persistent data that + // other modifiers need to use, but the modifier is run after the dependent + // one. + + function runModifierEffects() { + state.orderedModifiers.forEach(function (_ref) { + var name = _ref.name, + _ref$options = _ref.options, + options = _ref$options === void 0 ? {} : _ref$options, + effect = _ref.effect; + + if (typeof effect === 'function') { + var cleanupFn = effect({ + state: state, + name: name, + instance: instance, + options: options + }); + + var noopFn = function noopFn() {}; + + effectCleanupFns.push(cleanupFn || noopFn); + } + }); + } + + function cleanupModifierEffects() { + effectCleanupFns.forEach(function (fn) { + return fn(); + }); + effectCleanupFns = []; + } + + return instance; + }; + } + var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules + + exports.createPopper = createPopper; + exports.detectOverflow = detectOverflow; + exports.popperGenerator = popperGenerator; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); +//# sourceMappingURL=popper-base.js.map diff --git a/static/javascripts/popperjs/popper-base.js.map b/static/javascripts/popperjs/popper-base.js.map new file mode 100644 index 000000000..08b2feb7c --- /dev/null +++ b/static/javascripts/popperjs/popper-base.js.map @@ -0,0 +1 @@ +{"version":3,"file":"popper-base.js","sources":["../../src/dom-utils/getWindow.js","../../src/dom-utils/instanceOf.js","../../src/utils/math.js","../../src/utils/userAgent.js","../../src/dom-utils/isLayoutViewport.js","../../src/dom-utils/getBoundingClientRect.js","../../src/dom-utils/getWindowScroll.js","../../src/dom-utils/getHTMLElementScroll.js","../../src/dom-utils/getNodeScroll.js","../../src/dom-utils/getNodeName.js","../../src/dom-utils/getDocumentElement.js","../../src/dom-utils/getWindowScrollBarX.js","../../src/dom-utils/getComputedStyle.js","../../src/dom-utils/isScrollParent.js","../../src/dom-utils/getCompositeRect.js","../../src/dom-utils/getLayoutRect.js","../../src/dom-utils/getParentNode.js","../../src/dom-utils/getScrollParent.js","../../src/dom-utils/listScrollParents.js","../../src/dom-utils/isTableElement.js","../../src/dom-utils/getOffsetParent.js","../../src/enums.js","../../src/utils/orderModifiers.js","../../src/utils/debounce.js","../../src/utils/mergeByName.js","../../src/dom-utils/getViewportRect.js","../../src/dom-utils/getDocumentRect.js","../../src/dom-utils/contains.js","../../src/utils/rectToClientRect.js","../../src/dom-utils/getClippingRect.js","../../src/utils/getBasePlacement.js","../../src/utils/getVariation.js","../../src/utils/getMainAxisFromPlacement.js","../../src/utils/computeOffsets.js","../../src/utils/getFreshSideObject.js","../../src/utils/mergePaddingObject.js","../../src/utils/expandToHashMap.js","../../src/utils/detectOverflow.js","../../src/createPopper.js"],"sourcesContent":["// @flow\nimport type { Window } from '../types';\ndeclare function getWindow(node: Node | Window): Window;\n\nexport default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n const ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n","// @flow\nimport getWindow from './getWindow';\n\ndeclare function isElement(node: mixed): boolean %checks(node instanceof\n Element);\nfunction isElement(node) {\n const OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\ndeclare function isHTMLElement(node: mixed): boolean %checks(node instanceof\n HTMLElement);\nfunction isHTMLElement(node) {\n const OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\ndeclare function isShadowRoot(node: mixed): boolean %checks(node instanceof\n ShadowRoot);\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };\n","// @flow\nexport const max = Math.max;\nexport const min = Math.min;\nexport const round = Math.round;\n","// @flow\ntype Navigator = Navigator & { userAgentData?: NavigatorUAData };\n\ninterface NavigatorUAData {\n brands: Array<{ brand: string, version: string }>;\n mobile: boolean;\n platform: string;\n}\n\nexport default function getUAString(): string {\n const uaData = (navigator: Navigator).userAgentData;\n\n if (uaData?.brands && Array.isArray(uaData.brands)) {\n return uaData.brands\n .map((item) => `${item.brand}/${item.version}`)\n .join(' ');\n }\n\n return navigator.userAgent;\n}\n","// @flow\nimport getUAString from '../utils/userAgent';\n\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}\n","// @flow\nimport type { ClientRectObject, VirtualElement } from '../types';\nimport { isElement, isHTMLElement } from './instanceOf';\nimport { round } from '../utils/math';\nimport getWindow from './getWindow';\nimport isLayoutViewport from './isLayoutViewport';\n\nexport default function getBoundingClientRect(\n element: Element | VirtualElement,\n includeScale: boolean = false,\n isFixedStrategy: boolean = false\n): ClientRectObject {\n const clientRect = element.getBoundingClientRect();\n let scaleX = 1;\n let scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX =\n (element: HTMLElement).offsetWidth > 0\n ? round(clientRect.width) / (element: HTMLElement).offsetWidth || 1\n : 1;\n scaleY =\n (element: HTMLElement).offsetHeight > 0\n ? round(clientRect.height) / (element: HTMLElement).offsetHeight || 1\n : 1;\n }\n\n const { visualViewport } = isElement(element) ? getWindow(element) : window;\n const addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n\n const x =\n (clientRect.left +\n (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) /\n scaleX;\n const y =\n (clientRect.top +\n (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) /\n scaleY;\n const width = clientRect.width / scaleX;\n const height = clientRect.height / scaleY;\n\n return {\n width,\n height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x,\n y,\n };\n}\n","// @flow\nimport getWindow from './getWindow';\nimport type { Window } from '../types';\n\nexport default function getWindowScroll(node: Node | Window) {\n const win = getWindow(node);\n const scrollLeft = win.pageXOffset;\n const scrollTop = win.pageYOffset;\n\n return {\n scrollLeft,\n scrollTop,\n };\n}\n","// @flow\n\nexport default function getHTMLElementScroll(element: HTMLElement) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop,\n };\n}\n","// @flow\nimport getWindowScroll from './getWindowScroll';\nimport getWindow from './getWindow';\nimport { isHTMLElement } from './instanceOf';\nimport getHTMLElementScroll from './getHTMLElementScroll';\nimport type { Window } from '../types';\n\nexport default function getNodeScroll(node: Node | Window) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}\n","// @flow\nimport type { Window } from '../types';\n\nexport default function getNodeName(element: ?Node | Window): ?string {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}\n","// @flow\nimport { isElement } from './instanceOf';\nimport type { Window } from '../types';\n\nexport default function getDocumentElement(\n element: Element | Window\n): HTMLElement {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return (\n (isElement(element)\n ? element.ownerDocument\n : // $FlowFixMe[prop-missing]\n element.document) || window.document\n ).documentElement;\n}\n","// @flow\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScroll from './getWindowScroll';\n\nexport default function getWindowScrollBarX(element: Element): number {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return (\n getBoundingClientRect(getDocumentElement(element)).left +\n getWindowScroll(element).scrollLeft\n );\n}\n","// @flow\nimport getWindow from './getWindow';\n\nexport default function getComputedStyle(\n element: Element\n): CSSStyleDeclaration {\n return getWindow(element).getComputedStyle(element);\n}\n","// @flow\nimport getComputedStyle from './getComputedStyle';\n\nexport default function isScrollParent(element: HTMLElement): boolean {\n // Firefox wants us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\n","// @flow\nimport type { Rect, VirtualElement, Window } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getNodeScroll from './getNodeScroll';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getDocumentElement from './getDocumentElement';\nimport isScrollParent from './isScrollParent';\nimport { round } from '../utils/math';\n\nfunction isElementScaled(element: HTMLElement) {\n const rect = element.getBoundingClientRect();\n const scaleX = round(rect.width) / element.offsetWidth || 1;\n const scaleY = round(rect.height) / element.offsetHeight || 1;\n\n return scaleX !== 1 || scaleY !== 1;\n}\n\n// Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\nexport default function getCompositeRect(\n elementOrVirtualElement: Element | VirtualElement,\n offsetParent: Element | Window,\n isFixed: boolean = false\n): Rect {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const offsetParentIsScaled =\n isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(\n elementOrVirtualElement,\n offsetParentIsScaled,\n isFixed\n );\n\n let scroll = { scrollLeft: 0, scrollTop: 0 };\n let offsets = { x: 0, y: 0 };\n\n if (isOffsetParentAnElement || (!isOffsetParentAnElement && !isFixed)) {\n if (\n getNodeName(offsetParent) !== 'body' ||\n // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)\n ) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height,\n };\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\n\n// Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\nexport default function getLayoutRect(element: HTMLElement): Rect {\n const clientRect = getBoundingClientRect(element);\n\n // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width,\n height,\n };\n}\n","// @flow\nimport getNodeName from './getNodeName';\nimport getDocumentElement from './getDocumentElement';\nimport { isShadowRoot } from './instanceOf';\n\nexport default function getParentNode(element: Node | ShadowRoot): Node {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (\n // this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || // DOM Element detected\n (isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n );\n}\n","// @flow\nimport getParentNode from './getParentNode';\nimport isScrollParent from './isScrollParent';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\n\nexport default function getScrollParent(node: Node): HTMLElement {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}\n","// @flow\nimport getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getWindow from './getWindow';\nimport type { Window, VisualViewport } from '../types';\nimport isScrollParent from './isScrollParent';\n\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\nexport default function listScrollParents(\n element: Node,\n list: Array<Element | Window> = []\n): Array<Element | Window | VisualViewport> {\n const scrollParent = getScrollParent(element);\n const isBody = scrollParent === element.ownerDocument?.body;\n const win = getWindow(scrollParent);\n const target = isBody\n ? [win].concat(\n win.visualViewport || [],\n isScrollParent(scrollParent) ? scrollParent : []\n )\n : scrollParent;\n const updatedList = list.concat(target);\n\n return isBody\n ? updatedList\n : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}\n","// @flow\nimport getNodeName from './getNodeName';\n\nexport default function isTableElement(element: Element): boolean {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getNodeName from './getNodeName';\nimport getComputedStyle from './getComputedStyle';\nimport { isHTMLElement, isShadowRoot } from './instanceOf';\nimport isTableElement from './isTableElement';\nimport getParentNode from './getParentNode';\nimport getUAString from '../utils/userAgent';\n\nfunction getTrueOffsetParent(element: Element): ?Element {\n if (\n !isHTMLElement(element) ||\n // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed'\n ) {\n return null;\n }\n\n return element.offsetParent;\n}\n\n// `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\nfunction getContainingBlock(element: Element) {\n const isFirefox = /firefox/i.test(getUAString());\n const isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n const elementCss = getComputedStyle(element);\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n let currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (\n isHTMLElement(currentNode) &&\n ['html', 'body'].indexOf(getNodeName(currentNode)) < 0\n ) {\n const css = getComputedStyle(currentNode);\n\n // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n if (\n css.transform !== 'none' ||\n css.perspective !== 'none' ||\n css.contain === 'paint' ||\n ['transform', 'perspective'].indexOf(css.willChange) !== -1 ||\n (isFirefox && css.willChange === 'filter') ||\n (isFirefox && css.filter && css.filter !== 'none')\n ) {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nexport default function getOffsetParent(element: Element) {\n const window = getWindow(element);\n\n let offsetParent = getTrueOffsetParent(element);\n\n while (\n offsetParent &&\n isTableElement(offsetParent) &&\n getComputedStyle(offsetParent).position === 'static'\n ) {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (\n offsetParent &&\n (getNodeName(offsetParent) === 'html' ||\n (getNodeName(offsetParent) === 'body' &&\n getComputedStyle(offsetParent).position === 'static'))\n ) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n","// @flow\nexport const top: 'top' = 'top';\nexport const bottom: 'bottom' = 'bottom';\nexport const right: 'right' = 'right';\nexport const left: 'left' = 'left';\nexport const auto: 'auto' = 'auto';\nexport type BasePlacement =\n | typeof top\n | typeof bottom\n | typeof right\n | typeof left;\nexport const basePlacements: Array<BasePlacement> = [top, bottom, right, left];\n\nexport const start: 'start' = 'start';\nexport const end: 'end' = 'end';\nexport type Variation = typeof start | typeof end;\n\nexport const clippingParents: 'clippingParents' = 'clippingParents';\nexport const viewport: 'viewport' = 'viewport';\nexport type Boundary = Element | Array<Element> | typeof clippingParents;\nexport type RootBoundary = typeof viewport | 'document';\n\nexport const popper: 'popper' = 'popper';\nexport const reference: 'reference' = 'reference';\nexport type Context = typeof popper | typeof reference;\n\nexport type VariationPlacement =\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end';\nexport type AutoPlacement = 'auto' | 'auto-start' | 'auto-end';\nexport type ComputedPlacement = VariationPlacement | BasePlacement;\nexport type Placement = AutoPlacement | BasePlacement | VariationPlacement;\n\nexport const variationPlacements: Array<VariationPlacement> = basePlacements.reduce(\n (acc: Array<VariationPlacement>, placement: BasePlacement) =>\n acc.concat([(`${placement}-${start}`: any), (`${placement}-${end}`: any)]),\n []\n);\nexport const placements: Array<Placement> = [...basePlacements, auto].reduce(\n (\n acc: Array<Placement>,\n placement: BasePlacement | typeof auto\n ): Array<Placement> =>\n acc.concat([\n placement,\n (`${placement}-${start}`: any),\n (`${placement}-${end}`: any),\n ]),\n []\n);\n\n// modifiers that need to read the DOM\nexport const beforeRead: 'beforeRead' = 'beforeRead';\nexport const read: 'read' = 'read';\nexport const afterRead: 'afterRead' = 'afterRead';\n// pure-logic modifiers\nexport const beforeMain: 'beforeMain' = 'beforeMain';\nexport const main: 'main' = 'main';\nexport const afterMain: 'afterMain' = 'afterMain';\n// modifier with the purpose to write to the DOM (or write into a framework state)\nexport const beforeWrite: 'beforeWrite' = 'beforeWrite';\nexport const write: 'write' = 'write';\nexport const afterWrite: 'afterWrite' = 'afterWrite';\nexport const modifierPhases: Array<ModifierPhases> = [\n beforeRead,\n read,\n afterRead,\n beforeMain,\n main,\n afterMain,\n beforeWrite,\n write,\n afterWrite,\n];\n\nexport type ModifierPhases =\n | typeof beforeRead\n | typeof read\n | typeof afterRead\n | typeof beforeMain\n | typeof main\n | typeof afterMain\n | typeof beforeWrite\n | typeof write\n | typeof afterWrite;\n","// @flow\nimport type { Modifier } from '../types';\nimport { modifierPhases } from '../enums';\n\n// source: https://stackoverflow.com/questions/49875255\nfunction order(modifiers) {\n const map = new Map();\n const visited = new Set();\n const result = [];\n\n modifiers.forEach(modifier => {\n map.set(modifier.name, modifier);\n });\n\n // On visiting object, check for its dependencies and visit them recursively\n function sort(modifier: Modifier<any, any>) {\n visited.add(modifier.name);\n\n const requires = [\n ...(modifier.requires || []),\n ...(modifier.requiresIfExists || []),\n ];\n\n requires.forEach(dep => {\n if (!visited.has(dep)) {\n const depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n\n result.push(modifier);\n }\n\n modifiers.forEach(modifier => {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n\n return result;\n}\n\nexport default function orderModifiers(\n modifiers: Array<Modifier<any, any>>\n): Array<Modifier<any, any>> {\n // order based on dependencies\n const orderedModifiers = order(modifiers);\n\n // order based on phase\n return modifierPhases.reduce((acc, phase) => {\n return acc.concat(\n orderedModifiers.filter(modifier => modifier.phase === phase)\n );\n }, []);\n}\n","// @flow\n\nexport default function debounce<T>(fn: Function): () => Promise<T> {\n let pending;\n return () => {\n if (!pending) {\n pending = new Promise<T>(resolve => {\n Promise.resolve().then(() => {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}\n","// @flow\nimport type { Modifier } from '../types';\n\nexport default function mergeByName(\n modifiers: Array<$Shape<Modifier<any, any>>>\n): Array<$Shape<Modifier<any, any>>> {\n const merged = modifiers.reduce((merged, current) => {\n const existing = merged[current.name];\n merged[current.name] = existing\n ? {\n ...existing,\n ...current,\n options: { ...existing.options, ...current.options },\n data: { ...existing.data, ...current.data },\n }\n : current;\n return merged;\n }, {});\n\n // IE11 does not support Object.values\n return Object.keys(merged).map(key => merged[key]);\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport isLayoutViewport from './isLayoutViewport';\nimport type { PositioningStrategy } from '../types';\n\nexport default function getViewportRect(\n element: Element,\n strategy: PositioningStrategy\n) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n\n const layoutViewport = isLayoutViewport();\n\n if (layoutViewport || (!layoutViewport && strategy === 'fixed')) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width,\n height,\n x: x + getWindowScrollBarX(element),\n y,\n };\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getWindowScroll from './getWindowScroll';\nimport { max } from '../utils/math';\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\nexport default function getDocumentRect(element: HTMLElement): Rect {\n const html = getDocumentElement(element);\n const winScroll = getWindowScroll(element);\n const body = element.ownerDocument?.body;\n\n const width = max(\n html.scrollWidth,\n html.clientWidth,\n body ? body.scrollWidth : 0,\n body ? body.clientWidth : 0\n );\n const height = max(\n html.scrollHeight,\n html.clientHeight,\n body ? body.scrollHeight : 0,\n body ? body.clientHeight : 0\n );\n\n let x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n const y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return { width, height, x, y };\n}\n","// @flow\nimport { isShadowRoot } from './instanceOf';\n\nexport default function contains(parent: Element, child: Element) {\n const rootNode = child.getRootNode && child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n }\n // $FlowFixMe[prop-missing]: need a better way to handle this...\n next = next.parentNode || next.host;\n } while (next);\n }\n\n // Give up, the result is false\n return false;\n}\n","// @flow\nimport type { Rect, ClientRectObject } from '../types';\n\nexport default function rectToClientRect(rect: Rect): ClientRectObject {\n return {\n ...rect,\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height,\n };\n}\n","// @flow\nimport type { ClientRectObject, PositioningStrategy } from '../types';\nimport type { Boundary, RootBoundary } from '../enums';\nimport { viewport } from '../enums';\nimport getViewportRect from './getViewportRect';\nimport getDocumentRect from './getDocumentRect';\nimport listScrollParents from './listScrollParents';\nimport getOffsetParent from './getOffsetParent';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport { isElement, isHTMLElement } from './instanceOf';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getParentNode from './getParentNode';\nimport contains from './contains';\nimport getNodeName from './getNodeName';\nimport rectToClientRect from '../utils/rectToClientRect';\nimport { max, min } from '../utils/math';\n\nfunction getInnerBoundingClientRect(\n element: Element,\n strategy: PositioningStrategy\n) {\n const rect = getBoundingClientRect(element, false, strategy === 'fixed');\n\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n\n return rect;\n}\n\nfunction getClientRectFromMixedType(\n element: Element,\n clippingParent: Element | RootBoundary,\n strategy: PositioningStrategy\n): ClientRectObject {\n return clippingParent === viewport\n ? rectToClientRect(getViewportRect(element, strategy))\n : isElement(clippingParent)\n ? getInnerBoundingClientRect(clippingParent, strategy)\n : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n}\n\n// A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\nfunction getClippingParents(element: Element): Array<Element> {\n const clippingParents = listScrollParents(getParentNode(element));\n const canEscapeClipping =\n ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n const clipperElement =\n canEscapeClipping && isHTMLElement(element)\n ? getOffsetParent(element)\n : element;\n\n if (!isElement(clipperElement)) {\n return [];\n }\n\n // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n return clippingParents.filter(\n (clippingParent) =>\n isElement(clippingParent) &&\n contains(clippingParent, clipperElement) &&\n getNodeName(clippingParent) !== 'body'\n );\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping parents\nexport default function getClippingRect(\n element: Element,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n strategy: PositioningStrategy\n): ClientRectObject {\n const mainClippingParents =\n boundary === 'clippingParents'\n ? getClippingParents(element)\n : [].concat(boundary);\n const clippingParents = [...mainClippingParents, rootBoundary];\n const firstClippingParent = clippingParents[0];\n\n const clippingRect = clippingParents.reduce((accRect, clippingParent) => {\n const rect = getClientRectFromMixedType(element, clippingParent, strategy);\n\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n\n return clippingRect;\n}\n","// @flow\nimport { type BasePlacement, type Placement, auto } from '../enums';\n\nexport default function getBasePlacement(\n placement: Placement | typeof auto\n): BasePlacement {\n return (placement.split('-')[0]: any);\n}\n","// @flow\nimport { type Variation, type Placement } from '../enums';\n\nexport default function getVariation(placement: Placement): ?Variation {\n return (placement.split('-')[1]: any);\n}\n","// @flow\nimport type { Placement } from '../enums';\n\nexport default function getMainAxisFromPlacement(\n placement: Placement\n): 'x' | 'y' {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}\n","// @flow\nimport getBasePlacement from './getBasePlacement';\nimport getVariation from './getVariation';\nimport getMainAxisFromPlacement from './getMainAxisFromPlacement';\nimport type {\n Rect,\n PositioningStrategy,\n Offsets,\n ClientRectObject,\n} from '../types';\nimport { top, right, bottom, left, start, end, type Placement } from '../enums';\n\nexport default function computeOffsets({\n reference,\n element,\n placement,\n}: {\n reference: Rect | ClientRectObject,\n element: Rect | ClientRectObject,\n strategy: PositioningStrategy,\n placement?: Placement,\n}): Offsets {\n const basePlacement = placement ? getBasePlacement(placement) : null;\n const variation = placement ? getVariation(placement) : null;\n const commonX = reference.x + reference.width / 2 - element.width / 2;\n const commonY = reference.y + reference.height / 2 - element.height / 2;\n\n let offsets;\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height,\n };\n break;\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height,\n };\n break;\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY,\n };\n break;\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY,\n };\n break;\n default:\n offsets = {\n x: reference.x,\n y: reference.y,\n };\n }\n\n const mainAxis = basePlacement\n ? getMainAxisFromPlacement(basePlacement)\n : null;\n\n if (mainAxis != null) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] =\n offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n case end:\n offsets[mainAxis] =\n offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n default:\n }\n }\n\n return offsets;\n}\n","// @flow\nimport type { SideObject } from '../types';\n\nexport default function getFreshSideObject(): SideObject {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n };\n}\n","// @flow\nimport type { SideObject } from '../types';\nimport getFreshSideObject from './getFreshSideObject';\n\nexport default function mergePaddingObject(\n paddingObject: $Shape<SideObject>\n): SideObject {\n return {\n ...getFreshSideObject(),\n ...paddingObject,\n };\n}\n","// @flow\n\nexport default function expandToHashMap<\n T: number | string | boolean,\n K: string\n>(value: T, keys: Array<K>): { [key: string]: T } {\n return keys.reduce((hashMap, key) => {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}\n","// @flow\nimport type { State, SideObject, Padding, PositioningStrategy } from '../types';\nimport type { Placement, Boundary, RootBoundary, Context } from '../enums';\nimport getClippingRect from '../dom-utils/getClippingRect';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport getBoundingClientRect from '../dom-utils/getBoundingClientRect';\nimport computeOffsets from './computeOffsets';\nimport rectToClientRect from './rectToClientRect';\nimport {\n clippingParents,\n reference,\n popper,\n bottom,\n top,\n right,\n basePlacements,\n viewport,\n} from '../enums';\nimport { isElement } from '../dom-utils/instanceOf';\nimport mergePaddingObject from './mergePaddingObject';\nimport expandToHashMap from './expandToHashMap';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n placement: Placement,\n strategy: PositioningStrategy,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n elementContext: Context,\n altBoundary: boolean,\n padding: Padding,\n};\n\nexport default function detectOverflow(\n state: State,\n options: $Shape<Options> = {}\n): SideObject {\n const {\n placement = state.placement,\n strategy = state.strategy,\n boundary = clippingParents,\n rootBoundary = viewport,\n elementContext = popper,\n altBoundary = false,\n padding = 0,\n } = options;\n\n const paddingObject = mergePaddingObject(\n typeof padding !== 'number'\n ? padding\n : expandToHashMap(padding, basePlacements)\n );\n\n const altContext = elementContext === popper ? reference : popper;\n\n const popperRect = state.rects.popper;\n const element = state.elements[altBoundary ? altContext : elementContext];\n\n const clippingClientRect = getClippingRect(\n isElement(element)\n ? element\n : element.contextElement || getDocumentElement(state.elements.popper),\n boundary,\n rootBoundary,\n strategy\n );\n\n const referenceClientRect = getBoundingClientRect(state.elements.reference);\n\n const popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement,\n });\n\n const popperClientRect = rectToClientRect({\n ...popperRect,\n ...popperOffsets,\n });\n\n const elementClientRect =\n elementContext === popper ? popperClientRect : referenceClientRect;\n\n // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n const overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom:\n elementClientRect.bottom -\n clippingClientRect.bottom +\n paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right:\n elementClientRect.right - clippingClientRect.right + paddingObject.right,\n };\n\n const offsetData = state.modifiersData.offset;\n\n // Offsets can be applied only to the popper element\n if (elementContext === popper && offsetData) {\n const offset = offsetData[placement];\n\n Object.keys(overflowOffsets).forEach((key) => {\n const multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n const axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}\n","// @flow\nimport type {\n State,\n OptionsGeneric,\n Modifier,\n Instance,\n VirtualElement,\n} from './types';\nimport getCompositeRect from './dom-utils/getCompositeRect';\nimport getLayoutRect from './dom-utils/getLayoutRect';\nimport listScrollParents from './dom-utils/listScrollParents';\nimport getOffsetParent from './dom-utils/getOffsetParent';\nimport orderModifiers from './utils/orderModifiers';\nimport debounce from './utils/debounce';\nimport mergeByName from './utils/mergeByName';\nimport detectOverflow from './utils/detectOverflow';\nimport { isElement } from './dom-utils/instanceOf';\n\nconst DEFAULT_OPTIONS: OptionsGeneric<any> = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute',\n};\n\ntype PopperGeneratorArgs = {\n defaultModifiers?: Array<Modifier<any, any>>,\n defaultOptions?: $Shape<OptionsGeneric<any>>,\n};\n\nfunction areValidElements(...args: Array<any>): boolean {\n return !args.some(\n (element) =>\n !(element && typeof element.getBoundingClientRect === 'function')\n );\n}\n\nexport function popperGenerator(generatorOptions: PopperGeneratorArgs = {}) {\n const { defaultModifiers = [], defaultOptions = DEFAULT_OPTIONS } =\n generatorOptions;\n\n return function createPopper<TModifier: $Shape<Modifier<any, any>>>(\n reference: Element | VirtualElement,\n popper: HTMLElement,\n options: $Shape<OptionsGeneric<TModifier>> = defaultOptions\n ): Instance {\n let state: $Shape<State> = {\n placement: 'bottom',\n orderedModifiers: [],\n options: { ...DEFAULT_OPTIONS, ...defaultOptions },\n modifiersData: {},\n elements: {\n reference,\n popper,\n },\n attributes: {},\n styles: {},\n };\n\n let effectCleanupFns: Array<() => void> = [];\n let isDestroyed = false;\n\n const instance = {\n state,\n setOptions(setOptionsAction) {\n const options =\n typeof setOptionsAction === 'function'\n ? setOptionsAction(state.options)\n : setOptionsAction;\n\n cleanupModifierEffects();\n\n state.options = {\n // $FlowFixMe[exponential-spread]\n ...defaultOptions,\n ...state.options,\n ...options,\n };\n\n state.scrollParents = {\n reference: isElement(reference)\n ? listScrollParents(reference)\n : reference.contextElement\n ? listScrollParents(reference.contextElement)\n : [],\n popper: listScrollParents(popper),\n };\n\n // Orders the modifiers based on their dependencies and `phase`\n // properties\n const orderedModifiers = orderModifiers(\n mergeByName([...defaultModifiers, ...state.options.modifiers])\n );\n\n // Strip out disabled modifiers\n state.orderedModifiers = orderedModifiers.filter((m) => m.enabled);\n\n runModifierEffects();\n\n return instance.update();\n },\n\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n const { reference, popper } = state.elements;\n\n // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n if (!areValidElements(reference, popper)) {\n return;\n }\n\n // Store the reference and popper rects to be read by modifiers\n state.rects = {\n reference: getCompositeRect(\n reference,\n getOffsetParent(popper),\n state.options.strategy === 'fixed'\n ),\n popper: getLayoutRect(popper),\n };\n\n // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n state.reset = false;\n\n state.placement = state.options.placement;\n\n // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n state.orderedModifiers.forEach(\n (modifier) =>\n (state.modifiersData[modifier.name] = {\n ...modifier.data,\n })\n );\n\n for (let index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n const { fn, options = {}, name } = state.orderedModifiers[index];\n\n if (typeof fn === 'function') {\n state = fn({ state, options, name, instance }) || state;\n }\n }\n },\n\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce<$Shape<State>>(\n () =>\n new Promise<$Shape<State>>((resolve) => {\n instance.forceUpdate();\n resolve(state);\n })\n ),\n\n destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n },\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then((state) => {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n });\n\n // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n function runModifierEffects() {\n state.orderedModifiers.forEach(({ name, options = {}, effect }) => {\n if (typeof effect === 'function') {\n const cleanupFn = effect({ state, name, instance, options });\n const noopFn = () => {};\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach((fn) => fn());\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\n\nexport const createPopper = popperGenerator();\n\n// eslint-disable-next-line import/no-unused-modules\nexport { detectOverflow };\n"],"names":["getWindow","node","window","toString","ownerDocument","defaultView","isElement","OwnElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","max","Math","min","round","getUAString","uaData","navigator","userAgentData","brands","Array","isArray","map","item","brand","version","join","userAgent","isLayoutViewport","test","getBoundingClientRect","element","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","offsetWidth","width","offsetHeight","height","visualViewport","addVisualOffsets","x","left","offsetLeft","y","top","offsetTop","right","bottom","getWindowScroll","win","scrollLeft","pageXOffset","scrollTop","pageYOffset","getHTMLElementScroll","getNodeScroll","getNodeName","nodeName","toLowerCase","getDocumentElement","document","documentElement","getWindowScrollBarX","getComputedStyle","isScrollParent","overflow","overflowX","overflowY","isElementScaled","rect","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","scroll","offsets","clientLeft","clientTop","getLayoutRect","abs","getParentNode","assignedSlot","parentNode","host","getScrollParent","indexOf","body","listScrollParents","list","scrollParent","isBody","target","concat","updatedList","isTableElement","getTrueOffsetParent","position","getContainingBlock","isFirefox","isIE","elementCss","currentNode","css","transform","perspective","contain","willChange","filter","getOffsetParent","basePlacements","start","end","clippingParents","viewport","popper","reference","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","order","modifiers","Map","visited","Set","result","forEach","modifier","set","name","sort","add","requires","requiresIfExists","dep","has","depModifier","get","push","orderModifiers","orderedModifiers","reduce","acc","phase","debounce","fn","pending","Promise","resolve","then","undefined","mergeByName","merged","current","existing","options","data","Object","keys","key","getViewportRect","strategy","html","clientWidth","clientHeight","layoutViewport","getDocumentRect","winScroll","scrollWidth","scrollHeight","direction","contains","parent","child","rootNode","getRootNode","next","isSameNode","rectToClientRect","getInnerBoundingClientRect","getClientRectFromMixedType","clippingParent","getClippingParents","canEscapeClipping","clipperElement","getClippingRect","boundary","rootBoundary","mainClippingParents","firstClippingParent","clippingRect","accRect","getBasePlacement","placement","split","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","len","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","value","hashMap","detectOverflow","state","elementContext","altBoundary","padding","altContext","popperRect","rects","elements","clippingClientRect","contextElement","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","offset","multiply","axis","DEFAULT_OPTIONS","areValidElements","args","some","popperGenerator","generatorOptions","defaultModifiers","defaultOptions","createPopper","attributes","styles","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","m","enabled","runModifierEffects","update","forceUpdate","reset","index","length","destroy","onFirstUpdate","effect","cleanupFn","noopFn"],"mappings":"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"} \ No newline at end of file diff --git a/static/javascripts/popperjs/popper-base.min.js b/static/javascripts/popperjs/popper-base.min.js new file mode 100644 index 000000000..577b98fec --- /dev/null +++ b/static/javascripts/popperjs/popper-base.min.js @@ -0,0 +1,6 @@ +/** + * @popperjs/core v2.11.8 - MIT License + */ + +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Popper={})}(this,(function(t){"use strict";function e(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function n(t){return t instanceof e(t).Element||t instanceof Element}function o(t){return t instanceof e(t).HTMLElement||t instanceof HTMLElement}function r(t){return"undefined"!=typeof ShadowRoot&&(t instanceof e(t).ShadowRoot||t instanceof ShadowRoot)}var i=Math.max,f=Math.min,a=Math.round;function c(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function u(){return!/^((?!chrome|android).)*safari/i.test(c())}function s(t,r,i){void 0===r&&(r=!1),void 0===i&&(i=!1);var f=t.getBoundingClientRect(),c=1,s=1;r&&o(t)&&(c=t.offsetWidth>0&&a(f.width)/t.offsetWidth||1,s=t.offsetHeight>0&&a(f.height)/t.offsetHeight||1);var d=(n(t)?e(t):window).visualViewport,l=!u()&&i,h=(f.left+(l&&d?d.offsetLeft:0))/c,p=(f.top+(l&&d?d.offsetTop:0))/s,m=f.width/c,g=f.height/s;return{width:m,height:g,top:p,right:h+m,bottom:p+g,left:h,x:h,y:p}}function d(t){var n=e(t);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function l(t){return t?(t.nodeName||"").toLowerCase():null}function h(t){return((n(t)?t.ownerDocument:t.document)||window.document).documentElement}function p(t){return s(h(t)).left+d(t).scrollLeft}function m(t){return e(t).getComputedStyle(t)}function g(t){var e=m(t),n=e.overflow,o=e.overflowX,r=e.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+o)}function v(t,n,r){void 0===r&&(r=!1);var i,f,c=o(n),u=o(n)&&function(t){var e=t.getBoundingClientRect(),n=a(e.width)/t.offsetWidth||1,o=a(e.height)/t.offsetHeight||1;return 1!==n||1!==o}(n),m=h(n),v=s(t,u,r),b={scrollLeft:0,scrollTop:0},y={x:0,y:0};return(c||!c&&!r)&&(("body"!==l(n)||g(m))&&(b=(i=n)!==e(i)&&o(i)?{scrollLeft:(f=i).scrollLeft,scrollTop:f.scrollTop}:d(i)),o(n)?((y=s(n,!0)).x+=n.clientLeft,y.y+=n.clientTop):m&&(y.x=p(m))),{x:v.left+b.scrollLeft-y.x,y:v.top+b.scrollTop-y.y,width:v.width,height:v.height}}function b(t){return"html"===l(t)?t:t.assignedSlot||t.parentNode||(r(t)?t.host:null)||h(t)}function y(t){return["html","body","#document"].indexOf(l(t))>=0?t.ownerDocument.body:o(t)&&g(t)?t:y(b(t))}function w(t,n){var o;void 0===n&&(n=[]);var r=y(t),i=r===(null==(o=t.ownerDocument)?void 0:o.body),f=e(r),a=i?[f].concat(f.visualViewport||[],g(r)?r:[]):r,c=n.concat(a);return i?c:c.concat(w(b(a)))}function x(t){return["table","td","th"].indexOf(l(t))>=0}function O(t){return o(t)&&"fixed"!==m(t).position?t.offsetParent:null}function M(t){for(var n=e(t),i=O(t);i&&x(i)&&"static"===m(i).position;)i=O(i);return i&&("html"===l(i)||"body"===l(i)&&"static"===m(i).position)?n:i||function(t){var e=/firefox/i.test(c());if(/Trident/i.test(c())&&o(t)&&"fixed"===m(t).position)return null;var n=b(t);for(r(n)&&(n=n.host);o(n)&&["html","body"].indexOf(l(n))<0;){var i=m(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||e&&"filter"===i.willChange||e&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(t)||n}var E="top",T="bottom",W="right",j="left",L=[E,T,W,j],H="viewport",P="popper",R=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function D(t){var e=new Map,n=new Set,o=[];function r(t){n.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!n.has(t)){var o=e.get(t);o&&r(o)}})),o.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){n.has(t.name)||r(t)})),o}function C(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function S(t,o,r){return o===H?C(function(t,n){var o=e(t),r=h(t),i=o.visualViewport,f=r.clientWidth,a=r.clientHeight,c=0,s=0;if(i){f=i.width,a=i.height;var d=u();(d||!d&&"fixed"===n)&&(c=i.offsetLeft,s=i.offsetTop)}return{width:f,height:a,x:c+p(t),y:s}}(t,r)):n(o)?function(t,e){var n=s(t,!1,"fixed"===e);return n.top=n.top+t.clientTop,n.left=n.left+t.clientLeft,n.bottom=n.top+t.clientHeight,n.right=n.left+t.clientWidth,n.width=t.clientWidth,n.height=t.clientHeight,n.x=n.left,n.y=n.top,n}(o,r):C(function(t){var e,n=h(t),o=d(t),r=null==(e=t.ownerDocument)?void 0:e.body,f=i(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=i(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),c=-o.scrollLeft+p(t),u=-o.scrollTop;return"rtl"===m(r||n).direction&&(c+=i(n.clientWidth,r?r.clientWidth:0)-f),{width:f,height:a,x:c,y:u}}(h(t)))}function k(t){var e=w(b(t)),i=["absolute","fixed"].indexOf(m(t).position)>=0&&o(t)?M(t):t;return n(i)?e.filter((function(t){return n(t)&&function(t,e){var n=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(n&&r(n)){var o=e;do{if(o&&t.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}(t,i)&&"body"!==l(t)})):[]}var N={placement:"bottom",modifiers:[],strategy:"absolute"};function A(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return!e.some((function(t){return!(t&&"function"==typeof t.getBoundingClientRect)}))}function B(t){void 0===t&&(t={});var e=t,o=e.defaultModifiers,r=void 0===o?[]:o,i=e.defaultOptions,f=void 0===i?N:i;return function(t,e,o){void 0===o&&(o=f);var i,a,c={placement:"bottom",orderedModifiers:[],options:Object.assign({},N,f),modifiersData:{},elements:{reference:t,popper:e},attributes:{},styles:{}},u=[],d=!1,l={state:c,setOptions:function(o){var i="function"==typeof o?o(c.options):o;h(),c.options=Object.assign({},f,c.options,i),c.scrollParents={reference:n(t)?w(t):t.contextElement?w(t.contextElement):[],popper:w(e)};var a,s,d=function(t){var e=D(t);return R.reduce((function(t,n){return t.concat(e.filter((function(t){return t.phase===n})))}),[])}((a=[].concat(r,c.options.modifiers),s=a.reduce((function(t,e){var n=t[e.name];return t[e.name]=n?Object.assign({},n,e,{options:Object.assign({},n.options,e.options),data:Object.assign({},n.data,e.data)}):e,t}),{}),Object.keys(s).map((function(t){return s[t]}))));return c.orderedModifiers=d.filter((function(t){return t.enabled})),c.orderedModifiers.forEach((function(t){var e=t.name,n=t.options,o=void 0===n?{}:n,r=t.effect;if("function"==typeof r){var i=r({state:c,name:e,instance:l,options:o}),f=function(){};u.push(i||f)}})),l.update()},forceUpdate:function(){if(!d){var t=c.elements,e=t.reference,n=t.popper;if(A(e,n)){var o,r,i,f;c.rects={reference:v(e,M(n),"fixed"===c.options.strategy),popper:(o=n,r=s(o),i=o.offsetWidth,f=o.offsetHeight,Math.abs(r.width-i)<=1&&(i=r.width),Math.abs(r.height-f)<=1&&(f=r.height),{x:o.offsetLeft,y:o.offsetTop,width:i,height:f})},c.reset=!1,c.placement=c.options.placement,c.orderedModifiers.forEach((function(t){return c.modifiersData[t.name]=Object.assign({},t.data)}));for(var a=0;a<c.orderedModifiers.length;a++)if(!0!==c.reset){var u=c.orderedModifiers[a],h=u.fn,p=u.options,m=void 0===p?{}:p,g=u.name;"function"==typeof h&&(c=h({state:c,options:m,name:g,instance:l})||c)}else c.reset=!1,a=-1}}},update:(i=function(){return new Promise((function(t){l.forceUpdate(),t(c)}))},function(){return a||(a=new Promise((function(t){Promise.resolve().then((function(){a=void 0,t(i())}))}))),a}),destroy:function(){h(),d=!0}};if(!A(t,e))return l;function h(){u.forEach((function(t){return t()})),u=[]}return l.setOptions(o).then((function(t){!d&&o.onFirstUpdate&&o.onFirstUpdate(t)})),l}}var U=B();t.createPopper=U,t.detectOverflow=function(t,e){void 0===e&&(e={});var o,r=e,a=r.placement,c=void 0===a?t.placement:a,u=r.strategy,d=void 0===u?t.strategy:u,l=r.boundary,p=void 0===l?"clippingParents":l,m=r.rootBoundary,g=void 0===m?H:m,v=r.elementContext,b=void 0===v?P:v,y=r.altBoundary,w=void 0!==y&&y,x=r.padding,O=void 0===x?0:x,M=function(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}("number"!=typeof O?O:(o=O,L.reduce((function(t,e){return t[e]=o,t}),{}))),R=b===P?"reference":P,D=t.rects.popper,N=t.elements[w?R:b],A=function(t,e,n,o){var r="clippingParents"===e?k(t):[].concat(e),a=[].concat(r,[n]),c=a[0],u=a.reduce((function(e,n){var r=S(t,n,o);return e.top=i(r.top,e.top),e.right=f(r.right,e.right),e.bottom=f(r.bottom,e.bottom),e.left=i(r.left,e.left),e}),S(t,c,o));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}(n(N)?N:N.contextElement||h(t.elements.popper),p,g,d),B=s(t.elements.reference),U=function(t){var e,n=t.reference,o=t.element,r=t.placement,i=r?function(t){return t.split("-")[0]}(r):null,f=r?function(t){return t.split("-")[1]}(r):null,a=n.x+n.width/2-o.width/2,c=n.y+n.height/2-o.height/2;switch(i){case E:e={x:a,y:n.y-o.height};break;case T:e={x:a,y:n.y+n.height};break;case W:e={x:n.x+n.width,y:c};break;case j:e={x:n.x-o.width,y:c};break;default:e={x:n.x,y:n.y}}var u=i?function(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}(i):null;if(null!=u){var s="y"===u?"height":"width";switch(f){case"start":e[u]=e[u]-(n[s]/2-o[s]/2);break;case"end":e[u]=e[u]+(n[s]/2-o[s]/2)}}return e}({reference:B,element:D,strategy:"absolute",placement:c}),V=C(Object.assign({},D,U)),q=b===P?V:B,F={top:A.top-q.top+M.top,bottom:q.bottom-A.bottom+M.bottom,left:A.left-q.left+M.left,right:q.right-A.right+M.right},X=t.modifiersData.offset;if(b===P&&X){var Y=X[c];Object.keys(F).forEach((function(t){var e=[W,T].indexOf(t)>=0?1:-1,n=[E,T].indexOf(t)>=0?"y":"x";F[t]+=Y[n]*e}))}return F},t.popperGenerator=B,Object.defineProperty(t,"__esModule",{value:!0})})); +//# sourceMappingURL=popper-base.min.js.map diff --git a/static/javascripts/popperjs/popper-base.min.js.flow b/static/javascripts/popperjs/popper-base.min.js.flow new file mode 100644 index 000000000..22d88ebd9 --- /dev/null +++ b/static/javascripts/popperjs/popper-base.min.js.flow @@ -0,0 +1,3 @@ +// @flow + +export * from '../../lib/popper-base.js' diff --git a/static/javascripts/popperjs/popper-base.min.js.map b/static/javascripts/popperjs/popper-base.min.js.map new file mode 100644 index 000000000..105025d68 --- /dev/null +++ b/static/javascripts/popperjs/popper-base.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"popper-base.min.js","sources":["../../src/dom-utils/getWindow.js","../../src/dom-utils/instanceOf.js","../../src/utils/math.js","../../src/utils/userAgent.js","../../src/dom-utils/isLayoutViewport.js","../../src/dom-utils/getBoundingClientRect.js","../../src/dom-utils/getWindowScroll.js","../../src/dom-utils/getNodeName.js","../../src/dom-utils/getDocumentElement.js","../../src/dom-utils/getWindowScrollBarX.js","../../src/dom-utils/getComputedStyle.js","../../src/dom-utils/isScrollParent.js","../../src/dom-utils/getCompositeRect.js","../../src/dom-utils/getNodeScroll.js","../../src/dom-utils/getHTMLElementScroll.js","../../src/dom-utils/getParentNode.js","../../src/dom-utils/getScrollParent.js","../../src/dom-utils/listScrollParents.js","../../src/dom-utils/isTableElement.js","../../src/dom-utils/getOffsetParent.js","../../src/enums.js","../../src/utils/orderModifiers.js","../../src/utils/rectToClientRect.js","../../src/dom-utils/getClippingRect.js","../../src/dom-utils/getViewportRect.js","../../src/dom-utils/getDocumentRect.js","../../src/dom-utils/contains.js","../../src/createPopper.js","../../src/utils/debounce.js","../../src/utils/mergeByName.js","../../src/dom-utils/getLayoutRect.js","../../src/utils/detectOverflow.js","../../src/utils/expandToHashMap.js","../../src/utils/mergePaddingObject.js","../../src/utils/getFreshSideObject.js","../../src/utils/computeOffsets.js","../../src/utils/getBasePlacement.js","../../src/utils/getVariation.js","../../src/utils/getMainAxisFromPlacement.js"],"sourcesContent":["// @flow\nimport type { Window } from '../types';\ndeclare function getWindow(node: Node | Window): Window;\n\nexport default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n const ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n","// @flow\nimport getWindow from './getWindow';\n\ndeclare function isElement(node: mixed): boolean %checks(node instanceof\n Element);\nfunction isElement(node) {\n const OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\ndeclare function isHTMLElement(node: mixed): boolean %checks(node instanceof\n HTMLElement);\nfunction isHTMLElement(node) {\n const OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\ndeclare function isShadowRoot(node: mixed): boolean %checks(node instanceof\n ShadowRoot);\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };\n","// @flow\nexport const max = Math.max;\nexport const min = Math.min;\nexport const round = Math.round;\n","// @flow\ntype Navigator = Navigator & { userAgentData?: NavigatorUAData };\n\ninterface NavigatorUAData {\n brands: Array<{ brand: string, version: string }>;\n mobile: boolean;\n platform: string;\n}\n\nexport default function getUAString(): string {\n const uaData = (navigator: Navigator).userAgentData;\n\n if (uaData?.brands && Array.isArray(uaData.brands)) {\n return uaData.brands\n .map((item) => `${item.brand}/${item.version}`)\n .join(' ');\n }\n\n return navigator.userAgent;\n}\n","// @flow\nimport getUAString from '../utils/userAgent';\n\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}\n","// @flow\nimport type { ClientRectObject, VirtualElement } from '../types';\nimport { isElement, isHTMLElement } from './instanceOf';\nimport { round } from '../utils/math';\nimport getWindow from './getWindow';\nimport isLayoutViewport from './isLayoutViewport';\n\nexport default function getBoundingClientRect(\n element: Element | VirtualElement,\n includeScale: boolean = false,\n isFixedStrategy: boolean = false\n): ClientRectObject {\n const clientRect = element.getBoundingClientRect();\n let scaleX = 1;\n let scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX =\n (element: HTMLElement).offsetWidth > 0\n ? round(clientRect.width) / (element: HTMLElement).offsetWidth || 1\n : 1;\n scaleY =\n (element: HTMLElement).offsetHeight > 0\n ? round(clientRect.height) / (element: HTMLElement).offsetHeight || 1\n : 1;\n }\n\n const { visualViewport } = isElement(element) ? getWindow(element) : window;\n const addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n\n const x =\n (clientRect.left +\n (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) /\n scaleX;\n const y =\n (clientRect.top +\n (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) /\n scaleY;\n const width = clientRect.width / scaleX;\n const height = clientRect.height / scaleY;\n\n return {\n width,\n height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x,\n y,\n };\n}\n","// @flow\nimport getWindow from './getWindow';\nimport type { Window } from '../types';\n\nexport default function getWindowScroll(node: Node | Window) {\n const win = getWindow(node);\n const scrollLeft = win.pageXOffset;\n const scrollTop = win.pageYOffset;\n\n return {\n scrollLeft,\n scrollTop,\n };\n}\n","// @flow\nimport type { Window } from '../types';\n\nexport default function getNodeName(element: ?Node | Window): ?string {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}\n","// @flow\nimport { isElement } from './instanceOf';\nimport type { Window } from '../types';\n\nexport default function getDocumentElement(\n element: Element | Window\n): HTMLElement {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return (\n (isElement(element)\n ? element.ownerDocument\n : // $FlowFixMe[prop-missing]\n element.document) || window.document\n ).documentElement;\n}\n","// @flow\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScroll from './getWindowScroll';\n\nexport default function getWindowScrollBarX(element: Element): number {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return (\n getBoundingClientRect(getDocumentElement(element)).left +\n getWindowScroll(element).scrollLeft\n );\n}\n","// @flow\nimport getWindow from './getWindow';\n\nexport default function getComputedStyle(\n element: Element\n): CSSStyleDeclaration {\n return getWindow(element).getComputedStyle(element);\n}\n","// @flow\nimport getComputedStyle from './getComputedStyle';\n\nexport default function isScrollParent(element: HTMLElement): boolean {\n // Firefox wants us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\n","// @flow\nimport type { Rect, VirtualElement, Window } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getNodeScroll from './getNodeScroll';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getDocumentElement from './getDocumentElement';\nimport isScrollParent from './isScrollParent';\nimport { round } from '../utils/math';\n\nfunction isElementScaled(element: HTMLElement) {\n const rect = element.getBoundingClientRect();\n const scaleX = round(rect.width) / element.offsetWidth || 1;\n const scaleY = round(rect.height) / element.offsetHeight || 1;\n\n return scaleX !== 1 || scaleY !== 1;\n}\n\n// Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\nexport default function getCompositeRect(\n elementOrVirtualElement: Element | VirtualElement,\n offsetParent: Element | Window,\n isFixed: boolean = false\n): Rect {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const offsetParentIsScaled =\n isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(\n elementOrVirtualElement,\n offsetParentIsScaled,\n isFixed\n );\n\n let scroll = { scrollLeft: 0, scrollTop: 0 };\n let offsets = { x: 0, y: 0 };\n\n if (isOffsetParentAnElement || (!isOffsetParentAnElement && !isFixed)) {\n if (\n getNodeName(offsetParent) !== 'body' ||\n // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)\n ) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height,\n };\n}\n","// @flow\nimport getWindowScroll from './getWindowScroll';\nimport getWindow from './getWindow';\nimport { isHTMLElement } from './instanceOf';\nimport getHTMLElementScroll from './getHTMLElementScroll';\nimport type { Window } from '../types';\n\nexport default function getNodeScroll(node: Node | Window) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}\n","// @flow\n\nexport default function getHTMLElementScroll(element: HTMLElement) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop,\n };\n}\n","// @flow\nimport getNodeName from './getNodeName';\nimport getDocumentElement from './getDocumentElement';\nimport { isShadowRoot } from './instanceOf';\n\nexport default function getParentNode(element: Node | ShadowRoot): Node {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (\n // this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || // DOM Element detected\n (isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n );\n}\n","// @flow\nimport getParentNode from './getParentNode';\nimport isScrollParent from './isScrollParent';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\n\nexport default function getScrollParent(node: Node): HTMLElement {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}\n","// @flow\nimport getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getWindow from './getWindow';\nimport type { Window, VisualViewport } from '../types';\nimport isScrollParent from './isScrollParent';\n\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\nexport default function listScrollParents(\n element: Node,\n list: Array<Element | Window> = []\n): Array<Element | Window | VisualViewport> {\n const scrollParent = getScrollParent(element);\n const isBody = scrollParent === element.ownerDocument?.body;\n const win = getWindow(scrollParent);\n const target = isBody\n ? [win].concat(\n win.visualViewport || [],\n isScrollParent(scrollParent) ? scrollParent : []\n )\n : scrollParent;\n const updatedList = list.concat(target);\n\n return isBody\n ? updatedList\n : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}\n","// @flow\nimport getNodeName from './getNodeName';\n\nexport default function isTableElement(element: Element): boolean {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getNodeName from './getNodeName';\nimport getComputedStyle from './getComputedStyle';\nimport { isHTMLElement, isShadowRoot } from './instanceOf';\nimport isTableElement from './isTableElement';\nimport getParentNode from './getParentNode';\nimport getUAString from '../utils/userAgent';\n\nfunction getTrueOffsetParent(element: Element): ?Element {\n if (\n !isHTMLElement(element) ||\n // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed'\n ) {\n return null;\n }\n\n return element.offsetParent;\n}\n\n// `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\nfunction getContainingBlock(element: Element) {\n const isFirefox = /firefox/i.test(getUAString());\n const isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n const elementCss = getComputedStyle(element);\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n let currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (\n isHTMLElement(currentNode) &&\n ['html', 'body'].indexOf(getNodeName(currentNode)) < 0\n ) {\n const css = getComputedStyle(currentNode);\n\n // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n if (\n css.transform !== 'none' ||\n css.perspective !== 'none' ||\n css.contain === 'paint' ||\n ['transform', 'perspective'].indexOf(css.willChange) !== -1 ||\n (isFirefox && css.willChange === 'filter') ||\n (isFirefox && css.filter && css.filter !== 'none')\n ) {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nexport default function getOffsetParent(element: Element) {\n const window = getWindow(element);\n\n let offsetParent = getTrueOffsetParent(element);\n\n while (\n offsetParent &&\n isTableElement(offsetParent) &&\n getComputedStyle(offsetParent).position === 'static'\n ) {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (\n offsetParent &&\n (getNodeName(offsetParent) === 'html' ||\n (getNodeName(offsetParent) === 'body' &&\n getComputedStyle(offsetParent).position === 'static'))\n ) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n","// @flow\nexport const top: 'top' = 'top';\nexport const bottom: 'bottom' = 'bottom';\nexport const right: 'right' = 'right';\nexport const left: 'left' = 'left';\nexport const auto: 'auto' = 'auto';\nexport type BasePlacement =\n | typeof top\n | typeof bottom\n | typeof right\n | typeof left;\nexport const basePlacements: Array<BasePlacement> = [top, bottom, right, left];\n\nexport const start: 'start' = 'start';\nexport const end: 'end' = 'end';\nexport type Variation = typeof start | typeof end;\n\nexport const clippingParents: 'clippingParents' = 'clippingParents';\nexport const viewport: 'viewport' = 'viewport';\nexport type Boundary = Element | Array<Element> | typeof clippingParents;\nexport type RootBoundary = typeof viewport | 'document';\n\nexport const popper: 'popper' = 'popper';\nexport const reference: 'reference' = 'reference';\nexport type Context = typeof popper | typeof reference;\n\nexport type VariationPlacement =\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end';\nexport type AutoPlacement = 'auto' | 'auto-start' | 'auto-end';\nexport type ComputedPlacement = VariationPlacement | BasePlacement;\nexport type Placement = AutoPlacement | BasePlacement | VariationPlacement;\n\nexport const variationPlacements: Array<VariationPlacement> = basePlacements.reduce(\n (acc: Array<VariationPlacement>, placement: BasePlacement) =>\n acc.concat([(`${placement}-${start}`: any), (`${placement}-${end}`: any)]),\n []\n);\nexport const placements: Array<Placement> = [...basePlacements, auto].reduce(\n (\n acc: Array<Placement>,\n placement: BasePlacement | typeof auto\n ): Array<Placement> =>\n acc.concat([\n placement,\n (`${placement}-${start}`: any),\n (`${placement}-${end}`: any),\n ]),\n []\n);\n\n// modifiers that need to read the DOM\nexport const beforeRead: 'beforeRead' = 'beforeRead';\nexport const read: 'read' = 'read';\nexport const afterRead: 'afterRead' = 'afterRead';\n// pure-logic modifiers\nexport const beforeMain: 'beforeMain' = 'beforeMain';\nexport const main: 'main' = 'main';\nexport const afterMain: 'afterMain' = 'afterMain';\n// modifier with the purpose to write to the DOM (or write into a framework state)\nexport const beforeWrite: 'beforeWrite' = 'beforeWrite';\nexport const write: 'write' = 'write';\nexport const afterWrite: 'afterWrite' = 'afterWrite';\nexport const modifierPhases: Array<ModifierPhases> = [\n beforeRead,\n read,\n afterRead,\n beforeMain,\n main,\n afterMain,\n beforeWrite,\n write,\n afterWrite,\n];\n\nexport type ModifierPhases =\n | typeof beforeRead\n | typeof read\n | typeof afterRead\n | typeof beforeMain\n | typeof main\n | typeof afterMain\n | typeof beforeWrite\n | typeof write\n | typeof afterWrite;\n","// @flow\nimport type { Modifier } from '../types';\nimport { modifierPhases } from '../enums';\n\n// source: https://stackoverflow.com/questions/49875255\nfunction order(modifiers) {\n const map = new Map();\n const visited = new Set();\n const result = [];\n\n modifiers.forEach(modifier => {\n map.set(modifier.name, modifier);\n });\n\n // On visiting object, check for its dependencies and visit them recursively\n function sort(modifier: Modifier<any, any>) {\n visited.add(modifier.name);\n\n const requires = [\n ...(modifier.requires || []),\n ...(modifier.requiresIfExists || []),\n ];\n\n requires.forEach(dep => {\n if (!visited.has(dep)) {\n const depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n\n result.push(modifier);\n }\n\n modifiers.forEach(modifier => {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n\n return result;\n}\n\nexport default function orderModifiers(\n modifiers: Array<Modifier<any, any>>\n): Array<Modifier<any, any>> {\n // order based on dependencies\n const orderedModifiers = order(modifiers);\n\n // order based on phase\n return modifierPhases.reduce((acc, phase) => {\n return acc.concat(\n orderedModifiers.filter(modifier => modifier.phase === phase)\n );\n }, []);\n}\n","// @flow\nimport type { Rect, ClientRectObject } from '../types';\n\nexport default function rectToClientRect(rect: Rect): ClientRectObject {\n return {\n ...rect,\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height,\n };\n}\n","// @flow\nimport type { ClientRectObject, PositioningStrategy } from '../types';\nimport type { Boundary, RootBoundary } from '../enums';\nimport { viewport } from '../enums';\nimport getViewportRect from './getViewportRect';\nimport getDocumentRect from './getDocumentRect';\nimport listScrollParents from './listScrollParents';\nimport getOffsetParent from './getOffsetParent';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport { isElement, isHTMLElement } from './instanceOf';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getParentNode from './getParentNode';\nimport contains from './contains';\nimport getNodeName from './getNodeName';\nimport rectToClientRect from '../utils/rectToClientRect';\nimport { max, min } from '../utils/math';\n\nfunction getInnerBoundingClientRect(\n element: Element,\n strategy: PositioningStrategy\n) {\n const rect = getBoundingClientRect(element, false, strategy === 'fixed');\n\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n\n return rect;\n}\n\nfunction getClientRectFromMixedType(\n element: Element,\n clippingParent: Element | RootBoundary,\n strategy: PositioningStrategy\n): ClientRectObject {\n return clippingParent === viewport\n ? rectToClientRect(getViewportRect(element, strategy))\n : isElement(clippingParent)\n ? getInnerBoundingClientRect(clippingParent, strategy)\n : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n}\n\n// A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\nfunction getClippingParents(element: Element): Array<Element> {\n const clippingParents = listScrollParents(getParentNode(element));\n const canEscapeClipping =\n ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n const clipperElement =\n canEscapeClipping && isHTMLElement(element)\n ? getOffsetParent(element)\n : element;\n\n if (!isElement(clipperElement)) {\n return [];\n }\n\n // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n return clippingParents.filter(\n (clippingParent) =>\n isElement(clippingParent) &&\n contains(clippingParent, clipperElement) &&\n getNodeName(clippingParent) !== 'body'\n );\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping parents\nexport default function getClippingRect(\n element: Element,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n strategy: PositioningStrategy\n): ClientRectObject {\n const mainClippingParents =\n boundary === 'clippingParents'\n ? getClippingParents(element)\n : [].concat(boundary);\n const clippingParents = [...mainClippingParents, rootBoundary];\n const firstClippingParent = clippingParents[0];\n\n const clippingRect = clippingParents.reduce((accRect, clippingParent) => {\n const rect = getClientRectFromMixedType(element, clippingParent, strategy);\n\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n\n return clippingRect;\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport isLayoutViewport from './isLayoutViewport';\nimport type { PositioningStrategy } from '../types';\n\nexport default function getViewportRect(\n element: Element,\n strategy: PositioningStrategy\n) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n\n const layoutViewport = isLayoutViewport();\n\n if (layoutViewport || (!layoutViewport && strategy === 'fixed')) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width,\n height,\n x: x + getWindowScrollBarX(element),\n y,\n };\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getWindowScroll from './getWindowScroll';\nimport { max } from '../utils/math';\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\nexport default function getDocumentRect(element: HTMLElement): Rect {\n const html = getDocumentElement(element);\n const winScroll = getWindowScroll(element);\n const body = element.ownerDocument?.body;\n\n const width = max(\n html.scrollWidth,\n html.clientWidth,\n body ? body.scrollWidth : 0,\n body ? body.clientWidth : 0\n );\n const height = max(\n html.scrollHeight,\n html.clientHeight,\n body ? body.scrollHeight : 0,\n body ? body.clientHeight : 0\n );\n\n let x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n const y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return { width, height, x, y };\n}\n","// @flow\nimport { isShadowRoot } from './instanceOf';\n\nexport default function contains(parent: Element, child: Element) {\n const rootNode = child.getRootNode && child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n }\n // $FlowFixMe[prop-missing]: need a better way to handle this...\n next = next.parentNode || next.host;\n } while (next);\n }\n\n // Give up, the result is false\n return false;\n}\n","// @flow\nimport type {\n State,\n OptionsGeneric,\n Modifier,\n Instance,\n VirtualElement,\n} from './types';\nimport getCompositeRect from './dom-utils/getCompositeRect';\nimport getLayoutRect from './dom-utils/getLayoutRect';\nimport listScrollParents from './dom-utils/listScrollParents';\nimport getOffsetParent from './dom-utils/getOffsetParent';\nimport orderModifiers from './utils/orderModifiers';\nimport debounce from './utils/debounce';\nimport mergeByName from './utils/mergeByName';\nimport detectOverflow from './utils/detectOverflow';\nimport { isElement } from './dom-utils/instanceOf';\n\nconst DEFAULT_OPTIONS: OptionsGeneric<any> = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute',\n};\n\ntype PopperGeneratorArgs = {\n defaultModifiers?: Array<Modifier<any, any>>,\n defaultOptions?: $Shape<OptionsGeneric<any>>,\n};\n\nfunction areValidElements(...args: Array<any>): boolean {\n return !args.some(\n (element) =>\n !(element && typeof element.getBoundingClientRect === 'function')\n );\n}\n\nexport function popperGenerator(generatorOptions: PopperGeneratorArgs = {}) {\n const { defaultModifiers = [], defaultOptions = DEFAULT_OPTIONS } =\n generatorOptions;\n\n return function createPopper<TModifier: $Shape<Modifier<any, any>>>(\n reference: Element | VirtualElement,\n popper: HTMLElement,\n options: $Shape<OptionsGeneric<TModifier>> = defaultOptions\n ): Instance {\n let state: $Shape<State> = {\n placement: 'bottom',\n orderedModifiers: [],\n options: { ...DEFAULT_OPTIONS, ...defaultOptions },\n modifiersData: {},\n elements: {\n reference,\n popper,\n },\n attributes: {},\n styles: {},\n };\n\n let effectCleanupFns: Array<() => void> = [];\n let isDestroyed = false;\n\n const instance = {\n state,\n setOptions(setOptionsAction) {\n const options =\n typeof setOptionsAction === 'function'\n ? setOptionsAction(state.options)\n : setOptionsAction;\n\n cleanupModifierEffects();\n\n state.options = {\n // $FlowFixMe[exponential-spread]\n ...defaultOptions,\n ...state.options,\n ...options,\n };\n\n state.scrollParents = {\n reference: isElement(reference)\n ? listScrollParents(reference)\n : reference.contextElement\n ? listScrollParents(reference.contextElement)\n : [],\n popper: listScrollParents(popper),\n };\n\n // Orders the modifiers based on their dependencies and `phase`\n // properties\n const orderedModifiers = orderModifiers(\n mergeByName([...defaultModifiers, ...state.options.modifiers])\n );\n\n // Strip out disabled modifiers\n state.orderedModifiers = orderedModifiers.filter((m) => m.enabled);\n\n runModifierEffects();\n\n return instance.update();\n },\n\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n const { reference, popper } = state.elements;\n\n // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n if (!areValidElements(reference, popper)) {\n return;\n }\n\n // Store the reference and popper rects to be read by modifiers\n state.rects = {\n reference: getCompositeRect(\n reference,\n getOffsetParent(popper),\n state.options.strategy === 'fixed'\n ),\n popper: getLayoutRect(popper),\n };\n\n // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n state.reset = false;\n\n state.placement = state.options.placement;\n\n // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n state.orderedModifiers.forEach(\n (modifier) =>\n (state.modifiersData[modifier.name] = {\n ...modifier.data,\n })\n );\n\n for (let index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n const { fn, options = {}, name } = state.orderedModifiers[index];\n\n if (typeof fn === 'function') {\n state = fn({ state, options, name, instance }) || state;\n }\n }\n },\n\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce<$Shape<State>>(\n () =>\n new Promise<$Shape<State>>((resolve) => {\n instance.forceUpdate();\n resolve(state);\n })\n ),\n\n destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n },\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then((state) => {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n });\n\n // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n function runModifierEffects() {\n state.orderedModifiers.forEach(({ name, options = {}, effect }) => {\n if (typeof effect === 'function') {\n const cleanupFn = effect({ state, name, instance, options });\n const noopFn = () => {};\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach((fn) => fn());\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\n\nexport const createPopper = popperGenerator();\n\n// eslint-disable-next-line import/no-unused-modules\nexport { detectOverflow };\n","// @flow\n\nexport default function debounce<T>(fn: Function): () => Promise<T> {\n let pending;\n return () => {\n if (!pending) {\n pending = new Promise<T>(resolve => {\n Promise.resolve().then(() => {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}\n","// @flow\nimport type { Modifier } from '../types';\n\nexport default function mergeByName(\n modifiers: Array<$Shape<Modifier<any, any>>>\n): Array<$Shape<Modifier<any, any>>> {\n const merged = modifiers.reduce((merged, current) => {\n const existing = merged[current.name];\n merged[current.name] = existing\n ? {\n ...existing,\n ...current,\n options: { ...existing.options, ...current.options },\n data: { ...existing.data, ...current.data },\n }\n : current;\n return merged;\n }, {});\n\n // IE11 does not support Object.values\n return Object.keys(merged).map(key => merged[key]);\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\n\n// Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\nexport default function getLayoutRect(element: HTMLElement): Rect {\n const clientRect = getBoundingClientRect(element);\n\n // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width,\n height,\n };\n}\n","// @flow\nimport type { State, SideObject, Padding, PositioningStrategy } from '../types';\nimport type { Placement, Boundary, RootBoundary, Context } from '../enums';\nimport getClippingRect from '../dom-utils/getClippingRect';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport getBoundingClientRect from '../dom-utils/getBoundingClientRect';\nimport computeOffsets from './computeOffsets';\nimport rectToClientRect from './rectToClientRect';\nimport {\n clippingParents,\n reference,\n popper,\n bottom,\n top,\n right,\n basePlacements,\n viewport,\n} from '../enums';\nimport { isElement } from '../dom-utils/instanceOf';\nimport mergePaddingObject from './mergePaddingObject';\nimport expandToHashMap from './expandToHashMap';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n placement: Placement,\n strategy: PositioningStrategy,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n elementContext: Context,\n altBoundary: boolean,\n padding: Padding,\n};\n\nexport default function detectOverflow(\n state: State,\n options: $Shape<Options> = {}\n): SideObject {\n const {\n placement = state.placement,\n strategy = state.strategy,\n boundary = clippingParents,\n rootBoundary = viewport,\n elementContext = popper,\n altBoundary = false,\n padding = 0,\n } = options;\n\n const paddingObject = mergePaddingObject(\n typeof padding !== 'number'\n ? padding\n : expandToHashMap(padding, basePlacements)\n );\n\n const altContext = elementContext === popper ? reference : popper;\n\n const popperRect = state.rects.popper;\n const element = state.elements[altBoundary ? altContext : elementContext];\n\n const clippingClientRect = getClippingRect(\n isElement(element)\n ? element\n : element.contextElement || getDocumentElement(state.elements.popper),\n boundary,\n rootBoundary,\n strategy\n );\n\n const referenceClientRect = getBoundingClientRect(state.elements.reference);\n\n const popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement,\n });\n\n const popperClientRect = rectToClientRect({\n ...popperRect,\n ...popperOffsets,\n });\n\n const elementClientRect =\n elementContext === popper ? popperClientRect : referenceClientRect;\n\n // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n const overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom:\n elementClientRect.bottom -\n clippingClientRect.bottom +\n paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right:\n elementClientRect.right - clippingClientRect.right + paddingObject.right,\n };\n\n const offsetData = state.modifiersData.offset;\n\n // Offsets can be applied only to the popper element\n if (elementContext === popper && offsetData) {\n const offset = offsetData[placement];\n\n Object.keys(overflowOffsets).forEach((key) => {\n const multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n const axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}\n","// @flow\n\nexport default function expandToHashMap<\n T: number | string | boolean,\n K: string\n>(value: T, keys: Array<K>): { [key: string]: T } {\n return keys.reduce((hashMap, key) => {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}\n","// @flow\nimport type { SideObject } from '../types';\nimport getFreshSideObject from './getFreshSideObject';\n\nexport default function mergePaddingObject(\n paddingObject: $Shape<SideObject>\n): SideObject {\n return {\n ...getFreshSideObject(),\n ...paddingObject,\n };\n}\n","// @flow\nimport type { SideObject } from '../types';\n\nexport default function getFreshSideObject(): SideObject {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n };\n}\n","// @flow\nimport getBasePlacement from './getBasePlacement';\nimport getVariation from './getVariation';\nimport getMainAxisFromPlacement from './getMainAxisFromPlacement';\nimport type {\n Rect,\n PositioningStrategy,\n Offsets,\n ClientRectObject,\n} from '../types';\nimport { top, right, bottom, left, start, end, type Placement } from '../enums';\n\nexport default function computeOffsets({\n reference,\n element,\n placement,\n}: {\n reference: Rect | ClientRectObject,\n element: Rect | ClientRectObject,\n strategy: PositioningStrategy,\n placement?: Placement,\n}): Offsets {\n const basePlacement = placement ? getBasePlacement(placement) : null;\n const variation = placement ? getVariation(placement) : null;\n const commonX = reference.x + reference.width / 2 - element.width / 2;\n const commonY = reference.y + reference.height / 2 - element.height / 2;\n\n let offsets;\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height,\n };\n break;\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height,\n };\n break;\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY,\n };\n break;\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY,\n };\n break;\n default:\n offsets = {\n x: reference.x,\n y: reference.y,\n };\n }\n\n const mainAxis = basePlacement\n ? getMainAxisFromPlacement(basePlacement)\n : null;\n\n if (mainAxis != null) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] =\n offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n case end:\n offsets[mainAxis] =\n offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n default:\n }\n }\n\n return offsets;\n}\n","// @flow\nimport { type BasePlacement, type Placement, auto } from '../enums';\n\nexport default function getBasePlacement(\n placement: Placement | typeof auto\n): BasePlacement {\n return (placement.split('-')[0]: any);\n}\n","// @flow\nimport { type Variation, type Placement } from '../enums';\n\nexport default function getVariation(placement: Placement): ?Variation {\n return (placement.split('-')[1]: any);\n}\n","// @flow\nimport type { Placement } from '../enums';\n\nexport default function getMainAxisFromPlacement(\n placement: Placement\n): 'x' | 'y' {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}\n"],"names":["getWindow","node","window","toString","ownerDocument","defaultView","isElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","max","Math","min","round","getUAString","uaData","navigator","userAgentData","brands","Array","isArray","map","item","brand","version","join","userAgent","isLayoutViewport","test","getBoundingClientRect","element","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","offsetWidth","width","offsetHeight","height","visualViewport","addVisualOffsets","x","left","offsetLeft","y","top","offsetTop","right","bottom","getWindowScroll","win","scrollLeft","pageXOffset","scrollTop","pageYOffset","getNodeName","nodeName","toLowerCase","getDocumentElement","document","documentElement","getWindowScrollBarX","getComputedStyle","isScrollParent","overflow","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","rect","isElementScaled","scroll","offsets","clientLeft","clientTop","getParentNode","assignedSlot","parentNode","host","getScrollParent","indexOf","body","listScrollParents","list","scrollParent","isBody","_element$ownerDocumen","target","concat","updatedList","isTableElement","getTrueOffsetParent","position","getOffsetParent","isFirefox","currentNode","css","transform","perspective","contain","willChange","filter","getContainingBlock","basePlacements","viewport","popper","modifierPhases","order","modifiers","Map","visited","Set","result","sort","modifier","add","name","requires","requiresIfExists","forEach","dep","has","depModifier","get","push","set","rectToClientRect","getClientRectFromMixedType","clippingParent","strategy","html","clientWidth","clientHeight","layoutViewport","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","direction","getDocumentRect","getClippingParents","clippingParents","clipperElement","parent","child","rootNode","getRootNode","contains","next","isSameNode","DEFAULT_OPTIONS","placement","areValidElements","args","some","popperGenerator","generatorOptions","defaultModifiers","defaultOptions","reference","options","fn","pending","state","orderedModifiers","modifiersData","elements","attributes","styles","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","merged","reduce","acc","phase","orderModifiers","current","existing","data","Object","keys","key","m","enabled","effect","cleanupFn","noopFn","update","forceUpdate","rects","abs","reset","index","length","Promise","resolve","then","undefined","destroy","onFirstUpdate","createPopper","value","boundary","rootBoundary","elementContext","altBoundary","padding","paddingObject","mergePaddingObject","hashMap","altContext","popperRect","clippingClientRect","mainClippingParents","firstClippingParent","clippingRect","accRect","getClippingRect","referenceClientRect","popperOffsets","basePlacement","split","getBasePlacement","variation","getVariation","commonX","commonY","mainAxis","getMainAxisFromPlacement","len","computeOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","offset","multiply","axis"],"mappings":"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"} \ No newline at end of file diff --git a/static/javascripts/popperjs/popper-lite.js b/static/javascripts/popperjs/popper-lite.js new file mode 100644 index 000000000..a41018b2b --- /dev/null +++ b/static/javascripts/popperjs/popper-lite.js @@ -0,0 +1,1266 @@ +/** + * @popperjs/core v2.11.8 - MIT License + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Popper = {})); +}(this, (function (exports) { 'use strict'; + + function getWindow(node) { + if (node == null) { + return window; + } + + if (node.toString() !== '[object Window]') { + var ownerDocument = node.ownerDocument; + return ownerDocument ? ownerDocument.defaultView || window : window; + } + + return node; + } + + function isElement(node) { + var OwnElement = getWindow(node).Element; + return node instanceof OwnElement || node instanceof Element; + } + + function isHTMLElement(node) { + var OwnElement = getWindow(node).HTMLElement; + return node instanceof OwnElement || node instanceof HTMLElement; + } + + function isShadowRoot(node) { + // IE 11 has no ShadowRoot + if (typeof ShadowRoot === 'undefined') { + return false; + } + + var OwnElement = getWindow(node).ShadowRoot; + return node instanceof OwnElement || node instanceof ShadowRoot; + } + + var max = Math.max; + var min = Math.min; + var round = Math.round; + + function getUAString() { + var uaData = navigator.userAgentData; + + if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) { + return uaData.brands.map(function (item) { + return item.brand + "/" + item.version; + }).join(' '); + } + + return navigator.userAgent; + } + + function isLayoutViewport() { + return !/^((?!chrome|android).)*safari/i.test(getUAString()); + } + + function getBoundingClientRect(element, includeScale, isFixedStrategy) { + if (includeScale === void 0) { + includeScale = false; + } + + if (isFixedStrategy === void 0) { + isFixedStrategy = false; + } + + var clientRect = element.getBoundingClientRect(); + var scaleX = 1; + var scaleY = 1; + + if (includeScale && isHTMLElement(element)) { + scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1; + scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1; + } + + var _ref = isElement(element) ? getWindow(element) : window, + visualViewport = _ref.visualViewport; + + var addVisualOffsets = !isLayoutViewport() && isFixedStrategy; + var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX; + var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY; + var width = clientRect.width / scaleX; + var height = clientRect.height / scaleY; + return { + width: width, + height: height, + top: y, + right: x + width, + bottom: y + height, + left: x, + x: x, + y: y + }; + } + + function getWindowScroll(node) { + var win = getWindow(node); + var scrollLeft = win.pageXOffset; + var scrollTop = win.pageYOffset; + return { + scrollLeft: scrollLeft, + scrollTop: scrollTop + }; + } + + function getHTMLElementScroll(element) { + return { + scrollLeft: element.scrollLeft, + scrollTop: element.scrollTop + }; + } + + function getNodeScroll(node) { + if (node === getWindow(node) || !isHTMLElement(node)) { + return getWindowScroll(node); + } else { + return getHTMLElementScroll(node); + } + } + + function getNodeName(element) { + return element ? (element.nodeName || '').toLowerCase() : null; + } + + function getDocumentElement(element) { + // $FlowFixMe[incompatible-return]: assume body is always available + return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing] + element.document) || window.document).documentElement; + } + + function getWindowScrollBarX(element) { + // If <html> has a CSS width greater than the viewport, then this will be + // incorrect for RTL. + // Popper 1 is broken in this case and never had a bug report so let's assume + // it's not an issue. I don't think anyone ever specifies width on <html> + // anyway. + // Browsers where the left scrollbar doesn't cause an issue report `0` for + // this (e.g. Edge 2019, IE11, Safari) + return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft; + } + + function getComputedStyle(element) { + return getWindow(element).getComputedStyle(element); + } + + function isScrollParent(element) { + // Firefox wants us to check `-x` and `-y` variations as well + var _getComputedStyle = getComputedStyle(element), + overflow = _getComputedStyle.overflow, + overflowX = _getComputedStyle.overflowX, + overflowY = _getComputedStyle.overflowY; + + return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); + } + + function isElementScaled(element) { + var rect = element.getBoundingClientRect(); + var scaleX = round(rect.width) / element.offsetWidth || 1; + var scaleY = round(rect.height) / element.offsetHeight || 1; + return scaleX !== 1 || scaleY !== 1; + } // Returns the composite rect of an element relative to its offsetParent. + // Composite means it takes into account transforms as well as layout. + + + function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { + if (isFixed === void 0) { + isFixed = false; + } + + var isOffsetParentAnElement = isHTMLElement(offsetParent); + var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent); + var documentElement = getDocumentElement(offsetParent); + var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed); + var scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + var offsets = { + x: 0, + y: 0 + }; + + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078 + isScrollParent(documentElement)) { + scroll = getNodeScroll(offsetParent); + } + + if (isHTMLElement(offsetParent)) { + offsets = getBoundingClientRect(offsetParent, true); + offsets.x += offsetParent.clientLeft; + offsets.y += offsetParent.clientTop; + } else if (documentElement) { + offsets.x = getWindowScrollBarX(documentElement); + } + } + + return { + x: rect.left + scroll.scrollLeft - offsets.x, + y: rect.top + scroll.scrollTop - offsets.y, + width: rect.width, + height: rect.height + }; + } + + // means it doesn't take into account transforms. + + function getLayoutRect(element) { + var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed. + // Fixes https://github.com/popperjs/popper-core/issues/1223 + + var width = element.offsetWidth; + var height = element.offsetHeight; + + if (Math.abs(clientRect.width - width) <= 1) { + width = clientRect.width; + } + + if (Math.abs(clientRect.height - height) <= 1) { + height = clientRect.height; + } + + return { + x: element.offsetLeft, + y: element.offsetTop, + width: width, + height: height + }; + } + + function getParentNode(element) { + if (getNodeName(element) === 'html') { + return element; + } + + return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle + // $FlowFixMe[incompatible-return] + // $FlowFixMe[prop-missing] + element.assignedSlot || // step into the shadow DOM of the parent of a slotted node + element.parentNode || ( // DOM Element detected + isShadowRoot(element) ? element.host : null) || // ShadowRoot detected + // $FlowFixMe[incompatible-call]: HTMLElement is a Node + getDocumentElement(element) // fallback + + ); + } + + function getScrollParent(node) { + if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) { + // $FlowFixMe[incompatible-return]: assume body is always available + return node.ownerDocument.body; + } + + if (isHTMLElement(node) && isScrollParent(node)) { + return node; + } + + return getScrollParent(getParentNode(node)); + } + + /* + given a DOM element, return the list of all scroll parents, up the list of ancesors + until we get to the top window object. This list is what we attach scroll listeners + to, because if any of these parent elements scroll, we'll need to re-calculate the + reference element's position. + */ + + function listScrollParents(element, list) { + var _element$ownerDocumen; + + if (list === void 0) { + list = []; + } + + var scrollParent = getScrollParent(element); + var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body); + var win = getWindow(scrollParent); + var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent; + var updatedList = list.concat(target); + return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here + updatedList.concat(listScrollParents(getParentNode(target))); + } + + function isTableElement(element) { + return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0; + } + + function getTrueOffsetParent(element) { + if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837 + getComputedStyle(element).position === 'fixed') { + return null; + } + + return element.offsetParent; + } // `.offsetParent` reports `null` for fixed elements, while absolute elements + // return the containing block + + + function getContainingBlock(element) { + var isFirefox = /firefox/i.test(getUAString()); + var isIE = /Trident/i.test(getUAString()); + + if (isIE && isHTMLElement(element)) { + // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport + var elementCss = getComputedStyle(element); + + if (elementCss.position === 'fixed') { + return null; + } + } + + var currentNode = getParentNode(element); + + if (isShadowRoot(currentNode)) { + currentNode = currentNode.host; + } + + while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) { + var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that + // create a containing block. + // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block + + if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') { + return currentNode; + } else { + currentNode = currentNode.parentNode; + } + } + + return null; + } // Gets the closest ancestor positioned element. Handles some edge cases, + // such as table ancestors and cross browser bugs. + + + function getOffsetParent(element) { + var window = getWindow(element); + var offsetParent = getTrueOffsetParent(element); + + while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') { + offsetParent = getTrueOffsetParent(offsetParent); + } + + if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) { + return window; + } + + return offsetParent || getContainingBlock(element) || window; + } + + var top = 'top'; + var bottom = 'bottom'; + var right = 'right'; + var left = 'left'; + var basePlacements = [top, bottom, right, left]; + var start = 'start'; + var end = 'end'; + var clippingParents = 'clippingParents'; + var viewport = 'viewport'; + var popper = 'popper'; + var reference = 'reference'; + + var beforeRead = 'beforeRead'; + var read = 'read'; + var afterRead = 'afterRead'; // pure-logic modifiers + + var beforeMain = 'beforeMain'; + var main = 'main'; + var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state) + + var beforeWrite = 'beforeWrite'; + var write = 'write'; + var afterWrite = 'afterWrite'; + var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite]; + + function order(modifiers) { + var map = new Map(); + var visited = new Set(); + var result = []; + modifiers.forEach(function (modifier) { + map.set(modifier.name, modifier); + }); // On visiting object, check for its dependencies and visit them recursively + + function sort(modifier) { + visited.add(modifier.name); + var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []); + requires.forEach(function (dep) { + if (!visited.has(dep)) { + var depModifier = map.get(dep); + + if (depModifier) { + sort(depModifier); + } + } + }); + result.push(modifier); + } + + modifiers.forEach(function (modifier) { + if (!visited.has(modifier.name)) { + // check for visited object + sort(modifier); + } + }); + return result; + } + + function orderModifiers(modifiers) { + // order based on dependencies + var orderedModifiers = order(modifiers); // order based on phase + + return modifierPhases.reduce(function (acc, phase) { + return acc.concat(orderedModifiers.filter(function (modifier) { + return modifier.phase === phase; + })); + }, []); + } + + function debounce(fn) { + var pending; + return function () { + if (!pending) { + pending = new Promise(function (resolve) { + Promise.resolve().then(function () { + pending = undefined; + resolve(fn()); + }); + }); + } + + return pending; + }; + } + + function mergeByName(modifiers) { + var merged = modifiers.reduce(function (merged, current) { + var existing = merged[current.name]; + merged[current.name] = existing ? Object.assign({}, existing, current, { + options: Object.assign({}, existing.options, current.options), + data: Object.assign({}, existing.data, current.data) + }) : current; + return merged; + }, {}); // IE11 does not support Object.values + + return Object.keys(merged).map(function (key) { + return merged[key]; + }); + } + + function getViewportRect(element, strategy) { + var win = getWindow(element); + var html = getDocumentElement(element); + var visualViewport = win.visualViewport; + var width = html.clientWidth; + var height = html.clientHeight; + var x = 0; + var y = 0; + + if (visualViewport) { + width = visualViewport.width; + height = visualViewport.height; + var layoutViewport = isLayoutViewport(); + + if (layoutViewport || !layoutViewport && strategy === 'fixed') { + x = visualViewport.offsetLeft; + y = visualViewport.offsetTop; + } + } + + return { + width: width, + height: height, + x: x + getWindowScrollBarX(element), + y: y + }; + } + + // of the `<html>` and `<body>` rect bounds if horizontally scrollable + + function getDocumentRect(element) { + var _element$ownerDocumen; + + var html = getDocumentElement(element); + var winScroll = getWindowScroll(element); + var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body; + var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0); + var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0); + var x = -winScroll.scrollLeft + getWindowScrollBarX(element); + var y = -winScroll.scrollTop; + + if (getComputedStyle(body || html).direction === 'rtl') { + x += max(html.clientWidth, body ? body.clientWidth : 0) - width; + } + + return { + width: width, + height: height, + x: x, + y: y + }; + } + + function contains(parent, child) { + var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method + + if (parent.contains(child)) { + return true; + } // then fallback to custom implementation with Shadow DOM support + else if (rootNode && isShadowRoot(rootNode)) { + var next = child; + + do { + if (next && parent.isSameNode(next)) { + return true; + } // $FlowFixMe[prop-missing]: need a better way to handle this... + + + next = next.parentNode || next.host; + } while (next); + } // Give up, the result is false + + + return false; + } + + function rectToClientRect(rect) { + return Object.assign({}, rect, { + left: rect.x, + top: rect.y, + right: rect.x + rect.width, + bottom: rect.y + rect.height + }); + } + + function getInnerBoundingClientRect(element, strategy) { + var rect = getBoundingClientRect(element, false, strategy === 'fixed'); + rect.top = rect.top + element.clientTop; + rect.left = rect.left + element.clientLeft; + rect.bottom = rect.top + element.clientHeight; + rect.right = rect.left + element.clientWidth; + rect.width = element.clientWidth; + rect.height = element.clientHeight; + rect.x = rect.left; + rect.y = rect.top; + return rect; + } + + function getClientRectFromMixedType(element, clippingParent, strategy) { + return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element))); + } // A "clipping parent" is an overflowable container with the characteristic of + // clipping (or hiding) overflowing elements with a position different from + // `initial` + + + function getClippingParents(element) { + var clippingParents = listScrollParents(getParentNode(element)); + var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0; + var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element; + + if (!isElement(clipperElement)) { + return []; + } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414 + + + return clippingParents.filter(function (clippingParent) { + return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body'; + }); + } // Gets the maximum area that the element is visible in due to any number of + // clipping parents + + + function getClippingRect(element, boundary, rootBoundary, strategy) { + var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary); + var clippingParents = [].concat(mainClippingParents, [rootBoundary]); + var firstClippingParent = clippingParents[0]; + var clippingRect = clippingParents.reduce(function (accRect, clippingParent) { + var rect = getClientRectFromMixedType(element, clippingParent, strategy); + accRect.top = max(rect.top, accRect.top); + accRect.right = min(rect.right, accRect.right); + accRect.bottom = min(rect.bottom, accRect.bottom); + accRect.left = max(rect.left, accRect.left); + return accRect; + }, getClientRectFromMixedType(element, firstClippingParent, strategy)); + clippingRect.width = clippingRect.right - clippingRect.left; + clippingRect.height = clippingRect.bottom - clippingRect.top; + clippingRect.x = clippingRect.left; + clippingRect.y = clippingRect.top; + return clippingRect; + } + + function getBasePlacement(placement) { + return placement.split('-')[0]; + } + + function getVariation(placement) { + return placement.split('-')[1]; + } + + function getMainAxisFromPlacement(placement) { + return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y'; + } + + function computeOffsets(_ref) { + var reference = _ref.reference, + element = _ref.element, + placement = _ref.placement; + var basePlacement = placement ? getBasePlacement(placement) : null; + var variation = placement ? getVariation(placement) : null; + var commonX = reference.x + reference.width / 2 - element.width / 2; + var commonY = reference.y + reference.height / 2 - element.height / 2; + var offsets; + + switch (basePlacement) { + case top: + offsets = { + x: commonX, + y: reference.y - element.height + }; + break; + + case bottom: + offsets = { + x: commonX, + y: reference.y + reference.height + }; + break; + + case right: + offsets = { + x: reference.x + reference.width, + y: commonY + }; + break; + + case left: + offsets = { + x: reference.x - element.width, + y: commonY + }; + break; + + default: + offsets = { + x: reference.x, + y: reference.y + }; + } + + var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null; + + if (mainAxis != null) { + var len = mainAxis === 'y' ? 'height' : 'width'; + + switch (variation) { + case start: + offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2); + break; + + case end: + offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2); + break; + } + } + + return offsets; + } + + function getFreshSideObject() { + return { + top: 0, + right: 0, + bottom: 0, + left: 0 + }; + } + + function mergePaddingObject(paddingObject) { + return Object.assign({}, getFreshSideObject(), paddingObject); + } + + function expandToHashMap(value, keys) { + return keys.reduce(function (hashMap, key) { + hashMap[key] = value; + return hashMap; + }, {}); + } + + function detectOverflow(state, options) { + if (options === void 0) { + options = {}; + } + + var _options = options, + _options$placement = _options.placement, + placement = _options$placement === void 0 ? state.placement : _options$placement, + _options$strategy = _options.strategy, + strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, + _options$boundary = _options.boundary, + boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, + _options$rootBoundary = _options.rootBoundary, + rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, + _options$elementConte = _options.elementContext, + elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, + _options$altBoundary = _options.altBoundary, + altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, + _options$padding = _options.padding, + padding = _options$padding === void 0 ? 0 : _options$padding; + var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements)); + var altContext = elementContext === popper ? reference : popper; + var popperRect = state.rects.popper; + var element = state.elements[altBoundary ? altContext : elementContext]; + var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy); + var referenceClientRect = getBoundingClientRect(state.elements.reference); + var popperOffsets = computeOffsets({ + reference: referenceClientRect, + element: popperRect, + strategy: 'absolute', + placement: placement + }); + var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets)); + var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect + // 0 or negative = within the clipping rect + + var overflowOffsets = { + top: clippingClientRect.top - elementClientRect.top + paddingObject.top, + bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom, + left: clippingClientRect.left - elementClientRect.left + paddingObject.left, + right: elementClientRect.right - clippingClientRect.right + paddingObject.right + }; + var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element + + if (elementContext === popper && offsetData) { + var offset = offsetData[placement]; + Object.keys(overflowOffsets).forEach(function (key) { + var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1; + var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x'; + overflowOffsets[key] += offset[axis] * multiply; + }); + } + + return overflowOffsets; + } + + var DEFAULT_OPTIONS = { + placement: 'bottom', + modifiers: [], + strategy: 'absolute' + }; + + function areValidElements() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return !args.some(function (element) { + return !(element && typeof element.getBoundingClientRect === 'function'); + }); + } + + function popperGenerator(generatorOptions) { + if (generatorOptions === void 0) { + generatorOptions = {}; + } + + var _generatorOptions = generatorOptions, + _generatorOptions$def = _generatorOptions.defaultModifiers, + defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, + _generatorOptions$def2 = _generatorOptions.defaultOptions, + defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2; + return function createPopper(reference, popper, options) { + if (options === void 0) { + options = defaultOptions; + } + + var state = { + placement: 'bottom', + orderedModifiers: [], + options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions), + modifiersData: {}, + elements: { + reference: reference, + popper: popper + }, + attributes: {}, + styles: {} + }; + var effectCleanupFns = []; + var isDestroyed = false; + var instance = { + state: state, + setOptions: function setOptions(setOptionsAction) { + var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction; + cleanupModifierEffects(); + state.options = Object.assign({}, defaultOptions, state.options, options); + state.scrollParents = { + reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [], + popper: listScrollParents(popper) + }; // Orders the modifiers based on their dependencies and `phase` + // properties + + var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers + + state.orderedModifiers = orderedModifiers.filter(function (m) { + return m.enabled; + }); + runModifierEffects(); + return instance.update(); + }, + // Sync update – it will always be executed, even if not necessary. This + // is useful for low frequency updates where sync behavior simplifies the + // logic. + // For high frequency updates (e.g. `resize` and `scroll` events), always + // prefer the async Popper#update method + forceUpdate: function forceUpdate() { + if (isDestroyed) { + return; + } + + var _state$elements = state.elements, + reference = _state$elements.reference, + popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements + // anymore + + if (!areValidElements(reference, popper)) { + return; + } // Store the reference and popper rects to be read by modifiers + + + state.rects = { + reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'), + popper: getLayoutRect(popper) + }; // Modifiers have the ability to reset the current update cycle. The + // most common use case for this is the `flip` modifier changing the + // placement, which then needs to re-run all the modifiers, because the + // logic was previously ran for the previous placement and is therefore + // stale/incorrect + + state.reset = false; + state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier + // is filled with the initial data specified by the modifier. This means + // it doesn't persist and is fresh on each update. + // To ensure persistent data, use `${name}#persistent` + + state.orderedModifiers.forEach(function (modifier) { + return state.modifiersData[modifier.name] = Object.assign({}, modifier.data); + }); + + for (var index = 0; index < state.orderedModifiers.length; index++) { + if (state.reset === true) { + state.reset = false; + index = -1; + continue; + } + + var _state$orderedModifie = state.orderedModifiers[index], + fn = _state$orderedModifie.fn, + _state$orderedModifie2 = _state$orderedModifie.options, + _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, + name = _state$orderedModifie.name; + + if (typeof fn === 'function') { + state = fn({ + state: state, + options: _options, + name: name, + instance: instance + }) || state; + } + } + }, + // Async and optimistically optimized update – it will not be executed if + // not necessary (debounced to run at most once-per-tick) + update: debounce(function () { + return new Promise(function (resolve) { + instance.forceUpdate(); + resolve(state); + }); + }), + destroy: function destroy() { + cleanupModifierEffects(); + isDestroyed = true; + } + }; + + if (!areValidElements(reference, popper)) { + return instance; + } + + instance.setOptions(options).then(function (state) { + if (!isDestroyed && options.onFirstUpdate) { + options.onFirstUpdate(state); + } + }); // Modifiers have the ability to execute arbitrary code before the first + // update cycle runs. They will be executed in the same order as the update + // cycle. This is useful when a modifier adds some persistent data that + // other modifiers need to use, but the modifier is run after the dependent + // one. + + function runModifierEffects() { + state.orderedModifiers.forEach(function (_ref) { + var name = _ref.name, + _ref$options = _ref.options, + options = _ref$options === void 0 ? {} : _ref$options, + effect = _ref.effect; + + if (typeof effect === 'function') { + var cleanupFn = effect({ + state: state, + name: name, + instance: instance, + options: options + }); + + var noopFn = function noopFn() {}; + + effectCleanupFns.push(cleanupFn || noopFn); + } + }); + } + + function cleanupModifierEffects() { + effectCleanupFns.forEach(function (fn) { + return fn(); + }); + effectCleanupFns = []; + } + + return instance; + }; + } + + var passive = { + passive: true + }; + + function effect$1(_ref) { + var state = _ref.state, + instance = _ref.instance, + options = _ref.options; + var _options$scroll = options.scroll, + scroll = _options$scroll === void 0 ? true : _options$scroll, + _options$resize = options.resize, + resize = _options$resize === void 0 ? true : _options$resize; + var window = getWindow(state.elements.popper); + var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper); + + if (scroll) { + scrollParents.forEach(function (scrollParent) { + scrollParent.addEventListener('scroll', instance.update, passive); + }); + } + + if (resize) { + window.addEventListener('resize', instance.update, passive); + } + + return function () { + if (scroll) { + scrollParents.forEach(function (scrollParent) { + scrollParent.removeEventListener('scroll', instance.update, passive); + }); + } + + if (resize) { + window.removeEventListener('resize', instance.update, passive); + } + }; + } // eslint-disable-next-line import/no-unused-modules + + + var eventListeners = { + name: 'eventListeners', + enabled: true, + phase: 'write', + fn: function fn() {}, + effect: effect$1, + data: {} + }; + + function popperOffsets(_ref) { + var state = _ref.state, + name = _ref.name; + // Offsets are the actual position the popper needs to have to be + // properly positioned near its reference element + // This is the most basic placement, and will be adjusted by + // the modifiers in the next step + state.modifiersData[name] = computeOffsets({ + reference: state.rects.reference, + element: state.rects.popper, + strategy: 'absolute', + placement: state.placement + }); + } // eslint-disable-next-line import/no-unused-modules + + + var popperOffsets$1 = { + name: 'popperOffsets', + enabled: true, + phase: 'read', + fn: popperOffsets, + data: {} + }; + + var unsetSides = { + top: 'auto', + right: 'auto', + bottom: 'auto', + left: 'auto' + }; // Round the offsets to the nearest suitable subpixel based on the DPR. + // Zooming can change the DPR, but it seems to report a value that will + // cleanly divide the values into the appropriate subpixels. + + function roundOffsetsByDPR(_ref, win) { + var x = _ref.x, + y = _ref.y; + var dpr = win.devicePixelRatio || 1; + return { + x: round(x * dpr) / dpr || 0, + y: round(y * dpr) / dpr || 0 + }; + } + + function mapToStyles(_ref2) { + var _Object$assign2; + + var popper = _ref2.popper, + popperRect = _ref2.popperRect, + placement = _ref2.placement, + variation = _ref2.variation, + offsets = _ref2.offsets, + position = _ref2.position, + gpuAcceleration = _ref2.gpuAcceleration, + adaptive = _ref2.adaptive, + roundOffsets = _ref2.roundOffsets, + isFixed = _ref2.isFixed; + var _offsets$x = offsets.x, + x = _offsets$x === void 0 ? 0 : _offsets$x, + _offsets$y = offsets.y, + y = _offsets$y === void 0 ? 0 : _offsets$y; + + var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({ + x: x, + y: y + }) : { + x: x, + y: y + }; + + x = _ref3.x; + y = _ref3.y; + var hasX = offsets.hasOwnProperty('x'); + var hasY = offsets.hasOwnProperty('y'); + var sideX = left; + var sideY = top; + var win = window; + + if (adaptive) { + var offsetParent = getOffsetParent(popper); + var heightProp = 'clientHeight'; + var widthProp = 'clientWidth'; + + if (offsetParent === getWindow(popper)) { + offsetParent = getDocumentElement(popper); + + if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') { + heightProp = 'scrollHeight'; + widthProp = 'scrollWidth'; + } + } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it + + + offsetParent = offsetParent; + + if (placement === top || (placement === left || placement === right) && variation === end) { + sideY = bottom; + var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing] + offsetParent[heightProp]; + y -= offsetY - popperRect.height; + y *= gpuAcceleration ? 1 : -1; + } + + if (placement === left || (placement === top || placement === bottom) && variation === end) { + sideX = right; + var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing] + offsetParent[widthProp]; + x -= offsetX - popperRect.width; + x *= gpuAcceleration ? 1 : -1; + } + } + + var commonStyles = Object.assign({ + position: position + }, adaptive && unsetSides); + + var _ref4 = roundOffsets === true ? roundOffsetsByDPR({ + x: x, + y: y + }, getWindow(popper)) : { + x: x, + y: y + }; + + x = _ref4.x; + y = _ref4.y; + + if (gpuAcceleration) { + var _Object$assign; + + return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign)); + } + + return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2)); + } + + function computeStyles(_ref5) { + var state = _ref5.state, + options = _ref5.options; + var _options$gpuAccelerat = options.gpuAcceleration, + gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, + _options$adaptive = options.adaptive, + adaptive = _options$adaptive === void 0 ? true : _options$adaptive, + _options$roundOffsets = options.roundOffsets, + roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets; + var commonStyles = { + placement: getBasePlacement(state.placement), + variation: getVariation(state.placement), + popper: state.elements.popper, + popperRect: state.rects.popper, + gpuAcceleration: gpuAcceleration, + isFixed: state.options.strategy === 'fixed' + }; + + if (state.modifiersData.popperOffsets != null) { + state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.popperOffsets, + position: state.options.strategy, + adaptive: adaptive, + roundOffsets: roundOffsets + }))); + } + + if (state.modifiersData.arrow != null) { + state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.arrow, + position: 'absolute', + adaptive: false, + roundOffsets: roundOffsets + }))); + } + + state.attributes.popper = Object.assign({}, state.attributes.popper, { + 'data-popper-placement': state.placement + }); + } // eslint-disable-next-line import/no-unused-modules + + + var computeStyles$1 = { + name: 'computeStyles', + enabled: true, + phase: 'beforeWrite', + fn: computeStyles, + data: {} + }; + + // and applies them to the HTMLElements such as popper and arrow + + function applyStyles(_ref) { + var state = _ref.state; + Object.keys(state.elements).forEach(function (name) { + var style = state.styles[name] || {}; + var attributes = state.attributes[name] || {}; + var element = state.elements[name]; // arrow is optional + virtual elements + + if (!isHTMLElement(element) || !getNodeName(element)) { + return; + } // Flow doesn't support to extend this property, but it's the most + // effective way to apply styles to an HTMLElement + // $FlowFixMe[cannot-write] + + + Object.assign(element.style, style); + Object.keys(attributes).forEach(function (name) { + var value = attributes[name]; + + if (value === false) { + element.removeAttribute(name); + } else { + element.setAttribute(name, value === true ? '' : value); + } + }); + }); + } + + function effect(_ref2) { + var state = _ref2.state; + var initialStyles = { + popper: { + position: state.options.strategy, + left: '0', + top: '0', + margin: '0' + }, + arrow: { + position: 'absolute' + }, + reference: {} + }; + Object.assign(state.elements.popper.style, initialStyles.popper); + state.styles = initialStyles; + + if (state.elements.arrow) { + Object.assign(state.elements.arrow.style, initialStyles.arrow); + } + + return function () { + Object.keys(state.elements).forEach(function (name) { + var element = state.elements[name]; + var attributes = state.attributes[name] || {}; + var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them + + var style = styleProperties.reduce(function (style, property) { + style[property] = ''; + return style; + }, {}); // arrow is optional + virtual elements + + if (!isHTMLElement(element) || !getNodeName(element)) { + return; + } + + Object.assign(element.style, style); + Object.keys(attributes).forEach(function (attribute) { + element.removeAttribute(attribute); + }); + }); + }; + } // eslint-disable-next-line import/no-unused-modules + + + var applyStyles$1 = { + name: 'applyStyles', + enabled: true, + phase: 'write', + fn: applyStyles, + effect: effect, + requires: ['computeStyles'] + }; + + var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1]; + var createPopper = /*#__PURE__*/popperGenerator({ + defaultModifiers: defaultModifiers + }); // eslint-disable-next-line import/no-unused-modules + + exports.createPopper = createPopper; + exports.defaultModifiers = defaultModifiers; + exports.detectOverflow = detectOverflow; + exports.popperGenerator = popperGenerator; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); +//# sourceMappingURL=popper-lite.js.map diff --git a/static/javascripts/popperjs/popper-lite.js.map b/static/javascripts/popperjs/popper-lite.js.map new file mode 100644 index 000000000..c0dc83084 --- /dev/null +++ b/static/javascripts/popperjs/popper-lite.js.map @@ -0,0 +1 @@ +{"version":3,"file":"popper-lite.js","sources":["../../src/dom-utils/getWindow.js","../../src/dom-utils/instanceOf.js","../../src/utils/math.js","../../src/utils/userAgent.js","../../src/dom-utils/isLayoutViewport.js","../../src/dom-utils/getBoundingClientRect.js","../../src/dom-utils/getWindowScroll.js","../../src/dom-utils/getHTMLElementScroll.js","../../src/dom-utils/getNodeScroll.js","../../src/dom-utils/getNodeName.js","../../src/dom-utils/getDocumentElement.js","../../src/dom-utils/getWindowScrollBarX.js","../../src/dom-utils/getComputedStyle.js","../../src/dom-utils/isScrollParent.js","../../src/dom-utils/getCompositeRect.js","../../src/dom-utils/getLayoutRect.js","../../src/dom-utils/getParentNode.js","../../src/dom-utils/getScrollParent.js","../../src/dom-utils/listScrollParents.js","../../src/dom-utils/isTableElement.js","../../src/dom-utils/getOffsetParent.js","../../src/enums.js","../../src/utils/orderModifiers.js","../../src/utils/debounce.js","../../src/utils/mergeByName.js","../../src/dom-utils/getViewportRect.js","../../src/dom-utils/getDocumentRect.js","../../src/dom-utils/contains.js","../../src/utils/rectToClientRect.js","../../src/dom-utils/getClippingRect.js","../../src/utils/getBasePlacement.js","../../src/utils/getVariation.js","../../src/utils/getMainAxisFromPlacement.js","../../src/utils/computeOffsets.js","../../src/utils/getFreshSideObject.js","../../src/utils/mergePaddingObject.js","../../src/utils/expandToHashMap.js","../../src/utils/detectOverflow.js","../../src/createPopper.js","../../src/modifiers/eventListeners.js","../../src/modifiers/popperOffsets.js","../../src/modifiers/computeStyles.js","../../src/modifiers/applyStyles.js","../../src/popper-lite.js"],"sourcesContent":["// @flow\nimport type { Window } from '../types';\ndeclare function getWindow(node: Node | Window): Window;\n\nexport default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n const ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n","// @flow\nimport getWindow from './getWindow';\n\ndeclare function isElement(node: mixed): boolean %checks(node instanceof\n Element);\nfunction isElement(node) {\n const OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\ndeclare function isHTMLElement(node: mixed): boolean %checks(node instanceof\n HTMLElement);\nfunction isHTMLElement(node) {\n const OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\ndeclare function isShadowRoot(node: mixed): boolean %checks(node instanceof\n ShadowRoot);\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };\n","// @flow\nexport const max = Math.max;\nexport const min = Math.min;\nexport const round = Math.round;\n","// @flow\ntype Navigator = Navigator & { userAgentData?: NavigatorUAData };\n\ninterface NavigatorUAData {\n brands: Array<{ brand: string, version: string }>;\n mobile: boolean;\n platform: string;\n}\n\nexport default function getUAString(): string {\n const uaData = (navigator: Navigator).userAgentData;\n\n if (uaData?.brands && Array.isArray(uaData.brands)) {\n return uaData.brands\n .map((item) => `${item.brand}/${item.version}`)\n .join(' ');\n }\n\n return navigator.userAgent;\n}\n","// @flow\nimport getUAString from '../utils/userAgent';\n\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}\n","// @flow\nimport type { ClientRectObject, VirtualElement } from '../types';\nimport { isElement, isHTMLElement } from './instanceOf';\nimport { round } from '../utils/math';\nimport getWindow from './getWindow';\nimport isLayoutViewport from './isLayoutViewport';\n\nexport default function getBoundingClientRect(\n element: Element | VirtualElement,\n includeScale: boolean = false,\n isFixedStrategy: boolean = false\n): ClientRectObject {\n const clientRect = element.getBoundingClientRect();\n let scaleX = 1;\n let scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX =\n (element: HTMLElement).offsetWidth > 0\n ? round(clientRect.width) / (element: HTMLElement).offsetWidth || 1\n : 1;\n scaleY =\n (element: HTMLElement).offsetHeight > 0\n ? round(clientRect.height) / (element: HTMLElement).offsetHeight || 1\n : 1;\n }\n\n const { visualViewport } = isElement(element) ? getWindow(element) : window;\n const addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n\n const x =\n (clientRect.left +\n (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) /\n scaleX;\n const y =\n (clientRect.top +\n (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) /\n scaleY;\n const width = clientRect.width / scaleX;\n const height = clientRect.height / scaleY;\n\n return {\n width,\n height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x,\n y,\n };\n}\n","// @flow\nimport getWindow from './getWindow';\nimport type { Window } from '../types';\n\nexport default function getWindowScroll(node: Node | Window) {\n const win = getWindow(node);\n const scrollLeft = win.pageXOffset;\n const scrollTop = win.pageYOffset;\n\n return {\n scrollLeft,\n scrollTop,\n };\n}\n","// @flow\n\nexport default function getHTMLElementScroll(element: HTMLElement) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop,\n };\n}\n","// @flow\nimport getWindowScroll from './getWindowScroll';\nimport getWindow from './getWindow';\nimport { isHTMLElement } from './instanceOf';\nimport getHTMLElementScroll from './getHTMLElementScroll';\nimport type { Window } from '../types';\n\nexport default function getNodeScroll(node: Node | Window) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}\n","// @flow\nimport type { Window } from '../types';\n\nexport default function getNodeName(element: ?Node | Window): ?string {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}\n","// @flow\nimport { isElement } from './instanceOf';\nimport type { Window } from '../types';\n\nexport default function getDocumentElement(\n element: Element | Window\n): HTMLElement {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return (\n (isElement(element)\n ? element.ownerDocument\n : // $FlowFixMe[prop-missing]\n element.document) || window.document\n ).documentElement;\n}\n","// @flow\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScroll from './getWindowScroll';\n\nexport default function getWindowScrollBarX(element: Element): number {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return (\n getBoundingClientRect(getDocumentElement(element)).left +\n getWindowScroll(element).scrollLeft\n );\n}\n","// @flow\nimport getWindow from './getWindow';\n\nexport default function getComputedStyle(\n element: Element\n): CSSStyleDeclaration {\n return getWindow(element).getComputedStyle(element);\n}\n","// @flow\nimport getComputedStyle from './getComputedStyle';\n\nexport default function isScrollParent(element: HTMLElement): boolean {\n // Firefox wants us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\n","// @flow\nimport type { Rect, VirtualElement, Window } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getNodeScroll from './getNodeScroll';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getDocumentElement from './getDocumentElement';\nimport isScrollParent from './isScrollParent';\nimport { round } from '../utils/math';\n\nfunction isElementScaled(element: HTMLElement) {\n const rect = element.getBoundingClientRect();\n const scaleX = round(rect.width) / element.offsetWidth || 1;\n const scaleY = round(rect.height) / element.offsetHeight || 1;\n\n return scaleX !== 1 || scaleY !== 1;\n}\n\n// Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\nexport default function getCompositeRect(\n elementOrVirtualElement: Element | VirtualElement,\n offsetParent: Element | Window,\n isFixed: boolean = false\n): Rect {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const offsetParentIsScaled =\n isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(\n elementOrVirtualElement,\n offsetParentIsScaled,\n isFixed\n );\n\n let scroll = { scrollLeft: 0, scrollTop: 0 };\n let offsets = { x: 0, y: 0 };\n\n if (isOffsetParentAnElement || (!isOffsetParentAnElement && !isFixed)) {\n if (\n getNodeName(offsetParent) !== 'body' ||\n // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)\n ) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height,\n };\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\n\n// Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\nexport default function getLayoutRect(element: HTMLElement): Rect {\n const clientRect = getBoundingClientRect(element);\n\n // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width,\n height,\n };\n}\n","// @flow\nimport getNodeName from './getNodeName';\nimport getDocumentElement from './getDocumentElement';\nimport { isShadowRoot } from './instanceOf';\n\nexport default function getParentNode(element: Node | ShadowRoot): Node {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (\n // this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || // DOM Element detected\n (isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n );\n}\n","// @flow\nimport getParentNode from './getParentNode';\nimport isScrollParent from './isScrollParent';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\n\nexport default function getScrollParent(node: Node): HTMLElement {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}\n","// @flow\nimport getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getWindow from './getWindow';\nimport type { Window, VisualViewport } from '../types';\nimport isScrollParent from './isScrollParent';\n\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\nexport default function listScrollParents(\n element: Node,\n list: Array<Element | Window> = []\n): Array<Element | Window | VisualViewport> {\n const scrollParent = getScrollParent(element);\n const isBody = scrollParent === element.ownerDocument?.body;\n const win = getWindow(scrollParent);\n const target = isBody\n ? [win].concat(\n win.visualViewport || [],\n isScrollParent(scrollParent) ? scrollParent : []\n )\n : scrollParent;\n const updatedList = list.concat(target);\n\n return isBody\n ? updatedList\n : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}\n","// @flow\nimport getNodeName from './getNodeName';\n\nexport default function isTableElement(element: Element): boolean {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getNodeName from './getNodeName';\nimport getComputedStyle from './getComputedStyle';\nimport { isHTMLElement, isShadowRoot } from './instanceOf';\nimport isTableElement from './isTableElement';\nimport getParentNode from './getParentNode';\nimport getUAString from '../utils/userAgent';\n\nfunction getTrueOffsetParent(element: Element): ?Element {\n if (\n !isHTMLElement(element) ||\n // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed'\n ) {\n return null;\n }\n\n return element.offsetParent;\n}\n\n// `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\nfunction getContainingBlock(element: Element) {\n const isFirefox = /firefox/i.test(getUAString());\n const isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n const elementCss = getComputedStyle(element);\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n let currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (\n isHTMLElement(currentNode) &&\n ['html', 'body'].indexOf(getNodeName(currentNode)) < 0\n ) {\n const css = getComputedStyle(currentNode);\n\n // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n if (\n css.transform !== 'none' ||\n css.perspective !== 'none' ||\n css.contain === 'paint' ||\n ['transform', 'perspective'].indexOf(css.willChange) !== -1 ||\n (isFirefox && css.willChange === 'filter') ||\n (isFirefox && css.filter && css.filter !== 'none')\n ) {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nexport default function getOffsetParent(element: Element) {\n const window = getWindow(element);\n\n let offsetParent = getTrueOffsetParent(element);\n\n while (\n offsetParent &&\n isTableElement(offsetParent) &&\n getComputedStyle(offsetParent).position === 'static'\n ) {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (\n offsetParent &&\n (getNodeName(offsetParent) === 'html' ||\n (getNodeName(offsetParent) === 'body' &&\n getComputedStyle(offsetParent).position === 'static'))\n ) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n","// @flow\nexport const top: 'top' = 'top';\nexport const bottom: 'bottom' = 'bottom';\nexport const right: 'right' = 'right';\nexport const left: 'left' = 'left';\nexport const auto: 'auto' = 'auto';\nexport type BasePlacement =\n | typeof top\n | typeof bottom\n | typeof right\n | typeof left;\nexport const basePlacements: Array<BasePlacement> = [top, bottom, right, left];\n\nexport const start: 'start' = 'start';\nexport const end: 'end' = 'end';\nexport type Variation = typeof start | typeof end;\n\nexport const clippingParents: 'clippingParents' = 'clippingParents';\nexport const viewport: 'viewport' = 'viewport';\nexport type Boundary = Element | Array<Element> | typeof clippingParents;\nexport type RootBoundary = typeof viewport | 'document';\n\nexport const popper: 'popper' = 'popper';\nexport const reference: 'reference' = 'reference';\nexport type Context = typeof popper | typeof reference;\n\nexport type VariationPlacement =\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end';\nexport type AutoPlacement = 'auto' | 'auto-start' | 'auto-end';\nexport type ComputedPlacement = VariationPlacement | BasePlacement;\nexport type Placement = AutoPlacement | BasePlacement | VariationPlacement;\n\nexport const variationPlacements: Array<VariationPlacement> = basePlacements.reduce(\n (acc: Array<VariationPlacement>, placement: BasePlacement) =>\n acc.concat([(`${placement}-${start}`: any), (`${placement}-${end}`: any)]),\n []\n);\nexport const placements: Array<Placement> = [...basePlacements, auto].reduce(\n (\n acc: Array<Placement>,\n placement: BasePlacement | typeof auto\n ): Array<Placement> =>\n acc.concat([\n placement,\n (`${placement}-${start}`: any),\n (`${placement}-${end}`: any),\n ]),\n []\n);\n\n// modifiers that need to read the DOM\nexport const beforeRead: 'beforeRead' = 'beforeRead';\nexport const read: 'read' = 'read';\nexport const afterRead: 'afterRead' = 'afterRead';\n// pure-logic modifiers\nexport const beforeMain: 'beforeMain' = 'beforeMain';\nexport const main: 'main' = 'main';\nexport const afterMain: 'afterMain' = 'afterMain';\n// modifier with the purpose to write to the DOM (or write into a framework state)\nexport const beforeWrite: 'beforeWrite' = 'beforeWrite';\nexport const write: 'write' = 'write';\nexport const afterWrite: 'afterWrite' = 'afterWrite';\nexport const modifierPhases: Array<ModifierPhases> = [\n beforeRead,\n read,\n afterRead,\n beforeMain,\n main,\n afterMain,\n beforeWrite,\n write,\n afterWrite,\n];\n\nexport type ModifierPhases =\n | typeof beforeRead\n | typeof read\n | typeof afterRead\n | typeof beforeMain\n | typeof main\n | typeof afterMain\n | typeof beforeWrite\n | typeof write\n | typeof afterWrite;\n","// @flow\nimport type { Modifier } from '../types';\nimport { modifierPhases } from '../enums';\n\n// source: https://stackoverflow.com/questions/49875255\nfunction order(modifiers) {\n const map = new Map();\n const visited = new Set();\n const result = [];\n\n modifiers.forEach(modifier => {\n map.set(modifier.name, modifier);\n });\n\n // On visiting object, check for its dependencies and visit them recursively\n function sort(modifier: Modifier<any, any>) {\n visited.add(modifier.name);\n\n const requires = [\n ...(modifier.requires || []),\n ...(modifier.requiresIfExists || []),\n ];\n\n requires.forEach(dep => {\n if (!visited.has(dep)) {\n const depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n\n result.push(modifier);\n }\n\n modifiers.forEach(modifier => {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n\n return result;\n}\n\nexport default function orderModifiers(\n modifiers: Array<Modifier<any, any>>\n): Array<Modifier<any, any>> {\n // order based on dependencies\n const orderedModifiers = order(modifiers);\n\n // order based on phase\n return modifierPhases.reduce((acc, phase) => {\n return acc.concat(\n orderedModifiers.filter(modifier => modifier.phase === phase)\n );\n }, []);\n}\n","// @flow\n\nexport default function debounce<T>(fn: Function): () => Promise<T> {\n let pending;\n return () => {\n if (!pending) {\n pending = new Promise<T>(resolve => {\n Promise.resolve().then(() => {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}\n","// @flow\nimport type { Modifier } from '../types';\n\nexport default function mergeByName(\n modifiers: Array<$Shape<Modifier<any, any>>>\n): Array<$Shape<Modifier<any, any>>> {\n const merged = modifiers.reduce((merged, current) => {\n const existing = merged[current.name];\n merged[current.name] = existing\n ? {\n ...existing,\n ...current,\n options: { ...existing.options, ...current.options },\n data: { ...existing.data, ...current.data },\n }\n : current;\n return merged;\n }, {});\n\n // IE11 does not support Object.values\n return Object.keys(merged).map(key => merged[key]);\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport isLayoutViewport from './isLayoutViewport';\nimport type { PositioningStrategy } from '../types';\n\nexport default function getViewportRect(\n element: Element,\n strategy: PositioningStrategy\n) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n\n const layoutViewport = isLayoutViewport();\n\n if (layoutViewport || (!layoutViewport && strategy === 'fixed')) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width,\n height,\n x: x + getWindowScrollBarX(element),\n y,\n };\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getWindowScroll from './getWindowScroll';\nimport { max } from '../utils/math';\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\nexport default function getDocumentRect(element: HTMLElement): Rect {\n const html = getDocumentElement(element);\n const winScroll = getWindowScroll(element);\n const body = element.ownerDocument?.body;\n\n const width = max(\n html.scrollWidth,\n html.clientWidth,\n body ? body.scrollWidth : 0,\n body ? body.clientWidth : 0\n );\n const height = max(\n html.scrollHeight,\n html.clientHeight,\n body ? body.scrollHeight : 0,\n body ? body.clientHeight : 0\n );\n\n let x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n const y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return { width, height, x, y };\n}\n","// @flow\nimport { isShadowRoot } from './instanceOf';\n\nexport default function contains(parent: Element, child: Element) {\n const rootNode = child.getRootNode && child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n }\n // $FlowFixMe[prop-missing]: need a better way to handle this...\n next = next.parentNode || next.host;\n } while (next);\n }\n\n // Give up, the result is false\n return false;\n}\n","// @flow\nimport type { Rect, ClientRectObject } from '../types';\n\nexport default function rectToClientRect(rect: Rect): ClientRectObject {\n return {\n ...rect,\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height,\n };\n}\n","// @flow\nimport type { ClientRectObject, PositioningStrategy } from '../types';\nimport type { Boundary, RootBoundary } from '../enums';\nimport { viewport } from '../enums';\nimport getViewportRect from './getViewportRect';\nimport getDocumentRect from './getDocumentRect';\nimport listScrollParents from './listScrollParents';\nimport getOffsetParent from './getOffsetParent';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport { isElement, isHTMLElement } from './instanceOf';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getParentNode from './getParentNode';\nimport contains from './contains';\nimport getNodeName from './getNodeName';\nimport rectToClientRect from '../utils/rectToClientRect';\nimport { max, min } from '../utils/math';\n\nfunction getInnerBoundingClientRect(\n element: Element,\n strategy: PositioningStrategy\n) {\n const rect = getBoundingClientRect(element, false, strategy === 'fixed');\n\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n\n return rect;\n}\n\nfunction getClientRectFromMixedType(\n element: Element,\n clippingParent: Element | RootBoundary,\n strategy: PositioningStrategy\n): ClientRectObject {\n return clippingParent === viewport\n ? rectToClientRect(getViewportRect(element, strategy))\n : isElement(clippingParent)\n ? getInnerBoundingClientRect(clippingParent, strategy)\n : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n}\n\n// A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\nfunction getClippingParents(element: Element): Array<Element> {\n const clippingParents = listScrollParents(getParentNode(element));\n const canEscapeClipping =\n ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n const clipperElement =\n canEscapeClipping && isHTMLElement(element)\n ? getOffsetParent(element)\n : element;\n\n if (!isElement(clipperElement)) {\n return [];\n }\n\n // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n return clippingParents.filter(\n (clippingParent) =>\n isElement(clippingParent) &&\n contains(clippingParent, clipperElement) &&\n getNodeName(clippingParent) !== 'body'\n );\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping parents\nexport default function getClippingRect(\n element: Element,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n strategy: PositioningStrategy\n): ClientRectObject {\n const mainClippingParents =\n boundary === 'clippingParents'\n ? getClippingParents(element)\n : [].concat(boundary);\n const clippingParents = [...mainClippingParents, rootBoundary];\n const firstClippingParent = clippingParents[0];\n\n const clippingRect = clippingParents.reduce((accRect, clippingParent) => {\n const rect = getClientRectFromMixedType(element, clippingParent, strategy);\n\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n\n return clippingRect;\n}\n","// @flow\nimport { type BasePlacement, type Placement, auto } from '../enums';\n\nexport default function getBasePlacement(\n placement: Placement | typeof auto\n): BasePlacement {\n return (placement.split('-')[0]: any);\n}\n","// @flow\nimport { type Variation, type Placement } from '../enums';\n\nexport default function getVariation(placement: Placement): ?Variation {\n return (placement.split('-')[1]: any);\n}\n","// @flow\nimport type { Placement } from '../enums';\n\nexport default function getMainAxisFromPlacement(\n placement: Placement\n): 'x' | 'y' {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}\n","// @flow\nimport getBasePlacement from './getBasePlacement';\nimport getVariation from './getVariation';\nimport getMainAxisFromPlacement from './getMainAxisFromPlacement';\nimport type {\n Rect,\n PositioningStrategy,\n Offsets,\n ClientRectObject,\n} from '../types';\nimport { top, right, bottom, left, start, end, type Placement } from '../enums';\n\nexport default function computeOffsets({\n reference,\n element,\n placement,\n}: {\n reference: Rect | ClientRectObject,\n element: Rect | ClientRectObject,\n strategy: PositioningStrategy,\n placement?: Placement,\n}): Offsets {\n const basePlacement = placement ? getBasePlacement(placement) : null;\n const variation = placement ? getVariation(placement) : null;\n const commonX = reference.x + reference.width / 2 - element.width / 2;\n const commonY = reference.y + reference.height / 2 - element.height / 2;\n\n let offsets;\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height,\n };\n break;\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height,\n };\n break;\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY,\n };\n break;\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY,\n };\n break;\n default:\n offsets = {\n x: reference.x,\n y: reference.y,\n };\n }\n\n const mainAxis = basePlacement\n ? getMainAxisFromPlacement(basePlacement)\n : null;\n\n if (mainAxis != null) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] =\n offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n case end:\n offsets[mainAxis] =\n offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n default:\n }\n }\n\n return offsets;\n}\n","// @flow\nimport type { SideObject } from '../types';\n\nexport default function getFreshSideObject(): SideObject {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n };\n}\n","// @flow\nimport type { SideObject } from '../types';\nimport getFreshSideObject from './getFreshSideObject';\n\nexport default function mergePaddingObject(\n paddingObject: $Shape<SideObject>\n): SideObject {\n return {\n ...getFreshSideObject(),\n ...paddingObject,\n };\n}\n","// @flow\n\nexport default function expandToHashMap<\n T: number | string | boolean,\n K: string\n>(value: T, keys: Array<K>): { [key: string]: T } {\n return keys.reduce((hashMap, key) => {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}\n","// @flow\nimport type { State, SideObject, Padding, PositioningStrategy } from '../types';\nimport type { Placement, Boundary, RootBoundary, Context } from '../enums';\nimport getClippingRect from '../dom-utils/getClippingRect';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport getBoundingClientRect from '../dom-utils/getBoundingClientRect';\nimport computeOffsets from './computeOffsets';\nimport rectToClientRect from './rectToClientRect';\nimport {\n clippingParents,\n reference,\n popper,\n bottom,\n top,\n right,\n basePlacements,\n viewport,\n} from '../enums';\nimport { isElement } from '../dom-utils/instanceOf';\nimport mergePaddingObject from './mergePaddingObject';\nimport expandToHashMap from './expandToHashMap';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n placement: Placement,\n strategy: PositioningStrategy,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n elementContext: Context,\n altBoundary: boolean,\n padding: Padding,\n};\n\nexport default function detectOverflow(\n state: State,\n options: $Shape<Options> = {}\n): SideObject {\n const {\n placement = state.placement,\n strategy = state.strategy,\n boundary = clippingParents,\n rootBoundary = viewport,\n elementContext = popper,\n altBoundary = false,\n padding = 0,\n } = options;\n\n const paddingObject = mergePaddingObject(\n typeof padding !== 'number'\n ? padding\n : expandToHashMap(padding, basePlacements)\n );\n\n const altContext = elementContext === popper ? reference : popper;\n\n const popperRect = state.rects.popper;\n const element = state.elements[altBoundary ? altContext : elementContext];\n\n const clippingClientRect = getClippingRect(\n isElement(element)\n ? element\n : element.contextElement || getDocumentElement(state.elements.popper),\n boundary,\n rootBoundary,\n strategy\n );\n\n const referenceClientRect = getBoundingClientRect(state.elements.reference);\n\n const popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement,\n });\n\n const popperClientRect = rectToClientRect({\n ...popperRect,\n ...popperOffsets,\n });\n\n const elementClientRect =\n elementContext === popper ? popperClientRect : referenceClientRect;\n\n // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n const overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom:\n elementClientRect.bottom -\n clippingClientRect.bottom +\n paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right:\n elementClientRect.right - clippingClientRect.right + paddingObject.right,\n };\n\n const offsetData = state.modifiersData.offset;\n\n // Offsets can be applied only to the popper element\n if (elementContext === popper && offsetData) {\n const offset = offsetData[placement];\n\n Object.keys(overflowOffsets).forEach((key) => {\n const multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n const axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}\n","// @flow\nimport type {\n State,\n OptionsGeneric,\n Modifier,\n Instance,\n VirtualElement,\n} from './types';\nimport getCompositeRect from './dom-utils/getCompositeRect';\nimport getLayoutRect from './dom-utils/getLayoutRect';\nimport listScrollParents from './dom-utils/listScrollParents';\nimport getOffsetParent from './dom-utils/getOffsetParent';\nimport orderModifiers from './utils/orderModifiers';\nimport debounce from './utils/debounce';\nimport mergeByName from './utils/mergeByName';\nimport detectOverflow from './utils/detectOverflow';\nimport { isElement } from './dom-utils/instanceOf';\n\nconst DEFAULT_OPTIONS: OptionsGeneric<any> = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute',\n};\n\ntype PopperGeneratorArgs = {\n defaultModifiers?: Array<Modifier<any, any>>,\n defaultOptions?: $Shape<OptionsGeneric<any>>,\n};\n\nfunction areValidElements(...args: Array<any>): boolean {\n return !args.some(\n (element) =>\n !(element && typeof element.getBoundingClientRect === 'function')\n );\n}\n\nexport function popperGenerator(generatorOptions: PopperGeneratorArgs = {}) {\n const { defaultModifiers = [], defaultOptions = DEFAULT_OPTIONS } =\n generatorOptions;\n\n return function createPopper<TModifier: $Shape<Modifier<any, any>>>(\n reference: Element | VirtualElement,\n popper: HTMLElement,\n options: $Shape<OptionsGeneric<TModifier>> = defaultOptions\n ): Instance {\n let state: $Shape<State> = {\n placement: 'bottom',\n orderedModifiers: [],\n options: { ...DEFAULT_OPTIONS, ...defaultOptions },\n modifiersData: {},\n elements: {\n reference,\n popper,\n },\n attributes: {},\n styles: {},\n };\n\n let effectCleanupFns: Array<() => void> = [];\n let isDestroyed = false;\n\n const instance = {\n state,\n setOptions(setOptionsAction) {\n const options =\n typeof setOptionsAction === 'function'\n ? setOptionsAction(state.options)\n : setOptionsAction;\n\n cleanupModifierEffects();\n\n state.options = {\n // $FlowFixMe[exponential-spread]\n ...defaultOptions,\n ...state.options,\n ...options,\n };\n\n state.scrollParents = {\n reference: isElement(reference)\n ? listScrollParents(reference)\n : reference.contextElement\n ? listScrollParents(reference.contextElement)\n : [],\n popper: listScrollParents(popper),\n };\n\n // Orders the modifiers based on their dependencies and `phase`\n // properties\n const orderedModifiers = orderModifiers(\n mergeByName([...defaultModifiers, ...state.options.modifiers])\n );\n\n // Strip out disabled modifiers\n state.orderedModifiers = orderedModifiers.filter((m) => m.enabled);\n\n runModifierEffects();\n\n return instance.update();\n },\n\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n const { reference, popper } = state.elements;\n\n // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n if (!areValidElements(reference, popper)) {\n return;\n }\n\n // Store the reference and popper rects to be read by modifiers\n state.rects = {\n reference: getCompositeRect(\n reference,\n getOffsetParent(popper),\n state.options.strategy === 'fixed'\n ),\n popper: getLayoutRect(popper),\n };\n\n // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n state.reset = false;\n\n state.placement = state.options.placement;\n\n // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n state.orderedModifiers.forEach(\n (modifier) =>\n (state.modifiersData[modifier.name] = {\n ...modifier.data,\n })\n );\n\n for (let index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n const { fn, options = {}, name } = state.orderedModifiers[index];\n\n if (typeof fn === 'function') {\n state = fn({ state, options, name, instance }) || state;\n }\n }\n },\n\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce<$Shape<State>>(\n () =>\n new Promise<$Shape<State>>((resolve) => {\n instance.forceUpdate();\n resolve(state);\n })\n ),\n\n destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n },\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then((state) => {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n });\n\n // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n function runModifierEffects() {\n state.orderedModifiers.forEach(({ name, options = {}, effect }) => {\n if (typeof effect === 'function') {\n const cleanupFn = effect({ state, name, instance, options });\n const noopFn = () => {};\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach((fn) => fn());\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\n\nexport const createPopper = popperGenerator();\n\n// eslint-disable-next-line import/no-unused-modules\nexport { detectOverflow };\n","// @flow\nimport type { ModifierArguments, Modifier } from '../types';\nimport getWindow from '../dom-utils/getWindow';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n scroll: boolean,\n resize: boolean,\n};\n\nconst passive = { passive: true };\n\nfunction effect({ state, instance, options }: ModifierArguments<Options>) {\n const { scroll = true, resize = true } = options;\n\n const window = getWindow(state.elements.popper);\n const scrollParents = [\n ...state.scrollParents.reference,\n ...state.scrollParents.popper,\n ];\n\n if (scroll) {\n scrollParents.forEach(scrollParent => {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return () => {\n if (scroll) {\n scrollParents.forEach(scrollParent => {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type EventListenersModifier = Modifier<'eventListeners', Options>;\nexport default ({\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: () => {},\n effect,\n data: {},\n}: EventListenersModifier);\n","// @flow\nimport type { ModifierArguments, Modifier } from '../types';\nimport computeOffsets from '../utils/computeOffsets';\n\nfunction popperOffsets({ state, name }: ModifierArguments<{||}>) {\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement,\n });\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type PopperOffsetsModifier = Modifier<'popperOffsets', {||}>;\nexport default ({\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {},\n}: PopperOffsetsModifier);\n","// @flow\nimport type {\n PositioningStrategy,\n Offsets,\n Modifier,\n ModifierArguments,\n Rect,\n Window,\n} from '../types';\nimport {\n type BasePlacement,\n type Variation,\n top,\n left,\n right,\n bottom,\n end,\n} from '../enums';\nimport getOffsetParent from '../dom-utils/getOffsetParent';\nimport getWindow from '../dom-utils/getWindow';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport getComputedStyle from '../dom-utils/getComputedStyle';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getVariation from '../utils/getVariation';\nimport { round } from '../utils/math';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type RoundOffsets = (\n offsets: $Shape<{ x: number, y: number, centerOffset: number }>\n) => Offsets;\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n gpuAcceleration: boolean,\n adaptive: boolean,\n roundOffsets?: boolean | RoundOffsets,\n};\n\nconst unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto',\n};\n\n// Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\nfunction roundOffsetsByDPR({ x, y }, win: Window): Offsets {\n const dpr = win.devicePixelRatio || 1;\n\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0,\n };\n}\n\nexport function mapToStyles({\n popper,\n popperRect,\n placement,\n variation,\n offsets,\n position,\n gpuAcceleration,\n adaptive,\n roundOffsets,\n isFixed,\n}: {\n popper: HTMLElement,\n popperRect: Rect,\n placement: BasePlacement,\n variation: ?Variation,\n offsets: $Shape<{ x: number, y: number, centerOffset: number }>,\n position: PositioningStrategy,\n gpuAcceleration: boolean,\n adaptive: boolean,\n roundOffsets: boolean | RoundOffsets,\n isFixed: boolean,\n}) {\n let { x = 0, y = 0 } = offsets;\n\n ({ x, y } =\n typeof roundOffsets === 'function' ? roundOffsets({ x, y }) : { x, y });\n\n const hasX = offsets.hasOwnProperty('x');\n const hasY = offsets.hasOwnProperty('y');\n\n let sideX: string = left;\n let sideY: string = top;\n\n const win: Window = window;\n\n if (adaptive) {\n let offsetParent = getOffsetParent(popper);\n let heightProp = 'clientHeight';\n let widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (\n getComputedStyle(offsetParent).position !== 'static' &&\n position === 'absolute'\n ) {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n }\n\n // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n offsetParent = (offsetParent: Element);\n\n if (\n placement === top ||\n ((placement === left || placement === right) && variation === end)\n ) {\n sideY = bottom;\n const offsetY =\n isFixed && offsetParent === win && win.visualViewport\n ? win.visualViewport.height\n : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (\n placement === left ||\n ((placement === top || placement === bottom) && variation === end)\n ) {\n sideX = right;\n const offsetX =\n isFixed && offsetParent === win && win.visualViewport\n ? win.visualViewport.width\n : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n const commonStyles = {\n position,\n ...(adaptive && unsetSides),\n };\n\n ({ x, y } =\n roundOffsets === true\n ? roundOffsetsByDPR({ x, y }, getWindow(popper))\n : { x, y });\n\n if (gpuAcceleration) {\n return {\n ...commonStyles,\n [sideY]: hasY ? '0' : '',\n [sideX]: hasX ? '0' : '',\n // Layer acceleration can disable subpixel rendering which causes slightly\n // blurry text on low PPI displays, so we want to use 2D transforms\n // instead\n transform:\n (win.devicePixelRatio || 1) <= 1\n ? `translate(${x}px, ${y}px)`\n : `translate3d(${x}px, ${y}px, 0)`,\n };\n }\n\n return {\n ...commonStyles,\n [sideY]: hasY ? `${y}px` : '',\n [sideX]: hasX ? `${x}px` : '',\n transform: '',\n };\n}\n\nfunction computeStyles({ state, options }: ModifierArguments<Options>) {\n const {\n gpuAcceleration = true,\n adaptive = true,\n // defaults to use builtin `roundOffsetsByDPR`\n roundOffsets = true,\n } = options;\n\n const commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration,\n isFixed: state.options.strategy === 'fixed',\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = {\n ...state.styles.popper,\n ...mapToStyles({\n ...commonStyles,\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive,\n roundOffsets,\n }),\n };\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = {\n ...state.styles.arrow,\n ...mapToStyles({\n ...commonStyles,\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets,\n }),\n };\n }\n\n state.attributes.popper = {\n ...state.attributes.popper,\n 'data-popper-placement': state.placement,\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type ComputeStylesModifier = Modifier<'computeStyles', Options>;\nexport default ({\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {},\n}: ComputeStylesModifier);\n","// @flow\nimport type { Modifier, ModifierArguments } from '../types';\nimport getNodeName from '../dom-utils/getNodeName';\nimport { isHTMLElement } from '../dom-utils/instanceOf';\n\n// This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles({ state }: ModifierArguments<{||}>) {\n Object.keys(state.elements).forEach((name) => {\n const style = state.styles[name] || {};\n\n const attributes = state.attributes[name] || {};\n const element = state.elements[name];\n\n // arrow is optional + virtual elements\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n Object.assign(element.style, style);\n\n Object.keys(attributes).forEach((name) => {\n const value = attributes[name];\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect({ state }: ModifierArguments<{||}>) {\n const initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0',\n },\n arrow: {\n position: 'absolute',\n },\n reference: {},\n };\n\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return () => {\n Object.keys(state.elements).forEach((name) => {\n const element = state.elements[name];\n const attributes = state.attributes[name] || {};\n\n const styleProperties = Object.keys(\n state.styles.hasOwnProperty(name)\n ? state.styles[name]\n : initialStyles[name]\n );\n\n // Set all values to an empty string to unset them\n const style = styleProperties.reduce((style, property) => {\n style[property] = '';\n return style;\n }, {});\n\n // arrow is optional + virtual elements\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n\n Object.keys(attributes).forEach((attribute) => {\n element.removeAttribute(attribute);\n });\n });\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type ApplyStylesModifier = Modifier<'applyStyles', {||}>;\nexport default ({\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect,\n requires: ['computeStyles'],\n}: ApplyStylesModifier);\n","// @flow\nimport { popperGenerator, detectOverflow } from './createPopper';\n\nimport eventListeners from './modifiers/eventListeners';\nimport popperOffsets from './modifiers/popperOffsets';\nimport computeStyles from './modifiers/computeStyles';\nimport applyStyles from './modifiers/applyStyles';\n\nexport type * from './types';\n\nconst defaultModifiers = [\n eventListeners,\n popperOffsets,\n computeStyles,\n applyStyles,\n];\n\nconst createPopper = popperGenerator({ defaultModifiers });\n\n// eslint-disable-next-line import/no-unused-modules\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };\n"],"names":["getWindow","node","window","toString","ownerDocument","defaultView","isElement","OwnElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","max","Math","min","round","getUAString","uaData","navigator","userAgentData","brands","Array","isArray","map","item","brand","version","join","userAgent","isLayoutViewport","test","getBoundingClientRect","element","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","offsetWidth","width","offsetHeight","height","visualViewport","addVisualOffsets","x","left","offsetLeft","y","top","offsetTop","right","bottom","getWindowScroll","win","scrollLeft","pageXOffset","scrollTop","pageYOffset","getHTMLElementScroll","getNodeScroll","getNodeName","nodeName","toLowerCase","getDocumentElement","document","documentElement","getWindowScrollBarX","getComputedStyle","isScrollParent","overflow","overflowX","overflowY","isElementScaled","rect","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","scroll","offsets","clientLeft","clientTop","getLayoutRect","abs","getParentNode","assignedSlot","parentNode","host","getScrollParent","indexOf","body","listScrollParents","list","scrollParent","isBody","target","concat","updatedList","isTableElement","getTrueOffsetParent","position","getContainingBlock","isFirefox","isIE","elementCss","currentNode","css","transform","perspective","contain","willChange","filter","getOffsetParent","basePlacements","start","end","clippingParents","viewport","popper","reference","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","order","modifiers","Map","visited","Set","result","forEach","modifier","set","name","sort","add","requires","requiresIfExists","dep","has","depModifier","get","push","orderModifiers","orderedModifiers","reduce","acc","phase","debounce","fn","pending","Promise","resolve","then","undefined","mergeByName","merged","current","existing","options","data","Object","keys","key","getViewportRect","strategy","html","clientWidth","clientHeight","layoutViewport","getDocumentRect","winScroll","scrollWidth","scrollHeight","direction","contains","parent","child","rootNode","getRootNode","next","isSameNode","rectToClientRect","getInnerBoundingClientRect","getClientRectFromMixedType","clippingParent","getClippingParents","canEscapeClipping","clipperElement","getClippingRect","boundary","rootBoundary","mainClippingParents","firstClippingParent","clippingRect","accRect","getBasePlacement","placement","split","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","len","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","value","hashMap","detectOverflow","state","elementContext","altBoundary","padding","altContext","popperRect","rects","elements","clippingClientRect","contextElement","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","offset","multiply","axis","DEFAULT_OPTIONS","areValidElements","args","some","popperGenerator","generatorOptions","defaultModifiers","defaultOptions","createPopper","attributes","styles","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","m","enabled","runModifierEffects","update","forceUpdate","reset","index","length","destroy","onFirstUpdate","effect","cleanupFn","noopFn","passive","resize","addEventListener","removeEventListener","unsetSides","roundOffsetsByDPR","dpr","devicePixelRatio","mapToStyles","gpuAcceleration","adaptive","roundOffsets","hasX","hasOwnProperty","hasY","sideX","sideY","heightProp","widthProp","offsetY","offsetX","commonStyles","computeStyles","arrow","applyStyles","style","assign","removeAttribute","setAttribute","initialStyles","margin","styleProperties","property","attribute","eventListeners"],"mappings":"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"} \ No newline at end of file diff --git a/static/javascripts/popperjs/popper-lite.min.js b/static/javascripts/popperjs/popper-lite.min.js new file mode 100644 index 000000000..f1173513a --- /dev/null +++ b/static/javascripts/popperjs/popper-lite.min.js @@ -0,0 +1,6 @@ +/** + * @popperjs/core v2.11.8 - MIT License + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function o(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function r(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function c(){return!/^((?!chrome|android).)*safari/i.test(f())}function u(e,r,i){void 0===r&&(r=!1),void 0===i&&(i=!1);var a=e.getBoundingClientRect(),f=1,u=1;r&&o(e)&&(f=e.offsetWidth>0&&s(a.width)/e.offsetWidth||1,u=e.offsetHeight>0&&s(a.height)/e.offsetHeight||1);var l=(n(e)?t(e):window).visualViewport,p=!c()&&i,d=(a.left+(p&&l?l.offsetLeft:0))/f,h=(a.top+(p&&l?l.offsetTop:0))/u,v=a.width/f,m=a.height/u;return{width:v,height:m,top:h,right:d+v,bottom:h+m,left:d,x:d,y:h}}function l(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function p(e){return e?(e.nodeName||"").toLowerCase():null}function d(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function h(e){return u(d(e)).left+l(e).scrollLeft}function v(e){return t(e).getComputedStyle(e)}function m(e){var t=v(e),n=t.overflow,o=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+o)}function g(e,n,r){void 0===r&&(r=!1);var i,a,f=o(n),c=o(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,o=s(t.height)/e.offsetHeight||1;return 1!==n||1!==o}(n),v=d(n),g=u(e,c,r),y={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(f||!f&&!r)&&(("body"!==p(n)||m(v))&&(y=(i=n)!==t(i)&&o(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:l(i)),o(n)?((b=u(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):v&&(b.x=h(v))),{x:g.left+y.scrollLeft-b.x,y:g.top+y.scrollTop-b.y,width:g.width,height:g.height}}function y(e){return"html"===p(e)?e:e.assignedSlot||e.parentNode||(r(e)?e.host:null)||d(e)}function b(e){return["html","body","#document"].indexOf(p(e))>=0?e.ownerDocument.body:o(e)&&m(e)?e:b(y(e))}function w(e,n){var o;void 0===n&&(n=[]);var r=b(e),i=r===(null==(o=e.ownerDocument)?void 0:o.body),a=t(r),s=i?[a].concat(a.visualViewport||[],m(r)?r:[]):r,f=n.concat(s);return i?f:f.concat(w(y(s)))}function x(e){return["table","td","th"].indexOf(p(e))>=0}function O(e){return o(e)&&"fixed"!==v(e).position?e.offsetParent:null}function j(e){for(var n=t(e),i=O(e);i&&x(i)&&"static"===v(i).position;)i=O(i);return i&&("html"===p(i)||"body"===p(i)&&"static"===v(i).position)?n:i||function(e){var t=/firefox/i.test(f());if(/Trident/i.test(f())&&o(e)&&"fixed"===v(e).position)return null;var n=y(e);for(r(n)&&(n=n.host);o(n)&&["html","body"].indexOf(p(n))<0;){var i=v(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var E="top",L="bottom",M="right",W="left",P=[E,L,M,W],T="end",H="viewport",D="popper",R=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function k(e){var t=new Map,n=new Set,o=[];function r(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var o=t.get(e);o&&r(o)}})),o.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||r(e)})),o}function A(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function S(e,o,r){return o===H?A(function(e,n){var o=t(e),r=d(e),i=o.visualViewport,a=r.clientWidth,s=r.clientHeight,f=0,u=0;if(i){a=i.width,s=i.height;var l=c();(l||!l&&"fixed"===n)&&(f=i.offsetLeft,u=i.offsetTop)}return{width:a,height:s,x:f+h(e),y:u}}(e,r)):n(o)?function(e,t){var n=u(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(o,r):A(function(e){var t,n=d(e),o=l(e),r=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),f=-o.scrollLeft+h(e),c=-o.scrollTop;return"rtl"===v(r||n).direction&&(f+=i(n.clientWidth,r?r.clientWidth:0)-a),{width:a,height:s,x:f,y:c}}(d(e)))}function C(e){var t=w(y(e)),i=["absolute","fixed"].indexOf(v(e).position)>=0&&o(e)?j(e):e;return n(i)?t.filter((function(e){return n(e)&&function(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&r(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}(e,i)&&"body"!==p(e)})):[]}function V(e){return e.split("-")[0]}function N(e){return e.split("-")[1]}function B(e){var t,n=e.reference,o=e.element,r=e.placement,i=r?V(r):null,a=r?N(r):null,s=n.x+n.width/2-o.width/2,f=n.y+n.height/2-o.height/2;switch(i){case E:t={x:s,y:n.y-o.height};break;case L:t={x:s,y:n.y+n.height};break;case M:t={x:n.x+n.width,y:f};break;case W:t={x:n.x-o.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?function(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}(i):null;if(null!=c){var u="y"===c?"height":"width";switch(a){case"start":t[c]=t[c]-(n[u]/2-o[u]/2);break;case T:t[c]=t[c]+(n[u]/2-o[u]/2)}}return t}var F={placement:"bottom",modifiers:[],strategy:"absolute"};function U(){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&&"function"==typeof e.getBoundingClientRect)}))}function q(e){void 0===e&&(e={});var t=e,o=t.defaultModifiers,r=void 0===o?[]:o,i=t.defaultOptions,a=void 0===i?F:i;return function(e,t,o){void 0===o&&(o=a);var i,s,f={placement:"bottom",orderedModifiers:[],options:Object.assign({},F,a),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},c=[],l=!1,p={state:f,setOptions:function(o){var i="function"==typeof o?o(f.options):o;d(),f.options=Object.assign({},a,f.options,i),f.scrollParents={reference:n(e)?w(e):e.contextElement?w(e.contextElement):[],popper:w(t)};var s,u,l=function(e){var t=k(e);return R.reduce((function(e,n){return e.concat(t.filter((function(e){return e.phase===n})))}),[])}((s=[].concat(r,f.options.modifiers),u=s.reduce((function(e,t){var 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(u).map((function(e){return u[e]}))));return f.orderedModifiers=l.filter((function(e){return e.enabled})),f.orderedModifiers.forEach((function(e){var t=e.name,n=e.options,o=void 0===n?{}:n,r=e.effect;if("function"==typeof r){var i=r({state:f,name:t,instance:p,options:o}),a=function(){};c.push(i||a)}})),p.update()},forceUpdate:function(){if(!l){var e=f.elements,t=e.reference,n=e.popper;if(U(t,n)){var o,r,i,a;f.rects={reference:g(t,j(n),"fixed"===f.options.strategy),popper:(o=n,r=u(o),i=o.offsetWidth,a=o.offsetHeight,Math.abs(r.width-i)<=1&&(i=r.width),Math.abs(r.height-a)<=1&&(a=r.height),{x:o.offsetLeft,y:o.offsetTop,width:i,height:a})},f.reset=!1,f.placement=f.options.placement,f.orderedModifiers.forEach((function(e){return f.modifiersData[e.name]=Object.assign({},e.data)}));for(var s=0;s<f.orderedModifiers.length;s++)if(!0!==f.reset){var c=f.orderedModifiers[s],d=c.fn,h=c.options,v=void 0===h?{}:h,m=c.name;"function"==typeof d&&(f=d({state:f,options:v,name:m,instance:p})||f)}else f.reset=!1,s=-1}}},update:(i=function(){return new Promise((function(e){p.forceUpdate(),e(f)}))},function(){return s||(s=new Promise((function(e){Promise.resolve().then((function(){s=void 0,e(i())}))}))),s}),destroy:function(){d(),l=!0}};if(!U(e,t))return p;function d(){c.forEach((function(e){return e()})),c=[]}return p.setOptions(o).then((function(e){!l&&o.onFirstUpdate&&o.onFirstUpdate(e)})),p}}var z={passive:!0};var X={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Y(e){var n,o=e.popper,r=e.popperRect,i=e.placement,a=e.variation,f=e.offsets,c=e.position,u=e.gpuAcceleration,l=e.adaptive,p=e.roundOffsets,h=e.isFixed,m=f.x,g=void 0===m?0:m,y=f.y,b=void 0===y?0:y,w="function"==typeof p?p({x:g,y:b}):{x:g,y:b};g=w.x,b=w.y;var x=f.hasOwnProperty("x"),O=f.hasOwnProperty("y"),P=W,H=E,D=window;if(l){var R=j(o),k="clientHeight",A="clientWidth";if(R===t(o)&&"static"!==v(R=d(o)).position&&"absolute"===c&&(k="scrollHeight",A="scrollWidth"),R=R,i===E||(i===W||i===M)&&a===T)H=L,b-=(h&&R===D&&D.visualViewport?D.visualViewport.height:R[k])-r.height,b*=u?1:-1;if(i===W||(i===E||i===L)&&a===T)P=M,g-=(h&&R===D&&D.visualViewport?D.visualViewport.width:R[A])-r.width,g*=u?1:-1}var S,C=Object.assign({position:c},l&&X),V=!0===p?function(e,t){var n=e.x,o=e.y,r=t.devicePixelRatio||1;return{x:s(n*r)/r||0,y:s(o*r)/r||0}}({x:g,y:b},t(o)):{x:g,y:b};return g=V.x,b=V.y,u?Object.assign({},C,((S={})[H]=O?"0":"",S[P]=x?"0":"",S.transform=(D.devicePixelRatio||1)<=1?"translate("+g+"px, "+b+"px)":"translate3d("+g+"px, "+b+"px, 0)",S)):Object.assign({},C,((n={})[H]=O?b+"px":"",n[P]=x?g+"px":"",n.transform="",n))}var _=[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var n=e.state,o=e.instance,r=e.options,i=r.scroll,a=void 0===i||i,s=r.resize,f=void 0===s||s,c=t(n.elements.popper),u=[].concat(n.scrollParents.reference,n.scrollParents.popper);return a&&u.forEach((function(e){e.addEventListener("scroll",o.update,z)})),f&&c.addEventListener("resize",o.update,z),function(){a&&u.forEach((function(e){e.removeEventListener("scroll",o.update,z)})),f&&c.removeEventListener("resize",o.update,z)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=B({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,o=n.gpuAcceleration,r=void 0===o||o,i=n.adaptive,a=void 0===i||i,s=n.roundOffsets,f=void 0===s||s,c={placement:V(t.placement),variation:N(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,Y(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:f})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,Y(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:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},i=t.elements[e];o(i)&&p(i)&&(Object.assign(i.style,n),Object.keys(r).forEach((function(e){var t=r[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,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){var r=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});o(r)&&p(r)&&(Object.assign(r.style,a),Object.keys(i).forEach((function(e){r.removeAttribute(e)})))}))}},requires:["computeStyles"]}],G=q({defaultModifiers:_});e.createPopper=G,e.defaultModifiers=_,e.detectOverflow=function(e,t){void 0===t&&(t={});var o,r=t,s=r.placement,f=void 0===s?e.placement:s,c=r.strategy,l=void 0===c?e.strategy:c,p=r.boundary,h=void 0===p?"clippingParents":p,v=r.rootBoundary,m=void 0===v?H:v,g=r.elementContext,y=void 0===g?D:g,b=r.altBoundary,w=void 0!==b&&b,x=r.padding,O=void 0===x?0:x,j=function(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}("number"!=typeof O?O:(o=O,P.reduce((function(e,t){return e[t]=o,e}),{}))),W=y===D?"reference":D,T=e.rects.popper,R=e.elements[w?W:y],k=function(e,t,n,o){var r="clippingParents"===t?C(e):[].concat(t),s=[].concat(r,[n]),f=s[0],c=s.reduce((function(t,n){var r=S(e,n,o);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}),S(e,f,o));return c.width=c.right-c.left,c.height=c.bottom-c.top,c.x=c.left,c.y=c.top,c}(n(R)?R:R.contextElement||d(e.elements.popper),h,m,l),V=u(e.elements.reference),N=B({reference:V,element:T,strategy:"absolute",placement:f}),F=A(Object.assign({},T,N)),U=y===D?F:V,q={top:k.top-U.top+j.top,bottom:U.bottom-k.bottom+j.bottom,left:k.left-U.left+j.left,right:U.right-k.right+j.right},z=e.modifiersData.offset;if(y===D&&z){var X=z[f];Object.keys(q).forEach((function(e){var t=[M,L].indexOf(e)>=0?1:-1,n=[E,L].indexOf(e)>=0?"y":"x";q[e]+=X[n]*t}))}return q},e.popperGenerator=q,Object.defineProperty(e,"__esModule",{value:!0})})); +//# sourceMappingURL=popper-lite.min.js.map diff --git a/static/javascripts/popperjs/popper-lite.min.js.flow b/static/javascripts/popperjs/popper-lite.min.js.flow new file mode 100644 index 000000000..8658c44fb --- /dev/null +++ b/static/javascripts/popperjs/popper-lite.min.js.flow @@ -0,0 +1,3 @@ +// @flow + +export * from '../../lib/popper-lite.js' diff --git a/static/javascripts/popperjs/popper-lite.min.js.map b/static/javascripts/popperjs/popper-lite.min.js.map new file mode 100644 index 000000000..16b3db296 --- /dev/null +++ b/static/javascripts/popperjs/popper-lite.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"popper-lite.min.js","sources":["../../src/dom-utils/getWindow.js","../../src/dom-utils/instanceOf.js","../../src/utils/math.js","../../src/utils/userAgent.js","../../src/dom-utils/isLayoutViewport.js","../../src/dom-utils/getBoundingClientRect.js","../../src/dom-utils/getWindowScroll.js","../../src/dom-utils/getNodeName.js","../../src/dom-utils/getDocumentElement.js","../../src/dom-utils/getWindowScrollBarX.js","../../src/dom-utils/getComputedStyle.js","../../src/dom-utils/isScrollParent.js","../../src/dom-utils/getCompositeRect.js","../../src/dom-utils/getNodeScroll.js","../../src/dom-utils/getHTMLElementScroll.js","../../src/dom-utils/getParentNode.js","../../src/dom-utils/getScrollParent.js","../../src/dom-utils/listScrollParents.js","../../src/dom-utils/isTableElement.js","../../src/dom-utils/getOffsetParent.js","../../src/enums.js","../../src/utils/orderModifiers.js","../../src/utils/rectToClientRect.js","../../src/dom-utils/getClippingRect.js","../../src/dom-utils/getViewportRect.js","../../src/dom-utils/getDocumentRect.js","../../src/dom-utils/contains.js","../../src/utils/getBasePlacement.js","../../src/utils/getVariation.js","../../src/utils/computeOffsets.js","../../src/utils/getMainAxisFromPlacement.js","../../src/createPopper.js","../../src/utils/debounce.js","../../src/utils/mergeByName.js","../../src/dom-utils/getLayoutRect.js","../../src/modifiers/eventListeners.js","../../src/modifiers/computeStyles.js","../../src/popper-lite.js","../../src/modifiers/popperOffsets.js","../../src/modifiers/applyStyles.js","../../src/utils/detectOverflow.js","../../src/utils/expandToHashMap.js","../../src/utils/mergePaddingObject.js","../../src/utils/getFreshSideObject.js"],"sourcesContent":["// @flow\nimport type { Window } from '../types';\ndeclare function getWindow(node: Node | Window): Window;\n\nexport default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n const ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n","// @flow\nimport getWindow from './getWindow';\n\ndeclare function isElement(node: mixed): boolean %checks(node instanceof\n Element);\nfunction isElement(node) {\n const OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\ndeclare function isHTMLElement(node: mixed): boolean %checks(node instanceof\n HTMLElement);\nfunction isHTMLElement(node) {\n const OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\ndeclare function isShadowRoot(node: mixed): boolean %checks(node instanceof\n ShadowRoot);\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };\n","// @flow\nexport const max = Math.max;\nexport const min = Math.min;\nexport const round = Math.round;\n","// @flow\ntype Navigator = Navigator & { userAgentData?: NavigatorUAData };\n\ninterface NavigatorUAData {\n brands: Array<{ brand: string, version: string }>;\n mobile: boolean;\n platform: string;\n}\n\nexport default function getUAString(): string {\n const uaData = (navigator: Navigator).userAgentData;\n\n if (uaData?.brands && Array.isArray(uaData.brands)) {\n return uaData.brands\n .map((item) => `${item.brand}/${item.version}`)\n .join(' ');\n }\n\n return navigator.userAgent;\n}\n","// @flow\nimport getUAString from '../utils/userAgent';\n\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}\n","// @flow\nimport type { ClientRectObject, VirtualElement } from '../types';\nimport { isElement, isHTMLElement } from './instanceOf';\nimport { round } from '../utils/math';\nimport getWindow from './getWindow';\nimport isLayoutViewport from './isLayoutViewport';\n\nexport default function getBoundingClientRect(\n element: Element | VirtualElement,\n includeScale: boolean = false,\n isFixedStrategy: boolean = false\n): ClientRectObject {\n const clientRect = element.getBoundingClientRect();\n let scaleX = 1;\n let scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX =\n (element: HTMLElement).offsetWidth > 0\n ? round(clientRect.width) / (element: HTMLElement).offsetWidth || 1\n : 1;\n scaleY =\n (element: HTMLElement).offsetHeight > 0\n ? round(clientRect.height) / (element: HTMLElement).offsetHeight || 1\n : 1;\n }\n\n const { visualViewport } = isElement(element) ? getWindow(element) : window;\n const addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n\n const x =\n (clientRect.left +\n (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) /\n scaleX;\n const y =\n (clientRect.top +\n (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) /\n scaleY;\n const width = clientRect.width / scaleX;\n const height = clientRect.height / scaleY;\n\n return {\n width,\n height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x,\n y,\n };\n}\n","// @flow\nimport getWindow from './getWindow';\nimport type { Window } from '../types';\n\nexport default function getWindowScroll(node: Node | Window) {\n const win = getWindow(node);\n const scrollLeft = win.pageXOffset;\n const scrollTop = win.pageYOffset;\n\n return {\n scrollLeft,\n scrollTop,\n };\n}\n","// @flow\nimport type { Window } from '../types';\n\nexport default function getNodeName(element: ?Node | Window): ?string {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}\n","// @flow\nimport { isElement } from './instanceOf';\nimport type { Window } from '../types';\n\nexport default function getDocumentElement(\n element: Element | Window\n): HTMLElement {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return (\n (isElement(element)\n ? element.ownerDocument\n : // $FlowFixMe[prop-missing]\n element.document) || window.document\n ).documentElement;\n}\n","// @flow\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScroll from './getWindowScroll';\n\nexport default function getWindowScrollBarX(element: Element): number {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return (\n getBoundingClientRect(getDocumentElement(element)).left +\n getWindowScroll(element).scrollLeft\n );\n}\n","// @flow\nimport getWindow from './getWindow';\n\nexport default function getComputedStyle(\n element: Element\n): CSSStyleDeclaration {\n return getWindow(element).getComputedStyle(element);\n}\n","// @flow\nimport getComputedStyle from './getComputedStyle';\n\nexport default function isScrollParent(element: HTMLElement): boolean {\n // Firefox wants us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\n","// @flow\nimport type { Rect, VirtualElement, Window } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getNodeScroll from './getNodeScroll';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getDocumentElement from './getDocumentElement';\nimport isScrollParent from './isScrollParent';\nimport { round } from '../utils/math';\n\nfunction isElementScaled(element: HTMLElement) {\n const rect = element.getBoundingClientRect();\n const scaleX = round(rect.width) / element.offsetWidth || 1;\n const scaleY = round(rect.height) / element.offsetHeight || 1;\n\n return scaleX !== 1 || scaleY !== 1;\n}\n\n// Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\nexport default function getCompositeRect(\n elementOrVirtualElement: Element | VirtualElement,\n offsetParent: Element | Window,\n isFixed: boolean = false\n): Rect {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const offsetParentIsScaled =\n isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(\n elementOrVirtualElement,\n offsetParentIsScaled,\n isFixed\n );\n\n let scroll = { scrollLeft: 0, scrollTop: 0 };\n let offsets = { x: 0, y: 0 };\n\n if (isOffsetParentAnElement || (!isOffsetParentAnElement && !isFixed)) {\n if (\n getNodeName(offsetParent) !== 'body' ||\n // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)\n ) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height,\n };\n}\n","// @flow\nimport getWindowScroll from './getWindowScroll';\nimport getWindow from './getWindow';\nimport { isHTMLElement } from './instanceOf';\nimport getHTMLElementScroll from './getHTMLElementScroll';\nimport type { Window } from '../types';\n\nexport default function getNodeScroll(node: Node | Window) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}\n","// @flow\n\nexport default function getHTMLElementScroll(element: HTMLElement) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop,\n };\n}\n","// @flow\nimport getNodeName from './getNodeName';\nimport getDocumentElement from './getDocumentElement';\nimport { isShadowRoot } from './instanceOf';\n\nexport default function getParentNode(element: Node | ShadowRoot): Node {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (\n // this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || // DOM Element detected\n (isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n );\n}\n","// @flow\nimport getParentNode from './getParentNode';\nimport isScrollParent from './isScrollParent';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\n\nexport default function getScrollParent(node: Node): HTMLElement {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}\n","// @flow\nimport getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getWindow from './getWindow';\nimport type { Window, VisualViewport } from '../types';\nimport isScrollParent from './isScrollParent';\n\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\nexport default function listScrollParents(\n element: Node,\n list: Array<Element | Window> = []\n): Array<Element | Window | VisualViewport> {\n const scrollParent = getScrollParent(element);\n const isBody = scrollParent === element.ownerDocument?.body;\n const win = getWindow(scrollParent);\n const target = isBody\n ? [win].concat(\n win.visualViewport || [],\n isScrollParent(scrollParent) ? scrollParent : []\n )\n : scrollParent;\n const updatedList = list.concat(target);\n\n return isBody\n ? updatedList\n : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}\n","// @flow\nimport getNodeName from './getNodeName';\n\nexport default function isTableElement(element: Element): boolean {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getNodeName from './getNodeName';\nimport getComputedStyle from './getComputedStyle';\nimport { isHTMLElement, isShadowRoot } from './instanceOf';\nimport isTableElement from './isTableElement';\nimport getParentNode from './getParentNode';\nimport getUAString from '../utils/userAgent';\n\nfunction getTrueOffsetParent(element: Element): ?Element {\n if (\n !isHTMLElement(element) ||\n // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed'\n ) {\n return null;\n }\n\n return element.offsetParent;\n}\n\n// `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\nfunction getContainingBlock(element: Element) {\n const isFirefox = /firefox/i.test(getUAString());\n const isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n const elementCss = getComputedStyle(element);\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n let currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (\n isHTMLElement(currentNode) &&\n ['html', 'body'].indexOf(getNodeName(currentNode)) < 0\n ) {\n const css = getComputedStyle(currentNode);\n\n // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n if (\n css.transform !== 'none' ||\n css.perspective !== 'none' ||\n css.contain === 'paint' ||\n ['transform', 'perspective'].indexOf(css.willChange) !== -1 ||\n (isFirefox && css.willChange === 'filter') ||\n (isFirefox && css.filter && css.filter !== 'none')\n ) {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nexport default function getOffsetParent(element: Element) {\n const window = getWindow(element);\n\n let offsetParent = getTrueOffsetParent(element);\n\n while (\n offsetParent &&\n isTableElement(offsetParent) &&\n getComputedStyle(offsetParent).position === 'static'\n ) {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (\n offsetParent &&\n (getNodeName(offsetParent) === 'html' ||\n (getNodeName(offsetParent) === 'body' &&\n getComputedStyle(offsetParent).position === 'static'))\n ) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n","// @flow\nexport const top: 'top' = 'top';\nexport const bottom: 'bottom' = 'bottom';\nexport const right: 'right' = 'right';\nexport const left: 'left' = 'left';\nexport const auto: 'auto' = 'auto';\nexport type BasePlacement =\n | typeof top\n | typeof bottom\n | typeof right\n | typeof left;\nexport const basePlacements: Array<BasePlacement> = [top, bottom, right, left];\n\nexport const start: 'start' = 'start';\nexport const end: 'end' = 'end';\nexport type Variation = typeof start | typeof end;\n\nexport const clippingParents: 'clippingParents' = 'clippingParents';\nexport const viewport: 'viewport' = 'viewport';\nexport type Boundary = Element | Array<Element> | typeof clippingParents;\nexport type RootBoundary = typeof viewport | 'document';\n\nexport const popper: 'popper' = 'popper';\nexport const reference: 'reference' = 'reference';\nexport type Context = typeof popper | typeof reference;\n\nexport type VariationPlacement =\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end';\nexport type AutoPlacement = 'auto' | 'auto-start' | 'auto-end';\nexport type ComputedPlacement = VariationPlacement | BasePlacement;\nexport type Placement = AutoPlacement | BasePlacement | VariationPlacement;\n\nexport const variationPlacements: Array<VariationPlacement> = basePlacements.reduce(\n (acc: Array<VariationPlacement>, placement: BasePlacement) =>\n acc.concat([(`${placement}-${start}`: any), (`${placement}-${end}`: any)]),\n []\n);\nexport const placements: Array<Placement> = [...basePlacements, auto].reduce(\n (\n acc: Array<Placement>,\n placement: BasePlacement | typeof auto\n ): Array<Placement> =>\n acc.concat([\n placement,\n (`${placement}-${start}`: any),\n (`${placement}-${end}`: any),\n ]),\n []\n);\n\n// modifiers that need to read the DOM\nexport const beforeRead: 'beforeRead' = 'beforeRead';\nexport const read: 'read' = 'read';\nexport const afterRead: 'afterRead' = 'afterRead';\n// pure-logic modifiers\nexport const beforeMain: 'beforeMain' = 'beforeMain';\nexport const main: 'main' = 'main';\nexport const afterMain: 'afterMain' = 'afterMain';\n// modifier with the purpose to write to the DOM (or write into a framework state)\nexport const beforeWrite: 'beforeWrite' = 'beforeWrite';\nexport const write: 'write' = 'write';\nexport const afterWrite: 'afterWrite' = 'afterWrite';\nexport const modifierPhases: Array<ModifierPhases> = [\n beforeRead,\n read,\n afterRead,\n beforeMain,\n main,\n afterMain,\n beforeWrite,\n write,\n afterWrite,\n];\n\nexport type ModifierPhases =\n | typeof beforeRead\n | typeof read\n | typeof afterRead\n | typeof beforeMain\n | typeof main\n | typeof afterMain\n | typeof beforeWrite\n | typeof write\n | typeof afterWrite;\n","// @flow\nimport type { Modifier } from '../types';\nimport { modifierPhases } from '../enums';\n\n// source: https://stackoverflow.com/questions/49875255\nfunction order(modifiers) {\n const map = new Map();\n const visited = new Set();\n const result = [];\n\n modifiers.forEach(modifier => {\n map.set(modifier.name, modifier);\n });\n\n // On visiting object, check for its dependencies and visit them recursively\n function sort(modifier: Modifier<any, any>) {\n visited.add(modifier.name);\n\n const requires = [\n ...(modifier.requires || []),\n ...(modifier.requiresIfExists || []),\n ];\n\n requires.forEach(dep => {\n if (!visited.has(dep)) {\n const depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n\n result.push(modifier);\n }\n\n modifiers.forEach(modifier => {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n\n return result;\n}\n\nexport default function orderModifiers(\n modifiers: Array<Modifier<any, any>>\n): Array<Modifier<any, any>> {\n // order based on dependencies\n const orderedModifiers = order(modifiers);\n\n // order based on phase\n return modifierPhases.reduce((acc, phase) => {\n return acc.concat(\n orderedModifiers.filter(modifier => modifier.phase === phase)\n );\n }, []);\n}\n","// @flow\nimport type { Rect, ClientRectObject } from '../types';\n\nexport default function rectToClientRect(rect: Rect): ClientRectObject {\n return {\n ...rect,\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height,\n };\n}\n","// @flow\nimport type { ClientRectObject, PositioningStrategy } from '../types';\nimport type { Boundary, RootBoundary } from '../enums';\nimport { viewport } from '../enums';\nimport getViewportRect from './getViewportRect';\nimport getDocumentRect from './getDocumentRect';\nimport listScrollParents from './listScrollParents';\nimport getOffsetParent from './getOffsetParent';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport { isElement, isHTMLElement } from './instanceOf';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getParentNode from './getParentNode';\nimport contains from './contains';\nimport getNodeName from './getNodeName';\nimport rectToClientRect from '../utils/rectToClientRect';\nimport { max, min } from '../utils/math';\n\nfunction getInnerBoundingClientRect(\n element: Element,\n strategy: PositioningStrategy\n) {\n const rect = getBoundingClientRect(element, false, strategy === 'fixed');\n\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n\n return rect;\n}\n\nfunction getClientRectFromMixedType(\n element: Element,\n clippingParent: Element | RootBoundary,\n strategy: PositioningStrategy\n): ClientRectObject {\n return clippingParent === viewport\n ? rectToClientRect(getViewportRect(element, strategy))\n : isElement(clippingParent)\n ? getInnerBoundingClientRect(clippingParent, strategy)\n : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n}\n\n// A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\nfunction getClippingParents(element: Element): Array<Element> {\n const clippingParents = listScrollParents(getParentNode(element));\n const canEscapeClipping =\n ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n const clipperElement =\n canEscapeClipping && isHTMLElement(element)\n ? getOffsetParent(element)\n : element;\n\n if (!isElement(clipperElement)) {\n return [];\n }\n\n // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n return clippingParents.filter(\n (clippingParent) =>\n isElement(clippingParent) &&\n contains(clippingParent, clipperElement) &&\n getNodeName(clippingParent) !== 'body'\n );\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping parents\nexport default function getClippingRect(\n element: Element,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n strategy: PositioningStrategy\n): ClientRectObject {\n const mainClippingParents =\n boundary === 'clippingParents'\n ? getClippingParents(element)\n : [].concat(boundary);\n const clippingParents = [...mainClippingParents, rootBoundary];\n const firstClippingParent = clippingParents[0];\n\n const clippingRect = clippingParents.reduce((accRect, clippingParent) => {\n const rect = getClientRectFromMixedType(element, clippingParent, strategy);\n\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n\n return clippingRect;\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport isLayoutViewport from './isLayoutViewport';\nimport type { PositioningStrategy } from '../types';\n\nexport default function getViewportRect(\n element: Element,\n strategy: PositioningStrategy\n) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n\n const layoutViewport = isLayoutViewport();\n\n if (layoutViewport || (!layoutViewport && strategy === 'fixed')) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width,\n height,\n x: x + getWindowScrollBarX(element),\n y,\n };\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getWindowScroll from './getWindowScroll';\nimport { max } from '../utils/math';\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\nexport default function getDocumentRect(element: HTMLElement): Rect {\n const html = getDocumentElement(element);\n const winScroll = getWindowScroll(element);\n const body = element.ownerDocument?.body;\n\n const width = max(\n html.scrollWidth,\n html.clientWidth,\n body ? body.scrollWidth : 0,\n body ? body.clientWidth : 0\n );\n const height = max(\n html.scrollHeight,\n html.clientHeight,\n body ? body.scrollHeight : 0,\n body ? body.clientHeight : 0\n );\n\n let x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n const y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return { width, height, x, y };\n}\n","// @flow\nimport { isShadowRoot } from './instanceOf';\n\nexport default function contains(parent: Element, child: Element) {\n const rootNode = child.getRootNode && child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n }\n // $FlowFixMe[prop-missing]: need a better way to handle this...\n next = next.parentNode || next.host;\n } while (next);\n }\n\n // Give up, the result is false\n return false;\n}\n","// @flow\nimport { type BasePlacement, type Placement, auto } from '../enums';\n\nexport default function getBasePlacement(\n placement: Placement | typeof auto\n): BasePlacement {\n return (placement.split('-')[0]: any);\n}\n","// @flow\nimport { type Variation, type Placement } from '../enums';\n\nexport default function getVariation(placement: Placement): ?Variation {\n return (placement.split('-')[1]: any);\n}\n","// @flow\nimport getBasePlacement from './getBasePlacement';\nimport getVariation from './getVariation';\nimport getMainAxisFromPlacement from './getMainAxisFromPlacement';\nimport type {\n Rect,\n PositioningStrategy,\n Offsets,\n ClientRectObject,\n} from '../types';\nimport { top, right, bottom, left, start, end, type Placement } from '../enums';\n\nexport default function computeOffsets({\n reference,\n element,\n placement,\n}: {\n reference: Rect | ClientRectObject,\n element: Rect | ClientRectObject,\n strategy: PositioningStrategy,\n placement?: Placement,\n}): Offsets {\n const basePlacement = placement ? getBasePlacement(placement) : null;\n const variation = placement ? getVariation(placement) : null;\n const commonX = reference.x + reference.width / 2 - element.width / 2;\n const commonY = reference.y + reference.height / 2 - element.height / 2;\n\n let offsets;\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height,\n };\n break;\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height,\n };\n break;\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY,\n };\n break;\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY,\n };\n break;\n default:\n offsets = {\n x: reference.x,\n y: reference.y,\n };\n }\n\n const mainAxis = basePlacement\n ? getMainAxisFromPlacement(basePlacement)\n : null;\n\n if (mainAxis != null) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] =\n offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n case end:\n offsets[mainAxis] =\n offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n default:\n }\n }\n\n return offsets;\n}\n","// @flow\nimport type { Placement } from '../enums';\n\nexport default function getMainAxisFromPlacement(\n placement: Placement\n): 'x' | 'y' {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}\n","// @flow\nimport type {\n State,\n OptionsGeneric,\n Modifier,\n Instance,\n VirtualElement,\n} from './types';\nimport getCompositeRect from './dom-utils/getCompositeRect';\nimport getLayoutRect from './dom-utils/getLayoutRect';\nimport listScrollParents from './dom-utils/listScrollParents';\nimport getOffsetParent from './dom-utils/getOffsetParent';\nimport orderModifiers from './utils/orderModifiers';\nimport debounce from './utils/debounce';\nimport mergeByName from './utils/mergeByName';\nimport detectOverflow from './utils/detectOverflow';\nimport { isElement } from './dom-utils/instanceOf';\n\nconst DEFAULT_OPTIONS: OptionsGeneric<any> = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute',\n};\n\ntype PopperGeneratorArgs = {\n defaultModifiers?: Array<Modifier<any, any>>,\n defaultOptions?: $Shape<OptionsGeneric<any>>,\n};\n\nfunction areValidElements(...args: Array<any>): boolean {\n return !args.some(\n (element) =>\n !(element && typeof element.getBoundingClientRect === 'function')\n );\n}\n\nexport function popperGenerator(generatorOptions: PopperGeneratorArgs = {}) {\n const { defaultModifiers = [], defaultOptions = DEFAULT_OPTIONS } =\n generatorOptions;\n\n return function createPopper<TModifier: $Shape<Modifier<any, any>>>(\n reference: Element | VirtualElement,\n popper: HTMLElement,\n options: $Shape<OptionsGeneric<TModifier>> = defaultOptions\n ): Instance {\n let state: $Shape<State> = {\n placement: 'bottom',\n orderedModifiers: [],\n options: { ...DEFAULT_OPTIONS, ...defaultOptions },\n modifiersData: {},\n elements: {\n reference,\n popper,\n },\n attributes: {},\n styles: {},\n };\n\n let effectCleanupFns: Array<() => void> = [];\n let isDestroyed = false;\n\n const instance = {\n state,\n setOptions(setOptionsAction) {\n const options =\n typeof setOptionsAction === 'function'\n ? setOptionsAction(state.options)\n : setOptionsAction;\n\n cleanupModifierEffects();\n\n state.options = {\n // $FlowFixMe[exponential-spread]\n ...defaultOptions,\n ...state.options,\n ...options,\n };\n\n state.scrollParents = {\n reference: isElement(reference)\n ? listScrollParents(reference)\n : reference.contextElement\n ? listScrollParents(reference.contextElement)\n : [],\n popper: listScrollParents(popper),\n };\n\n // Orders the modifiers based on their dependencies and `phase`\n // properties\n const orderedModifiers = orderModifiers(\n mergeByName([...defaultModifiers, ...state.options.modifiers])\n );\n\n // Strip out disabled modifiers\n state.orderedModifiers = orderedModifiers.filter((m) => m.enabled);\n\n runModifierEffects();\n\n return instance.update();\n },\n\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n const { reference, popper } = state.elements;\n\n // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n if (!areValidElements(reference, popper)) {\n return;\n }\n\n // Store the reference and popper rects to be read by modifiers\n state.rects = {\n reference: getCompositeRect(\n reference,\n getOffsetParent(popper),\n state.options.strategy === 'fixed'\n ),\n popper: getLayoutRect(popper),\n };\n\n // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n state.reset = false;\n\n state.placement = state.options.placement;\n\n // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n state.orderedModifiers.forEach(\n (modifier) =>\n (state.modifiersData[modifier.name] = {\n ...modifier.data,\n })\n );\n\n for (let index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n const { fn, options = {}, name } = state.orderedModifiers[index];\n\n if (typeof fn === 'function') {\n state = fn({ state, options, name, instance }) || state;\n }\n }\n },\n\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce<$Shape<State>>(\n () =>\n new Promise<$Shape<State>>((resolve) => {\n instance.forceUpdate();\n resolve(state);\n })\n ),\n\n destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n },\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then((state) => {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n });\n\n // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n function runModifierEffects() {\n state.orderedModifiers.forEach(({ name, options = {}, effect }) => {\n if (typeof effect === 'function') {\n const cleanupFn = effect({ state, name, instance, options });\n const noopFn = () => {};\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach((fn) => fn());\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\n\nexport const createPopper = popperGenerator();\n\n// eslint-disable-next-line import/no-unused-modules\nexport { detectOverflow };\n","// @flow\n\nexport default function debounce<T>(fn: Function): () => Promise<T> {\n let pending;\n return () => {\n if (!pending) {\n pending = new Promise<T>(resolve => {\n Promise.resolve().then(() => {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}\n","// @flow\nimport type { Modifier } from '../types';\n\nexport default function mergeByName(\n modifiers: Array<$Shape<Modifier<any, any>>>\n): Array<$Shape<Modifier<any, any>>> {\n const merged = modifiers.reduce((merged, current) => {\n const existing = merged[current.name];\n merged[current.name] = existing\n ? {\n ...existing,\n ...current,\n options: { ...existing.options, ...current.options },\n data: { ...existing.data, ...current.data },\n }\n : current;\n return merged;\n }, {});\n\n // IE11 does not support Object.values\n return Object.keys(merged).map(key => merged[key]);\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\n\n// Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\nexport default function getLayoutRect(element: HTMLElement): Rect {\n const clientRect = getBoundingClientRect(element);\n\n // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width,\n height,\n };\n}\n","// @flow\nimport type { ModifierArguments, Modifier } from '../types';\nimport getWindow from '../dom-utils/getWindow';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n scroll: boolean,\n resize: boolean,\n};\n\nconst passive = { passive: true };\n\nfunction effect({ state, instance, options }: ModifierArguments<Options>) {\n const { scroll = true, resize = true } = options;\n\n const window = getWindow(state.elements.popper);\n const scrollParents = [\n ...state.scrollParents.reference,\n ...state.scrollParents.popper,\n ];\n\n if (scroll) {\n scrollParents.forEach(scrollParent => {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return () => {\n if (scroll) {\n scrollParents.forEach(scrollParent => {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type EventListenersModifier = Modifier<'eventListeners', Options>;\nexport default ({\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: () => {},\n effect,\n data: {},\n}: EventListenersModifier);\n","// @flow\nimport type {\n PositioningStrategy,\n Offsets,\n Modifier,\n ModifierArguments,\n Rect,\n Window,\n} from '../types';\nimport {\n type BasePlacement,\n type Variation,\n top,\n left,\n right,\n bottom,\n end,\n} from '../enums';\nimport getOffsetParent from '../dom-utils/getOffsetParent';\nimport getWindow from '../dom-utils/getWindow';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport getComputedStyle from '../dom-utils/getComputedStyle';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getVariation from '../utils/getVariation';\nimport { round } from '../utils/math';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type RoundOffsets = (\n offsets: $Shape<{ x: number, y: number, centerOffset: number }>\n) => Offsets;\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n gpuAcceleration: boolean,\n adaptive: boolean,\n roundOffsets?: boolean | RoundOffsets,\n};\n\nconst unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto',\n};\n\n// Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\nfunction roundOffsetsByDPR({ x, y }, win: Window): Offsets {\n const dpr = win.devicePixelRatio || 1;\n\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0,\n };\n}\n\nexport function mapToStyles({\n popper,\n popperRect,\n placement,\n variation,\n offsets,\n position,\n gpuAcceleration,\n adaptive,\n roundOffsets,\n isFixed,\n}: {\n popper: HTMLElement,\n popperRect: Rect,\n placement: BasePlacement,\n variation: ?Variation,\n offsets: $Shape<{ x: number, y: number, centerOffset: number }>,\n position: PositioningStrategy,\n gpuAcceleration: boolean,\n adaptive: boolean,\n roundOffsets: boolean | RoundOffsets,\n isFixed: boolean,\n}) {\n let { x = 0, y = 0 } = offsets;\n\n ({ x, y } =\n typeof roundOffsets === 'function' ? roundOffsets({ x, y }) : { x, y });\n\n const hasX = offsets.hasOwnProperty('x');\n const hasY = offsets.hasOwnProperty('y');\n\n let sideX: string = left;\n let sideY: string = top;\n\n const win: Window = window;\n\n if (adaptive) {\n let offsetParent = getOffsetParent(popper);\n let heightProp = 'clientHeight';\n let widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (\n getComputedStyle(offsetParent).position !== 'static' &&\n position === 'absolute'\n ) {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n }\n\n // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n offsetParent = (offsetParent: Element);\n\n if (\n placement === top ||\n ((placement === left || placement === right) && variation === end)\n ) {\n sideY = bottom;\n const offsetY =\n isFixed && offsetParent === win && win.visualViewport\n ? win.visualViewport.height\n : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (\n placement === left ||\n ((placement === top || placement === bottom) && variation === end)\n ) {\n sideX = right;\n const offsetX =\n isFixed && offsetParent === win && win.visualViewport\n ? win.visualViewport.width\n : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n const commonStyles = {\n position,\n ...(adaptive && unsetSides),\n };\n\n ({ x, y } =\n roundOffsets === true\n ? roundOffsetsByDPR({ x, y }, getWindow(popper))\n : { x, y });\n\n if (gpuAcceleration) {\n return {\n ...commonStyles,\n [sideY]: hasY ? '0' : '',\n [sideX]: hasX ? '0' : '',\n // Layer acceleration can disable subpixel rendering which causes slightly\n // blurry text on low PPI displays, so we want to use 2D transforms\n // instead\n transform:\n (win.devicePixelRatio || 1) <= 1\n ? `translate(${x}px, ${y}px)`\n : `translate3d(${x}px, ${y}px, 0)`,\n };\n }\n\n return {\n ...commonStyles,\n [sideY]: hasY ? `${y}px` : '',\n [sideX]: hasX ? `${x}px` : '',\n transform: '',\n };\n}\n\nfunction computeStyles({ state, options }: ModifierArguments<Options>) {\n const {\n gpuAcceleration = true,\n adaptive = true,\n // defaults to use builtin `roundOffsetsByDPR`\n roundOffsets = true,\n } = options;\n\n const commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration,\n isFixed: state.options.strategy === 'fixed',\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = {\n ...state.styles.popper,\n ...mapToStyles({\n ...commonStyles,\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive,\n roundOffsets,\n }),\n };\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = {\n ...state.styles.arrow,\n ...mapToStyles({\n ...commonStyles,\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets,\n }),\n };\n }\n\n state.attributes.popper = {\n ...state.attributes.popper,\n 'data-popper-placement': state.placement,\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type ComputeStylesModifier = Modifier<'computeStyles', Options>;\nexport default ({\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {},\n}: ComputeStylesModifier);\n","// @flow\nimport { popperGenerator, detectOverflow } from './createPopper';\n\nimport eventListeners from './modifiers/eventListeners';\nimport popperOffsets from './modifiers/popperOffsets';\nimport computeStyles from './modifiers/computeStyles';\nimport applyStyles from './modifiers/applyStyles';\n\nexport type * from './types';\n\nconst defaultModifiers = [\n eventListeners,\n popperOffsets,\n computeStyles,\n applyStyles,\n];\n\nconst createPopper = popperGenerator({ defaultModifiers });\n\n// eslint-disable-next-line import/no-unused-modules\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };\n","// @flow\nimport type { ModifierArguments, Modifier } from '../types';\nimport computeOffsets from '../utils/computeOffsets';\n\nfunction popperOffsets({ state, name }: ModifierArguments<{||}>) {\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement,\n });\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type PopperOffsetsModifier = Modifier<'popperOffsets', {||}>;\nexport default ({\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {},\n}: PopperOffsetsModifier);\n","// @flow\nimport type { Modifier, ModifierArguments } from '../types';\nimport getNodeName from '../dom-utils/getNodeName';\nimport { isHTMLElement } from '../dom-utils/instanceOf';\n\n// This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles({ state }: ModifierArguments<{||}>) {\n Object.keys(state.elements).forEach((name) => {\n const style = state.styles[name] || {};\n\n const attributes = state.attributes[name] || {};\n const element = state.elements[name];\n\n // arrow is optional + virtual elements\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n Object.assign(element.style, style);\n\n Object.keys(attributes).forEach((name) => {\n const value = attributes[name];\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect({ state }: ModifierArguments<{||}>) {\n const initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0',\n },\n arrow: {\n position: 'absolute',\n },\n reference: {},\n };\n\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return () => {\n Object.keys(state.elements).forEach((name) => {\n const element = state.elements[name];\n const attributes = state.attributes[name] || {};\n\n const styleProperties = Object.keys(\n state.styles.hasOwnProperty(name)\n ? state.styles[name]\n : initialStyles[name]\n );\n\n // Set all values to an empty string to unset them\n const style = styleProperties.reduce((style, property) => {\n style[property] = '';\n return style;\n }, {});\n\n // arrow is optional + virtual elements\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n\n Object.keys(attributes).forEach((attribute) => {\n element.removeAttribute(attribute);\n });\n });\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type ApplyStylesModifier = Modifier<'applyStyles', {||}>;\nexport default ({\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect,\n requires: ['computeStyles'],\n}: ApplyStylesModifier);\n","// @flow\nimport type { State, SideObject, Padding, PositioningStrategy } from '../types';\nimport type { Placement, Boundary, RootBoundary, Context } from '../enums';\nimport getClippingRect from '../dom-utils/getClippingRect';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport getBoundingClientRect from '../dom-utils/getBoundingClientRect';\nimport computeOffsets from './computeOffsets';\nimport rectToClientRect from './rectToClientRect';\nimport {\n clippingParents,\n reference,\n popper,\n bottom,\n top,\n right,\n basePlacements,\n viewport,\n} from '../enums';\nimport { isElement } from '../dom-utils/instanceOf';\nimport mergePaddingObject from './mergePaddingObject';\nimport expandToHashMap from './expandToHashMap';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n placement: Placement,\n strategy: PositioningStrategy,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n elementContext: Context,\n altBoundary: boolean,\n padding: Padding,\n};\n\nexport default function detectOverflow(\n state: State,\n options: $Shape<Options> = {}\n): SideObject {\n const {\n placement = state.placement,\n strategy = state.strategy,\n boundary = clippingParents,\n rootBoundary = viewport,\n elementContext = popper,\n altBoundary = false,\n padding = 0,\n } = options;\n\n const paddingObject = mergePaddingObject(\n typeof padding !== 'number'\n ? padding\n : expandToHashMap(padding, basePlacements)\n );\n\n const altContext = elementContext === popper ? reference : popper;\n\n const popperRect = state.rects.popper;\n const element = state.elements[altBoundary ? altContext : elementContext];\n\n const clippingClientRect = getClippingRect(\n isElement(element)\n ? element\n : element.contextElement || getDocumentElement(state.elements.popper),\n boundary,\n rootBoundary,\n strategy\n );\n\n const referenceClientRect = getBoundingClientRect(state.elements.reference);\n\n const popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement,\n });\n\n const popperClientRect = rectToClientRect({\n ...popperRect,\n ...popperOffsets,\n });\n\n const elementClientRect =\n elementContext === popper ? popperClientRect : referenceClientRect;\n\n // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n const overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom:\n elementClientRect.bottom -\n clippingClientRect.bottom +\n paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right:\n elementClientRect.right - clippingClientRect.right + paddingObject.right,\n };\n\n const offsetData = state.modifiersData.offset;\n\n // Offsets can be applied only to the popper element\n if (elementContext === popper && offsetData) {\n const offset = offsetData[placement];\n\n Object.keys(overflowOffsets).forEach((key) => {\n const multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n const axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}\n","// @flow\n\nexport default function expandToHashMap<\n T: number | string | boolean,\n K: string\n>(value: T, keys: Array<K>): { [key: string]: T } {\n return keys.reduce((hashMap, key) => {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}\n","// @flow\nimport type { SideObject } from '../types';\nimport getFreshSideObject from './getFreshSideObject';\n\nexport default function mergePaddingObject(\n paddingObject: $Shape<SideObject>\n): SideObject {\n return {\n ...getFreshSideObject(),\n ...paddingObject,\n };\n}\n","// @flow\nimport type { SideObject } from '../types';\n\nexport default function getFreshSideObject(): SideObject {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n };\n}\n"],"names":["getWindow","node","window","toString","ownerDocument","defaultView","isElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","max","Math","min","round","getUAString","uaData","navigator","userAgentData","brands","Array","isArray","map","item","brand","version","join","userAgent","isLayoutViewport","test","getBoundingClientRect","element","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","offsetWidth","width","offsetHeight","height","visualViewport","addVisualOffsets","x","left","offsetLeft","y","top","offsetTop","right","bottom","getWindowScroll","win","scrollLeft","pageXOffset","scrollTop","pageYOffset","getNodeName","nodeName","toLowerCase","getDocumentElement","document","documentElement","getWindowScrollBarX","getComputedStyle","isScrollParent","overflow","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","rect","isElementScaled","scroll","offsets","clientLeft","clientTop","getParentNode","assignedSlot","parentNode","host","getScrollParent","indexOf","body","listScrollParents","list","scrollParent","isBody","_element$ownerDocumen","target","concat","updatedList","isTableElement","getTrueOffsetParent","position","getOffsetParent","isFirefox","currentNode","css","transform","perspective","contain","willChange","filter","getContainingBlock","basePlacements","end","viewport","popper","modifierPhases","order","modifiers","Map","visited","Set","result","sort","modifier","add","name","requires","requiresIfExists","forEach","dep","has","depModifier","get","push","set","rectToClientRect","getClientRectFromMixedType","clippingParent","strategy","html","clientWidth","clientHeight","layoutViewport","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","direction","getDocumentRect","getClippingParents","clippingParents","clipperElement","parent","child","rootNode","getRootNode","contains","next","isSameNode","getBasePlacement","placement","split","getVariation","computeOffsets","reference","basePlacement","variation","commonX","commonY","mainAxis","getMainAxisFromPlacement","len","DEFAULT_OPTIONS","areValidElements","args","some","popperGenerator","generatorOptions","defaultModifiers","defaultOptions","options","fn","pending","state","orderedModifiers","modifiersData","elements","attributes","styles","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","merged","reduce","acc","phase","orderModifiers","current","existing","data","Object","keys","key","m","enabled","effect","cleanupFn","noopFn","update","forceUpdate","rects","abs","reset","index","length","Promise","resolve","then","undefined","destroy","onFirstUpdate","passive","unsetSides","mapToStyles","popperRect","gpuAcceleration","adaptive","roundOffsets","hasX","hasOwnProperty","hasY","sideX","sideY","heightProp","widthProp","commonStyles","dpr","devicePixelRatio","roundOffsetsByDPR","resize","addEventListener","removeEventListener","popperOffsets","arrow","style","assign","value","removeAttribute","setAttribute","initialStyles","margin","property","attribute","createPopper","boundary","rootBoundary","elementContext","altBoundary","padding","paddingObject","mergePaddingObject","hashMap","altContext","clippingClientRect","mainClippingParents","firstClippingParent","clippingRect","accRect","getClippingRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","offset","multiply","axis"],"mappings":"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"} \ No newline at end of file diff --git a/static/javascripts/popperjs/popper.js b/static/javascripts/popperjs/popper.js new file mode 100644 index 000000000..a00f13995 --- /dev/null +++ b/static/javascripts/popperjs/popper.js @@ -0,0 +1,1825 @@ +/** + * @popperjs/core v2.11.8 - MIT License + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Popper = {})); +}(this, (function (exports) { 'use strict'; + + function getWindow(node) { + if (node == null) { + return window; + } + + if (node.toString() !== '[object Window]') { + var ownerDocument = node.ownerDocument; + return ownerDocument ? ownerDocument.defaultView || window : window; + } + + return node; + } + + function isElement(node) { + var OwnElement = getWindow(node).Element; + return node instanceof OwnElement || node instanceof Element; + } + + function isHTMLElement(node) { + var OwnElement = getWindow(node).HTMLElement; + return node instanceof OwnElement || node instanceof HTMLElement; + } + + function isShadowRoot(node) { + // IE 11 has no ShadowRoot + if (typeof ShadowRoot === 'undefined') { + return false; + } + + var OwnElement = getWindow(node).ShadowRoot; + return node instanceof OwnElement || node instanceof ShadowRoot; + } + + var max = Math.max; + var min = Math.min; + var round = Math.round; + + function getUAString() { + var uaData = navigator.userAgentData; + + if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) { + return uaData.brands.map(function (item) { + return item.brand + "/" + item.version; + }).join(' '); + } + + return navigator.userAgent; + } + + function isLayoutViewport() { + return !/^((?!chrome|android).)*safari/i.test(getUAString()); + } + + function getBoundingClientRect(element, includeScale, isFixedStrategy) { + if (includeScale === void 0) { + includeScale = false; + } + + if (isFixedStrategy === void 0) { + isFixedStrategy = false; + } + + var clientRect = element.getBoundingClientRect(); + var scaleX = 1; + var scaleY = 1; + + if (includeScale && isHTMLElement(element)) { + scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1; + scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1; + } + + var _ref = isElement(element) ? getWindow(element) : window, + visualViewport = _ref.visualViewport; + + var addVisualOffsets = !isLayoutViewport() && isFixedStrategy; + var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX; + var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY; + var width = clientRect.width / scaleX; + var height = clientRect.height / scaleY; + return { + width: width, + height: height, + top: y, + right: x + width, + bottom: y + height, + left: x, + x: x, + y: y + }; + } + + function getWindowScroll(node) { + var win = getWindow(node); + var scrollLeft = win.pageXOffset; + var scrollTop = win.pageYOffset; + return { + scrollLeft: scrollLeft, + scrollTop: scrollTop + }; + } + + function getHTMLElementScroll(element) { + return { + scrollLeft: element.scrollLeft, + scrollTop: element.scrollTop + }; + } + + function getNodeScroll(node) { + if (node === getWindow(node) || !isHTMLElement(node)) { + return getWindowScroll(node); + } else { + return getHTMLElementScroll(node); + } + } + + function getNodeName(element) { + return element ? (element.nodeName || '').toLowerCase() : null; + } + + function getDocumentElement(element) { + // $FlowFixMe[incompatible-return]: assume body is always available + return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing] + element.document) || window.document).documentElement; + } + + function getWindowScrollBarX(element) { + // If <html> has a CSS width greater than the viewport, then this will be + // incorrect for RTL. + // Popper 1 is broken in this case and never had a bug report so let's assume + // it's not an issue. I don't think anyone ever specifies width on <html> + // anyway. + // Browsers where the left scrollbar doesn't cause an issue report `0` for + // this (e.g. Edge 2019, IE11, Safari) + return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft; + } + + function getComputedStyle(element) { + return getWindow(element).getComputedStyle(element); + } + + function isScrollParent(element) { + // Firefox wants us to check `-x` and `-y` variations as well + var _getComputedStyle = getComputedStyle(element), + overflow = _getComputedStyle.overflow, + overflowX = _getComputedStyle.overflowX, + overflowY = _getComputedStyle.overflowY; + + return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); + } + + function isElementScaled(element) { + var rect = element.getBoundingClientRect(); + var scaleX = round(rect.width) / element.offsetWidth || 1; + var scaleY = round(rect.height) / element.offsetHeight || 1; + return scaleX !== 1 || scaleY !== 1; + } // Returns the composite rect of an element relative to its offsetParent. + // Composite means it takes into account transforms as well as layout. + + + function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { + if (isFixed === void 0) { + isFixed = false; + } + + var isOffsetParentAnElement = isHTMLElement(offsetParent); + var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent); + var documentElement = getDocumentElement(offsetParent); + var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed); + var scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + var offsets = { + x: 0, + y: 0 + }; + + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078 + isScrollParent(documentElement)) { + scroll = getNodeScroll(offsetParent); + } + + if (isHTMLElement(offsetParent)) { + offsets = getBoundingClientRect(offsetParent, true); + offsets.x += offsetParent.clientLeft; + offsets.y += offsetParent.clientTop; + } else if (documentElement) { + offsets.x = getWindowScrollBarX(documentElement); + } + } + + return { + x: rect.left + scroll.scrollLeft - offsets.x, + y: rect.top + scroll.scrollTop - offsets.y, + width: rect.width, + height: rect.height + }; + } + + // means it doesn't take into account transforms. + + function getLayoutRect(element) { + var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed. + // Fixes https://github.com/popperjs/popper-core/issues/1223 + + var width = element.offsetWidth; + var height = element.offsetHeight; + + if (Math.abs(clientRect.width - width) <= 1) { + width = clientRect.width; + } + + if (Math.abs(clientRect.height - height) <= 1) { + height = clientRect.height; + } + + return { + x: element.offsetLeft, + y: element.offsetTop, + width: width, + height: height + }; + } + + function getParentNode(element) { + if (getNodeName(element) === 'html') { + return element; + } + + return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle + // $FlowFixMe[incompatible-return] + // $FlowFixMe[prop-missing] + element.assignedSlot || // step into the shadow DOM of the parent of a slotted node + element.parentNode || ( // DOM Element detected + isShadowRoot(element) ? element.host : null) || // ShadowRoot detected + // $FlowFixMe[incompatible-call]: HTMLElement is a Node + getDocumentElement(element) // fallback + + ); + } + + function getScrollParent(node) { + if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) { + // $FlowFixMe[incompatible-return]: assume body is always available + return node.ownerDocument.body; + } + + if (isHTMLElement(node) && isScrollParent(node)) { + return node; + } + + return getScrollParent(getParentNode(node)); + } + + /* + given a DOM element, return the list of all scroll parents, up the list of ancesors + until we get to the top window object. This list is what we attach scroll listeners + to, because if any of these parent elements scroll, we'll need to re-calculate the + reference element's position. + */ + + function listScrollParents(element, list) { + var _element$ownerDocumen; + + if (list === void 0) { + list = []; + } + + var scrollParent = getScrollParent(element); + var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body); + var win = getWindow(scrollParent); + var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent; + var updatedList = list.concat(target); + return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here + updatedList.concat(listScrollParents(getParentNode(target))); + } + + function isTableElement(element) { + return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0; + } + + function getTrueOffsetParent(element) { + if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837 + getComputedStyle(element).position === 'fixed') { + return null; + } + + return element.offsetParent; + } // `.offsetParent` reports `null` for fixed elements, while absolute elements + // return the containing block + + + function getContainingBlock(element) { + var isFirefox = /firefox/i.test(getUAString()); + var isIE = /Trident/i.test(getUAString()); + + if (isIE && isHTMLElement(element)) { + // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport + var elementCss = getComputedStyle(element); + + if (elementCss.position === 'fixed') { + return null; + } + } + + var currentNode = getParentNode(element); + + if (isShadowRoot(currentNode)) { + currentNode = currentNode.host; + } + + while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) { + var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that + // create a containing block. + // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block + + if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') { + return currentNode; + } else { + currentNode = currentNode.parentNode; + } + } + + return null; + } // Gets the closest ancestor positioned element. Handles some edge cases, + // such as table ancestors and cross browser bugs. + + + function getOffsetParent(element) { + var window = getWindow(element); + var offsetParent = getTrueOffsetParent(element); + + while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') { + offsetParent = getTrueOffsetParent(offsetParent); + } + + if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) { + return window; + } + + return offsetParent || getContainingBlock(element) || window; + } + + var top = 'top'; + var bottom = 'bottom'; + var right = 'right'; + var left = 'left'; + var auto = 'auto'; + var basePlacements = [top, bottom, right, left]; + var start = 'start'; + var end = 'end'; + var clippingParents = 'clippingParents'; + var viewport = 'viewport'; + var popper = 'popper'; + var reference = 'reference'; + var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) { + return acc.concat([placement + "-" + start, placement + "-" + end]); + }, []); + var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) { + return acc.concat([placement, placement + "-" + start, placement + "-" + end]); + }, []); // modifiers that need to read the DOM + + var beforeRead = 'beforeRead'; + var read = 'read'; + var afterRead = 'afterRead'; // pure-logic modifiers + + var beforeMain = 'beforeMain'; + var main = 'main'; + var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state) + + var beforeWrite = 'beforeWrite'; + var write = 'write'; + var afterWrite = 'afterWrite'; + var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite]; + + function order(modifiers) { + var map = new Map(); + var visited = new Set(); + var result = []; + modifiers.forEach(function (modifier) { + map.set(modifier.name, modifier); + }); // On visiting object, check for its dependencies and visit them recursively + + function sort(modifier) { + visited.add(modifier.name); + var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []); + requires.forEach(function (dep) { + if (!visited.has(dep)) { + var depModifier = map.get(dep); + + if (depModifier) { + sort(depModifier); + } + } + }); + result.push(modifier); + } + + modifiers.forEach(function (modifier) { + if (!visited.has(modifier.name)) { + // check for visited object + sort(modifier); + } + }); + return result; + } + + function orderModifiers(modifiers) { + // order based on dependencies + var orderedModifiers = order(modifiers); // order based on phase + + return modifierPhases.reduce(function (acc, phase) { + return acc.concat(orderedModifiers.filter(function (modifier) { + return modifier.phase === phase; + })); + }, []); + } + + function debounce(fn) { + var pending; + return function () { + if (!pending) { + pending = new Promise(function (resolve) { + Promise.resolve().then(function () { + pending = undefined; + resolve(fn()); + }); + }); + } + + return pending; + }; + } + + function mergeByName(modifiers) { + var merged = modifiers.reduce(function (merged, current) { + var existing = merged[current.name]; + merged[current.name] = existing ? Object.assign({}, existing, current, { + options: Object.assign({}, existing.options, current.options), + data: Object.assign({}, existing.data, current.data) + }) : current; + return merged; + }, {}); // IE11 does not support Object.values + + return Object.keys(merged).map(function (key) { + return merged[key]; + }); + } + + function getViewportRect(element, strategy) { + var win = getWindow(element); + var html = getDocumentElement(element); + var visualViewport = win.visualViewport; + var width = html.clientWidth; + var height = html.clientHeight; + var x = 0; + var y = 0; + + if (visualViewport) { + width = visualViewport.width; + height = visualViewport.height; + var layoutViewport = isLayoutViewport(); + + if (layoutViewport || !layoutViewport && strategy === 'fixed') { + x = visualViewport.offsetLeft; + y = visualViewport.offsetTop; + } + } + + return { + width: width, + height: height, + x: x + getWindowScrollBarX(element), + y: y + }; + } + + // of the `<html>` and `<body>` rect bounds if horizontally scrollable + + function getDocumentRect(element) { + var _element$ownerDocumen; + + var html = getDocumentElement(element); + var winScroll = getWindowScroll(element); + var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body; + var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0); + var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0); + var x = -winScroll.scrollLeft + getWindowScrollBarX(element); + var y = -winScroll.scrollTop; + + if (getComputedStyle(body || html).direction === 'rtl') { + x += max(html.clientWidth, body ? body.clientWidth : 0) - width; + } + + return { + width: width, + height: height, + x: x, + y: y + }; + } + + function contains(parent, child) { + var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method + + if (parent.contains(child)) { + return true; + } // then fallback to custom implementation with Shadow DOM support + else if (rootNode && isShadowRoot(rootNode)) { + var next = child; + + do { + if (next && parent.isSameNode(next)) { + return true; + } // $FlowFixMe[prop-missing]: need a better way to handle this... + + + next = next.parentNode || next.host; + } while (next); + } // Give up, the result is false + + + return false; + } + + function rectToClientRect(rect) { + return Object.assign({}, rect, { + left: rect.x, + top: rect.y, + right: rect.x + rect.width, + bottom: rect.y + rect.height + }); + } + + function getInnerBoundingClientRect(element, strategy) { + var rect = getBoundingClientRect(element, false, strategy === 'fixed'); + rect.top = rect.top + element.clientTop; + rect.left = rect.left + element.clientLeft; + rect.bottom = rect.top + element.clientHeight; + rect.right = rect.left + element.clientWidth; + rect.width = element.clientWidth; + rect.height = element.clientHeight; + rect.x = rect.left; + rect.y = rect.top; + return rect; + } + + function getClientRectFromMixedType(element, clippingParent, strategy) { + return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element))); + } // A "clipping parent" is an overflowable container with the characteristic of + // clipping (or hiding) overflowing elements with a position different from + // `initial` + + + function getClippingParents(element) { + var clippingParents = listScrollParents(getParentNode(element)); + var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0; + var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element; + + if (!isElement(clipperElement)) { + return []; + } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414 + + + return clippingParents.filter(function (clippingParent) { + return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body'; + }); + } // Gets the maximum area that the element is visible in due to any number of + // clipping parents + + + function getClippingRect(element, boundary, rootBoundary, strategy) { + var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary); + var clippingParents = [].concat(mainClippingParents, [rootBoundary]); + var firstClippingParent = clippingParents[0]; + var clippingRect = clippingParents.reduce(function (accRect, clippingParent) { + var rect = getClientRectFromMixedType(element, clippingParent, strategy); + accRect.top = max(rect.top, accRect.top); + accRect.right = min(rect.right, accRect.right); + accRect.bottom = min(rect.bottom, accRect.bottom); + accRect.left = max(rect.left, accRect.left); + return accRect; + }, getClientRectFromMixedType(element, firstClippingParent, strategy)); + clippingRect.width = clippingRect.right - clippingRect.left; + clippingRect.height = clippingRect.bottom - clippingRect.top; + clippingRect.x = clippingRect.left; + clippingRect.y = clippingRect.top; + return clippingRect; + } + + function getBasePlacement(placement) { + return placement.split('-')[0]; + } + + function getVariation(placement) { + return placement.split('-')[1]; + } + + function getMainAxisFromPlacement(placement) { + return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y'; + } + + function computeOffsets(_ref) { + var reference = _ref.reference, + element = _ref.element, + placement = _ref.placement; + var basePlacement = placement ? getBasePlacement(placement) : null; + var variation = placement ? getVariation(placement) : null; + var commonX = reference.x + reference.width / 2 - element.width / 2; + var commonY = reference.y + reference.height / 2 - element.height / 2; + var offsets; + + switch (basePlacement) { + case top: + offsets = { + x: commonX, + y: reference.y - element.height + }; + break; + + case bottom: + offsets = { + x: commonX, + y: reference.y + reference.height + }; + break; + + case right: + offsets = { + x: reference.x + reference.width, + y: commonY + }; + break; + + case left: + offsets = { + x: reference.x - element.width, + y: commonY + }; + break; + + default: + offsets = { + x: reference.x, + y: reference.y + }; + } + + var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null; + + if (mainAxis != null) { + var len = mainAxis === 'y' ? 'height' : 'width'; + + switch (variation) { + case start: + offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2); + break; + + case end: + offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2); + break; + } + } + + return offsets; + } + + function getFreshSideObject() { + return { + top: 0, + right: 0, + bottom: 0, + left: 0 + }; + } + + function mergePaddingObject(paddingObject) { + return Object.assign({}, getFreshSideObject(), paddingObject); + } + + function expandToHashMap(value, keys) { + return keys.reduce(function (hashMap, key) { + hashMap[key] = value; + return hashMap; + }, {}); + } + + function detectOverflow(state, options) { + if (options === void 0) { + options = {}; + } + + var _options = options, + _options$placement = _options.placement, + placement = _options$placement === void 0 ? state.placement : _options$placement, + _options$strategy = _options.strategy, + strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, + _options$boundary = _options.boundary, + boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, + _options$rootBoundary = _options.rootBoundary, + rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, + _options$elementConte = _options.elementContext, + elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, + _options$altBoundary = _options.altBoundary, + altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, + _options$padding = _options.padding, + padding = _options$padding === void 0 ? 0 : _options$padding; + var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements)); + var altContext = elementContext === popper ? reference : popper; + var popperRect = state.rects.popper; + var element = state.elements[altBoundary ? altContext : elementContext]; + var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy); + var referenceClientRect = getBoundingClientRect(state.elements.reference); + var popperOffsets = computeOffsets({ + reference: referenceClientRect, + element: popperRect, + strategy: 'absolute', + placement: placement + }); + var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets)); + var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect + // 0 or negative = within the clipping rect + + var overflowOffsets = { + top: clippingClientRect.top - elementClientRect.top + paddingObject.top, + bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom, + left: clippingClientRect.left - elementClientRect.left + paddingObject.left, + right: elementClientRect.right - clippingClientRect.right + paddingObject.right + }; + var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element + + if (elementContext === popper && offsetData) { + var offset = offsetData[placement]; + Object.keys(overflowOffsets).forEach(function (key) { + var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1; + var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x'; + overflowOffsets[key] += offset[axis] * multiply; + }); + } + + return overflowOffsets; + } + + var DEFAULT_OPTIONS = { + placement: 'bottom', + modifiers: [], + strategy: 'absolute' + }; + + function areValidElements() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return !args.some(function (element) { + return !(element && typeof element.getBoundingClientRect === 'function'); + }); + } + + function popperGenerator(generatorOptions) { + if (generatorOptions === void 0) { + generatorOptions = {}; + } + + var _generatorOptions = generatorOptions, + _generatorOptions$def = _generatorOptions.defaultModifiers, + defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, + _generatorOptions$def2 = _generatorOptions.defaultOptions, + defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2; + return function createPopper(reference, popper, options) { + if (options === void 0) { + options = defaultOptions; + } + + var state = { + placement: 'bottom', + orderedModifiers: [], + options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions), + modifiersData: {}, + elements: { + reference: reference, + popper: popper + }, + attributes: {}, + styles: {} + }; + var effectCleanupFns = []; + var isDestroyed = false; + var instance = { + state: state, + setOptions: function setOptions(setOptionsAction) { + var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction; + cleanupModifierEffects(); + state.options = Object.assign({}, defaultOptions, state.options, options); + state.scrollParents = { + reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [], + popper: listScrollParents(popper) + }; // Orders the modifiers based on their dependencies and `phase` + // properties + + var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers + + state.orderedModifiers = orderedModifiers.filter(function (m) { + return m.enabled; + }); + runModifierEffects(); + return instance.update(); + }, + // Sync update – it will always be executed, even if not necessary. This + // is useful for low frequency updates where sync behavior simplifies the + // logic. + // For high frequency updates (e.g. `resize` and `scroll` events), always + // prefer the async Popper#update method + forceUpdate: function forceUpdate() { + if (isDestroyed) { + return; + } + + var _state$elements = state.elements, + reference = _state$elements.reference, + popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements + // anymore + + if (!areValidElements(reference, popper)) { + return; + } // Store the reference and popper rects to be read by modifiers + + + state.rects = { + reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'), + popper: getLayoutRect(popper) + }; // Modifiers have the ability to reset the current update cycle. The + // most common use case for this is the `flip` modifier changing the + // placement, which then needs to re-run all the modifiers, because the + // logic was previously ran for the previous placement and is therefore + // stale/incorrect + + state.reset = false; + state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier + // is filled with the initial data specified by the modifier. This means + // it doesn't persist and is fresh on each update. + // To ensure persistent data, use `${name}#persistent` + + state.orderedModifiers.forEach(function (modifier) { + return state.modifiersData[modifier.name] = Object.assign({}, modifier.data); + }); + + for (var index = 0; index < state.orderedModifiers.length; index++) { + if (state.reset === true) { + state.reset = false; + index = -1; + continue; + } + + var _state$orderedModifie = state.orderedModifiers[index], + fn = _state$orderedModifie.fn, + _state$orderedModifie2 = _state$orderedModifie.options, + _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, + name = _state$orderedModifie.name; + + if (typeof fn === 'function') { + state = fn({ + state: state, + options: _options, + name: name, + instance: instance + }) || state; + } + } + }, + // Async and optimistically optimized update – it will not be executed if + // not necessary (debounced to run at most once-per-tick) + update: debounce(function () { + return new Promise(function (resolve) { + instance.forceUpdate(); + resolve(state); + }); + }), + destroy: function destroy() { + cleanupModifierEffects(); + isDestroyed = true; + } + }; + + if (!areValidElements(reference, popper)) { + return instance; + } + + instance.setOptions(options).then(function (state) { + if (!isDestroyed && options.onFirstUpdate) { + options.onFirstUpdate(state); + } + }); // Modifiers have the ability to execute arbitrary code before the first + // update cycle runs. They will be executed in the same order as the update + // cycle. This is useful when a modifier adds some persistent data that + // other modifiers need to use, but the modifier is run after the dependent + // one. + + function runModifierEffects() { + state.orderedModifiers.forEach(function (_ref) { + var name = _ref.name, + _ref$options = _ref.options, + options = _ref$options === void 0 ? {} : _ref$options, + effect = _ref.effect; + + if (typeof effect === 'function') { + var cleanupFn = effect({ + state: state, + name: name, + instance: instance, + options: options + }); + + var noopFn = function noopFn() {}; + + effectCleanupFns.push(cleanupFn || noopFn); + } + }); + } + + function cleanupModifierEffects() { + effectCleanupFns.forEach(function (fn) { + return fn(); + }); + effectCleanupFns = []; + } + + return instance; + }; + } + + var passive = { + passive: true + }; + + function effect$2(_ref) { + var state = _ref.state, + instance = _ref.instance, + options = _ref.options; + var _options$scroll = options.scroll, + scroll = _options$scroll === void 0 ? true : _options$scroll, + _options$resize = options.resize, + resize = _options$resize === void 0 ? true : _options$resize; + var window = getWindow(state.elements.popper); + var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper); + + if (scroll) { + scrollParents.forEach(function (scrollParent) { + scrollParent.addEventListener('scroll', instance.update, passive); + }); + } + + if (resize) { + window.addEventListener('resize', instance.update, passive); + } + + return function () { + if (scroll) { + scrollParents.forEach(function (scrollParent) { + scrollParent.removeEventListener('scroll', instance.update, passive); + }); + } + + if (resize) { + window.removeEventListener('resize', instance.update, passive); + } + }; + } // eslint-disable-next-line import/no-unused-modules + + + var eventListeners = { + name: 'eventListeners', + enabled: true, + phase: 'write', + fn: function fn() {}, + effect: effect$2, + data: {} + }; + + function popperOffsets(_ref) { + var state = _ref.state, + name = _ref.name; + // Offsets are the actual position the popper needs to have to be + // properly positioned near its reference element + // This is the most basic placement, and will be adjusted by + // the modifiers in the next step + state.modifiersData[name] = computeOffsets({ + reference: state.rects.reference, + element: state.rects.popper, + strategy: 'absolute', + placement: state.placement + }); + } // eslint-disable-next-line import/no-unused-modules + + + var popperOffsets$1 = { + name: 'popperOffsets', + enabled: true, + phase: 'read', + fn: popperOffsets, + data: {} + }; + + var unsetSides = { + top: 'auto', + right: 'auto', + bottom: 'auto', + left: 'auto' + }; // Round the offsets to the nearest suitable subpixel based on the DPR. + // Zooming can change the DPR, but it seems to report a value that will + // cleanly divide the values into the appropriate subpixels. + + function roundOffsetsByDPR(_ref, win) { + var x = _ref.x, + y = _ref.y; + var dpr = win.devicePixelRatio || 1; + return { + x: round(x * dpr) / dpr || 0, + y: round(y * dpr) / dpr || 0 + }; + } + + function mapToStyles(_ref2) { + var _Object$assign2; + + var popper = _ref2.popper, + popperRect = _ref2.popperRect, + placement = _ref2.placement, + variation = _ref2.variation, + offsets = _ref2.offsets, + position = _ref2.position, + gpuAcceleration = _ref2.gpuAcceleration, + adaptive = _ref2.adaptive, + roundOffsets = _ref2.roundOffsets, + isFixed = _ref2.isFixed; + var _offsets$x = offsets.x, + x = _offsets$x === void 0 ? 0 : _offsets$x, + _offsets$y = offsets.y, + y = _offsets$y === void 0 ? 0 : _offsets$y; + + var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({ + x: x, + y: y + }) : { + x: x, + y: y + }; + + x = _ref3.x; + y = _ref3.y; + var hasX = offsets.hasOwnProperty('x'); + var hasY = offsets.hasOwnProperty('y'); + var sideX = left; + var sideY = top; + var win = window; + + if (adaptive) { + var offsetParent = getOffsetParent(popper); + var heightProp = 'clientHeight'; + var widthProp = 'clientWidth'; + + if (offsetParent === getWindow(popper)) { + offsetParent = getDocumentElement(popper); + + if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') { + heightProp = 'scrollHeight'; + widthProp = 'scrollWidth'; + } + } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it + + + offsetParent = offsetParent; + + if (placement === top || (placement === left || placement === right) && variation === end) { + sideY = bottom; + var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing] + offsetParent[heightProp]; + y -= offsetY - popperRect.height; + y *= gpuAcceleration ? 1 : -1; + } + + if (placement === left || (placement === top || placement === bottom) && variation === end) { + sideX = right; + var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing] + offsetParent[widthProp]; + x -= offsetX - popperRect.width; + x *= gpuAcceleration ? 1 : -1; + } + } + + var commonStyles = Object.assign({ + position: position + }, adaptive && unsetSides); + + var _ref4 = roundOffsets === true ? roundOffsetsByDPR({ + x: x, + y: y + }, getWindow(popper)) : { + x: x, + y: y + }; + + x = _ref4.x; + y = _ref4.y; + + if (gpuAcceleration) { + var _Object$assign; + + return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign)); + } + + return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2)); + } + + function computeStyles(_ref5) { + var state = _ref5.state, + options = _ref5.options; + var _options$gpuAccelerat = options.gpuAcceleration, + gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, + _options$adaptive = options.adaptive, + adaptive = _options$adaptive === void 0 ? true : _options$adaptive, + _options$roundOffsets = options.roundOffsets, + roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets; + var commonStyles = { + placement: getBasePlacement(state.placement), + variation: getVariation(state.placement), + popper: state.elements.popper, + popperRect: state.rects.popper, + gpuAcceleration: gpuAcceleration, + isFixed: state.options.strategy === 'fixed' + }; + + if (state.modifiersData.popperOffsets != null) { + state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.popperOffsets, + position: state.options.strategy, + adaptive: adaptive, + roundOffsets: roundOffsets + }))); + } + + if (state.modifiersData.arrow != null) { + state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.arrow, + position: 'absolute', + adaptive: false, + roundOffsets: roundOffsets + }))); + } + + state.attributes.popper = Object.assign({}, state.attributes.popper, { + 'data-popper-placement': state.placement + }); + } // eslint-disable-next-line import/no-unused-modules + + + var computeStyles$1 = { + name: 'computeStyles', + enabled: true, + phase: 'beforeWrite', + fn: computeStyles, + data: {} + }; + + // and applies them to the HTMLElements such as popper and arrow + + function applyStyles(_ref) { + var state = _ref.state; + Object.keys(state.elements).forEach(function (name) { + var style = state.styles[name] || {}; + var attributes = state.attributes[name] || {}; + var element = state.elements[name]; // arrow is optional + virtual elements + + if (!isHTMLElement(element) || !getNodeName(element)) { + return; + } // Flow doesn't support to extend this property, but it's the most + // effective way to apply styles to an HTMLElement + // $FlowFixMe[cannot-write] + + + Object.assign(element.style, style); + Object.keys(attributes).forEach(function (name) { + var value = attributes[name]; + + if (value === false) { + element.removeAttribute(name); + } else { + element.setAttribute(name, value === true ? '' : value); + } + }); + }); + } + + function effect$1(_ref2) { + var state = _ref2.state; + var initialStyles = { + popper: { + position: state.options.strategy, + left: '0', + top: '0', + margin: '0' + }, + arrow: { + position: 'absolute' + }, + reference: {} + }; + Object.assign(state.elements.popper.style, initialStyles.popper); + state.styles = initialStyles; + + if (state.elements.arrow) { + Object.assign(state.elements.arrow.style, initialStyles.arrow); + } + + return function () { + Object.keys(state.elements).forEach(function (name) { + var element = state.elements[name]; + var attributes = state.attributes[name] || {}; + var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them + + var style = styleProperties.reduce(function (style, property) { + style[property] = ''; + return style; + }, {}); // arrow is optional + virtual elements + + if (!isHTMLElement(element) || !getNodeName(element)) { + return; + } + + Object.assign(element.style, style); + Object.keys(attributes).forEach(function (attribute) { + element.removeAttribute(attribute); + }); + }); + }; + } // eslint-disable-next-line import/no-unused-modules + + + var applyStyles$1 = { + name: 'applyStyles', + enabled: true, + phase: 'write', + fn: applyStyles, + effect: effect$1, + requires: ['computeStyles'] + }; + + function distanceAndSkiddingToXY(placement, rects, offset) { + var basePlacement = getBasePlacement(placement); + var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1; + + var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, { + placement: placement + })) : offset, + skidding = _ref[0], + distance = _ref[1]; + + skidding = skidding || 0; + distance = (distance || 0) * invertDistance; + return [left, right].indexOf(basePlacement) >= 0 ? { + x: distance, + y: skidding + } : { + x: skidding, + y: distance + }; + } + + function offset(_ref2) { + var state = _ref2.state, + options = _ref2.options, + name = _ref2.name; + var _options$offset = options.offset, + offset = _options$offset === void 0 ? [0, 0] : _options$offset; + var data = placements.reduce(function (acc, placement) { + acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset); + return acc; + }, {}); + var _data$state$placement = data[state.placement], + x = _data$state$placement.x, + y = _data$state$placement.y; + + if (state.modifiersData.popperOffsets != null) { + state.modifiersData.popperOffsets.x += x; + state.modifiersData.popperOffsets.y += y; + } + + state.modifiersData[name] = data; + } // eslint-disable-next-line import/no-unused-modules + + + var offset$1 = { + name: 'offset', + enabled: true, + phase: 'main', + requires: ['popperOffsets'], + fn: offset + }; + + var hash$1 = { + left: 'right', + right: 'left', + bottom: 'top', + top: 'bottom' + }; + function getOppositePlacement(placement) { + return placement.replace(/left|right|bottom|top/g, function (matched) { + return hash$1[matched]; + }); + } + + var hash = { + start: 'end', + end: 'start' + }; + function getOppositeVariationPlacement(placement) { + return placement.replace(/start|end/g, function (matched) { + return hash[matched]; + }); + } + + function computeAutoPlacement(state, options) { + if (options === void 0) { + options = {}; + } + + var _options = options, + placement = _options.placement, + boundary = _options.boundary, + rootBoundary = _options.rootBoundary, + padding = _options.padding, + flipVariations = _options.flipVariations, + _options$allowedAutoP = _options.allowedAutoPlacements, + allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP; + var variation = getVariation(placement); + var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) { + return getVariation(placement) === variation; + }) : basePlacements; + var allowedPlacements = placements$1.filter(function (placement) { + return allowedAutoPlacements.indexOf(placement) >= 0; + }); + + if (allowedPlacements.length === 0) { + allowedPlacements = placements$1; + } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions... + + + var overflows = allowedPlacements.reduce(function (acc, placement) { + acc[placement] = detectOverflow(state, { + placement: placement, + boundary: boundary, + rootBoundary: rootBoundary, + padding: padding + })[getBasePlacement(placement)]; + return acc; + }, {}); + return Object.keys(overflows).sort(function (a, b) { + return overflows[a] - overflows[b]; + }); + } + + function getExpandedFallbackPlacements(placement) { + if (getBasePlacement(placement) === auto) { + return []; + } + + var oppositePlacement = getOppositePlacement(placement); + return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)]; + } + + function flip(_ref) { + var state = _ref.state, + options = _ref.options, + name = _ref.name; + + if (state.modifiersData[name]._skip) { + return; + } + + var _options$mainAxis = options.mainAxis, + checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, + _options$altAxis = options.altAxis, + checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, + specifiedFallbackPlacements = options.fallbackPlacements, + padding = options.padding, + boundary = options.boundary, + rootBoundary = options.rootBoundary, + altBoundary = options.altBoundary, + _options$flipVariatio = options.flipVariations, + flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, + allowedAutoPlacements = options.allowedAutoPlacements; + var preferredPlacement = state.options.placement; + var basePlacement = getBasePlacement(preferredPlacement); + var isBasePlacement = basePlacement === preferredPlacement; + var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement)); + var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) { + return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, { + placement: placement, + boundary: boundary, + rootBoundary: rootBoundary, + padding: padding, + flipVariations: flipVariations, + allowedAutoPlacements: allowedAutoPlacements + }) : placement); + }, []); + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var checksMap = new Map(); + var makeFallbackChecks = true; + var firstFittingPlacement = placements[0]; + + for (var i = 0; i < placements.length; i++) { + var placement = placements[i]; + + var _basePlacement = getBasePlacement(placement); + + var isStartVariation = getVariation(placement) === start; + var isVertical = [top, bottom].indexOf(_basePlacement) >= 0; + var len = isVertical ? 'width' : 'height'; + var overflow = detectOverflow(state, { + placement: placement, + boundary: boundary, + rootBoundary: rootBoundary, + altBoundary: altBoundary, + padding: padding + }); + var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top; + + if (referenceRect[len] > popperRect[len]) { + mainVariationSide = getOppositePlacement(mainVariationSide); + } + + var altVariationSide = getOppositePlacement(mainVariationSide); + var checks = []; + + if (checkMainAxis) { + checks.push(overflow[_basePlacement] <= 0); + } + + if (checkAltAxis) { + checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0); + } + + if (checks.every(function (check) { + return check; + })) { + firstFittingPlacement = placement; + makeFallbackChecks = false; + break; + } + + checksMap.set(placement, checks); + } + + if (makeFallbackChecks) { + // `2` may be desired in some cases – research later + var numberOfChecks = flipVariations ? 3 : 1; + + var _loop = function _loop(_i) { + var fittingPlacement = placements.find(function (placement) { + var checks = checksMap.get(placement); + + if (checks) { + return checks.slice(0, _i).every(function (check) { + return check; + }); + } + }); + + if (fittingPlacement) { + firstFittingPlacement = fittingPlacement; + return "break"; + } + }; + + for (var _i = numberOfChecks; _i > 0; _i--) { + var _ret = _loop(_i); + + if (_ret === "break") break; + } + } + + if (state.placement !== firstFittingPlacement) { + state.modifiersData[name]._skip = true; + state.placement = firstFittingPlacement; + state.reset = true; + } + } // eslint-disable-next-line import/no-unused-modules + + + var flip$1 = { + name: 'flip', + enabled: true, + phase: 'main', + fn: flip, + requiresIfExists: ['offset'], + data: { + _skip: false + } + }; + + function getAltAxis(axis) { + return axis === 'x' ? 'y' : 'x'; + } + + function within(min$1, value, max$1) { + return max(min$1, min(value, max$1)); + } + function withinMaxClamp(min, value, max) { + var v = within(min, value, max); + return v > max ? max : v; + } + + function preventOverflow(_ref) { + var state = _ref.state, + options = _ref.options, + name = _ref.name; + var _options$mainAxis = options.mainAxis, + checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, + _options$altAxis = options.altAxis, + checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, + boundary = options.boundary, + rootBoundary = options.rootBoundary, + altBoundary = options.altBoundary, + padding = options.padding, + _options$tether = options.tether, + tether = _options$tether === void 0 ? true : _options$tether, + _options$tetherOffset = options.tetherOffset, + tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset; + var overflow = detectOverflow(state, { + boundary: boundary, + rootBoundary: rootBoundary, + padding: padding, + altBoundary: altBoundary + }); + var basePlacement = getBasePlacement(state.placement); + var variation = getVariation(state.placement); + var isBasePlacement = !variation; + var mainAxis = getMainAxisFromPlacement(basePlacement); + var altAxis = getAltAxis(mainAxis); + var popperOffsets = state.modifiersData.popperOffsets; + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, { + placement: state.placement + })) : tetherOffset; + var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? { + mainAxis: tetherOffsetValue, + altAxis: tetherOffsetValue + } : Object.assign({ + mainAxis: 0, + altAxis: 0 + }, tetherOffsetValue); + var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null; + var data = { + x: 0, + y: 0 + }; + + if (!popperOffsets) { + return; + } + + if (checkMainAxis) { + var _offsetModifierState$; + + var mainSide = mainAxis === 'y' ? top : left; + var altSide = mainAxis === 'y' ? bottom : right; + var len = mainAxis === 'y' ? 'height' : 'width'; + var offset = popperOffsets[mainAxis]; + var min$1 = offset + overflow[mainSide]; + var max$1 = offset - overflow[altSide]; + var additive = tether ? -popperRect[len] / 2 : 0; + var minLen = variation === start ? referenceRect[len] : popperRect[len]; + var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go + // outside the reference bounds + + var arrowElement = state.elements.arrow; + var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : { + width: 0, + height: 0 + }; + var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject(); + var arrowPaddingMin = arrowPaddingObject[mainSide]; + var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want + // to include its full size in the calculation. If the reference is small + // and near the edge of a boundary, the popper can overflow even if the + // reference is not overflowing as well (e.g. virtual elements with no + // width or height) + + var arrowLen = within(0, referenceRect[len], arrowRect[len]); + var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis; + var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis; + var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow); + var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0; + var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0; + var tetherMin = offset + minOffset - offsetModifierValue - clientOffset; + var tetherMax = offset + maxOffset - offsetModifierValue; + var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1); + popperOffsets[mainAxis] = preventedOffset; + data[mainAxis] = preventedOffset - offset; + } + + if (checkAltAxis) { + var _offsetModifierState$2; + + var _mainSide = mainAxis === 'x' ? top : left; + + var _altSide = mainAxis === 'x' ? bottom : right; + + var _offset = popperOffsets[altAxis]; + + var _len = altAxis === 'y' ? 'height' : 'width'; + + var _min = _offset + overflow[_mainSide]; + + var _max = _offset - overflow[_altSide]; + + var isOriginSide = [top, left].indexOf(basePlacement) !== -1; + + var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0; + + var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis; + + var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max; + + var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max); + + popperOffsets[altAxis] = _preventedOffset; + data[altAxis] = _preventedOffset - _offset; + } + + state.modifiersData[name] = data; + } // eslint-disable-next-line import/no-unused-modules + + + var preventOverflow$1 = { + name: 'preventOverflow', + enabled: true, + phase: 'main', + fn: preventOverflow, + requiresIfExists: ['offset'] + }; + + var toPaddingObject = function toPaddingObject(padding, state) { + padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, { + placement: state.placement + })) : padding; + return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements)); + }; + + function arrow(_ref) { + var _state$modifiersData$; + + var state = _ref.state, + name = _ref.name, + options = _ref.options; + var arrowElement = state.elements.arrow; + var popperOffsets = state.modifiersData.popperOffsets; + var basePlacement = getBasePlacement(state.placement); + var axis = getMainAxisFromPlacement(basePlacement); + var isVertical = [left, right].indexOf(basePlacement) >= 0; + var len = isVertical ? 'height' : 'width'; + + if (!arrowElement || !popperOffsets) { + return; + } + + var paddingObject = toPaddingObject(options.padding, state); + var arrowRect = getLayoutRect(arrowElement); + var minProp = axis === 'y' ? top : left; + var maxProp = axis === 'y' ? bottom : right; + var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len]; + var startDiff = popperOffsets[axis] - state.rects.reference[axis]; + var arrowOffsetParent = getOffsetParent(arrowElement); + var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0; + var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is + // outside of the popper bounds + + var min = paddingObject[minProp]; + var max = clientSize - arrowRect[len] - paddingObject[maxProp]; + var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference; + var offset = within(min, center, max); // Prevents breaking syntax highlighting... + + var axisProp = axis; + state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$); + } + + function effect(_ref2) { + var state = _ref2.state, + options = _ref2.options; + var _options$element = options.element, + arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element; + + if (arrowElement == null) { + return; + } // CSS selector + + + if (typeof arrowElement === 'string') { + arrowElement = state.elements.popper.querySelector(arrowElement); + + if (!arrowElement) { + return; + } + } + + if (!contains(state.elements.popper, arrowElement)) { + return; + } + + state.elements.arrow = arrowElement; + } // eslint-disable-next-line import/no-unused-modules + + + var arrow$1 = { + name: 'arrow', + enabled: true, + phase: 'main', + fn: arrow, + effect: effect, + requires: ['popperOffsets'], + requiresIfExists: ['preventOverflow'] + }; + + function getSideOffsets(overflow, rect, preventedOffsets) { + if (preventedOffsets === void 0) { + preventedOffsets = { + x: 0, + y: 0 + }; + } + + return { + top: overflow.top - rect.height - preventedOffsets.y, + right: overflow.right - rect.width + preventedOffsets.x, + bottom: overflow.bottom - rect.height + preventedOffsets.y, + left: overflow.left - rect.width - preventedOffsets.x + }; + } + + function isAnySideFullyClipped(overflow) { + return [top, right, bottom, left].some(function (side) { + return overflow[side] >= 0; + }); + } + + function hide(_ref) { + var state = _ref.state, + name = _ref.name; + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var preventedOffsets = state.modifiersData.preventOverflow; + var referenceOverflow = detectOverflow(state, { + elementContext: 'reference' + }); + var popperAltOverflow = detectOverflow(state, { + altBoundary: true + }); + var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect); + var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets); + var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets); + var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets); + state.modifiersData[name] = { + referenceClippingOffsets: referenceClippingOffsets, + popperEscapeOffsets: popperEscapeOffsets, + isReferenceHidden: isReferenceHidden, + hasPopperEscaped: hasPopperEscaped + }; + state.attributes.popper = Object.assign({}, state.attributes.popper, { + 'data-popper-reference-hidden': isReferenceHidden, + 'data-popper-escaped': hasPopperEscaped + }); + } // eslint-disable-next-line import/no-unused-modules + + + var hide$1 = { + name: 'hide', + enabled: true, + phase: 'main', + requiresIfExists: ['preventOverflow'], + fn: hide + }; + + var defaultModifiers$1 = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1]; + var createPopper$1 = /*#__PURE__*/popperGenerator({ + defaultModifiers: defaultModifiers$1 + }); // eslint-disable-next-line import/no-unused-modules + + var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1]; + var createPopper = /*#__PURE__*/popperGenerator({ + defaultModifiers: defaultModifiers + }); // eslint-disable-next-line import/no-unused-modules + + exports.applyStyles = applyStyles$1; + exports.arrow = arrow$1; + exports.computeStyles = computeStyles$1; + exports.createPopper = createPopper; + exports.createPopperLite = createPopper$1; + exports.defaultModifiers = defaultModifiers; + exports.detectOverflow = detectOverflow; + exports.eventListeners = eventListeners; + exports.flip = flip$1; + exports.hide = hide$1; + exports.offset = offset$1; + exports.popperGenerator = popperGenerator; + exports.popperOffsets = popperOffsets$1; + exports.preventOverflow = preventOverflow$1; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); +//# sourceMappingURL=popper.js.map diff --git a/static/javascripts/popperjs/popper.js.map b/static/javascripts/popperjs/popper.js.map new file mode 100644 index 000000000..ae9f94cb8 --- /dev/null +++ b/static/javascripts/popperjs/popper.js.map @@ -0,0 +1 @@ +{"version":3,"file":"popper.js","sources":["../../src/dom-utils/getWindow.js","../../src/dom-utils/instanceOf.js","../../src/utils/math.js","../../src/utils/userAgent.js","../../src/dom-utils/isLayoutViewport.js","../../src/dom-utils/getBoundingClientRect.js","../../src/dom-utils/getWindowScroll.js","../../src/dom-utils/getHTMLElementScroll.js","../../src/dom-utils/getNodeScroll.js","../../src/dom-utils/getNodeName.js","../../src/dom-utils/getDocumentElement.js","../../src/dom-utils/getWindowScrollBarX.js","../../src/dom-utils/getComputedStyle.js","../../src/dom-utils/isScrollParent.js","../../src/dom-utils/getCompositeRect.js","../../src/dom-utils/getLayoutRect.js","../../src/dom-utils/getParentNode.js","../../src/dom-utils/getScrollParent.js","../../src/dom-utils/listScrollParents.js","../../src/dom-utils/isTableElement.js","../../src/dom-utils/getOffsetParent.js","../../src/enums.js","../../src/utils/orderModifiers.js","../../src/utils/debounce.js","../../src/utils/mergeByName.js","../../src/dom-utils/getViewportRect.js","../../src/dom-utils/getDocumentRect.js","../../src/dom-utils/contains.js","../../src/utils/rectToClientRect.js","../../src/dom-utils/getClippingRect.js","../../src/utils/getBasePlacement.js","../../src/utils/getVariation.js","../../src/utils/getMainAxisFromPlacement.js","../../src/utils/computeOffsets.js","../../src/utils/getFreshSideObject.js","../../src/utils/mergePaddingObject.js","../../src/utils/expandToHashMap.js","../../src/utils/detectOverflow.js","../../src/createPopper.js","../../src/modifiers/eventListeners.js","../../src/modifiers/popperOffsets.js","../../src/modifiers/computeStyles.js","../../src/modifiers/applyStyles.js","../../src/modifiers/offset.js","../../src/utils/getOppositePlacement.js","../../src/utils/getOppositeVariationPlacement.js","../../src/utils/computeAutoPlacement.js","../../src/modifiers/flip.js","../../src/utils/getAltAxis.js","../../src/utils/within.js","../../src/modifiers/preventOverflow.js","../../src/modifiers/arrow.js","../../src/modifiers/hide.js","../../src/popper-lite.js","../../src/popper.js"],"sourcesContent":["// @flow\nimport type { Window } from '../types';\ndeclare function getWindow(node: Node | Window): Window;\n\nexport default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n const ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n","// @flow\nimport getWindow from './getWindow';\n\ndeclare function isElement(node: mixed): boolean %checks(node instanceof\n Element);\nfunction isElement(node) {\n const OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\ndeclare function isHTMLElement(node: mixed): boolean %checks(node instanceof\n HTMLElement);\nfunction isHTMLElement(node) {\n const OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\ndeclare function isShadowRoot(node: mixed): boolean %checks(node instanceof\n ShadowRoot);\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };\n","// @flow\nexport const max = Math.max;\nexport const min = Math.min;\nexport const round = Math.round;\n","// @flow\ntype Navigator = Navigator & { userAgentData?: NavigatorUAData };\n\ninterface NavigatorUAData {\n brands: Array<{ brand: string, version: string }>;\n mobile: boolean;\n platform: string;\n}\n\nexport default function getUAString(): string {\n const uaData = (navigator: Navigator).userAgentData;\n\n if (uaData?.brands && Array.isArray(uaData.brands)) {\n return uaData.brands\n .map((item) => `${item.brand}/${item.version}`)\n .join(' ');\n }\n\n return navigator.userAgent;\n}\n","// @flow\nimport getUAString from '../utils/userAgent';\n\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}\n","// @flow\nimport type { ClientRectObject, VirtualElement } from '../types';\nimport { isElement, isHTMLElement } from './instanceOf';\nimport { round } from '../utils/math';\nimport getWindow from './getWindow';\nimport isLayoutViewport from './isLayoutViewport';\n\nexport default function getBoundingClientRect(\n element: Element | VirtualElement,\n includeScale: boolean = false,\n isFixedStrategy: boolean = false\n): ClientRectObject {\n const clientRect = element.getBoundingClientRect();\n let scaleX = 1;\n let scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX =\n (element: HTMLElement).offsetWidth > 0\n ? round(clientRect.width) / (element: HTMLElement).offsetWidth || 1\n : 1;\n scaleY =\n (element: HTMLElement).offsetHeight > 0\n ? round(clientRect.height) / (element: HTMLElement).offsetHeight || 1\n : 1;\n }\n\n const { visualViewport } = isElement(element) ? getWindow(element) : window;\n const addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n\n const x =\n (clientRect.left +\n (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) /\n scaleX;\n const y =\n (clientRect.top +\n (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) /\n scaleY;\n const width = clientRect.width / scaleX;\n const height = clientRect.height / scaleY;\n\n return {\n width,\n height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x,\n y,\n };\n}\n","// @flow\nimport getWindow from './getWindow';\nimport type { Window } from '../types';\n\nexport default function getWindowScroll(node: Node | Window) {\n const win = getWindow(node);\n const scrollLeft = win.pageXOffset;\n const scrollTop = win.pageYOffset;\n\n return {\n scrollLeft,\n scrollTop,\n };\n}\n","// @flow\n\nexport default function getHTMLElementScroll(element: HTMLElement) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop,\n };\n}\n","// @flow\nimport getWindowScroll from './getWindowScroll';\nimport getWindow from './getWindow';\nimport { isHTMLElement } from './instanceOf';\nimport getHTMLElementScroll from './getHTMLElementScroll';\nimport type { Window } from '../types';\n\nexport default function getNodeScroll(node: Node | Window) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}\n","// @flow\nimport type { Window } from '../types';\n\nexport default function getNodeName(element: ?Node | Window): ?string {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}\n","// @flow\nimport { isElement } from './instanceOf';\nimport type { Window } from '../types';\n\nexport default function getDocumentElement(\n element: Element | Window\n): HTMLElement {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return (\n (isElement(element)\n ? element.ownerDocument\n : // $FlowFixMe[prop-missing]\n element.document) || window.document\n ).documentElement;\n}\n","// @flow\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScroll from './getWindowScroll';\n\nexport default function getWindowScrollBarX(element: Element): number {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return (\n getBoundingClientRect(getDocumentElement(element)).left +\n getWindowScroll(element).scrollLeft\n );\n}\n","// @flow\nimport getWindow from './getWindow';\n\nexport default function getComputedStyle(\n element: Element\n): CSSStyleDeclaration {\n return getWindow(element).getComputedStyle(element);\n}\n","// @flow\nimport getComputedStyle from './getComputedStyle';\n\nexport default function isScrollParent(element: HTMLElement): boolean {\n // Firefox wants us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\n","// @flow\nimport type { Rect, VirtualElement, Window } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getNodeScroll from './getNodeScroll';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getDocumentElement from './getDocumentElement';\nimport isScrollParent from './isScrollParent';\nimport { round } from '../utils/math';\n\nfunction isElementScaled(element: HTMLElement) {\n const rect = element.getBoundingClientRect();\n const scaleX = round(rect.width) / element.offsetWidth || 1;\n const scaleY = round(rect.height) / element.offsetHeight || 1;\n\n return scaleX !== 1 || scaleY !== 1;\n}\n\n// Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\nexport default function getCompositeRect(\n elementOrVirtualElement: Element | VirtualElement,\n offsetParent: Element | Window,\n isFixed: boolean = false\n): Rect {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const offsetParentIsScaled =\n isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(\n elementOrVirtualElement,\n offsetParentIsScaled,\n isFixed\n );\n\n let scroll = { scrollLeft: 0, scrollTop: 0 };\n let offsets = { x: 0, y: 0 };\n\n if (isOffsetParentAnElement || (!isOffsetParentAnElement && !isFixed)) {\n if (\n getNodeName(offsetParent) !== 'body' ||\n // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)\n ) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height,\n };\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\n\n// Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\nexport default function getLayoutRect(element: HTMLElement): Rect {\n const clientRect = getBoundingClientRect(element);\n\n // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width,\n height,\n };\n}\n","// @flow\nimport getNodeName from './getNodeName';\nimport getDocumentElement from './getDocumentElement';\nimport { isShadowRoot } from './instanceOf';\n\nexport default function getParentNode(element: Node | ShadowRoot): Node {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (\n // this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || // DOM Element detected\n (isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n );\n}\n","// @flow\nimport getParentNode from './getParentNode';\nimport isScrollParent from './isScrollParent';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\n\nexport default function getScrollParent(node: Node): HTMLElement {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}\n","// @flow\nimport getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getWindow from './getWindow';\nimport type { Window, VisualViewport } from '../types';\nimport isScrollParent from './isScrollParent';\n\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\nexport default function listScrollParents(\n element: Node,\n list: Array<Element | Window> = []\n): Array<Element | Window | VisualViewport> {\n const scrollParent = getScrollParent(element);\n const isBody = scrollParent === element.ownerDocument?.body;\n const win = getWindow(scrollParent);\n const target = isBody\n ? [win].concat(\n win.visualViewport || [],\n isScrollParent(scrollParent) ? scrollParent : []\n )\n : scrollParent;\n const updatedList = list.concat(target);\n\n return isBody\n ? updatedList\n : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}\n","// @flow\nimport getNodeName from './getNodeName';\n\nexport default function isTableElement(element: Element): boolean {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getNodeName from './getNodeName';\nimport getComputedStyle from './getComputedStyle';\nimport { isHTMLElement, isShadowRoot } from './instanceOf';\nimport isTableElement from './isTableElement';\nimport getParentNode from './getParentNode';\nimport getUAString from '../utils/userAgent';\n\nfunction getTrueOffsetParent(element: Element): ?Element {\n if (\n !isHTMLElement(element) ||\n // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed'\n ) {\n return null;\n }\n\n return element.offsetParent;\n}\n\n// `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\nfunction getContainingBlock(element: Element) {\n const isFirefox = /firefox/i.test(getUAString());\n const isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n const elementCss = getComputedStyle(element);\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n let currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (\n isHTMLElement(currentNode) &&\n ['html', 'body'].indexOf(getNodeName(currentNode)) < 0\n ) {\n const css = getComputedStyle(currentNode);\n\n // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n if (\n css.transform !== 'none' ||\n css.perspective !== 'none' ||\n css.contain === 'paint' ||\n ['transform', 'perspective'].indexOf(css.willChange) !== -1 ||\n (isFirefox && css.willChange === 'filter') ||\n (isFirefox && css.filter && css.filter !== 'none')\n ) {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nexport default function getOffsetParent(element: Element) {\n const window = getWindow(element);\n\n let offsetParent = getTrueOffsetParent(element);\n\n while (\n offsetParent &&\n isTableElement(offsetParent) &&\n getComputedStyle(offsetParent).position === 'static'\n ) {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (\n offsetParent &&\n (getNodeName(offsetParent) === 'html' ||\n (getNodeName(offsetParent) === 'body' &&\n getComputedStyle(offsetParent).position === 'static'))\n ) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n","// @flow\nexport const top: 'top' = 'top';\nexport const bottom: 'bottom' = 'bottom';\nexport const right: 'right' = 'right';\nexport const left: 'left' = 'left';\nexport const auto: 'auto' = 'auto';\nexport type BasePlacement =\n | typeof top\n | typeof bottom\n | typeof right\n | typeof left;\nexport const basePlacements: Array<BasePlacement> = [top, bottom, right, left];\n\nexport const start: 'start' = 'start';\nexport const end: 'end' = 'end';\nexport type Variation = typeof start | typeof end;\n\nexport const clippingParents: 'clippingParents' = 'clippingParents';\nexport const viewport: 'viewport' = 'viewport';\nexport type Boundary = Element | Array<Element> | typeof clippingParents;\nexport type RootBoundary = typeof viewport | 'document';\n\nexport const popper: 'popper' = 'popper';\nexport const reference: 'reference' = 'reference';\nexport type Context = typeof popper | typeof reference;\n\nexport type VariationPlacement =\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end';\nexport type AutoPlacement = 'auto' | 'auto-start' | 'auto-end';\nexport type ComputedPlacement = VariationPlacement | BasePlacement;\nexport type Placement = AutoPlacement | BasePlacement | VariationPlacement;\n\nexport const variationPlacements: Array<VariationPlacement> = basePlacements.reduce(\n (acc: Array<VariationPlacement>, placement: BasePlacement) =>\n acc.concat([(`${placement}-${start}`: any), (`${placement}-${end}`: any)]),\n []\n);\nexport const placements: Array<Placement> = [...basePlacements, auto].reduce(\n (\n acc: Array<Placement>,\n placement: BasePlacement | typeof auto\n ): Array<Placement> =>\n acc.concat([\n placement,\n (`${placement}-${start}`: any),\n (`${placement}-${end}`: any),\n ]),\n []\n);\n\n// modifiers that need to read the DOM\nexport const beforeRead: 'beforeRead' = 'beforeRead';\nexport const read: 'read' = 'read';\nexport const afterRead: 'afterRead' = 'afterRead';\n// pure-logic modifiers\nexport const beforeMain: 'beforeMain' = 'beforeMain';\nexport const main: 'main' = 'main';\nexport const afterMain: 'afterMain' = 'afterMain';\n// modifier with the purpose to write to the DOM (or write into a framework state)\nexport const beforeWrite: 'beforeWrite' = 'beforeWrite';\nexport const write: 'write' = 'write';\nexport const afterWrite: 'afterWrite' = 'afterWrite';\nexport const modifierPhases: Array<ModifierPhases> = [\n beforeRead,\n read,\n afterRead,\n beforeMain,\n main,\n afterMain,\n beforeWrite,\n write,\n afterWrite,\n];\n\nexport type ModifierPhases =\n | typeof beforeRead\n | typeof read\n | typeof afterRead\n | typeof beforeMain\n | typeof main\n | typeof afterMain\n | typeof beforeWrite\n | typeof write\n | typeof afterWrite;\n","// @flow\nimport type { Modifier } from '../types';\nimport { modifierPhases } from '../enums';\n\n// source: https://stackoverflow.com/questions/49875255\nfunction order(modifiers) {\n const map = new Map();\n const visited = new Set();\n const result = [];\n\n modifiers.forEach(modifier => {\n map.set(modifier.name, modifier);\n });\n\n // On visiting object, check for its dependencies and visit them recursively\n function sort(modifier: Modifier<any, any>) {\n visited.add(modifier.name);\n\n const requires = [\n ...(modifier.requires || []),\n ...(modifier.requiresIfExists || []),\n ];\n\n requires.forEach(dep => {\n if (!visited.has(dep)) {\n const depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n\n result.push(modifier);\n }\n\n modifiers.forEach(modifier => {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n\n return result;\n}\n\nexport default function orderModifiers(\n modifiers: Array<Modifier<any, any>>\n): Array<Modifier<any, any>> {\n // order based on dependencies\n const orderedModifiers = order(modifiers);\n\n // order based on phase\n return modifierPhases.reduce((acc, phase) => {\n return acc.concat(\n orderedModifiers.filter(modifier => modifier.phase === phase)\n );\n }, []);\n}\n","// @flow\n\nexport default function debounce<T>(fn: Function): () => Promise<T> {\n let pending;\n return () => {\n if (!pending) {\n pending = new Promise<T>(resolve => {\n Promise.resolve().then(() => {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}\n","// @flow\nimport type { Modifier } from '../types';\n\nexport default function mergeByName(\n modifiers: Array<$Shape<Modifier<any, any>>>\n): Array<$Shape<Modifier<any, any>>> {\n const merged = modifiers.reduce((merged, current) => {\n const existing = merged[current.name];\n merged[current.name] = existing\n ? {\n ...existing,\n ...current,\n options: { ...existing.options, ...current.options },\n data: { ...existing.data, ...current.data },\n }\n : current;\n return merged;\n }, {});\n\n // IE11 does not support Object.values\n return Object.keys(merged).map(key => merged[key]);\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport isLayoutViewport from './isLayoutViewport';\nimport type { PositioningStrategy } from '../types';\n\nexport default function getViewportRect(\n element: Element,\n strategy: PositioningStrategy\n) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n\n const layoutViewport = isLayoutViewport();\n\n if (layoutViewport || (!layoutViewport && strategy === 'fixed')) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width,\n height,\n x: x + getWindowScrollBarX(element),\n y,\n };\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getWindowScroll from './getWindowScroll';\nimport { max } from '../utils/math';\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\nexport default function getDocumentRect(element: HTMLElement): Rect {\n const html = getDocumentElement(element);\n const winScroll = getWindowScroll(element);\n const body = element.ownerDocument?.body;\n\n const width = max(\n html.scrollWidth,\n html.clientWidth,\n body ? body.scrollWidth : 0,\n body ? body.clientWidth : 0\n );\n const height = max(\n html.scrollHeight,\n html.clientHeight,\n body ? body.scrollHeight : 0,\n body ? body.clientHeight : 0\n );\n\n let x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n const y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return { width, height, x, y };\n}\n","// @flow\nimport { isShadowRoot } from './instanceOf';\n\nexport default function contains(parent: Element, child: Element) {\n const rootNode = child.getRootNode && child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n }\n // $FlowFixMe[prop-missing]: need a better way to handle this...\n next = next.parentNode || next.host;\n } while (next);\n }\n\n // Give up, the result is false\n return false;\n}\n","// @flow\nimport type { Rect, ClientRectObject } from '../types';\n\nexport default function rectToClientRect(rect: Rect): ClientRectObject {\n return {\n ...rect,\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height,\n };\n}\n","// @flow\nimport type { ClientRectObject, PositioningStrategy } from '../types';\nimport type { Boundary, RootBoundary } from '../enums';\nimport { viewport } from '../enums';\nimport getViewportRect from './getViewportRect';\nimport getDocumentRect from './getDocumentRect';\nimport listScrollParents from './listScrollParents';\nimport getOffsetParent from './getOffsetParent';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport { isElement, isHTMLElement } from './instanceOf';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getParentNode from './getParentNode';\nimport contains from './contains';\nimport getNodeName from './getNodeName';\nimport rectToClientRect from '../utils/rectToClientRect';\nimport { max, min } from '../utils/math';\n\nfunction getInnerBoundingClientRect(\n element: Element,\n strategy: PositioningStrategy\n) {\n const rect = getBoundingClientRect(element, false, strategy === 'fixed');\n\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n\n return rect;\n}\n\nfunction getClientRectFromMixedType(\n element: Element,\n clippingParent: Element | RootBoundary,\n strategy: PositioningStrategy\n): ClientRectObject {\n return clippingParent === viewport\n ? rectToClientRect(getViewportRect(element, strategy))\n : isElement(clippingParent)\n ? getInnerBoundingClientRect(clippingParent, strategy)\n : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n}\n\n// A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\nfunction getClippingParents(element: Element): Array<Element> {\n const clippingParents = listScrollParents(getParentNode(element));\n const canEscapeClipping =\n ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n const clipperElement =\n canEscapeClipping && isHTMLElement(element)\n ? getOffsetParent(element)\n : element;\n\n if (!isElement(clipperElement)) {\n return [];\n }\n\n // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n return clippingParents.filter(\n (clippingParent) =>\n isElement(clippingParent) &&\n contains(clippingParent, clipperElement) &&\n getNodeName(clippingParent) !== 'body'\n );\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping parents\nexport default function getClippingRect(\n element: Element,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n strategy: PositioningStrategy\n): ClientRectObject {\n const mainClippingParents =\n boundary === 'clippingParents'\n ? getClippingParents(element)\n : [].concat(boundary);\n const clippingParents = [...mainClippingParents, rootBoundary];\n const firstClippingParent = clippingParents[0];\n\n const clippingRect = clippingParents.reduce((accRect, clippingParent) => {\n const rect = getClientRectFromMixedType(element, clippingParent, strategy);\n\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n\n return clippingRect;\n}\n","// @flow\nimport { type BasePlacement, type Placement, auto } from '../enums';\n\nexport default function getBasePlacement(\n placement: Placement | typeof auto\n): BasePlacement {\n return (placement.split('-')[0]: any);\n}\n","// @flow\nimport { type Variation, type Placement } from '../enums';\n\nexport default function getVariation(placement: Placement): ?Variation {\n return (placement.split('-')[1]: any);\n}\n","// @flow\nimport type { Placement } from '../enums';\n\nexport default function getMainAxisFromPlacement(\n placement: Placement\n): 'x' | 'y' {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}\n","// @flow\nimport getBasePlacement from './getBasePlacement';\nimport getVariation from './getVariation';\nimport getMainAxisFromPlacement from './getMainAxisFromPlacement';\nimport type {\n Rect,\n PositioningStrategy,\n Offsets,\n ClientRectObject,\n} from '../types';\nimport { top, right, bottom, left, start, end, type Placement } from '../enums';\n\nexport default function computeOffsets({\n reference,\n element,\n placement,\n}: {\n reference: Rect | ClientRectObject,\n element: Rect | ClientRectObject,\n strategy: PositioningStrategy,\n placement?: Placement,\n}): Offsets {\n const basePlacement = placement ? getBasePlacement(placement) : null;\n const variation = placement ? getVariation(placement) : null;\n const commonX = reference.x + reference.width / 2 - element.width / 2;\n const commonY = reference.y + reference.height / 2 - element.height / 2;\n\n let offsets;\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height,\n };\n break;\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height,\n };\n break;\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY,\n };\n break;\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY,\n };\n break;\n default:\n offsets = {\n x: reference.x,\n y: reference.y,\n };\n }\n\n const mainAxis = basePlacement\n ? getMainAxisFromPlacement(basePlacement)\n : null;\n\n if (mainAxis != null) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] =\n offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n case end:\n offsets[mainAxis] =\n offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n default:\n }\n }\n\n return offsets;\n}\n","// @flow\nimport type { SideObject } from '../types';\n\nexport default function getFreshSideObject(): SideObject {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n };\n}\n","// @flow\nimport type { SideObject } from '../types';\nimport getFreshSideObject from './getFreshSideObject';\n\nexport default function mergePaddingObject(\n paddingObject: $Shape<SideObject>\n): SideObject {\n return {\n ...getFreshSideObject(),\n ...paddingObject,\n };\n}\n","// @flow\n\nexport default function expandToHashMap<\n T: number | string | boolean,\n K: string\n>(value: T, keys: Array<K>): { [key: string]: T } {\n return keys.reduce((hashMap, key) => {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}\n","// @flow\nimport type { State, SideObject, Padding, PositioningStrategy } from '../types';\nimport type { Placement, Boundary, RootBoundary, Context } from '../enums';\nimport getClippingRect from '../dom-utils/getClippingRect';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport getBoundingClientRect from '../dom-utils/getBoundingClientRect';\nimport computeOffsets from './computeOffsets';\nimport rectToClientRect from './rectToClientRect';\nimport {\n clippingParents,\n reference,\n popper,\n bottom,\n top,\n right,\n basePlacements,\n viewport,\n} from '../enums';\nimport { isElement } from '../dom-utils/instanceOf';\nimport mergePaddingObject from './mergePaddingObject';\nimport expandToHashMap from './expandToHashMap';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n placement: Placement,\n strategy: PositioningStrategy,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n elementContext: Context,\n altBoundary: boolean,\n padding: Padding,\n};\n\nexport default function detectOverflow(\n state: State,\n options: $Shape<Options> = {}\n): SideObject {\n const {\n placement = state.placement,\n strategy = state.strategy,\n boundary = clippingParents,\n rootBoundary = viewport,\n elementContext = popper,\n altBoundary = false,\n padding = 0,\n } = options;\n\n const paddingObject = mergePaddingObject(\n typeof padding !== 'number'\n ? padding\n : expandToHashMap(padding, basePlacements)\n );\n\n const altContext = elementContext === popper ? reference : popper;\n\n const popperRect = state.rects.popper;\n const element = state.elements[altBoundary ? altContext : elementContext];\n\n const clippingClientRect = getClippingRect(\n isElement(element)\n ? element\n : element.contextElement || getDocumentElement(state.elements.popper),\n boundary,\n rootBoundary,\n strategy\n );\n\n const referenceClientRect = getBoundingClientRect(state.elements.reference);\n\n const popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement,\n });\n\n const popperClientRect = rectToClientRect({\n ...popperRect,\n ...popperOffsets,\n });\n\n const elementClientRect =\n elementContext === popper ? popperClientRect : referenceClientRect;\n\n // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n const overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom:\n elementClientRect.bottom -\n clippingClientRect.bottom +\n paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right:\n elementClientRect.right - clippingClientRect.right + paddingObject.right,\n };\n\n const offsetData = state.modifiersData.offset;\n\n // Offsets can be applied only to the popper element\n if (elementContext === popper && offsetData) {\n const offset = offsetData[placement];\n\n Object.keys(overflowOffsets).forEach((key) => {\n const multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n const axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}\n","// @flow\nimport type {\n State,\n OptionsGeneric,\n Modifier,\n Instance,\n VirtualElement,\n} from './types';\nimport getCompositeRect from './dom-utils/getCompositeRect';\nimport getLayoutRect from './dom-utils/getLayoutRect';\nimport listScrollParents from './dom-utils/listScrollParents';\nimport getOffsetParent from './dom-utils/getOffsetParent';\nimport orderModifiers from './utils/orderModifiers';\nimport debounce from './utils/debounce';\nimport mergeByName from './utils/mergeByName';\nimport detectOverflow from './utils/detectOverflow';\nimport { isElement } from './dom-utils/instanceOf';\n\nconst DEFAULT_OPTIONS: OptionsGeneric<any> = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute',\n};\n\ntype PopperGeneratorArgs = {\n defaultModifiers?: Array<Modifier<any, any>>,\n defaultOptions?: $Shape<OptionsGeneric<any>>,\n};\n\nfunction areValidElements(...args: Array<any>): boolean {\n return !args.some(\n (element) =>\n !(element && typeof element.getBoundingClientRect === 'function')\n );\n}\n\nexport function popperGenerator(generatorOptions: PopperGeneratorArgs = {}) {\n const { defaultModifiers = [], defaultOptions = DEFAULT_OPTIONS } =\n generatorOptions;\n\n return function createPopper<TModifier: $Shape<Modifier<any, any>>>(\n reference: Element | VirtualElement,\n popper: HTMLElement,\n options: $Shape<OptionsGeneric<TModifier>> = defaultOptions\n ): Instance {\n let state: $Shape<State> = {\n placement: 'bottom',\n orderedModifiers: [],\n options: { ...DEFAULT_OPTIONS, ...defaultOptions },\n modifiersData: {},\n elements: {\n reference,\n popper,\n },\n attributes: {},\n styles: {},\n };\n\n let effectCleanupFns: Array<() => void> = [];\n let isDestroyed = false;\n\n const instance = {\n state,\n setOptions(setOptionsAction) {\n const options =\n typeof setOptionsAction === 'function'\n ? setOptionsAction(state.options)\n : setOptionsAction;\n\n cleanupModifierEffects();\n\n state.options = {\n // $FlowFixMe[exponential-spread]\n ...defaultOptions,\n ...state.options,\n ...options,\n };\n\n state.scrollParents = {\n reference: isElement(reference)\n ? listScrollParents(reference)\n : reference.contextElement\n ? listScrollParents(reference.contextElement)\n : [],\n popper: listScrollParents(popper),\n };\n\n // Orders the modifiers based on their dependencies and `phase`\n // properties\n const orderedModifiers = orderModifiers(\n mergeByName([...defaultModifiers, ...state.options.modifiers])\n );\n\n // Strip out disabled modifiers\n state.orderedModifiers = orderedModifiers.filter((m) => m.enabled);\n\n runModifierEffects();\n\n return instance.update();\n },\n\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n const { reference, popper } = state.elements;\n\n // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n if (!areValidElements(reference, popper)) {\n return;\n }\n\n // Store the reference and popper rects to be read by modifiers\n state.rects = {\n reference: getCompositeRect(\n reference,\n getOffsetParent(popper),\n state.options.strategy === 'fixed'\n ),\n popper: getLayoutRect(popper),\n };\n\n // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n state.reset = false;\n\n state.placement = state.options.placement;\n\n // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n state.orderedModifiers.forEach(\n (modifier) =>\n (state.modifiersData[modifier.name] = {\n ...modifier.data,\n })\n );\n\n for (let index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n const { fn, options = {}, name } = state.orderedModifiers[index];\n\n if (typeof fn === 'function') {\n state = fn({ state, options, name, instance }) || state;\n }\n }\n },\n\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce<$Shape<State>>(\n () =>\n new Promise<$Shape<State>>((resolve) => {\n instance.forceUpdate();\n resolve(state);\n })\n ),\n\n destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n },\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then((state) => {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n });\n\n // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n function runModifierEffects() {\n state.orderedModifiers.forEach(({ name, options = {}, effect }) => {\n if (typeof effect === 'function') {\n const cleanupFn = effect({ state, name, instance, options });\n const noopFn = () => {};\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach((fn) => fn());\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\n\nexport const createPopper = popperGenerator();\n\n// eslint-disable-next-line import/no-unused-modules\nexport { detectOverflow };\n","// @flow\nimport type { ModifierArguments, Modifier } from '../types';\nimport getWindow from '../dom-utils/getWindow';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n scroll: boolean,\n resize: boolean,\n};\n\nconst passive = { passive: true };\n\nfunction effect({ state, instance, options }: ModifierArguments<Options>) {\n const { scroll = true, resize = true } = options;\n\n const window = getWindow(state.elements.popper);\n const scrollParents = [\n ...state.scrollParents.reference,\n ...state.scrollParents.popper,\n ];\n\n if (scroll) {\n scrollParents.forEach(scrollParent => {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return () => {\n if (scroll) {\n scrollParents.forEach(scrollParent => {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type EventListenersModifier = Modifier<'eventListeners', Options>;\nexport default ({\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: () => {},\n effect,\n data: {},\n}: EventListenersModifier);\n","// @flow\nimport type { ModifierArguments, Modifier } from '../types';\nimport computeOffsets from '../utils/computeOffsets';\n\nfunction popperOffsets({ state, name }: ModifierArguments<{||}>) {\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement,\n });\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type PopperOffsetsModifier = Modifier<'popperOffsets', {||}>;\nexport default ({\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {},\n}: PopperOffsetsModifier);\n","// @flow\nimport type {\n PositioningStrategy,\n Offsets,\n Modifier,\n ModifierArguments,\n Rect,\n Window,\n} from '../types';\nimport {\n type BasePlacement,\n type Variation,\n top,\n left,\n right,\n bottom,\n end,\n} from '../enums';\nimport getOffsetParent from '../dom-utils/getOffsetParent';\nimport getWindow from '../dom-utils/getWindow';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport getComputedStyle from '../dom-utils/getComputedStyle';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getVariation from '../utils/getVariation';\nimport { round } from '../utils/math';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type RoundOffsets = (\n offsets: $Shape<{ x: number, y: number, centerOffset: number }>\n) => Offsets;\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n gpuAcceleration: boolean,\n adaptive: boolean,\n roundOffsets?: boolean | RoundOffsets,\n};\n\nconst unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto',\n};\n\n// Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\nfunction roundOffsetsByDPR({ x, y }, win: Window): Offsets {\n const dpr = win.devicePixelRatio || 1;\n\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0,\n };\n}\n\nexport function mapToStyles({\n popper,\n popperRect,\n placement,\n variation,\n offsets,\n position,\n gpuAcceleration,\n adaptive,\n roundOffsets,\n isFixed,\n}: {\n popper: HTMLElement,\n popperRect: Rect,\n placement: BasePlacement,\n variation: ?Variation,\n offsets: $Shape<{ x: number, y: number, centerOffset: number }>,\n position: PositioningStrategy,\n gpuAcceleration: boolean,\n adaptive: boolean,\n roundOffsets: boolean | RoundOffsets,\n isFixed: boolean,\n}) {\n let { x = 0, y = 0 } = offsets;\n\n ({ x, y } =\n typeof roundOffsets === 'function' ? roundOffsets({ x, y }) : { x, y });\n\n const hasX = offsets.hasOwnProperty('x');\n const hasY = offsets.hasOwnProperty('y');\n\n let sideX: string = left;\n let sideY: string = top;\n\n const win: Window = window;\n\n if (adaptive) {\n let offsetParent = getOffsetParent(popper);\n let heightProp = 'clientHeight';\n let widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (\n getComputedStyle(offsetParent).position !== 'static' &&\n position === 'absolute'\n ) {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n }\n\n // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n offsetParent = (offsetParent: Element);\n\n if (\n placement === top ||\n ((placement === left || placement === right) && variation === end)\n ) {\n sideY = bottom;\n const offsetY =\n isFixed && offsetParent === win && win.visualViewport\n ? win.visualViewport.height\n : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (\n placement === left ||\n ((placement === top || placement === bottom) && variation === end)\n ) {\n sideX = right;\n const offsetX =\n isFixed && offsetParent === win && win.visualViewport\n ? win.visualViewport.width\n : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n const commonStyles = {\n position,\n ...(adaptive && unsetSides),\n };\n\n ({ x, y } =\n roundOffsets === true\n ? roundOffsetsByDPR({ x, y }, getWindow(popper))\n : { x, y });\n\n if (gpuAcceleration) {\n return {\n ...commonStyles,\n [sideY]: hasY ? '0' : '',\n [sideX]: hasX ? '0' : '',\n // Layer acceleration can disable subpixel rendering which causes slightly\n // blurry text on low PPI displays, so we want to use 2D transforms\n // instead\n transform:\n (win.devicePixelRatio || 1) <= 1\n ? `translate(${x}px, ${y}px)`\n : `translate3d(${x}px, ${y}px, 0)`,\n };\n }\n\n return {\n ...commonStyles,\n [sideY]: hasY ? `${y}px` : '',\n [sideX]: hasX ? `${x}px` : '',\n transform: '',\n };\n}\n\nfunction computeStyles({ state, options }: ModifierArguments<Options>) {\n const {\n gpuAcceleration = true,\n adaptive = true,\n // defaults to use builtin `roundOffsetsByDPR`\n roundOffsets = true,\n } = options;\n\n const commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration,\n isFixed: state.options.strategy === 'fixed',\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = {\n ...state.styles.popper,\n ...mapToStyles({\n ...commonStyles,\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive,\n roundOffsets,\n }),\n };\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = {\n ...state.styles.arrow,\n ...mapToStyles({\n ...commonStyles,\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets,\n }),\n };\n }\n\n state.attributes.popper = {\n ...state.attributes.popper,\n 'data-popper-placement': state.placement,\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type ComputeStylesModifier = Modifier<'computeStyles', Options>;\nexport default ({\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {},\n}: ComputeStylesModifier);\n","// @flow\nimport type { Modifier, ModifierArguments } from '../types';\nimport getNodeName from '../dom-utils/getNodeName';\nimport { isHTMLElement } from '../dom-utils/instanceOf';\n\n// This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles({ state }: ModifierArguments<{||}>) {\n Object.keys(state.elements).forEach((name) => {\n const style = state.styles[name] || {};\n\n const attributes = state.attributes[name] || {};\n const element = state.elements[name];\n\n // arrow is optional + virtual elements\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n Object.assign(element.style, style);\n\n Object.keys(attributes).forEach((name) => {\n const value = attributes[name];\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect({ state }: ModifierArguments<{||}>) {\n const initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0',\n },\n arrow: {\n position: 'absolute',\n },\n reference: {},\n };\n\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return () => {\n Object.keys(state.elements).forEach((name) => {\n const element = state.elements[name];\n const attributes = state.attributes[name] || {};\n\n const styleProperties = Object.keys(\n state.styles.hasOwnProperty(name)\n ? state.styles[name]\n : initialStyles[name]\n );\n\n // Set all values to an empty string to unset them\n const style = styleProperties.reduce((style, property) => {\n style[property] = '';\n return style;\n }, {});\n\n // arrow is optional + virtual elements\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n\n Object.keys(attributes).forEach((attribute) => {\n element.removeAttribute(attribute);\n });\n });\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type ApplyStylesModifier = Modifier<'applyStyles', {||}>;\nexport default ({\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect,\n requires: ['computeStyles'],\n}: ApplyStylesModifier);\n","// @flow\nimport type { Placement } from '../enums';\nimport type { ModifierArguments, Modifier, Rect, Offsets } from '../types';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport { top, left, right, placements } from '../enums';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type OffsetsFunction = ({\n popper: Rect,\n reference: Rect,\n placement: Placement,\n}) => [?number, ?number];\n\ntype Offset = OffsetsFunction | [?number, ?number];\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n offset: Offset,\n};\n\nexport function distanceAndSkiddingToXY(\n placement: Placement,\n rects: { popper: Rect, reference: Rect },\n offset: Offset\n): Offsets {\n const basePlacement = getBasePlacement(placement);\n const invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n let [skidding, distance] =\n typeof offset === 'function'\n ? offset({\n ...rects,\n placement,\n })\n : offset;\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n\n return [left, right].indexOf(basePlacement) >= 0\n ? { x: distance, y: skidding }\n : { x: skidding, y: distance };\n}\n\nfunction offset({ state, options, name }: ModifierArguments<Options>) {\n const { offset = [0, 0] } = options;\n\n const data = placements.reduce((acc, placement) => {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n\n const { x, y } = data[state.placement];\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type OffsetModifier = Modifier<'offset', Options>;\nexport default ({\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset,\n}: OffsetModifier);\n","// @flow\nimport type { Placement } from '../enums';\n\nconst hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n\nexport default function getOppositePlacement(placement: Placement): Placement {\n return (placement.replace(\n /left|right|bottom|top/g,\n matched => hash[matched]\n ): any);\n}\n","// @flow\nimport type { Placement } from '../enums';\n\nconst hash = { start: 'end', end: 'start' };\n\nexport default function getOppositeVariationPlacement(\n placement: Placement\n): Placement {\n return (placement.replace(/start|end/g, matched => hash[matched]): any);\n}\n","// @flow\nimport type { State, Padding } from '../types';\nimport type {\n Placement,\n ComputedPlacement,\n Boundary,\n RootBoundary,\n} from '../enums';\nimport getVariation from './getVariation';\nimport {\n variationPlacements,\n basePlacements,\n placements as allPlacements,\n} from '../enums';\nimport detectOverflow from './detectOverflow';\nimport getBasePlacement from './getBasePlacement';\n\ntype Options = {\n placement: Placement,\n padding: Padding,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n flipVariations: boolean,\n allowedAutoPlacements?: Array<Placement>,\n};\n\ntype OverflowsMap = { [ComputedPlacement]: number };\n\nexport default function computeAutoPlacement(\n state: $Shape<State>,\n options: Options = {}\n): Array<ComputedPlacement> {\n const {\n placement,\n boundary,\n rootBoundary,\n padding,\n flipVariations,\n allowedAutoPlacements = allPlacements,\n } = options;\n\n const variation = getVariation(placement);\n\n const placements = variation\n ? flipVariations\n ? variationPlacements\n : variationPlacements.filter(\n (placement) => getVariation(placement) === variation\n )\n : basePlacements;\n\n let allowedPlacements = placements.filter(\n (placement) => allowedAutoPlacements.indexOf(placement) >= 0\n );\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n }\n\n // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n const overflows: OverflowsMap = allowedPlacements.reduce((acc, placement) => {\n acc[placement] = detectOverflow(state, {\n placement,\n boundary,\n rootBoundary,\n padding,\n })[getBasePlacement(placement)];\n\n return acc;\n }, {});\n\n return Object.keys(overflows).sort((a, b) => overflows[a] - overflows[b]);\n}\n","// @flow\nimport type { Placement, Boundary, RootBoundary } from '../enums';\nimport type { ModifierArguments, Modifier, Padding } from '../types';\nimport getOppositePlacement from '../utils/getOppositePlacement';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getOppositeVariationPlacement from '../utils/getOppositeVariationPlacement';\nimport detectOverflow from '../utils/detectOverflow';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\nimport { bottom, top, start, right, left, auto } from '../enums';\nimport getVariation from '../utils/getVariation';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n mainAxis: boolean,\n altAxis: boolean,\n fallbackPlacements: Array<Placement>,\n padding: Padding,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n altBoundary: boolean,\n flipVariations: boolean,\n allowedAutoPlacements: Array<Placement>,\n};\n\nfunction getExpandedFallbackPlacements(placement: Placement): Array<Placement> {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n const oppositePlacement = getOppositePlacement(placement);\n\n return [\n getOppositeVariationPlacement(placement),\n oppositePlacement,\n getOppositeVariationPlacement(oppositePlacement),\n ];\n}\n\nfunction flip({ state, options, name }: ModifierArguments<Options>) {\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n const {\n mainAxis: checkMainAxis = true,\n altAxis: checkAltAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n padding,\n boundary,\n rootBoundary,\n altBoundary,\n flipVariations = true,\n allowedAutoPlacements,\n } = options;\n\n const preferredPlacement = state.options.placement;\n const basePlacement = getBasePlacement(preferredPlacement);\n const isBasePlacement = basePlacement === preferredPlacement;\n\n const fallbackPlacements =\n specifiedFallbackPlacements ||\n (isBasePlacement || !flipVariations\n ? [getOppositePlacement(preferredPlacement)]\n : getExpandedFallbackPlacements(preferredPlacement));\n\n const placements = [preferredPlacement, ...fallbackPlacements].reduce(\n (acc, placement) => {\n return acc.concat(\n getBasePlacement(placement) === auto\n ? computeAutoPlacement(state, {\n placement,\n boundary,\n rootBoundary,\n padding,\n flipVariations,\n allowedAutoPlacements,\n })\n : placement\n );\n },\n []\n );\n\n const referenceRect = state.rects.reference;\n const popperRect = state.rects.popper;\n\n const checksMap = new Map();\n let makeFallbackChecks = true;\n let firstFittingPlacement = placements[0];\n\n for (let i = 0; i < placements.length; i++) {\n const placement = placements[i];\n const basePlacement = getBasePlacement(placement);\n const isStartVariation = getVariation(placement) === start;\n const isVertical = [top, bottom].indexOf(basePlacement) >= 0;\n const len = isVertical ? 'width' : 'height';\n\n const overflow = detectOverflow(state, {\n placement,\n boundary,\n rootBoundary,\n altBoundary,\n padding,\n });\n\n let mainVariationSide: any = isVertical\n ? isStartVariation\n ? right\n : left\n : isStartVariation\n ? bottom\n : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n const altVariationSide: any = getOppositePlacement(mainVariationSide);\n\n const checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(\n overflow[mainVariationSide] <= 0,\n overflow[altVariationSide] <= 0\n );\n }\n\n if (checks.every((check) => check)) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n const numberOfChecks = flipVariations ? 3 : 1;\n\n for (let i = numberOfChecks; i > 0; i--) {\n const fittingPlacement = placements.find((placement) => {\n const checks = checksMap.get(placement);\n if (checks) {\n return checks.slice(0, i).every((check) => check);\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n break;\n }\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type FlipModifier = Modifier<'flip', Options>;\nexport default ({\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: { _skip: false },\n}: FlipModifier);\n","// @flow\n\nexport default function getAltAxis(axis: 'x' | 'y'): 'x' | 'y' {\n return axis === 'x' ? 'y' : 'x';\n}\n","// @flow\nimport { max as mathMax, min as mathMin } from './math';\n\nexport function within(min: number, value: number, max: number): number {\n return mathMax(min, mathMin(value, max));\n}\n\nexport function withinMaxClamp(min: number, value: number, max: number) {\n const v = within(min, value, max);\n return v > max ? max : v;\n}\n","// @flow\nimport { top, left, right, bottom, start } from '../enums';\nimport type { Placement, Boundary, RootBoundary } from '../enums';\nimport type { Rect, ModifierArguments, Modifier, Padding } from '../types';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getMainAxisFromPlacement from '../utils/getMainAxisFromPlacement';\nimport getAltAxis from '../utils/getAltAxis';\nimport { within, withinMaxClamp } from '../utils/within';\nimport getLayoutRect from '../dom-utils/getLayoutRect';\nimport getOffsetParent from '../dom-utils/getOffsetParent';\nimport detectOverflow from '../utils/detectOverflow';\nimport getVariation from '../utils/getVariation';\nimport getFreshSideObject from '../utils/getFreshSideObject';\nimport { min as mathMin, max as mathMax } from '../utils/math';\n\ntype TetherOffset =\n | (({\n popper: Rect,\n reference: Rect,\n placement: Placement,\n }) => number | { mainAxis: number, altAxis: number })\n | number\n | { mainAxis: number, altAxis: number };\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n /* Prevents boundaries overflow on the main axis */\n mainAxis: boolean,\n /* Prevents boundaries overflow on the alternate axis */\n altAxis: boolean,\n /* The area to check the popper is overflowing in */\n boundary: Boundary,\n /* If the popper is not overflowing the main area, fallback to this one */\n rootBoundary: RootBoundary,\n /* Use the reference's \"clippingParents\" boundary context */\n altBoundary: boolean,\n /**\n * Allows the popper to overflow from its boundaries to keep it near its\n * reference element\n */\n tether: boolean,\n /* Offsets when the `tether` option should activate */\n tetherOffset: TetherOffset,\n /* Sets a padding to the provided boundary */\n padding: Padding,\n};\n\nfunction preventOverflow({ state, options, name }: ModifierArguments<Options>) {\n const {\n mainAxis: checkMainAxis = true,\n altAxis: checkAltAxis = false,\n boundary,\n rootBoundary,\n altBoundary,\n padding,\n tether = true,\n tetherOffset = 0,\n } = options;\n\n const overflow = detectOverflow(state, {\n boundary,\n rootBoundary,\n padding,\n altBoundary,\n });\n const basePlacement = getBasePlacement(state.placement);\n const variation = getVariation(state.placement);\n const isBasePlacement = !variation;\n const mainAxis = getMainAxisFromPlacement(basePlacement);\n const altAxis = getAltAxis(mainAxis);\n const popperOffsets = state.modifiersData.popperOffsets;\n const referenceRect = state.rects.reference;\n const popperRect = state.rects.popper;\n const tetherOffsetValue =\n typeof tetherOffset === 'function'\n ? tetherOffset({\n ...state.rects,\n placement: state.placement,\n })\n : tetherOffset;\n const normalizedTetherOffsetValue =\n typeof tetherOffsetValue === 'number'\n ? { mainAxis: tetherOffsetValue, altAxis: tetherOffsetValue }\n : { mainAxis: 0, altAxis: 0, ...tetherOffsetValue };\n const offsetModifierState = state.modifiersData.offset\n ? state.modifiersData.offset[state.placement]\n : null;\n\n const data = { x: 0, y: 0 };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n const mainSide = mainAxis === 'y' ? top : left;\n const altSide = mainAxis === 'y' ? bottom : right;\n const len = mainAxis === 'y' ? 'height' : 'width';\n const offset = popperOffsets[mainAxis];\n\n const min = offset + overflow[mainSide];\n const max = offset - overflow[altSide];\n\n const additive = tether ? -popperRect[len] / 2 : 0;\n\n const minLen = variation === start ? referenceRect[len] : popperRect[len];\n const maxLen = variation === start ? -popperRect[len] : -referenceRect[len];\n\n // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n const arrowElement = state.elements.arrow;\n const arrowRect =\n tether && arrowElement\n ? getLayoutRect(arrowElement)\n : { width: 0, height: 0 };\n const arrowPaddingObject = state.modifiersData['arrow#persistent']\n ? state.modifiersData['arrow#persistent'].padding\n : getFreshSideObject();\n const arrowPaddingMin = arrowPaddingObject[mainSide];\n const arrowPaddingMax = arrowPaddingObject[altSide];\n\n // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n const arrowLen = within(0, referenceRect[len], arrowRect[len]);\n\n const minOffset = isBasePlacement\n ? referenceRect[len] / 2 -\n additive -\n arrowLen -\n arrowPaddingMin -\n normalizedTetherOffsetValue.mainAxis\n : minLen -\n arrowLen -\n arrowPaddingMin -\n normalizedTetherOffsetValue.mainAxis;\n const maxOffset = isBasePlacement\n ? -referenceRect[len] / 2 +\n additive +\n arrowLen +\n arrowPaddingMax +\n normalizedTetherOffsetValue.mainAxis\n : maxLen +\n arrowLen +\n arrowPaddingMax +\n normalizedTetherOffsetValue.mainAxis;\n\n const arrowOffsetParent =\n state.elements.arrow && getOffsetParent(state.elements.arrow);\n const clientOffset = arrowOffsetParent\n ? mainAxis === 'y'\n ? arrowOffsetParent.clientTop || 0\n : arrowOffsetParent.clientLeft || 0\n : 0;\n\n const offsetModifierValue = offsetModifierState?.[mainAxis] ?? 0;\n const tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n const tetherMax = offset + maxOffset - offsetModifierValue;\n\n const preventedOffset = within(\n tether ? mathMin(min, tetherMin) : min,\n offset,\n tether ? mathMax(max, tetherMax) : max\n );\n\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n const mainSide = mainAxis === 'x' ? top : left;\n const altSide = mainAxis === 'x' ? bottom : right;\n const offset = popperOffsets[altAxis];\n\n const len = altAxis === 'y' ? 'height' : 'width';\n\n const min = offset + overflow[mainSide];\n const max = offset - overflow[altSide];\n\n const isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n const offsetModifierValue = offsetModifierState?.[altAxis] ?? 0;\n const tetherMin = isOriginSide\n ? min\n : offset -\n referenceRect[len] -\n popperRect[len] -\n offsetModifierValue +\n normalizedTetherOffsetValue.altAxis;\n const tetherMax = isOriginSide\n ? offset +\n referenceRect[len] +\n popperRect[len] -\n offsetModifierValue -\n normalizedTetherOffsetValue.altAxis\n : max;\n\n const preventedOffset =\n tether && isOriginSide\n ? withinMaxClamp(tetherMin, offset, tetherMax)\n : within(tether ? tetherMin : min, offset, tether ? tetherMax : max);\n\n popperOffsets[altAxis] = preventedOffset;\n data[altAxis] = preventedOffset - offset;\n }\n\n state.modifiersData[name] = data;\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type PreventOverflowModifier = Modifier<'preventOverflow', Options>;\nexport default ({\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset'],\n}: PreventOverflowModifier);\n","// @flow\nimport type { Modifier, ModifierArguments, Padding, Rect } from '../types';\nimport type { Placement } from '../enums';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getLayoutRect from '../dom-utils/getLayoutRect';\nimport contains from '../dom-utils/contains';\nimport getOffsetParent from '../dom-utils/getOffsetParent';\nimport getMainAxisFromPlacement from '../utils/getMainAxisFromPlacement';\nimport { within } from '../utils/within';\nimport mergePaddingObject from '../utils/mergePaddingObject';\nimport expandToHashMap from '../utils/expandToHashMap';\nimport { left, right, basePlacements, top, bottom } from '../enums';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n element: HTMLElement | string | null,\n padding:\n | Padding\n | (({|\n popper: Rect,\n reference: Rect,\n placement: Placement,\n |}) => Padding),\n};\n\nconst toPaddingObject = (padding, state) => {\n padding =\n typeof padding === 'function'\n ? padding({ ...state.rects, placement: state.placement })\n : padding;\n\n return mergePaddingObject(\n typeof padding !== 'number'\n ? padding\n : expandToHashMap(padding, basePlacements)\n );\n};\n\nfunction arrow({ state, name, options }: ModifierArguments<Options>) {\n const arrowElement = state.elements.arrow;\n const popperOffsets = state.modifiersData.popperOffsets;\n const basePlacement = getBasePlacement(state.placement);\n const axis = getMainAxisFromPlacement(basePlacement);\n const isVertical = [left, right].indexOf(basePlacement) >= 0;\n const len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n const paddingObject = toPaddingObject(options.padding, state);\n const arrowRect = getLayoutRect(arrowElement);\n const minProp = axis === 'y' ? top : left;\n const maxProp = axis === 'y' ? bottom : right;\n\n const endDiff =\n state.rects.reference[len] +\n state.rects.reference[axis] -\n popperOffsets[axis] -\n state.rects.popper[len];\n const startDiff = popperOffsets[axis] - state.rects.reference[axis];\n\n const arrowOffsetParent = getOffsetParent(arrowElement);\n const clientSize = arrowOffsetParent\n ? axis === 'y'\n ? arrowOffsetParent.clientHeight || 0\n : arrowOffsetParent.clientWidth || 0\n : 0;\n\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n const min = paddingObject[minProp];\n const max = clientSize - arrowRect[len] - paddingObject[maxProp];\n const center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n const offset = within(min, center, max);\n\n // Prevents breaking syntax highlighting...\n const axisProp: string = axis;\n state.modifiersData[name] = {\n [axisProp]: offset,\n centerOffset: offset - center,\n };\n}\n\nfunction effect({ state, options }: ModifierArguments<Options>) {\n let { element: arrowElement = '[data-popper-arrow]' } = options;\n\n if (arrowElement == null) {\n return;\n }\n\n // CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type ArrowModifier = Modifier<'arrow', Options>;\nexport default ({\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow'],\n}: ArrowModifier);\n","// @flow\nimport type {\n ModifierArguments,\n Modifier,\n Rect,\n SideObject,\n Offsets,\n} from '../types';\nimport { top, bottom, left, right } from '../enums';\nimport detectOverflow from '../utils/detectOverflow';\n\nfunction getSideOffsets(\n overflow: SideObject,\n rect: Rect,\n preventedOffsets: Offsets = { x: 0, y: 0 }\n): SideObject {\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x,\n };\n}\n\nfunction isAnySideFullyClipped(overflow: SideObject): boolean {\n return [top, right, bottom, left].some((side) => overflow[side] >= 0);\n}\n\nfunction hide({ state, name }: ModifierArguments<{||}>) {\n const referenceRect = state.rects.reference;\n const popperRect = state.rects.popper;\n const preventedOffsets = state.modifiersData.preventOverflow;\n\n const referenceOverflow = detectOverflow(state, {\n elementContext: 'reference',\n });\n const popperAltOverflow = detectOverflow(state, {\n altBoundary: true,\n });\n\n const referenceClippingOffsets = getSideOffsets(\n referenceOverflow,\n referenceRect\n );\n const popperEscapeOffsets = getSideOffsets(\n popperAltOverflow,\n popperRect,\n preventedOffsets\n );\n\n const isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n const hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n\n state.modifiersData[name] = {\n referenceClippingOffsets,\n popperEscapeOffsets,\n isReferenceHidden,\n hasPopperEscaped,\n };\n\n state.attributes.popper = {\n ...state.attributes.popper,\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped,\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type HideModifier = Modifier<'hide', {||}>;\nexport default ({\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide,\n}: HideModifier);\n","// @flow\nimport { popperGenerator, detectOverflow } from './createPopper';\n\nimport eventListeners from './modifiers/eventListeners';\nimport popperOffsets from './modifiers/popperOffsets';\nimport computeStyles from './modifiers/computeStyles';\nimport applyStyles from './modifiers/applyStyles';\n\nexport type * from './types';\n\nconst defaultModifiers = [\n eventListeners,\n popperOffsets,\n computeStyles,\n applyStyles,\n];\n\nconst createPopper = popperGenerator({ defaultModifiers });\n\n// eslint-disable-next-line import/no-unused-modules\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };\n","// @flow\nimport { popperGenerator, detectOverflow } from './createPopper';\n\nimport eventListeners from './modifiers/eventListeners';\nimport popperOffsets from './modifiers/popperOffsets';\nimport computeStyles from './modifiers/computeStyles';\nimport applyStyles from './modifiers/applyStyles';\nimport offset from './modifiers/offset';\nimport flip from './modifiers/flip';\nimport preventOverflow from './modifiers/preventOverflow';\nimport arrow from './modifiers/arrow';\nimport hide from './modifiers/hide';\n\nexport type * from './types';\n\nconst defaultModifiers = [\n eventListeners,\n popperOffsets,\n computeStyles,\n applyStyles,\n offset,\n flip,\n preventOverflow,\n arrow,\n hide,\n];\n\nconst createPopper = popperGenerator({ defaultModifiers });\n\n// eslint-disable-next-line import/no-unused-modules\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };\n// eslint-disable-next-line import/no-unused-modules\nexport { createPopper as createPopperLite } from './popper-lite';\n// eslint-disable-next-line import/no-unused-modules\nexport * from './modifiers';\n"],"names":["getWindow","node","window","toString","ownerDocument","defaultView","isElement","OwnElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","max","Math","min","round","getUAString","uaData","navigator","userAgentData","brands","Array","isArray","map","item","brand","version","join","userAgent","isLayoutViewport","test","getBoundingClientRect","element","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","offsetWidth","width","offsetHeight","height","visualViewport","addVisualOffsets","x","left","offsetLeft","y","top","offsetTop","right","bottom","getWindowScroll","win","scrollLeft","pageXOffset","scrollTop","pageYOffset","getHTMLElementScroll","getNodeScroll","getNodeName","nodeName","toLowerCase","getDocumentElement","document","documentElement","getWindowScrollBarX","getComputedStyle","isScrollParent","overflow","overflowX","overflowY","isElementScaled","rect","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","scroll","offsets","clientLeft","clientTop","getLayoutRect","abs","getParentNode","assignedSlot","parentNode","host","getScrollParent","indexOf","body","listScrollParents","list","scrollParent","isBody","target","concat","updatedList","isTableElement","getTrueOffsetParent","position","getContainingBlock","isFirefox","isIE","elementCss","currentNode","css","transform","perspective","contain","willChange","filter","getOffsetParent","auto","basePlacements","start","end","clippingParents","viewport","popper","reference","variationPlacements","reduce","acc","placement","placements","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","order","modifiers","Map","visited","Set","result","forEach","modifier","set","name","sort","add","requires","requiresIfExists","dep","has","depModifier","get","push","orderModifiers","orderedModifiers","phase","debounce","fn","pending","Promise","resolve","then","undefined","mergeByName","merged","current","existing","options","data","Object","keys","key","getViewportRect","strategy","html","clientWidth","clientHeight","layoutViewport","getDocumentRect","winScroll","scrollWidth","scrollHeight","direction","contains","parent","child","rootNode","getRootNode","next","isSameNode","rectToClientRect","getInnerBoundingClientRect","getClientRectFromMixedType","clippingParent","getClippingParents","canEscapeClipping","clipperElement","getClippingRect","boundary","rootBoundary","mainClippingParents","firstClippingParent","clippingRect","accRect","getBasePlacement","split","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","len","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","value","hashMap","detectOverflow","state","elementContext","altBoundary","padding","altContext","popperRect","rects","elements","clippingClientRect","contextElement","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","offset","multiply","axis","DEFAULT_OPTIONS","areValidElements","args","some","popperGenerator","generatorOptions","defaultModifiers","defaultOptions","createPopper","attributes","styles","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","m","enabled","runModifierEffects","update","forceUpdate","reset","index","length","destroy","onFirstUpdate","effect","cleanupFn","noopFn","passive","resize","addEventListener","removeEventListener","unsetSides","roundOffsetsByDPR","dpr","devicePixelRatio","mapToStyles","gpuAcceleration","adaptive","roundOffsets","hasX","hasOwnProperty","hasY","sideX","sideY","heightProp","widthProp","offsetY","offsetX","commonStyles","computeStyles","arrow","applyStyles","style","assign","removeAttribute","setAttribute","initialStyles","margin","styleProperties","property","attribute","distanceAndSkiddingToXY","invertDistance","skidding","distance","hash","getOppositePlacement","replace","matched","getOppositeVariationPlacement","computeAutoPlacement","flipVariations","allowedAutoPlacements","allPlacements","allowedPlacements","overflows","a","b","getExpandedFallbackPlacements","oppositePlacement","flip","_skip","checkMainAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","preferredPlacement","isBasePlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","i","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","numberOfChecks","fittingPlacement","find","slice","getAltAxis","within","mathMax","mathMin","withinMaxClamp","v","preventOverflow","tether","tetherOffset","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","isOriginSide","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","centerOffset","querySelector","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","hide","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","eventListeners"],"mappings":"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"} \ No newline at end of file diff --git a/static/javascripts/popperjs/popper.min.js b/static/javascripts/popperjs/popper.min.js new file mode 100644 index 000000000..393856474 --- /dev/null +++ b/static/javascripts/popperjs/popper.min.js @@ -0,0 +1,6 @@ +/** + * @popperjs/core v2.11.8 - MIT License + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var 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"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function c(){return!/^((?!chrome|android).)*safari/i.test(f())}function p(e,o,i){void 0===o&&(o=!1),void 0===i&&(i=!1);var a=e.getBoundingClientRect(),f=1,p=1;o&&r(e)&&(f=e.offsetWidth>0&&s(a.width)/e.offsetWidth||1,p=e.offsetHeight>0&&s(a.height)/e.offsetHeight||1);var u=(n(e)?t(e):window).visualViewport,l=!c()&&i,d=(a.left+(l&&u?u.offsetLeft:0))/f,h=(a.top+(l&&u?u.offsetTop:0))/p,m=a.width/f,v=a.height/p;return{width:m,height:v,top:h,right:d+m,bottom:h+v,left:d,x:d,y:h}}function u(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function l(e){return e?(e.nodeName||"").toLowerCase():null}function d(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function h(e){return p(d(e)).left+u(e).scrollLeft}function m(e){return t(e).getComputedStyle(e)}function v(e){var t=m(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function y(e,n,o){void 0===o&&(o=!1);var i,a,f=r(n),c=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),m=d(n),y=p(e,c,o),g={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(f||!f&&!o)&&(("body"!==l(n)||v(m))&&(g=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:u(i)),r(n)?((b=p(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):m&&(b.x=h(m))),{x:y.left+g.scrollLeft-b.x,y:y.top+g.scrollTop-b.y,width:y.width,height:y.height}}function g(e){var t=p(e),n=e.offsetWidth,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 b(e){return"html"===l(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||d(e)}function x(e){return["html","body","#document"].indexOf(l(e))>=0?e.ownerDocument.body:r(e)&&v(e)?e:x(b(e))}function w(e,n){var r;void 0===n&&(n=[]);var o=x(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],v(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(w(b(s)))}function O(e){return["table","td","th"].indexOf(l(e))>=0}function j(e){return r(e)&&"fixed"!==m(e).position?e.offsetParent:null}function E(e){for(var n=t(e),i=j(e);i&&O(i)&&"static"===m(i).position;)i=j(i);return i&&("html"===l(i)||"body"===l(i)&&"static"===m(i).position)?n:i||function(e){var t=/firefox/i.test(f());if(/Trident/i.test(f())&&r(e)&&"fixed"===m(e).position)return null;var n=b(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(l(n))<0;){var i=m(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var D="top",A="bottom",L="right",P="left",M="auto",k=[D,A,L,P],W="start",B="end",H="viewport",T="popper",R=k.reduce((function(e,t){return e.concat([t+"-"+W,t+"-"+B])}),[]),S=[].concat(k,[M]).reduce((function(e,t){return e.concat([t,t+"-"+W,t+"-"+B])}),[]),V=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function q(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var 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,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function N(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function I(e,r,o){return r===H?N(function(e,n){var r=t(e),o=d(e),i=r.visualViewport,a=o.clientWidth,s=o.clientHeight,f=0,p=0;if(i){a=i.width,s=i.height;var u=c();(u||!u&&"fixed"===n)&&(f=i.offsetLeft,p=i.offsetTop)}return{width:a,height:s,x:f+h(e),y:p}}(e,o)):n(r)?function(e,t){var n=p(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(r,o):N(function(e){var t,n=d(e),r=u(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+h(e),c=-r.scrollTop;return"rtl"===m(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:c}}(d(e)))}function _(e,t,o,s){var f="clippingParents"===t?function(e){var t=w(b(e)),o=["absolute","fixed"].indexOf(m(e).position)>=0&&r(e)?E(e):e;return n(o)?t.filter((function(e){return n(e)&&C(e,o)&&"body"!==l(e)})):[]}(e):[].concat(t),c=[].concat(f,[o]),p=c[0],u=c.reduce((function(t,n){var r=I(e,n,s);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}),I(e,p,s));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function F(e){return e.split("-")[0]}function U(e){return e.split("-")[1]}function z(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function X(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?F(o):null,a=o?U(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case D:t={x:s,y:n.y-r.height};break;case A:t={x:s,y:n.y+n.height};break;case L:t={x:n.x+n.width,y:f};break;case P:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?z(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case W:t[c]=t[c]-(n[p]/2-r[p]/2);break;case B:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function Y(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function G(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function J(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.strategy,s=void 0===a?e.strategy:a,f=r.boundary,c=void 0===f?"clippingParents":f,u=r.rootBoundary,l=void 0===u?H:u,h=r.elementContext,m=void 0===h?T:h,v=r.altBoundary,y=void 0!==v&&v,g=r.padding,b=void 0===g?0:g,x=Y("number"!=typeof b?b:G(b,k)),w=m===T?"reference":T,O=e.rects.popper,j=e.elements[y?w:m],E=_(n(j)?j:j.contextElement||d(e.elements.popper),c,l,s),P=p(e.elements.reference),M=X({reference:P,element:O,strategy:"absolute",placement:i}),W=N(Object.assign({},O,M)),B=m===T?W:P,R={top:E.top-B.top+x.top,bottom:B.bottom-E.bottom+x.bottom,left:E.left-B.left+x.left,right:B.right-E.right+x.right},S=e.modifiersData.offset;if(m===T&&S){var V=S[i];Object.keys(R).forEach((function(e){var t=[L,A].indexOf(e)>=0?1:-1,n=[D,A].indexOf(e)>=0?"y":"x";R[e]+=V[n]*t}))}return R}var K={placement:"bottom",modifiers:[],strategy:"absolute"};function Q(){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&&"function"==typeof e.getBoundingClientRect)}))}function Z(e){void 0===e&&(e={});var t=e,r=t.defaultModifiers,o=void 0===r?[]:r,i=t.defaultOptions,a=void 0===i?K:i;return function(e,t,r){void 0===r&&(r=a);var i,s,f={placement:"bottom",orderedModifiers:[],options:Object.assign({},K,a),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},c=[],p=!1,u={state:f,setOptions:function(r){var i="function"==typeof r?r(f.options):r;l(),f.options=Object.assign({},a,f.options,i),f.scrollParents={reference:n(e)?w(e):e.contextElement?w(e.contextElement):[],popper:w(t)};var s,p,d=function(e){var t=q(e);return V.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){var 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){var t=e.name,n=e.options,r=void 0===n?{}:n,o=e.effect;if("function"==typeof o){var i=o({state:f,name:t,instance:u,options:r}),a=function(){};c.push(i||a)}})),u.update()},forceUpdate:function(){if(!p){var e=f.elements,t=e.reference,n=e.popper;if(Q(t,n)){f.rects={reference:y(t,E(n),"fixed"===f.options.strategy),popper:g(n)},f.reset=!1,f.placement=f.options.placement,f.orderedModifiers.forEach((function(e){return f.modifiersData[e.name]=Object.assign({},e.data)}));for(var r=0;r<f.orderedModifiers.length;r++)if(!0!==f.reset){var o=f.orderedModifiers[r],i=o.fn,a=o.options,s=void 0===a?{}:a,c=o.name;"function"==typeof i&&(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(!Q(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}}var $={passive:!0};var ee={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var n=e.state,r=e.instance,o=e.options,i=o.scroll,a=void 0===i||i,s=o.resize,f=void 0===s||s,c=t(n.elements.popper),p=[].concat(n.scrollParents.reference,n.scrollParents.popper);return a&&p.forEach((function(e){e.addEventListener("scroll",r.update,$)})),f&&c.addEventListener("resize",r.update,$),function(){a&&p.forEach((function(e){e.removeEventListener("scroll",r.update,$)})),f&&c.removeEventListener("resize",r.update,$)}},data:{}};var te={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=X({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},ne={top:"auto",right:"auto",bottom:"auto",left:"auto"};function re(e){var n,r=e.popper,o=e.popperRect,i=e.placement,a=e.variation,f=e.offsets,c=e.position,p=e.gpuAcceleration,u=e.adaptive,l=e.roundOffsets,h=e.isFixed,v=f.x,y=void 0===v?0:v,g=f.y,b=void 0===g?0:g,x="function"==typeof l?l({x:y,y:b}):{x:y,y:b};y=x.x,b=x.y;var w=f.hasOwnProperty("x"),O=f.hasOwnProperty("y"),j=P,M=D,k=window;if(u){var W=E(r),H="clientHeight",T="clientWidth";if(W===t(r)&&"static"!==m(W=d(r)).position&&"absolute"===c&&(H="scrollHeight",T="scrollWidth"),W=W,i===D||(i===P||i===L)&&a===B)M=A,b-=(h&&W===k&&k.visualViewport?k.visualViewport.height:W[H])-o.height,b*=p?1:-1;if(i===P||(i===D||i===A)&&a===B)j=L,y-=(h&&W===k&&k.visualViewport?k.visualViewport.width:W[T])-o.width,y*=p?1:-1}var R,S=Object.assign({position:c},u&&ne),V=!0===l?function(e,t){var n=e.x,r=e.y,o=t.devicePixelRatio||1;return{x:s(n*o)/o||0,y:s(r*o)/o||0}}({x:y,y:b},t(r)):{x:y,y:b};return y=V.x,b=V.y,p?Object.assign({},S,((R={})[M]=O?"0":"",R[j]=w?"0":"",R.transform=(k.devicePixelRatio||1)<=1?"translate("+y+"px, "+b+"px)":"translate3d("+y+"px, "+b+"px, 0)",R)):Object.assign({},S,((n={})[M]=O?b+"px":"",n[j]=w?y+"px":"",n.transform="",n))}var oe={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=void 0===r||r,i=n.adaptive,a=void 0===i||i,s=n.roundOffsets,f=void 0===s||s,c={placement:F(t.placement),variation:U(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,re(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:f})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,re(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:{}};var ie={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},i=t.elements[e];r(i)&&l(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,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){var o=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});r(o)&&l(o)&&(Object.assign(o.style,a),Object.keys(i).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]};var ae={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.offset,i=void 0===o?[0,0]:o,a=S.reduce((function(e,n){return e[n]=function(e,t,n){var r=F(e),o=[P,D].indexOf(r)>=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[P,L].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},se={left:"right",right:"left",bottom:"top",top:"bottom"};function fe(e){return e.replace(/left|right|bottom|top/g,(function(e){return se[e]}))}var ce={start:"end",end:"start"};function pe(e){return e.replace(/start|end/g,(function(e){return ce[e]}))}function ue(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?S:f,p=U(r),u=p?s?R:R.filter((function(e){return U(e)===p})):k,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=J(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[F(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var le={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,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,y=F(v),g=f||(y===v||!h?[fe(v)]:function(e){if(F(e)===M)return[];var t=fe(e);return[pe(e),t,pe(t)]}(v)),b=[v].concat(g).reduce((function(e,n){return e.concat(F(n)===M?ue(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,j=!0,E=b[0],k=0;k<b.length;k++){var B=b[k],H=F(B),T=U(B)===W,R=[D,A].indexOf(H)>=0,S=R?"width":"height",V=J(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),q=R?T?L:P:T?A:D;x[S]>w[S]&&(q=fe(q));var C=fe(q),N=[];if(i&&N.push(V[H]<=0),s&&N.push(V[q]<=0,V[C]<=0),N.every((function(e){return e}))){E=B,j=!1;break}O.set(B,N)}if(j)for(var I=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return E=t,"break"},_=h?3:1;_>0;_--){if("break"===I(_))break}t.placement!==E&&(t.modifiersData[r]._skip=!0,t.placement=E,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function de(e,t,n){return i(e,a(t,n))}var he={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,v=n.tetherOffset,y=void 0===v?0:v,b=J(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=F(t.placement),w=U(t.placement),O=!w,j=z(x),M="x"===j?"y":"x",k=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,V={x:0,y:0};if(k){if(s){var q,C="y"===j?D:P,N="y"===j?A:L,I="y"===j?"height":"width",_=k[j],X=_+b[C],Y=_-b[N],G=m?-H[I]/2:0,K=w===W?B[I]:H[I],Q=w===W?-H[I]:-B[I],Z=t.elements.arrow,$=m&&Z?g(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[C],ne=ee[N],re=de(0,B[I],$[I]),oe=O?B[I]/2-G-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=O?-B[I]/2+G+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&E(t.elements.arrow),se=ae?"y"===j?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(q=null==S?void 0:S[j])?q:0,ce=_+ie-fe,pe=de(m?a(X,_+oe-fe-se):X,_,m?i(Y,ce):Y);k[j]=pe,V[j]=pe-_}if(c){var ue,le="x"===j?D:P,he="x"===j?A:L,me=k[M],ve="y"===M?"height":"width",ye=me+b[le],ge=me-b[he],be=-1!==[D,P].indexOf(x),xe=null!=(ue=null==S?void 0:S[M])?ue:0,we=be?ye:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ge,je=m&&be?function(e,t,n){var r=de(e,t,n);return r>n?n:r}(we,me,Oe):de(m?we:ye,me,m?Oe:ge);k[M]=je,V[M]=je-me}t.modifiersData[r]=V}},requiresIfExists:["offset"]};var me={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=F(n.placement),f=z(s),c=[P,L].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return Y("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:G(e,k))}(o.padding,n),u=g(i),l="y"===f?D:P,d="y"===f?A:L,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],v=E(i),y=v?"y"===f?v.clientHeight||0:v.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],O=y/2-u[c]/2+b,j=de(x,O,w),M=f;n.modifiersData[r]=((t={})[M]=j,t.centerOffset=j-O,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&C(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ve(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 ye(e){return[D,L,A,P].some((function(t){return e[t]>=0}))}var ge={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=J(t,{elementContext:"reference"}),s=J(t,{altBoundary:!0}),f=ve(a,r),c=ve(s,o,i),p=ye(f),u=ye(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})}},be=Z({defaultModifiers:[ee,te,oe,ie]}),xe=[ee,te,oe,ie,ae,le,he,me,ge],we=Z({defaultModifiers:xe});e.applyStyles=ie,e.arrow=me,e.computeStyles=oe,e.createPopper=we,e.createPopperLite=be,e.defaultModifiers=xe,e.detectOverflow=J,e.eventListeners=ee,e.flip=le,e.hide=ge,e.offset=ae,e.popperGenerator=Z,e.popperOffsets=te,e.preventOverflow=he,Object.defineProperty(e,"__esModule",{value:!0})})); +//# sourceMappingURL=popper.min.js.map diff --git a/static/javascripts/popperjs/popper.min.js.flow b/static/javascripts/popperjs/popper.min.js.flow new file mode 100644 index 000000000..e745d9276 --- /dev/null +++ b/static/javascripts/popperjs/popper.min.js.flow @@ -0,0 +1,3 @@ +// @flow + +export * from '../../lib/popper.js' diff --git a/static/javascripts/popperjs/popper.min.js.map b/static/javascripts/popperjs/popper.min.js.map new file mode 100644 index 000000000..e3471cff6 --- /dev/null +++ b/static/javascripts/popperjs/popper.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"popper.min.js","sources":["../../src/dom-utils/getWindow.js","../../src/dom-utils/instanceOf.js","../../src/utils/math.js","../../src/utils/userAgent.js","../../src/dom-utils/isLayoutViewport.js","../../src/dom-utils/getBoundingClientRect.js","../../src/dom-utils/getWindowScroll.js","../../src/dom-utils/getNodeName.js","../../src/dom-utils/getDocumentElement.js","../../src/dom-utils/getWindowScrollBarX.js","../../src/dom-utils/getComputedStyle.js","../../src/dom-utils/isScrollParent.js","../../src/dom-utils/getCompositeRect.js","../../src/dom-utils/getNodeScroll.js","../../src/dom-utils/getHTMLElementScroll.js","../../src/dom-utils/getLayoutRect.js","../../src/dom-utils/getParentNode.js","../../src/dom-utils/getScrollParent.js","../../src/dom-utils/listScrollParents.js","../../src/dom-utils/isTableElement.js","../../src/dom-utils/getOffsetParent.js","../../src/enums.js","../../src/utils/orderModifiers.js","../../src/dom-utils/contains.js","../../src/utils/rectToClientRect.js","../../src/dom-utils/getClippingRect.js","../../src/dom-utils/getViewportRect.js","../../src/dom-utils/getDocumentRect.js","../../src/utils/getBasePlacement.js","../../src/utils/getVariation.js","../../src/utils/getMainAxisFromPlacement.js","../../src/utils/computeOffsets.js","../../src/utils/mergePaddingObject.js","../../src/utils/getFreshSideObject.js","../../src/utils/expandToHashMap.js","../../src/utils/detectOverflow.js","../../src/createPopper.js","../../src/utils/debounce.js","../../src/utils/mergeByName.js","../../src/modifiers/eventListeners.js","../../src/modifiers/popperOffsets.js","../../src/modifiers/computeStyles.js","../../src/modifiers/applyStyles.js","../../src/modifiers/offset.js","../../src/utils/getOppositePlacement.js","../../src/utils/getOppositeVariationPlacement.js","../../src/utils/computeAutoPlacement.js","../../src/modifiers/flip.js","../../src/utils/within.js","../../src/modifiers/preventOverflow.js","../../src/utils/getAltAxis.js","../../src/modifiers/arrow.js","../../src/modifiers/hide.js","../../src/popper-lite.js","../../src/popper.js"],"sourcesContent":["// @flow\nimport type { Window } from '../types';\ndeclare function getWindow(node: Node | Window): Window;\n\nexport default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n const ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n","// @flow\nimport getWindow from './getWindow';\n\ndeclare function isElement(node: mixed): boolean %checks(node instanceof\n Element);\nfunction isElement(node) {\n const OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\ndeclare function isHTMLElement(node: mixed): boolean %checks(node instanceof\n HTMLElement);\nfunction isHTMLElement(node) {\n const OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\ndeclare function isShadowRoot(node: mixed): boolean %checks(node instanceof\n ShadowRoot);\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };\n","// @flow\nexport const max = Math.max;\nexport const min = Math.min;\nexport const round = Math.round;\n","// @flow\ntype Navigator = Navigator & { userAgentData?: NavigatorUAData };\n\ninterface NavigatorUAData {\n brands: Array<{ brand: string, version: string }>;\n mobile: boolean;\n platform: string;\n}\n\nexport default function getUAString(): string {\n const uaData = (navigator: Navigator).userAgentData;\n\n if (uaData?.brands && Array.isArray(uaData.brands)) {\n return uaData.brands\n .map((item) => `${item.brand}/${item.version}`)\n .join(' ');\n }\n\n return navigator.userAgent;\n}\n","// @flow\nimport getUAString from '../utils/userAgent';\n\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}\n","// @flow\nimport type { ClientRectObject, VirtualElement } from '../types';\nimport { isElement, isHTMLElement } from './instanceOf';\nimport { round } from '../utils/math';\nimport getWindow from './getWindow';\nimport isLayoutViewport from './isLayoutViewport';\n\nexport default function getBoundingClientRect(\n element: Element | VirtualElement,\n includeScale: boolean = false,\n isFixedStrategy: boolean = false\n): ClientRectObject {\n const clientRect = element.getBoundingClientRect();\n let scaleX = 1;\n let scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX =\n (element: HTMLElement).offsetWidth > 0\n ? round(clientRect.width) / (element: HTMLElement).offsetWidth || 1\n : 1;\n scaleY =\n (element: HTMLElement).offsetHeight > 0\n ? round(clientRect.height) / (element: HTMLElement).offsetHeight || 1\n : 1;\n }\n\n const { visualViewport } = isElement(element) ? getWindow(element) : window;\n const addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n\n const x =\n (clientRect.left +\n (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) /\n scaleX;\n const y =\n (clientRect.top +\n (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) /\n scaleY;\n const width = clientRect.width / scaleX;\n const height = clientRect.height / scaleY;\n\n return {\n width,\n height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x,\n y,\n };\n}\n","// @flow\nimport getWindow from './getWindow';\nimport type { Window } from '../types';\n\nexport default function getWindowScroll(node: Node | Window) {\n const win = getWindow(node);\n const scrollLeft = win.pageXOffset;\n const scrollTop = win.pageYOffset;\n\n return {\n scrollLeft,\n scrollTop,\n };\n}\n","// @flow\nimport type { Window } from '../types';\n\nexport default function getNodeName(element: ?Node | Window): ?string {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}\n","// @flow\nimport { isElement } from './instanceOf';\nimport type { Window } from '../types';\n\nexport default function getDocumentElement(\n element: Element | Window\n): HTMLElement {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return (\n (isElement(element)\n ? element.ownerDocument\n : // $FlowFixMe[prop-missing]\n element.document) || window.document\n ).documentElement;\n}\n","// @flow\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScroll from './getWindowScroll';\n\nexport default function getWindowScrollBarX(element: Element): number {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return (\n getBoundingClientRect(getDocumentElement(element)).left +\n getWindowScroll(element).scrollLeft\n );\n}\n","// @flow\nimport getWindow from './getWindow';\n\nexport default function getComputedStyle(\n element: Element\n): CSSStyleDeclaration {\n return getWindow(element).getComputedStyle(element);\n}\n","// @flow\nimport getComputedStyle from './getComputedStyle';\n\nexport default function isScrollParent(element: HTMLElement): boolean {\n // Firefox wants us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\n","// @flow\nimport type { Rect, VirtualElement, Window } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getNodeScroll from './getNodeScroll';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getDocumentElement from './getDocumentElement';\nimport isScrollParent from './isScrollParent';\nimport { round } from '../utils/math';\n\nfunction isElementScaled(element: HTMLElement) {\n const rect = element.getBoundingClientRect();\n const scaleX = round(rect.width) / element.offsetWidth || 1;\n const scaleY = round(rect.height) / element.offsetHeight || 1;\n\n return scaleX !== 1 || scaleY !== 1;\n}\n\n// Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\nexport default function getCompositeRect(\n elementOrVirtualElement: Element | VirtualElement,\n offsetParent: Element | Window,\n isFixed: boolean = false\n): Rect {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const offsetParentIsScaled =\n isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(\n elementOrVirtualElement,\n offsetParentIsScaled,\n isFixed\n );\n\n let scroll = { scrollLeft: 0, scrollTop: 0 };\n let offsets = { x: 0, y: 0 };\n\n if (isOffsetParentAnElement || (!isOffsetParentAnElement && !isFixed)) {\n if (\n getNodeName(offsetParent) !== 'body' ||\n // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)\n ) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height,\n };\n}\n","// @flow\nimport getWindowScroll from './getWindowScroll';\nimport getWindow from './getWindow';\nimport { isHTMLElement } from './instanceOf';\nimport getHTMLElementScroll from './getHTMLElementScroll';\nimport type { Window } from '../types';\n\nexport default function getNodeScroll(node: Node | Window) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}\n","// @flow\n\nexport default function getHTMLElementScroll(element: HTMLElement) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop,\n };\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\n\n// Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\nexport default function getLayoutRect(element: HTMLElement): Rect {\n const clientRect = getBoundingClientRect(element);\n\n // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width,\n height,\n };\n}\n","// @flow\nimport getNodeName from './getNodeName';\nimport getDocumentElement from './getDocumentElement';\nimport { isShadowRoot } from './instanceOf';\n\nexport default function getParentNode(element: Node | ShadowRoot): Node {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (\n // this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || // DOM Element detected\n (isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n );\n}\n","// @flow\nimport getParentNode from './getParentNode';\nimport isScrollParent from './isScrollParent';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\n\nexport default function getScrollParent(node: Node): HTMLElement {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}\n","// @flow\nimport getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getWindow from './getWindow';\nimport type { Window, VisualViewport } from '../types';\nimport isScrollParent from './isScrollParent';\n\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\nexport default function listScrollParents(\n element: Node,\n list: Array<Element | Window> = []\n): Array<Element | Window | VisualViewport> {\n const scrollParent = getScrollParent(element);\n const isBody = scrollParent === element.ownerDocument?.body;\n const win = getWindow(scrollParent);\n const target = isBody\n ? [win].concat(\n win.visualViewport || [],\n isScrollParent(scrollParent) ? scrollParent : []\n )\n : scrollParent;\n const updatedList = list.concat(target);\n\n return isBody\n ? updatedList\n : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}\n","// @flow\nimport getNodeName from './getNodeName';\n\nexport default function isTableElement(element: Element): boolean {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getNodeName from './getNodeName';\nimport getComputedStyle from './getComputedStyle';\nimport { isHTMLElement, isShadowRoot } from './instanceOf';\nimport isTableElement from './isTableElement';\nimport getParentNode from './getParentNode';\nimport getUAString from '../utils/userAgent';\n\nfunction getTrueOffsetParent(element: Element): ?Element {\n if (\n !isHTMLElement(element) ||\n // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed'\n ) {\n return null;\n }\n\n return element.offsetParent;\n}\n\n// `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\nfunction getContainingBlock(element: Element) {\n const isFirefox = /firefox/i.test(getUAString());\n const isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n const elementCss = getComputedStyle(element);\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n let currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (\n isHTMLElement(currentNode) &&\n ['html', 'body'].indexOf(getNodeName(currentNode)) < 0\n ) {\n const css = getComputedStyle(currentNode);\n\n // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n if (\n css.transform !== 'none' ||\n css.perspective !== 'none' ||\n css.contain === 'paint' ||\n ['transform', 'perspective'].indexOf(css.willChange) !== -1 ||\n (isFirefox && css.willChange === 'filter') ||\n (isFirefox && css.filter && css.filter !== 'none')\n ) {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nexport default function getOffsetParent(element: Element) {\n const window = getWindow(element);\n\n let offsetParent = getTrueOffsetParent(element);\n\n while (\n offsetParent &&\n isTableElement(offsetParent) &&\n getComputedStyle(offsetParent).position === 'static'\n ) {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (\n offsetParent &&\n (getNodeName(offsetParent) === 'html' ||\n (getNodeName(offsetParent) === 'body' &&\n getComputedStyle(offsetParent).position === 'static'))\n ) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n","// @flow\nexport const top: 'top' = 'top';\nexport const bottom: 'bottom' = 'bottom';\nexport const right: 'right' = 'right';\nexport const left: 'left' = 'left';\nexport const auto: 'auto' = 'auto';\nexport type BasePlacement =\n | typeof top\n | typeof bottom\n | typeof right\n | typeof left;\nexport const basePlacements: Array<BasePlacement> = [top, bottom, right, left];\n\nexport const start: 'start' = 'start';\nexport const end: 'end' = 'end';\nexport type Variation = typeof start | typeof end;\n\nexport const clippingParents: 'clippingParents' = 'clippingParents';\nexport const viewport: 'viewport' = 'viewport';\nexport type Boundary = Element | Array<Element> | typeof clippingParents;\nexport type RootBoundary = typeof viewport | 'document';\n\nexport const popper: 'popper' = 'popper';\nexport const reference: 'reference' = 'reference';\nexport type Context = typeof popper | typeof reference;\n\nexport type VariationPlacement =\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end';\nexport type AutoPlacement = 'auto' | 'auto-start' | 'auto-end';\nexport type ComputedPlacement = VariationPlacement | BasePlacement;\nexport type Placement = AutoPlacement | BasePlacement | VariationPlacement;\n\nexport const variationPlacements: Array<VariationPlacement> = basePlacements.reduce(\n (acc: Array<VariationPlacement>, placement: BasePlacement) =>\n acc.concat([(`${placement}-${start}`: any), (`${placement}-${end}`: any)]),\n []\n);\nexport const placements: Array<Placement> = [...basePlacements, auto].reduce(\n (\n acc: Array<Placement>,\n placement: BasePlacement | typeof auto\n ): Array<Placement> =>\n acc.concat([\n placement,\n (`${placement}-${start}`: any),\n (`${placement}-${end}`: any),\n ]),\n []\n);\n\n// modifiers that need to read the DOM\nexport const beforeRead: 'beforeRead' = 'beforeRead';\nexport const read: 'read' = 'read';\nexport const afterRead: 'afterRead' = 'afterRead';\n// pure-logic modifiers\nexport const beforeMain: 'beforeMain' = 'beforeMain';\nexport const main: 'main' = 'main';\nexport const afterMain: 'afterMain' = 'afterMain';\n// modifier with the purpose to write to the DOM (or write into a framework state)\nexport const beforeWrite: 'beforeWrite' = 'beforeWrite';\nexport const write: 'write' = 'write';\nexport const afterWrite: 'afterWrite' = 'afterWrite';\nexport const modifierPhases: Array<ModifierPhases> = [\n beforeRead,\n read,\n afterRead,\n beforeMain,\n main,\n afterMain,\n beforeWrite,\n write,\n afterWrite,\n];\n\nexport type ModifierPhases =\n | typeof beforeRead\n | typeof read\n | typeof afterRead\n | typeof beforeMain\n | typeof main\n | typeof afterMain\n | typeof beforeWrite\n | typeof write\n | typeof afterWrite;\n","// @flow\nimport type { Modifier } from '../types';\nimport { modifierPhases } from '../enums';\n\n// source: https://stackoverflow.com/questions/49875255\nfunction order(modifiers) {\n const map = new Map();\n const visited = new Set();\n const result = [];\n\n modifiers.forEach(modifier => {\n map.set(modifier.name, modifier);\n });\n\n // On visiting object, check for its dependencies and visit them recursively\n function sort(modifier: Modifier<any, any>) {\n visited.add(modifier.name);\n\n const requires = [\n ...(modifier.requires || []),\n ...(modifier.requiresIfExists || []),\n ];\n\n requires.forEach(dep => {\n if (!visited.has(dep)) {\n const depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n\n result.push(modifier);\n }\n\n modifiers.forEach(modifier => {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n\n return result;\n}\n\nexport default function orderModifiers(\n modifiers: Array<Modifier<any, any>>\n): Array<Modifier<any, any>> {\n // order based on dependencies\n const orderedModifiers = order(modifiers);\n\n // order based on phase\n return modifierPhases.reduce((acc, phase) => {\n return acc.concat(\n orderedModifiers.filter(modifier => modifier.phase === phase)\n );\n }, []);\n}\n","// @flow\nimport { isShadowRoot } from './instanceOf';\n\nexport default function contains(parent: Element, child: Element) {\n const rootNode = child.getRootNode && child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n }\n // $FlowFixMe[prop-missing]: need a better way to handle this...\n next = next.parentNode || next.host;\n } while (next);\n }\n\n // Give up, the result is false\n return false;\n}\n","// @flow\nimport type { Rect, ClientRectObject } from '../types';\n\nexport default function rectToClientRect(rect: Rect): ClientRectObject {\n return {\n ...rect,\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height,\n };\n}\n","// @flow\nimport type { ClientRectObject, PositioningStrategy } from '../types';\nimport type { Boundary, RootBoundary } from '../enums';\nimport { viewport } from '../enums';\nimport getViewportRect from './getViewportRect';\nimport getDocumentRect from './getDocumentRect';\nimport listScrollParents from './listScrollParents';\nimport getOffsetParent from './getOffsetParent';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport { isElement, isHTMLElement } from './instanceOf';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getParentNode from './getParentNode';\nimport contains from './contains';\nimport getNodeName from './getNodeName';\nimport rectToClientRect from '../utils/rectToClientRect';\nimport { max, min } from '../utils/math';\n\nfunction getInnerBoundingClientRect(\n element: Element,\n strategy: PositioningStrategy\n) {\n const rect = getBoundingClientRect(element, false, strategy === 'fixed');\n\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n\n return rect;\n}\n\nfunction getClientRectFromMixedType(\n element: Element,\n clippingParent: Element | RootBoundary,\n strategy: PositioningStrategy\n): ClientRectObject {\n return clippingParent === viewport\n ? rectToClientRect(getViewportRect(element, strategy))\n : isElement(clippingParent)\n ? getInnerBoundingClientRect(clippingParent, strategy)\n : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n}\n\n// A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\nfunction getClippingParents(element: Element): Array<Element> {\n const clippingParents = listScrollParents(getParentNode(element));\n const canEscapeClipping =\n ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n const clipperElement =\n canEscapeClipping && isHTMLElement(element)\n ? getOffsetParent(element)\n : element;\n\n if (!isElement(clipperElement)) {\n return [];\n }\n\n // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n return clippingParents.filter(\n (clippingParent) =>\n isElement(clippingParent) &&\n contains(clippingParent, clipperElement) &&\n getNodeName(clippingParent) !== 'body'\n );\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping parents\nexport default function getClippingRect(\n element: Element,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n strategy: PositioningStrategy\n): ClientRectObject {\n const mainClippingParents =\n boundary === 'clippingParents'\n ? getClippingParents(element)\n : [].concat(boundary);\n const clippingParents = [...mainClippingParents, rootBoundary];\n const firstClippingParent = clippingParents[0];\n\n const clippingRect = clippingParents.reduce((accRect, clippingParent) => {\n const rect = getClientRectFromMixedType(element, clippingParent, strategy);\n\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n\n return clippingRect;\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport isLayoutViewport from './isLayoutViewport';\nimport type { PositioningStrategy } from '../types';\n\nexport default function getViewportRect(\n element: Element,\n strategy: PositioningStrategy\n) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n\n const layoutViewport = isLayoutViewport();\n\n if (layoutViewport || (!layoutViewport && strategy === 'fixed')) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width,\n height,\n x: x + getWindowScrollBarX(element),\n y,\n };\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getWindowScroll from './getWindowScroll';\nimport { max } from '../utils/math';\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\nexport default function getDocumentRect(element: HTMLElement): Rect {\n const html = getDocumentElement(element);\n const winScroll = getWindowScroll(element);\n const body = element.ownerDocument?.body;\n\n const width = max(\n html.scrollWidth,\n html.clientWidth,\n body ? body.scrollWidth : 0,\n body ? body.clientWidth : 0\n );\n const height = max(\n html.scrollHeight,\n html.clientHeight,\n body ? body.scrollHeight : 0,\n body ? body.clientHeight : 0\n );\n\n let x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n const y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return { width, height, x, y };\n}\n","// @flow\nimport { type BasePlacement, type Placement, auto } from '../enums';\n\nexport default function getBasePlacement(\n placement: Placement | typeof auto\n): BasePlacement {\n return (placement.split('-')[0]: any);\n}\n","// @flow\nimport { type Variation, type Placement } from '../enums';\n\nexport default function getVariation(placement: Placement): ?Variation {\n return (placement.split('-')[1]: any);\n}\n","// @flow\nimport type { Placement } from '../enums';\n\nexport default function getMainAxisFromPlacement(\n placement: Placement\n): 'x' | 'y' {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}\n","// @flow\nimport getBasePlacement from './getBasePlacement';\nimport getVariation from './getVariation';\nimport getMainAxisFromPlacement from './getMainAxisFromPlacement';\nimport type {\n Rect,\n PositioningStrategy,\n Offsets,\n ClientRectObject,\n} from '../types';\nimport { top, right, bottom, left, start, end, type Placement } from '../enums';\n\nexport default function computeOffsets({\n reference,\n element,\n placement,\n}: {\n reference: Rect | ClientRectObject,\n element: Rect | ClientRectObject,\n strategy: PositioningStrategy,\n placement?: Placement,\n}): Offsets {\n const basePlacement = placement ? getBasePlacement(placement) : null;\n const variation = placement ? getVariation(placement) : null;\n const commonX = reference.x + reference.width / 2 - element.width / 2;\n const commonY = reference.y + reference.height / 2 - element.height / 2;\n\n let offsets;\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height,\n };\n break;\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height,\n };\n break;\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY,\n };\n break;\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY,\n };\n break;\n default:\n offsets = {\n x: reference.x,\n y: reference.y,\n };\n }\n\n const mainAxis = basePlacement\n ? getMainAxisFromPlacement(basePlacement)\n : null;\n\n if (mainAxis != null) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] =\n offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n case end:\n offsets[mainAxis] =\n offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n default:\n }\n }\n\n return offsets;\n}\n","// @flow\nimport type { SideObject } from '../types';\nimport getFreshSideObject from './getFreshSideObject';\n\nexport default function mergePaddingObject(\n paddingObject: $Shape<SideObject>\n): SideObject {\n return {\n ...getFreshSideObject(),\n ...paddingObject,\n };\n}\n","// @flow\nimport type { SideObject } from '../types';\n\nexport default function getFreshSideObject(): SideObject {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n };\n}\n","// @flow\n\nexport default function expandToHashMap<\n T: number | string | boolean,\n K: string\n>(value: T, keys: Array<K>): { [key: string]: T } {\n return keys.reduce((hashMap, key) => {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}\n","// @flow\nimport type { State, SideObject, Padding, PositioningStrategy } from '../types';\nimport type { Placement, Boundary, RootBoundary, Context } from '../enums';\nimport getClippingRect from '../dom-utils/getClippingRect';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport getBoundingClientRect from '../dom-utils/getBoundingClientRect';\nimport computeOffsets from './computeOffsets';\nimport rectToClientRect from './rectToClientRect';\nimport {\n clippingParents,\n reference,\n popper,\n bottom,\n top,\n right,\n basePlacements,\n viewport,\n} from '../enums';\nimport { isElement } from '../dom-utils/instanceOf';\nimport mergePaddingObject from './mergePaddingObject';\nimport expandToHashMap from './expandToHashMap';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n placement: Placement,\n strategy: PositioningStrategy,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n elementContext: Context,\n altBoundary: boolean,\n padding: Padding,\n};\n\nexport default function detectOverflow(\n state: State,\n options: $Shape<Options> = {}\n): SideObject {\n const {\n placement = state.placement,\n strategy = state.strategy,\n boundary = clippingParents,\n rootBoundary = viewport,\n elementContext = popper,\n altBoundary = false,\n padding = 0,\n } = options;\n\n const paddingObject = mergePaddingObject(\n typeof padding !== 'number'\n ? padding\n : expandToHashMap(padding, basePlacements)\n );\n\n const altContext = elementContext === popper ? reference : popper;\n\n const popperRect = state.rects.popper;\n const element = state.elements[altBoundary ? altContext : elementContext];\n\n const clippingClientRect = getClippingRect(\n isElement(element)\n ? element\n : element.contextElement || getDocumentElement(state.elements.popper),\n boundary,\n rootBoundary,\n strategy\n );\n\n const referenceClientRect = getBoundingClientRect(state.elements.reference);\n\n const popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement,\n });\n\n const popperClientRect = rectToClientRect({\n ...popperRect,\n ...popperOffsets,\n });\n\n const elementClientRect =\n elementContext === popper ? popperClientRect : referenceClientRect;\n\n // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n const overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom:\n elementClientRect.bottom -\n clippingClientRect.bottom +\n paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right:\n elementClientRect.right - clippingClientRect.right + paddingObject.right,\n };\n\n const offsetData = state.modifiersData.offset;\n\n // Offsets can be applied only to the popper element\n if (elementContext === popper && offsetData) {\n const offset = offsetData[placement];\n\n Object.keys(overflowOffsets).forEach((key) => {\n const multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n const axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}\n","// @flow\nimport type {\n State,\n OptionsGeneric,\n Modifier,\n Instance,\n VirtualElement,\n} from './types';\nimport getCompositeRect from './dom-utils/getCompositeRect';\nimport getLayoutRect from './dom-utils/getLayoutRect';\nimport listScrollParents from './dom-utils/listScrollParents';\nimport getOffsetParent from './dom-utils/getOffsetParent';\nimport orderModifiers from './utils/orderModifiers';\nimport debounce from './utils/debounce';\nimport mergeByName from './utils/mergeByName';\nimport detectOverflow from './utils/detectOverflow';\nimport { isElement } from './dom-utils/instanceOf';\n\nconst DEFAULT_OPTIONS: OptionsGeneric<any> = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute',\n};\n\ntype PopperGeneratorArgs = {\n defaultModifiers?: Array<Modifier<any, any>>,\n defaultOptions?: $Shape<OptionsGeneric<any>>,\n};\n\nfunction areValidElements(...args: Array<any>): boolean {\n return !args.some(\n (element) =>\n !(element && typeof element.getBoundingClientRect === 'function')\n );\n}\n\nexport function popperGenerator(generatorOptions: PopperGeneratorArgs = {}) {\n const { defaultModifiers = [], defaultOptions = DEFAULT_OPTIONS } =\n generatorOptions;\n\n return function createPopper<TModifier: $Shape<Modifier<any, any>>>(\n reference: Element | VirtualElement,\n popper: HTMLElement,\n options: $Shape<OptionsGeneric<TModifier>> = defaultOptions\n ): Instance {\n let state: $Shape<State> = {\n placement: 'bottom',\n orderedModifiers: [],\n options: { ...DEFAULT_OPTIONS, ...defaultOptions },\n modifiersData: {},\n elements: {\n reference,\n popper,\n },\n attributes: {},\n styles: {},\n };\n\n let effectCleanupFns: Array<() => void> = [];\n let isDestroyed = false;\n\n const instance = {\n state,\n setOptions(setOptionsAction) {\n const options =\n typeof setOptionsAction === 'function'\n ? setOptionsAction(state.options)\n : setOptionsAction;\n\n cleanupModifierEffects();\n\n state.options = {\n // $FlowFixMe[exponential-spread]\n ...defaultOptions,\n ...state.options,\n ...options,\n };\n\n state.scrollParents = {\n reference: isElement(reference)\n ? listScrollParents(reference)\n : reference.contextElement\n ? listScrollParents(reference.contextElement)\n : [],\n popper: listScrollParents(popper),\n };\n\n // Orders the modifiers based on their dependencies and `phase`\n // properties\n const orderedModifiers = orderModifiers(\n mergeByName([...defaultModifiers, ...state.options.modifiers])\n );\n\n // Strip out disabled modifiers\n state.orderedModifiers = orderedModifiers.filter((m) => m.enabled);\n\n runModifierEffects();\n\n return instance.update();\n },\n\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n const { reference, popper } = state.elements;\n\n // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n if (!areValidElements(reference, popper)) {\n return;\n }\n\n // Store the reference and popper rects to be read by modifiers\n state.rects = {\n reference: getCompositeRect(\n reference,\n getOffsetParent(popper),\n state.options.strategy === 'fixed'\n ),\n popper: getLayoutRect(popper),\n };\n\n // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n state.reset = false;\n\n state.placement = state.options.placement;\n\n // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n state.orderedModifiers.forEach(\n (modifier) =>\n (state.modifiersData[modifier.name] = {\n ...modifier.data,\n })\n );\n\n for (let index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n const { fn, options = {}, name } = state.orderedModifiers[index];\n\n if (typeof fn === 'function') {\n state = fn({ state, options, name, instance }) || state;\n }\n }\n },\n\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce<$Shape<State>>(\n () =>\n new Promise<$Shape<State>>((resolve) => {\n instance.forceUpdate();\n resolve(state);\n })\n ),\n\n destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n },\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then((state) => {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n });\n\n // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n function runModifierEffects() {\n state.orderedModifiers.forEach(({ name, options = {}, effect }) => {\n if (typeof effect === 'function') {\n const cleanupFn = effect({ state, name, instance, options });\n const noopFn = () => {};\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach((fn) => fn());\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\n\nexport const createPopper = popperGenerator();\n\n// eslint-disable-next-line import/no-unused-modules\nexport { detectOverflow };\n","// @flow\n\nexport default function debounce<T>(fn: Function): () => Promise<T> {\n let pending;\n return () => {\n if (!pending) {\n pending = new Promise<T>(resolve => {\n Promise.resolve().then(() => {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}\n","// @flow\nimport type { Modifier } from '../types';\n\nexport default function mergeByName(\n modifiers: Array<$Shape<Modifier<any, any>>>\n): Array<$Shape<Modifier<any, any>>> {\n const merged = modifiers.reduce((merged, current) => {\n const existing = merged[current.name];\n merged[current.name] = existing\n ? {\n ...existing,\n ...current,\n options: { ...existing.options, ...current.options },\n data: { ...existing.data, ...current.data },\n }\n : current;\n return merged;\n }, {});\n\n // IE11 does not support Object.values\n return Object.keys(merged).map(key => merged[key]);\n}\n","// @flow\nimport type { ModifierArguments, Modifier } from '../types';\nimport getWindow from '../dom-utils/getWindow';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n scroll: boolean,\n resize: boolean,\n};\n\nconst passive = { passive: true };\n\nfunction effect({ state, instance, options }: ModifierArguments<Options>) {\n const { scroll = true, resize = true } = options;\n\n const window = getWindow(state.elements.popper);\n const scrollParents = [\n ...state.scrollParents.reference,\n ...state.scrollParents.popper,\n ];\n\n if (scroll) {\n scrollParents.forEach(scrollParent => {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return () => {\n if (scroll) {\n scrollParents.forEach(scrollParent => {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type EventListenersModifier = Modifier<'eventListeners', Options>;\nexport default ({\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: () => {},\n effect,\n data: {},\n}: EventListenersModifier);\n","// @flow\nimport type { ModifierArguments, Modifier } from '../types';\nimport computeOffsets from '../utils/computeOffsets';\n\nfunction popperOffsets({ state, name }: ModifierArguments<{||}>) {\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement,\n });\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type PopperOffsetsModifier = Modifier<'popperOffsets', {||}>;\nexport default ({\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {},\n}: PopperOffsetsModifier);\n","// @flow\nimport type {\n PositioningStrategy,\n Offsets,\n Modifier,\n ModifierArguments,\n Rect,\n Window,\n} from '../types';\nimport {\n type BasePlacement,\n type Variation,\n top,\n left,\n right,\n bottom,\n end,\n} from '../enums';\nimport getOffsetParent from '../dom-utils/getOffsetParent';\nimport getWindow from '../dom-utils/getWindow';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport getComputedStyle from '../dom-utils/getComputedStyle';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getVariation from '../utils/getVariation';\nimport { round } from '../utils/math';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type RoundOffsets = (\n offsets: $Shape<{ x: number, y: number, centerOffset: number }>\n) => Offsets;\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n gpuAcceleration: boolean,\n adaptive: boolean,\n roundOffsets?: boolean | RoundOffsets,\n};\n\nconst unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto',\n};\n\n// Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\nfunction roundOffsetsByDPR({ x, y }, win: Window): Offsets {\n const dpr = win.devicePixelRatio || 1;\n\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0,\n };\n}\n\nexport function mapToStyles({\n popper,\n popperRect,\n placement,\n variation,\n offsets,\n position,\n gpuAcceleration,\n adaptive,\n roundOffsets,\n isFixed,\n}: {\n popper: HTMLElement,\n popperRect: Rect,\n placement: BasePlacement,\n variation: ?Variation,\n offsets: $Shape<{ x: number, y: number, centerOffset: number }>,\n position: PositioningStrategy,\n gpuAcceleration: boolean,\n adaptive: boolean,\n roundOffsets: boolean | RoundOffsets,\n isFixed: boolean,\n}) {\n let { x = 0, y = 0 } = offsets;\n\n ({ x, y } =\n typeof roundOffsets === 'function' ? roundOffsets({ x, y }) : { x, y });\n\n const hasX = offsets.hasOwnProperty('x');\n const hasY = offsets.hasOwnProperty('y');\n\n let sideX: string = left;\n let sideY: string = top;\n\n const win: Window = window;\n\n if (adaptive) {\n let offsetParent = getOffsetParent(popper);\n let heightProp = 'clientHeight';\n let widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (\n getComputedStyle(offsetParent).position !== 'static' &&\n position === 'absolute'\n ) {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n }\n\n // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n offsetParent = (offsetParent: Element);\n\n if (\n placement === top ||\n ((placement === left || placement === right) && variation === end)\n ) {\n sideY = bottom;\n const offsetY =\n isFixed && offsetParent === win && win.visualViewport\n ? win.visualViewport.height\n : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (\n placement === left ||\n ((placement === top || placement === bottom) && variation === end)\n ) {\n sideX = right;\n const offsetX =\n isFixed && offsetParent === win && win.visualViewport\n ? win.visualViewport.width\n : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n const commonStyles = {\n position,\n ...(adaptive && unsetSides),\n };\n\n ({ x, y } =\n roundOffsets === true\n ? roundOffsetsByDPR({ x, y }, getWindow(popper))\n : { x, y });\n\n if (gpuAcceleration) {\n return {\n ...commonStyles,\n [sideY]: hasY ? '0' : '',\n [sideX]: hasX ? '0' : '',\n // Layer acceleration can disable subpixel rendering which causes slightly\n // blurry text on low PPI displays, so we want to use 2D transforms\n // instead\n transform:\n (win.devicePixelRatio || 1) <= 1\n ? `translate(${x}px, ${y}px)`\n : `translate3d(${x}px, ${y}px, 0)`,\n };\n }\n\n return {\n ...commonStyles,\n [sideY]: hasY ? `${y}px` : '',\n [sideX]: hasX ? `${x}px` : '',\n transform: '',\n };\n}\n\nfunction computeStyles({ state, options }: ModifierArguments<Options>) {\n const {\n gpuAcceleration = true,\n adaptive = true,\n // defaults to use builtin `roundOffsetsByDPR`\n roundOffsets = true,\n } = options;\n\n const commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration,\n isFixed: state.options.strategy === 'fixed',\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = {\n ...state.styles.popper,\n ...mapToStyles({\n ...commonStyles,\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive,\n roundOffsets,\n }),\n };\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = {\n ...state.styles.arrow,\n ...mapToStyles({\n ...commonStyles,\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets,\n }),\n };\n }\n\n state.attributes.popper = {\n ...state.attributes.popper,\n 'data-popper-placement': state.placement,\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type ComputeStylesModifier = Modifier<'computeStyles', Options>;\nexport default ({\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {},\n}: ComputeStylesModifier);\n","// @flow\nimport type { Modifier, ModifierArguments } from '../types';\nimport getNodeName from '../dom-utils/getNodeName';\nimport { isHTMLElement } from '../dom-utils/instanceOf';\n\n// This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles({ state }: ModifierArguments<{||}>) {\n Object.keys(state.elements).forEach((name) => {\n const style = state.styles[name] || {};\n\n const attributes = state.attributes[name] || {};\n const element = state.elements[name];\n\n // arrow is optional + virtual elements\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n Object.assign(element.style, style);\n\n Object.keys(attributes).forEach((name) => {\n const value = attributes[name];\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect({ state }: ModifierArguments<{||}>) {\n const initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0',\n },\n arrow: {\n position: 'absolute',\n },\n reference: {},\n };\n\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return () => {\n Object.keys(state.elements).forEach((name) => {\n const element = state.elements[name];\n const attributes = state.attributes[name] || {};\n\n const styleProperties = Object.keys(\n state.styles.hasOwnProperty(name)\n ? state.styles[name]\n : initialStyles[name]\n );\n\n // Set all values to an empty string to unset them\n const style = styleProperties.reduce((style, property) => {\n style[property] = '';\n return style;\n }, {});\n\n // arrow is optional + virtual elements\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n\n Object.keys(attributes).forEach((attribute) => {\n element.removeAttribute(attribute);\n });\n });\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type ApplyStylesModifier = Modifier<'applyStyles', {||}>;\nexport default ({\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect,\n requires: ['computeStyles'],\n}: ApplyStylesModifier);\n","// @flow\nimport type { Placement } from '../enums';\nimport type { ModifierArguments, Modifier, Rect, Offsets } from '../types';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport { top, left, right, placements } from '../enums';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type OffsetsFunction = ({\n popper: Rect,\n reference: Rect,\n placement: Placement,\n}) => [?number, ?number];\n\ntype Offset = OffsetsFunction | [?number, ?number];\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n offset: Offset,\n};\n\nexport function distanceAndSkiddingToXY(\n placement: Placement,\n rects: { popper: Rect, reference: Rect },\n offset: Offset\n): Offsets {\n const basePlacement = getBasePlacement(placement);\n const invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n let [skidding, distance] =\n typeof offset === 'function'\n ? offset({\n ...rects,\n placement,\n })\n : offset;\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n\n return [left, right].indexOf(basePlacement) >= 0\n ? { x: distance, y: skidding }\n : { x: skidding, y: distance };\n}\n\nfunction offset({ state, options, name }: ModifierArguments<Options>) {\n const { offset = [0, 0] } = options;\n\n const data = placements.reduce((acc, placement) => {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n\n const { x, y } = data[state.placement];\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type OffsetModifier = Modifier<'offset', Options>;\nexport default ({\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset,\n}: OffsetModifier);\n","// @flow\nimport type { Placement } from '../enums';\n\nconst hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n\nexport default function getOppositePlacement(placement: Placement): Placement {\n return (placement.replace(\n /left|right|bottom|top/g,\n matched => hash[matched]\n ): any);\n}\n","// @flow\nimport type { Placement } from '../enums';\n\nconst hash = { start: 'end', end: 'start' };\n\nexport default function getOppositeVariationPlacement(\n placement: Placement\n): Placement {\n return (placement.replace(/start|end/g, matched => hash[matched]): any);\n}\n","// @flow\nimport type { State, Padding } from '../types';\nimport type {\n Placement,\n ComputedPlacement,\n Boundary,\n RootBoundary,\n} from '../enums';\nimport getVariation from './getVariation';\nimport {\n variationPlacements,\n basePlacements,\n placements as allPlacements,\n} from '../enums';\nimport detectOverflow from './detectOverflow';\nimport getBasePlacement from './getBasePlacement';\n\ntype Options = {\n placement: Placement,\n padding: Padding,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n flipVariations: boolean,\n allowedAutoPlacements?: Array<Placement>,\n};\n\ntype OverflowsMap = { [ComputedPlacement]: number };\n\nexport default function computeAutoPlacement(\n state: $Shape<State>,\n options: Options = {}\n): Array<ComputedPlacement> {\n const {\n placement,\n boundary,\n rootBoundary,\n padding,\n flipVariations,\n allowedAutoPlacements = allPlacements,\n } = options;\n\n const variation = getVariation(placement);\n\n const placements = variation\n ? flipVariations\n ? variationPlacements\n : variationPlacements.filter(\n (placement) => getVariation(placement) === variation\n )\n : basePlacements;\n\n let allowedPlacements = placements.filter(\n (placement) => allowedAutoPlacements.indexOf(placement) >= 0\n );\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n }\n\n // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n const overflows: OverflowsMap = allowedPlacements.reduce((acc, placement) => {\n acc[placement] = detectOverflow(state, {\n placement,\n boundary,\n rootBoundary,\n padding,\n })[getBasePlacement(placement)];\n\n return acc;\n }, {});\n\n return Object.keys(overflows).sort((a, b) => overflows[a] - overflows[b]);\n}\n","// @flow\nimport type { Placement, Boundary, RootBoundary } from '../enums';\nimport type { ModifierArguments, Modifier, Padding } from '../types';\nimport getOppositePlacement from '../utils/getOppositePlacement';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getOppositeVariationPlacement from '../utils/getOppositeVariationPlacement';\nimport detectOverflow from '../utils/detectOverflow';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\nimport { bottom, top, start, right, left, auto } from '../enums';\nimport getVariation from '../utils/getVariation';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n mainAxis: boolean,\n altAxis: boolean,\n fallbackPlacements: Array<Placement>,\n padding: Padding,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n altBoundary: boolean,\n flipVariations: boolean,\n allowedAutoPlacements: Array<Placement>,\n};\n\nfunction getExpandedFallbackPlacements(placement: Placement): Array<Placement> {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n const oppositePlacement = getOppositePlacement(placement);\n\n return [\n getOppositeVariationPlacement(placement),\n oppositePlacement,\n getOppositeVariationPlacement(oppositePlacement),\n ];\n}\n\nfunction flip({ state, options, name }: ModifierArguments<Options>) {\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n const {\n mainAxis: checkMainAxis = true,\n altAxis: checkAltAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n padding,\n boundary,\n rootBoundary,\n altBoundary,\n flipVariations = true,\n allowedAutoPlacements,\n } = options;\n\n const preferredPlacement = state.options.placement;\n const basePlacement = getBasePlacement(preferredPlacement);\n const isBasePlacement = basePlacement === preferredPlacement;\n\n const fallbackPlacements =\n specifiedFallbackPlacements ||\n (isBasePlacement || !flipVariations\n ? [getOppositePlacement(preferredPlacement)]\n : getExpandedFallbackPlacements(preferredPlacement));\n\n const placements = [preferredPlacement, ...fallbackPlacements].reduce(\n (acc, placement) => {\n return acc.concat(\n getBasePlacement(placement) === auto\n ? computeAutoPlacement(state, {\n placement,\n boundary,\n rootBoundary,\n padding,\n flipVariations,\n allowedAutoPlacements,\n })\n : placement\n );\n },\n []\n );\n\n const referenceRect = state.rects.reference;\n const popperRect = state.rects.popper;\n\n const checksMap = new Map();\n let makeFallbackChecks = true;\n let firstFittingPlacement = placements[0];\n\n for (let i = 0; i < placements.length; i++) {\n const placement = placements[i];\n const basePlacement = getBasePlacement(placement);\n const isStartVariation = getVariation(placement) === start;\n const isVertical = [top, bottom].indexOf(basePlacement) >= 0;\n const len = isVertical ? 'width' : 'height';\n\n const overflow = detectOverflow(state, {\n placement,\n boundary,\n rootBoundary,\n altBoundary,\n padding,\n });\n\n let mainVariationSide: any = isVertical\n ? isStartVariation\n ? right\n : left\n : isStartVariation\n ? bottom\n : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n const altVariationSide: any = getOppositePlacement(mainVariationSide);\n\n const checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(\n overflow[mainVariationSide] <= 0,\n overflow[altVariationSide] <= 0\n );\n }\n\n if (checks.every((check) => check)) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n const numberOfChecks = flipVariations ? 3 : 1;\n\n for (let i = numberOfChecks; i > 0; i--) {\n const fittingPlacement = placements.find((placement) => {\n const checks = checksMap.get(placement);\n if (checks) {\n return checks.slice(0, i).every((check) => check);\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n break;\n }\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type FlipModifier = Modifier<'flip', Options>;\nexport default ({\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: { _skip: false },\n}: FlipModifier);\n","// @flow\nimport { max as mathMax, min as mathMin } from './math';\n\nexport function within(min: number, value: number, max: number): number {\n return mathMax(min, mathMin(value, max));\n}\n\nexport function withinMaxClamp(min: number, value: number, max: number) {\n const v = within(min, value, max);\n return v > max ? max : v;\n}\n","// @flow\nimport { top, left, right, bottom, start } from '../enums';\nimport type { Placement, Boundary, RootBoundary } from '../enums';\nimport type { Rect, ModifierArguments, Modifier, Padding } from '../types';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getMainAxisFromPlacement from '../utils/getMainAxisFromPlacement';\nimport getAltAxis from '../utils/getAltAxis';\nimport { within, withinMaxClamp } from '../utils/within';\nimport getLayoutRect from '../dom-utils/getLayoutRect';\nimport getOffsetParent from '../dom-utils/getOffsetParent';\nimport detectOverflow from '../utils/detectOverflow';\nimport getVariation from '../utils/getVariation';\nimport getFreshSideObject from '../utils/getFreshSideObject';\nimport { min as mathMin, max as mathMax } from '../utils/math';\n\ntype TetherOffset =\n | (({\n popper: Rect,\n reference: Rect,\n placement: Placement,\n }) => number | { mainAxis: number, altAxis: number })\n | number\n | { mainAxis: number, altAxis: number };\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n /* Prevents boundaries overflow on the main axis */\n mainAxis: boolean,\n /* Prevents boundaries overflow on the alternate axis */\n altAxis: boolean,\n /* The area to check the popper is overflowing in */\n boundary: Boundary,\n /* If the popper is not overflowing the main area, fallback to this one */\n rootBoundary: RootBoundary,\n /* Use the reference's \"clippingParents\" boundary context */\n altBoundary: boolean,\n /**\n * Allows the popper to overflow from its boundaries to keep it near its\n * reference element\n */\n tether: boolean,\n /* Offsets when the `tether` option should activate */\n tetherOffset: TetherOffset,\n /* Sets a padding to the provided boundary */\n padding: Padding,\n};\n\nfunction preventOverflow({ state, options, name }: ModifierArguments<Options>) {\n const {\n mainAxis: checkMainAxis = true,\n altAxis: checkAltAxis = false,\n boundary,\n rootBoundary,\n altBoundary,\n padding,\n tether = true,\n tetherOffset = 0,\n } = options;\n\n const overflow = detectOverflow(state, {\n boundary,\n rootBoundary,\n padding,\n altBoundary,\n });\n const basePlacement = getBasePlacement(state.placement);\n const variation = getVariation(state.placement);\n const isBasePlacement = !variation;\n const mainAxis = getMainAxisFromPlacement(basePlacement);\n const altAxis = getAltAxis(mainAxis);\n const popperOffsets = state.modifiersData.popperOffsets;\n const referenceRect = state.rects.reference;\n const popperRect = state.rects.popper;\n const tetherOffsetValue =\n typeof tetherOffset === 'function'\n ? tetherOffset({\n ...state.rects,\n placement: state.placement,\n })\n : tetherOffset;\n const normalizedTetherOffsetValue =\n typeof tetherOffsetValue === 'number'\n ? { mainAxis: tetherOffsetValue, altAxis: tetherOffsetValue }\n : { mainAxis: 0, altAxis: 0, ...tetherOffsetValue };\n const offsetModifierState = state.modifiersData.offset\n ? state.modifiersData.offset[state.placement]\n : null;\n\n const data = { x: 0, y: 0 };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n const mainSide = mainAxis === 'y' ? top : left;\n const altSide = mainAxis === 'y' ? bottom : right;\n const len = mainAxis === 'y' ? 'height' : 'width';\n const offset = popperOffsets[mainAxis];\n\n const min = offset + overflow[mainSide];\n const max = offset - overflow[altSide];\n\n const additive = tether ? -popperRect[len] / 2 : 0;\n\n const minLen = variation === start ? referenceRect[len] : popperRect[len];\n const maxLen = variation === start ? -popperRect[len] : -referenceRect[len];\n\n // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n const arrowElement = state.elements.arrow;\n const arrowRect =\n tether && arrowElement\n ? getLayoutRect(arrowElement)\n : { width: 0, height: 0 };\n const arrowPaddingObject = state.modifiersData['arrow#persistent']\n ? state.modifiersData['arrow#persistent'].padding\n : getFreshSideObject();\n const arrowPaddingMin = arrowPaddingObject[mainSide];\n const arrowPaddingMax = arrowPaddingObject[altSide];\n\n // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n const arrowLen = within(0, referenceRect[len], arrowRect[len]);\n\n const minOffset = isBasePlacement\n ? referenceRect[len] / 2 -\n additive -\n arrowLen -\n arrowPaddingMin -\n normalizedTetherOffsetValue.mainAxis\n : minLen -\n arrowLen -\n arrowPaddingMin -\n normalizedTetherOffsetValue.mainAxis;\n const maxOffset = isBasePlacement\n ? -referenceRect[len] / 2 +\n additive +\n arrowLen +\n arrowPaddingMax +\n normalizedTetherOffsetValue.mainAxis\n : maxLen +\n arrowLen +\n arrowPaddingMax +\n normalizedTetherOffsetValue.mainAxis;\n\n const arrowOffsetParent =\n state.elements.arrow && getOffsetParent(state.elements.arrow);\n const clientOffset = arrowOffsetParent\n ? mainAxis === 'y'\n ? arrowOffsetParent.clientTop || 0\n : arrowOffsetParent.clientLeft || 0\n : 0;\n\n const offsetModifierValue = offsetModifierState?.[mainAxis] ?? 0;\n const tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n const tetherMax = offset + maxOffset - offsetModifierValue;\n\n const preventedOffset = within(\n tether ? mathMin(min, tetherMin) : min,\n offset,\n tether ? mathMax(max, tetherMax) : max\n );\n\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n const mainSide = mainAxis === 'x' ? top : left;\n const altSide = mainAxis === 'x' ? bottom : right;\n const offset = popperOffsets[altAxis];\n\n const len = altAxis === 'y' ? 'height' : 'width';\n\n const min = offset + overflow[mainSide];\n const max = offset - overflow[altSide];\n\n const isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n const offsetModifierValue = offsetModifierState?.[altAxis] ?? 0;\n const tetherMin = isOriginSide\n ? min\n : offset -\n referenceRect[len] -\n popperRect[len] -\n offsetModifierValue +\n normalizedTetherOffsetValue.altAxis;\n const tetherMax = isOriginSide\n ? offset +\n referenceRect[len] +\n popperRect[len] -\n offsetModifierValue -\n normalizedTetherOffsetValue.altAxis\n : max;\n\n const preventedOffset =\n tether && isOriginSide\n ? withinMaxClamp(tetherMin, offset, tetherMax)\n : within(tether ? tetherMin : min, offset, tether ? tetherMax : max);\n\n popperOffsets[altAxis] = preventedOffset;\n data[altAxis] = preventedOffset - offset;\n }\n\n state.modifiersData[name] = data;\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type PreventOverflowModifier = Modifier<'preventOverflow', Options>;\nexport default ({\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset'],\n}: PreventOverflowModifier);\n","// @flow\n\nexport default function getAltAxis(axis: 'x' | 'y'): 'x' | 'y' {\n return axis === 'x' ? 'y' : 'x';\n}\n","// @flow\nimport type { Modifier, ModifierArguments, Padding, Rect } from '../types';\nimport type { Placement } from '../enums';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getLayoutRect from '../dom-utils/getLayoutRect';\nimport contains from '../dom-utils/contains';\nimport getOffsetParent from '../dom-utils/getOffsetParent';\nimport getMainAxisFromPlacement from '../utils/getMainAxisFromPlacement';\nimport { within } from '../utils/within';\nimport mergePaddingObject from '../utils/mergePaddingObject';\nimport expandToHashMap from '../utils/expandToHashMap';\nimport { left, right, basePlacements, top, bottom } from '../enums';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n element: HTMLElement | string | null,\n padding:\n | Padding\n | (({|\n popper: Rect,\n reference: Rect,\n placement: Placement,\n |}) => Padding),\n};\n\nconst toPaddingObject = (padding, state) => {\n padding =\n typeof padding === 'function'\n ? padding({ ...state.rects, placement: state.placement })\n : padding;\n\n return mergePaddingObject(\n typeof padding !== 'number'\n ? padding\n : expandToHashMap(padding, basePlacements)\n );\n};\n\nfunction arrow({ state, name, options }: ModifierArguments<Options>) {\n const arrowElement = state.elements.arrow;\n const popperOffsets = state.modifiersData.popperOffsets;\n const basePlacement = getBasePlacement(state.placement);\n const axis = getMainAxisFromPlacement(basePlacement);\n const isVertical = [left, right].indexOf(basePlacement) >= 0;\n const len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n const paddingObject = toPaddingObject(options.padding, state);\n const arrowRect = getLayoutRect(arrowElement);\n const minProp = axis === 'y' ? top : left;\n const maxProp = axis === 'y' ? bottom : right;\n\n const endDiff =\n state.rects.reference[len] +\n state.rects.reference[axis] -\n popperOffsets[axis] -\n state.rects.popper[len];\n const startDiff = popperOffsets[axis] - state.rects.reference[axis];\n\n const arrowOffsetParent = getOffsetParent(arrowElement);\n const clientSize = arrowOffsetParent\n ? axis === 'y'\n ? arrowOffsetParent.clientHeight || 0\n : arrowOffsetParent.clientWidth || 0\n : 0;\n\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n const min = paddingObject[minProp];\n const max = clientSize - arrowRect[len] - paddingObject[maxProp];\n const center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n const offset = within(min, center, max);\n\n // Prevents breaking syntax highlighting...\n const axisProp: string = axis;\n state.modifiersData[name] = {\n [axisProp]: offset,\n centerOffset: offset - center,\n };\n}\n\nfunction effect({ state, options }: ModifierArguments<Options>) {\n let { element: arrowElement = '[data-popper-arrow]' } = options;\n\n if (arrowElement == null) {\n return;\n }\n\n // CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type ArrowModifier = Modifier<'arrow', Options>;\nexport default ({\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow'],\n}: ArrowModifier);\n","// @flow\nimport type {\n ModifierArguments,\n Modifier,\n Rect,\n SideObject,\n Offsets,\n} from '../types';\nimport { top, bottom, left, right } from '../enums';\nimport detectOverflow from '../utils/detectOverflow';\n\nfunction getSideOffsets(\n overflow: SideObject,\n rect: Rect,\n preventedOffsets: Offsets = { x: 0, y: 0 }\n): SideObject {\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x,\n };\n}\n\nfunction isAnySideFullyClipped(overflow: SideObject): boolean {\n return [top, right, bottom, left].some((side) => overflow[side] >= 0);\n}\n\nfunction hide({ state, name }: ModifierArguments<{||}>) {\n const referenceRect = state.rects.reference;\n const popperRect = state.rects.popper;\n const preventedOffsets = state.modifiersData.preventOverflow;\n\n const referenceOverflow = detectOverflow(state, {\n elementContext: 'reference',\n });\n const popperAltOverflow = detectOverflow(state, {\n altBoundary: true,\n });\n\n const referenceClippingOffsets = getSideOffsets(\n referenceOverflow,\n referenceRect\n );\n const popperEscapeOffsets = getSideOffsets(\n popperAltOverflow,\n popperRect,\n preventedOffsets\n );\n\n const isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n const hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n\n state.modifiersData[name] = {\n referenceClippingOffsets,\n popperEscapeOffsets,\n isReferenceHidden,\n hasPopperEscaped,\n };\n\n state.attributes.popper = {\n ...state.attributes.popper,\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped,\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type HideModifier = Modifier<'hide', {||}>;\nexport default ({\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide,\n}: HideModifier);\n","// @flow\nimport { popperGenerator, detectOverflow } from './createPopper';\n\nimport eventListeners from './modifiers/eventListeners';\nimport popperOffsets from './modifiers/popperOffsets';\nimport computeStyles from './modifiers/computeStyles';\nimport applyStyles from './modifiers/applyStyles';\n\nexport type * from './types';\n\nconst defaultModifiers = [\n eventListeners,\n popperOffsets,\n computeStyles,\n applyStyles,\n];\n\nconst createPopper = popperGenerator({ defaultModifiers });\n\n// eslint-disable-next-line import/no-unused-modules\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };\n","// @flow\nimport { popperGenerator, detectOverflow } from './createPopper';\n\nimport eventListeners from './modifiers/eventListeners';\nimport popperOffsets from './modifiers/popperOffsets';\nimport computeStyles from './modifiers/computeStyles';\nimport applyStyles from './modifiers/applyStyles';\nimport offset from './modifiers/offset';\nimport flip from './modifiers/flip';\nimport preventOverflow from './modifiers/preventOverflow';\nimport arrow from './modifiers/arrow';\nimport hide from './modifiers/hide';\n\nexport type * from './types';\n\nconst defaultModifiers = [\n eventListeners,\n popperOffsets,\n computeStyles,\n applyStyles,\n offset,\n flip,\n preventOverflow,\n arrow,\n hide,\n];\n\nconst createPopper = popperGenerator({ defaultModifiers });\n\n// eslint-disable-next-line import/no-unused-modules\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };\n// eslint-disable-next-line import/no-unused-modules\nexport { createPopper as createPopperLite } from './popper-lite';\n// eslint-disable-next-line import/no-unused-modules\nexport * from './modifiers';\n"],"names":["getWindow","node","window","toString","ownerDocument","defaultView","isElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","max","Math","min","round","getUAString","uaData","navigator","userAgentData","brands","Array","isArray","map","item","brand","version","join","userAgent","isLayoutViewport","test","getBoundingClientRect","element","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","offsetWidth","width","offsetHeight","height","visualViewport","addVisualOffsets","x","left","offsetLeft","y","top","offsetTop","right","bottom","getWindowScroll","win","scrollLeft","pageXOffset","scrollTop","pageYOffset","getNodeName","nodeName","toLowerCase","getDocumentElement","document","documentElement","getWindowScrollBarX","getComputedStyle","isScrollParent","overflow","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","rect","isElementScaled","scroll","offsets","clientLeft","clientTop","getLayoutRect","abs","getParentNode","assignedSlot","parentNode","host","getScrollParent","indexOf","body","listScrollParents","list","scrollParent","isBody","_element$ownerDocumen","target","concat","updatedList","isTableElement","getTrueOffsetParent","position","getOffsetParent","isFirefox","currentNode","css","transform","perspective","contain","willChange","filter","getContainingBlock","auto","basePlacements","start","end","viewport","popper","variationPlacements","reduce","acc","placement","placements","modifierPhases","order","modifiers","Map","visited","Set","result","sort","modifier","add","name","requires","requiresIfExists","forEach","dep","has","depModifier","get","push","set","contains","parent","child","rootNode","getRootNode","next","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","strategy","html","clientWidth","clientHeight","layoutViewport","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","direction","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","getBasePlacement","split","getVariation","getMainAxisFromPlacement","computeOffsets","reference","basePlacement","variation","commonX","commonY","mainAxis","len","mergePaddingObject","paddingObject","expandToHashMap","value","keys","hashMap","key","detectOverflow","state","options","elementContext","altBoundary","padding","altContext","popperRect","rects","elements","clippingClientRect","contextElement","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","offset","Object","multiply","axis","DEFAULT_OPTIONS","areValidElements","args","some","popperGenerator","generatorOptions","defaultModifiers","defaultOptions","fn","pending","orderedModifiers","attributes","styles","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","merged","phase","orderModifiers","current","existing","data","m","enabled","effect","cleanupFn","noopFn","update","forceUpdate","reset","index","length","Promise","resolve","then","undefined","destroy","onFirstUpdate","passive","resize","addEventListener","removeEventListener","unsetSides","mapToStyles","gpuAcceleration","adaptive","roundOffsets","hasX","hasOwnProperty","hasY","sideX","sideY","heightProp","widthProp","commonStyles","dpr","devicePixelRatio","roundOffsetsByDPR","arrow","style","assign","removeAttribute","setAttribute","initialStyles","margin","property","attribute","invertDistance","skidding","distance","distanceAndSkiddingToXY","hash","getOppositePlacement","replace","matched","getOppositeVariationPlacement","computeAutoPlacement","flipVariations","allowedAutoPlacements","allPlacements","allowedPlacements","overflows","a","b","_skip","checkMainAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","i","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","fittingPlacement","find","slice","within","mathMax","mathMin","tether","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","isOriginSide","tetherMin","v","withinMaxClamp","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","centerOffset","querySelector","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","createPopper","eventListeners","computeStyles","applyStyles","flip","hide"],"mappings":"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"} \ No newline at end of file diff --git a/vercel.json b/vercel.json index 635990657..0fd58817a 100644 --- a/vercel.json +++ b/vercel.json @@ -105,7 +105,15 @@ } }, "headers": [ - + { + "source": ".*", + "headers": [ + { + "key": "Access-Control-Allow-Origin", + "value": "*" + } + ] + }, { "source": "/([^/]*)/(.*)/", "has": [ -- GitLab